diff options
1004 files changed, 18585 insertions, 92757 deletions
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index 32fab4281d5..b9727d0314e 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -9715,6 +9715,24 @@ {} ] ], + "css/css-ui/cursor-pointer-links-001-manual.html": [ + [ + "/css/css-ui/cursor-pointer-links-001-manual.html", + {} + ] + ], + "css/css-ui/cursor-pointer-links-002-manual.html": [ + [ + "/css/css-ui/cursor-pointer-links-002-manual.html", + {} + ] + ], + "css/css-ui/cursor-pointer-links-003-manual.html": [ + [ + "/css/css-ui/cursor-pointer-links-003-manual.html", + {} + ] + ], "css/css-ui/cursor-text-001.html": [ [ "/css/css-ui/cursor-text-001.html", @@ -18861,18 +18879,6 @@ {} ] ], - "2dcontext/drawing-images-to-the-canvas/drawimage_canvas_self.html": [ - [ - "/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_self.html", - [ - [ - "/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_self_ref.html", - "==" - ] - ], - {} - ] - ], "2dcontext/line-styles/canvas_linestyles_linecap_001.htm": [ [ "/2dcontext/line-styles/canvas_linestyles_linecap_001.htm", @@ -102109,18 +102115,6 @@ {} ] ], - "css/css-animations/set-animation-play-state-to-paused-002.html": [ - [ - "/css/css-animations/set-animation-play-state-to-paused-002.html", - [ - [ - "/css/css-animations/set-animation-play-state-to-paused-002-ref.html", - "==" - ] - ], - {} - ] - ], "css/css-backgrounds/background-334.html": [ [ "/css/css-backgrounds/background-334.html", @@ -108841,6 +108835,18 @@ {} ] ], + "css/css-contain/contain-layout-015.html": [ + [ + "/css/css-contain/contain-layout-015.html", + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], "css/css-contain/contain-layout-breaks-001.html": [ [ "/css/css-contain/contain-layout-breaks-001.html", @@ -129853,6 +129859,18 @@ {} ] ], + "css/css-scoping/shadow-host-with-before-after.html": [ + [ + "/css/css-scoping/shadow-host-with-before-after.html", + [ + [ + "/css/css-scoping/reference/green-box.html", + "==" + ] + ], + {} + ] + ], "css/css-scoping/shadow-reassign-dynamic-001.html": [ [ "/css/css-scoping/shadow-reassign-dynamic-001.html", @@ -129865,6 +129883,18 @@ {} ] ], + "css/css-scoping/shadow-reassign-dynamic-002.html": [ + [ + "/css/css-scoping/shadow-reassign-dynamic-002.html", + [ + [ + "/css/css-scoping/reference/green-box.html", + "==" + ] + ], + {} + ] + ], "css/css-scoping/shadow-root-insert-into-document.html": [ [ "/css/css-scoping/shadow-root-insert-into-document.html", @@ -129901,6 +129931,18 @@ {} ] ], + "css/css-scoping/whitespace-crash-001.html": [ + [ + "/css/css-scoping/whitespace-crash-001.html", + [ + [ + "/css/css-scoping/reference/green-box.html", + "==" + ] + ], + {} + ] + ], "css/css-scrollbars/viewport-scrollbar-body.html": [ [ "/css/css-scrollbars/viewport-scrollbar-body.html", @@ -134605,6 +134647,18 @@ {} ] ], + "css/css-text/overflow-wrap/overflow-wrap-min-content-size-001.html": [ + [ + "/css/css-text/overflow-wrap/overflow-wrap-min-content-size-001.html", + [ + [ + "/css/css-text/overflow-wrap/reference/overflow-wrap-min-content-size-001-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-text/overflow-wrap/word-wrap-001.html": [ [ "/css/css-text/overflow-wrap/word-wrap-001.html", @@ -188479,11 +188533,6 @@ {} ] ], - "2dcontext/drawing-images-to-the-canvas/drawimage_canvas_self_ref.html": [ - [ - {} - ] - ], "2dcontext/drawing-model/.gitkeep": [ [ {} @@ -238924,11 +238973,6 @@ {} ] ], - "css/css-animations/set-animation-play-state-to-paused-002-ref.html": [ - [ - {} - ] - ], "css/css-animations/support/testcommon.js": [ [ {} @@ -256499,6 +256543,11 @@ {} ] ], + "css/css-text/overflow-wrap/reference/overflow-wrap-min-content-size-001-ref.html": [ + [ + {} + ] + ], "css/css-text/support/1x1-green.png": [ [ {} @@ -271434,6 +271483,11 @@ {} ] ], + "dom/events/resources/event-global-extra-frame.html": [ + [ + {} + ] + ], "dom/lists/README.md": [ [ {} @@ -275834,6 +275888,11 @@ {} ] ], + "html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-uncloseable-1.html": [ + [ + {} + ] + ], "html/browsers/browsing-the-web/unloading-documents/prompt/001-1.html": [ [ {} @@ -275849,6 +275908,16 @@ {} ] ], + "html/browsers/browsing-the-web/unloading-documents/prompt/004-1.html": [ + [ + {} + ] + ], + "html/browsers/browsing-the-web/unloading-documents/prompt/004-2.html": [ + [ + {} + ] + ], "html/browsers/browsing-the-web/unloading-documents/prompt/manual-001.html": [ [ {} @@ -287764,6 +287833,11 @@ {} ] ], + "input-device-capabilities/OWNERS": [ + [ + {} + ] + ], "input-events/OWNERS": [ [ {} @@ -287789,11 +287863,21 @@ {} ] ], + "interfaces/InputDeviceCapabilities.idl": [ + [ + {} + ] + ], "interfaces/OWNERS": [ [ {} ] ], + "interfaces/ResizeObserver.idl": [ + [ + {} + ] + ], "interfaces/ServiceWorker.idl": [ [ {} @@ -287854,6 +287938,16 @@ {} ] ], + "interfaces/css-fonts.idl": [ + [ + {} + ] + ], + "interfaces/css-masking.idl": [ + [ + {} + ] + ], "interfaces/css-typed-om.idl": [ [ {} @@ -287994,6 +288088,16 @@ {} ] ], + "interfaces/performance-timeline.idl": [ + [ + {} + ] + ], + "interfaces/permissions.idl": [ + [ + {} + ] + ], "interfaces/pointerevents.idl": [ [ {} @@ -288049,6 +288153,11 @@ {} ] ], + "interfaces/user-timing.idl": [ + [ + {} + ] + ], "interfaces/vibration.idl": [ [ {} @@ -290004,6 +290113,11 @@ {} ] ], + "permissions/OWNERS": [ + [ + {} + ] + ], "picture-in-picture/OWNERS": [ [ {} @@ -294979,7 +295093,12 @@ {} ] ], - "service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-worker.js": [ + "service-workers/service-worker/resources/fetch-request-css-cross-origin-read-contents.html": [ + [ + {} + ] + ], + "service-workers/service-worker/resources/fetch-request-css-cross-origin-worker.js": [ [ {} ] @@ -300969,11 +301088,21 @@ {} ] ], + "workers/modules/resources/dynamic-import-remote-origin-referrer-checker-worker.sub.js": [ + [ + {} + ] + ], "workers/modules/resources/dynamic-import-remote-origin-script-worker.sub.js": [ [ {} ] ], + "workers/modules/resources/dynamic-import-same-origin-referrer-checker-worker.js": [ + [ + {} + ] + ], "workers/modules/resources/dynamic-import-worker.js": [ [ {} @@ -301039,6 +301168,11 @@ {} ] ], + "workers/modules/resources/referrer-checker.py": [ + [ + {} + ] + ], "workers/modules/resources/static-import-and-then-dynamic-import-worker.js": [ [ {} @@ -301049,11 +301183,21 @@ {} ] ], + "workers/modules/resources/static-import-remote-origin-referrer-checker-worker.sub.js": [ + [ + {} + ] + ], "workers/modules/resources/static-import-remote-origin-script-worker.sub.js": [ [ {} ] ], + "workers/modules/resources/static-import-same-origin-referrer-checker-worker.js": [ + [ + {} + ] + ], "workers/modules/resources/static-import-worker.js": [ [ {} @@ -316379,6 +316523,12 @@ {} ] ], + "css/css-fonts/idlharness.html": [ + [ + "/css/css-fonts/idlharness.html", + {} + ] + ], "css/css-fonts/test_datafont_same_origin.html": [ [ "/css/css-fonts/test_datafont_same_origin.html", @@ -318071,6 +318221,12 @@ {} ] ], + "css/css-masking/idlharness.html": [ + [ + "/css/css-masking/idlharness.html", + {} + ] + ], "css/css-masking/parsing/clip-invalid.html": [ [ "/css/css-masking/parsing/clip-invalid.html", @@ -318113,6 +318269,12 @@ {} ] ], + "css/css-multicol/filter-with-abspos.html": [ + [ + "/css/css-multicol/filter-with-abspos.html", + {} + ] + ], "css/css-multicol/going-out-of-flow-after-spanner.html": [ [ "/css/css-multicol/going-out-of-flow-after-spanner.html", @@ -320615,6 +320777,12 @@ {} ] ], + "css/css-text/overflow-wrap/word-wrap-alias.html": [ + [ + "/css/css-text/overflow-wrap/word-wrap-alias.html", + {} + ] + ], "css/css-text/white-space/seg-break-transformation-000.html": [ [ "/css/css-text/white-space/seg-break-transformation-000.html", @@ -324035,6 +324203,12 @@ {} ] ], + "css/cssom-view/dom-element-scroll.html": [ + [ + "/css/cssom-view/dom-element-scroll.html", + {} + ] + ], "css/cssom-view/elementFromPoint-001.html": [ [ "/css/cssom-view/elementFromPoint-001.html", @@ -325125,6 +325299,14 @@ {} ] ], + "css/selectors/focus-visible-007.html": [ + [ + "/css/selectors/focus-visible-007.html", + { + "testdriver": true + } + ] + ], "css/selectors/focus-within-009.html": [ [ "/css/selectors/focus-within-009.html", @@ -326139,6 +326321,18 @@ {} ] ], + "dom/events/event-global-extra.window.js": [ + [ + "/dom/events/event-global-extra.window.html", + {} + ] + ], + "dom/events/event-global.html": [ + [ + "/dom/events/event-global.html", + {} + ] + ], "dom/events/event-global.worker.js": [ [ "/dom/events/event-global.worker.html", @@ -327074,13 +327268,17 @@ "dom/nodes/ParentNode-querySelector-All-xht.xht": [ [ "/dom/nodes/ParentNode-querySelector-All-xht.xht", - {} + { + "timeout": "long" + } ] ], "dom/nodes/ParentNode-querySelector-All.html": [ [ "/dom/nodes/ParentNode-querySelector-All.html", - {} + { + "timeout": "long" + } ] ], "dom/nodes/ProcessingInstruction-escapes-1.xhtml": [ @@ -337143,9 +337341,9 @@ {} ] ], - "fetch/range/partial-script.window.js": [ + "fetch/range/general.window.js": [ [ - "/fetch/range/partial-script.window.html", + "/fetch/range/general.window.html", {} ] ], @@ -338065,6 +338263,18 @@ {} ] ], + "html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-closeable.html": [ + [ + "/html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-closeable.html", + {} + ] + ], + "html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-uncloseable.html": [ + [ + "/html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-uncloseable.html", + {} + ] + ], "html/browsers/browsing-the-web/unloading-documents/prompt/001.html": [ [ "/html/browsers/browsing-the-web/unloading-documents/prompt/001.html", @@ -338083,6 +338293,12 @@ {} ] ], + "html/browsers/browsing-the-web/unloading-documents/prompt/004.html": [ + [ + "/html/browsers/browsing-the-web/unloading-documents/prompt/004.html", + {} + ] + ], "html/browsers/browsing-the-web/unloading-documents/unload/001.html": [ [ "/html/browsers/browsing-the-web/unloading-documents/unload/001.html", @@ -339117,7 +339333,19 @@ ], "html/browsers/the-window-object/window-open-noopener.html": [ [ - "/html/browsers/the-window-object/window-open-noopener.html", + "/html/browsers/the-window-object/window-open-noopener.html?_parent", + {} + ], + [ + "/html/browsers/the-window-object/window-open-noopener.html?_self", + {} + ], + [ + "/html/browsers/the-window-object/window-open-noopener.html?_top", + {} + ], + [ + "/html/browsers/the-window-object/window-open-noopener.html?indexed", {} ] ], @@ -350159,6 +350387,12 @@ } ] ], + "input-device-capabilities/interfaces.html": [ + [ + "/input-device-capabilities/interfaces.html", + {} + ] + ], "input-events/idlharness.html": [ [ "/input-events/idlharness.html", @@ -362479,9 +362713,21 @@ {} ] ], - "performance-timeline/idlharness.html": [ + "performance-timeline/idlharness.any.js": [ + [ + "/performance-timeline/idlharness.any.html", + {} + ], + [ + "/performance-timeline/idlharness.any.sharedworker.html", + {} + ], [ - "/performance-timeline/idlharness.html", + "/performance-timeline/idlharness.any.worker.html", + {} + ], + [ + "/performance-timeline/idlharness.https.any.serviceworker.html", {} ] ], @@ -362581,6 +362827,16 @@ {} ] ], + "permissions/interfaces.any.js": [ + [ + "/permissions/interfaces.any.html", + {} + ], + [ + "/permissions/interfaces.any.worker.html", + {} + ] + ], "picture-in-picture/disable-picture-in-picture.html": [ [ "/picture-in-picture/disable-picture-in-picture.html", @@ -371813,6 +372069,12 @@ {} ] ], + "resize-observer/idlharness.html": [ + [ + "/resize-observer/idlharness.html", + {} + ] + ], "resize-observer/notify.html": [ [ "/resize-observer/notify.html", @@ -373165,9 +373427,9 @@ {} ] ], - "service-workers/service-worker/fetch-request-css-cross-origin-mime-check.https.html": [ + "service-workers/service-worker/fetch-request-css-cross-origin.https.html": [ [ - "/service-workers/service-worker/fetch-request-css-cross-origin-mime-check.https.html", + "/service-workers/service-worker/fetch-request-css-cross-origin.https.html", {} ] ], @@ -373616,7 +373878,9 @@ "service-workers/service-worker/registration-updateviacache.https.html": [ [ "/service-workers/service-worker/registration-updateviacache.https.html", - {} + { + "timeout": "long" + } ] ], "service-workers/service-worker/rejections.https.html": [ @@ -376735,9 +376999,21 @@ {} ] ], - "user-timing/idlharness.html": [ + "user-timing/idlharness.any.js": [ + [ + "/user-timing/idlharness.any.html", + {} + ], + [ + "/user-timing/idlharness.any.sharedworker.html", + {} + ], [ - "/user-timing/idlharness.html", + "/user-timing/idlharness.any.worker.html", + {} + ], + [ + "/user-timing/idlharness.https.any.serviceworker.html", {} ] ], @@ -383447,6 +383723,12 @@ {} ] ], + "workers/modules/dedicated-worker-import-referrer.html": [ + [ + "/workers/modules/dedicated-worker-import-referrer.html", + {} + ] + ], "workers/modules/dedicated-worker-import.html": [ [ "/workers/modules/dedicated-worker-import.html", @@ -405115,7 +405397,7 @@ "support" ], "./.gitmodules": [ - "6a203e28d43909d7513daf8761281b351d2b2bd7", + "9e008399bdce736c7c03f7db0c3e8d624083c6b9", "support" ], "./.pyup.yml": [ @@ -405147,7 +405429,7 @@ "support" ], "./README.md": [ - "ce5fb6c1b9f899ffab603cbfc4086b00dbff5384", + "bbaa29655c73c0be3dc1e5e1aae85607284cc7b9", "support" ], "./check_stability.ini": [ @@ -406054,14 +406336,6 @@ "3b15af010f2ce13316fed6fcab9d85e05484b60d", "testharness" ], - "2dcontext/drawing-images-to-the-canvas/drawimage_canvas_self.html": [ - "ec6a6d1111aae9ce051cd1a2503a5b01149ceca6", - "reftest" - ], - "2dcontext/drawing-images-to-the-canvas/drawimage_canvas_self_ref.html": [ - "f09c2922fc630872519fc37de47f232ecc8cc677", - "support" - ], "2dcontext/drawing-images-to-the-canvas/drawimage_html_image.html": [ "ec86f8f5c84628cd5f3b8673de8dde34dc372fd9", "testharness" @@ -409335,7 +409609,7 @@ "testharness" ], "FileAPI/FileReaderSync.worker.js": [ - "19741fbd0498bf9135408ceb6128221cbeb4e2f3", + "9d9a2b77b7fbd8ad4edb75228bd7bca1f915ad61", "testharness" ], "FileAPI/OWNERS": [ @@ -434435,7 +434709,7 @@ "testharness" ], "content-security-policy/generic/policy-inherited-correctly-by-plznavigate.html": [ - "fec78da513a4e7af3f323a2ef2451e65aac38259", + "64d198faf803c12e444cf02f5f0b994e32617923", "testharness" ], "content-security-policy/generic/policy-inherited-correctly-by-plznavigate.html.sub.headers": [ @@ -492583,2155 +492857,2155 @@ "support" ], "css/WOFF2/available-001.xht": [ - "0aab71e1e232626d4cef4a2de34f7feefe4d0618", + "3c54f14823e1ccda8939464643e988699e5f40aa", "visual" ], "css/WOFF2/available-002.xht": [ - "c878bbfc6db1b6ec424cc32a15d170817795228a", + "794b211c7e80b99893c0e54a712f78d740c0b256", "visual" ], "css/WOFF2/blocks-extraneous-data-001-ref.xht": [ - "011d405ee0b08200274ab0a63621e9379bd59d81", + "9b7120051ef82a22b2c6297d5916a7267cc4f040", "support" ], "css/WOFF2/blocks-extraneous-data-001.xht": [ - "34be40b3646e807005142ae7a483f7b81701b09f", + "2a00ac695a6ff2ca7e3ff03c5589b6b8f8a8232a", "reftest" ], "css/WOFF2/blocks-extraneous-data-002-ref.xht": [ - "92d61e346701c4a646ce667258736aeda6535a99", + "3abde3f13631d04dafcd8d30e305cbe5ff26ce5e", "support" ], "css/WOFF2/blocks-extraneous-data-002.xht": [ - "e6e659bd07e8bd58375bc6cdc50bb162c6bd5f01", + "ef8b4b002fd96f27a765c4ce1cdab5ad442bc248", "reftest" ], "css/WOFF2/blocks-extraneous-data-003-ref.xht": [ - "cc287741f4ae035b040aa48c7e0a3b16f58a9778", + "217cad1d6d15b26a34c729562b878186eb42fd84", "support" ], "css/WOFF2/blocks-extraneous-data-003.xht": [ - "55a3505d5112e60091c9e6c618022dbc463de929", + "a9ed33999e673ab07002daa119edf00945941a31", "reftest" ], "css/WOFF2/blocks-extraneous-data-004-ref.xht": [ - "489346fc91d5d18889eda095175dc7cfd077e466", + "1b3c3caba32aada3f5107a835bfe28babd03c29a", "support" ], "css/WOFF2/blocks-extraneous-data-004.xht": [ - "74238722d67f02134479433638e4b1964260777c", + "fcd744b9397985433e0a720a47791edb93512d84", "reftest" ], "css/WOFF2/blocks-extraneous-data-005-ref.xht": [ - "11744a35ab0edce205561b536936e8884c9d350d", + "c033adb552d80cfabc5070acbd7fec34273361e7", "support" ], "css/WOFF2/blocks-extraneous-data-005.xht": [ - "ab0b2693c8c1dc3e852095c69610e6afcb2eef34", + "4cabdc5a9a3fa81b19e16c83482d0b2483b661ca", "reftest" ], "css/WOFF2/blocks-extraneous-data-006-ref.xht": [ - "12ce2e9aa782964aeee137204aad775e4bc1557c", + "01e1909009b855a7b022373ae709060e43663385", "support" ], "css/WOFF2/blocks-extraneous-data-006.xht": [ - "216cda9318fcc3c300f6d62538f9e06dc6cb6946", + "77b5c21de862bda666804f8ff13b90a7b5e42e6b", "reftest" ], "css/WOFF2/blocks-extraneous-data-007-ref.xht": [ - "34fb9593773b71ef6fd5d75ab26055c3a1f3c2d7", + "c907f1567898b1c6d1802d823b8df0cf37ec3324", "support" ], "css/WOFF2/blocks-extraneous-data-007.xht": [ - "b1dc50e2b8de8ea737be1a6943e968bf04a96c18", + "417cabf05dc747384fbd41906f90d72ec3ea3c20", "reftest" ], "css/WOFF2/blocks-extraneous-data-008-ref.xht": [ - "19f9bea67346674064ef2d522dfe08fd500d8e31", + "9d726ef49576a5d0090c24aed31dd96a7abc93ea", "support" ], "css/WOFF2/blocks-extraneous-data-008.xht": [ - "5e98f2ffae7df7b0cd989b206ecc8dabf1754415", + "4b4fccf143e39d5a5c751ad8f960ebb1b74f1342", "reftest" ], "css/WOFF2/blocks-overlap-001-ref.xht": [ - "565d5c95c7e2091410adb392997653f0338133f0", + "041ee603090665aab081f5c07357841c63645cd0", "support" ], "css/WOFF2/blocks-overlap-001.xht": [ - "18ed355c569a7408facce8c1f1d49f4943acc456", + "e7909127e1ced7fe1b1a3da186fab08010f5fdb6", "reftest" ], "css/WOFF2/blocks-overlap-002-ref.xht": [ - "a5ec5f33b2941193102e79c63bb18d52a9c2568a", + "4014c7b44a0b9579fff6d78903002f694aca712f", "support" ], "css/WOFF2/blocks-overlap-002.xht": [ - "d584ba54b9f7c748f5212e38d9d00e0eda769e90", + "1b83811d30f108d26cbf8bcf5c09ec134ceb1077", "reftest" ], "css/WOFF2/blocks-overlap-003-ref.xht": [ - "cb02acc91b25edd5bc6b5099056763801f9fffda", + "84398773fa8bd89616b78881bc3223f74bea38d9", "support" ], "css/WOFF2/blocks-overlap-003.xht": [ - "813bb2eea6b35dc504bed77cffa4282c8c2b32a8", + "43600eb4e29dd17134ff8d4b5fb4a738913ccf59", "reftest" ], "css/WOFF2/datatypes-alt-255uint16-001-ref.xht": [ - "381ec057bc02a87f7fb916dd3d915411a340fbfe", + "eb6af05dfa1d0adc1e17a2cc58ea379cef2b7569", "support" ], "css/WOFF2/datatypes-alt-255uint16-001.xht": [ - "9bdec2f8ebdbe826b9dac5fb8c470381c71731cb", + "cbe00cf641250d86624449c7c5cc2f7d5cc76f6e", "reftest" ], "css/WOFF2/datatypes-invalid-base128-001-ref.xht": [ - "665935f1e76ae53c22bb5e0077e9ed628c3fe3e3", + "9b981883c5fe0363072c04c8bd65b6464ef6efea", "support" ], "css/WOFF2/datatypes-invalid-base128-001.xht": [ - "f0aae0c4cb59402a3df499ef8bd78d41ad8a7569", + "00cf68d48de5396c9705b5dcef58f3c4c72529c3", "reftest" ], "css/WOFF2/datatypes-invalid-base128-002-ref.xht": [ - "7507be4cd2674ef1f7584ad7c1001151dddeda40", + "9baffd1b21e907e756f2875cafbb78ee2704b9d0", "support" ], "css/WOFF2/datatypes-invalid-base128-002.xht": [ - "873f680770a719a6d8bc9e0ac20b97e525e799d4", + "b744a6a2742441069f26bd8951303b6f5127e395", "reftest" ], "css/WOFF2/datatypes-invalid-base128-003-ref.xht": [ - "0008224d983d88032d218959ef61fa9593c24fe7", + "b0dfa44bd032b63ab761133a6c58be2e61df2a09", "support" ], "css/WOFF2/datatypes-invalid-base128-003.xht": [ - "90cb6da506d06546d9c0627d59b425e212398f4e", + "dee8d2a54956af7dc53acf4f93b5c0cbb83bc842", "reftest" ], "css/WOFF2/directory-knowntags-001-ref.xht": [ - "ada263b85badb59ea702f1670a283038d3ad9a9a", + "06549de4f6101ae4c52b1ea3e825d9e00e817aa9", "support" ], "css/WOFF2/directory-knowntags-001.xht": [ - "e9c0f0b53a7f690b68ce87ad6c9664530335dba8", + "19c83f3738597263217e19bcbb712b5e95d43d7c", "reftest" ], "css/WOFF2/directory-mismatched-tables-001-ref.xht": [ - "8870e36b34179708b5a595935da3fdc9c8080468", + "2c56039bd0764cbab32e069d3ef9fe1a4ba8e150", "support" ], "css/WOFF2/directory-mismatched-tables-001.xht": [ - "73c2f8f731505d1156ee99a1d7f4d90cb69baf21", + "c8d5f09338f13686daea1a181585d2b1a4b665d5", "reftest" ], "css/WOFF2/header-length-001-ref.xht": [ - "ec7d1c57de6b7c26092a03e09addd7728c98ade9", + "9661c9ea73436d6c70e154ab053666b09836c6fc", "support" ], "css/WOFF2/header-length-001.xht": [ - "e4f065a9c963bcf5c2a28f0d958a4b66302b8960", + "d6a13575f3f2b7a7929dba499764d09b4fbff138", "reftest" ], "css/WOFF2/header-length-002-ref.xht": [ - "57a3ed586ff438676b58444a72cb4031f8175f2e", + "8c643f91d567dab4da9eba28b69c692523f83413", "support" ], "css/WOFF2/header-length-002.xht": [ - "c66fe415a3ef68577655c0973adb6ee5fba15522", + "30d0572a98d518378c0eacda3435ae584cc6270c", "reftest" ], "css/WOFF2/header-numTables-001-ref.xht": [ - "d967ea9a61832a50a6b940c734f8c85576a45a77", + "ca29d13833384cb4d98faf79a8bcfac6abe4e1a9", "support" ], "css/WOFF2/header-numTables-001.xht": [ - "a66e59ffa20bb8e23d5d82ddad5c76a7b86ea502", + "e5f8046fa7767850bf68deb64d2b6b511c6a46b4", "reftest" ], "css/WOFF2/header-reserved-001-ref.xht": [ - "2ed43f15019235814ee9665abfb3c311fbe04e37", + "cb36432ba317e1165067666e65e84eb0869395c4", "support" ], "css/WOFF2/header-reserved-001.xht": [ - "99288de8953971cbe9b9f280c014f2c15d0de9db", + "1c9dc3932bf861f3fdf6398b1418253fa20bc031", "reftest" ], "css/WOFF2/header-signature-001-ref.xht": [ - "a15048d0a32acf8da477ab08f753f678532e76c1", + "82c67809ad065dc554e4e5982f2e460725fc7d9a", "support" ], "css/WOFF2/header-signature-001.xht": [ - "01d96bea149c94be2fa41dd07d8996a340162a69", + "34ca5daa77f438662bdd0419a81dc8317ca41c4a", "reftest" ], "css/WOFF2/header-totalsfntsize-001-ref.xht": [ - "428975668477e134e237e13c26d124636aead611", + "24495b5576c79dbe0da9a057aeff409e5cb0ca23", "support" ], "css/WOFF2/header-totalsfntsize-001.xht": [ - "bf151e8697a39d5386f0c171990a0fc3d1329ab6", + "ff28e942e45371afec9cce36adb7fcbb9e1783aa", "reftest" ], "css/WOFF2/header-totalsfntsize-002-ref.xht": [ - "e110fb7cc6a6b3ec729d18ede8bab01600250e29", + "ad33c184e813d9877e7d23716a62316fa5eef379", "support" ], "css/WOFF2/header-totalsfntsize-002.xht": [ - "65422abdcb74e31e617ffacc2d692bfeb9419682", + "48a4cff72dde6e1d4bea0ecf11433debf05b739d", "reftest" ], "css/WOFF2/metadata-noeffect-001-ref.xht": [ - "715f3f4012e3a30b75875c96ec57cc4c6a6daea6", + "58a4e67216fca8f097d510b604c132067896e35d", "support" ], "css/WOFF2/metadata-noeffect-001.xht": [ - "ba156dde15a56f1f82dbb6c80c645de154faa077", + "9e347630b8b00ffc18fa3071e5a9c10f5ef19d4a", "reftest" ], "css/WOFF2/metadata-noeffect-002-ref.xht": [ - "76793c096bccd63de70ca578d57995feaa0ecbf2", + "057047a09dc347c959c38f3e5cafc521f8e8ae5a", "support" ], "css/WOFF2/metadata-noeffect-002.xht": [ - "8fe7084c42a0c82b28dd71833cc1a81697ff0c6e", + "a9c3504a268a1468144c3f617933be08791e9944", "reftest" ], "css/WOFF2/metadatadisplay-authoritative-001-ref.xht": [ - "df9de936d6bc2bf11aa2a30831b256eaa60458af", + "3e0675a61f9de21543c6273a8a5cf1f7f747ed0d", "support" ], "css/WOFF2/metadatadisplay-authoritative-001.xht": [ - "3f148fdf8e60bbae09905094cef592bf66b682fa", + "2bbe022c76a9f3e226d41a9da05b714aab1519b9", "reftest" ], "css/WOFF2/metadatadisplay-encoding-001-ref.xht": [ - "4eb8e30e5f51b0c7ffe9301849088c2424abe3c4", + "19305195e9440916c3aaf50819ff770dc0a23d71", "support" ], "css/WOFF2/metadatadisplay-encoding-001.xht": [ - "f78e2329b7bde5c8429f02f89abaf19cb2eaf8a5", + "68a962aa634aedb4d5d64e299c4f4825d7d4e47f", "reftest" ], "css/WOFF2/metadatadisplay-encoding-002-ref.xht": [ - "866030721eaaef11d32bd409424b6857f5867253", + "a117cccd2aef5df09608c20b857655bc20a930b9", "support" ], "css/WOFF2/metadatadisplay-encoding-002.xht": [ - "a7dfcf318d8d703bcf49bfa01b805a075170ced8", + "5cfd14d4509c4191bc873edf46f30890df4f6e87", "reftest" ], "css/WOFF2/metadatadisplay-encoding-003-ref.xht": [ - "b5be390b1336f1aa444f002c0e82ae4a02ae61d8", + "81d2b6a784a032dbc339ba72bd632cda43a63e7f", "support" ], "css/WOFF2/metadatadisplay-encoding-003.xht": [ - "154608e76765bd6063417f646764f13f2f081645", + "1b2784588dfd41a3cae5f2f367214a78b1649d92", "reftest" ], "css/WOFF2/metadatadisplay-encoding-004-ref.xht": [ - "35b23b11b04ed99bbec42d35444beeaa90422f28", + "a396f3b2a5b42d82be06a7bc9e26d5cf39e213aa", "support" ], "css/WOFF2/metadatadisplay-encoding-004.xht": [ - "792602cd6171335151e9ef91119c2d3ce6ae4ebe", + "195314c9bc1fe2c8edac85b9bf1b0990fd6a2c88", "reftest" ], "css/WOFF2/metadatadisplay-encoding-005-ref.xht": [ - "2beb450c0439ace59131aec28a36186238a970fe", + "ca8275282673b4dd40b657f5d06dad54c010069f", "support" ], "css/WOFF2/metadatadisplay-encoding-005.xht": [ - "6a50b7f037913b813e33f2e78a43255207cbfacf", + "fe7522f6cf49295d76370afd66591e2abf20be75", "reftest" ], "css/WOFF2/metadatadisplay-encoding-006-ref.xht": [ - "a7df4b5d59f13d3448889925d4ec40e2539d8bed", + "1f079c94148d2507a824e6c6d709d69a28a92c58", "support" ], "css/WOFF2/metadatadisplay-encoding-006.xht": [ - "5bc6c2234455f2ce75d46bdc619daa3c6cf5d740", + "92113fc2792d09e79759e799d32fceec05279a94", "reftest" ], "css/WOFF2/metadatadisplay-schema-copyright-001-ref.xht": [ - "86142803798c5f4e0b8df50c4f4ece8391086da4", + "2414ddd4d2c836935bb7ff37100d2d8cae19f74d", "support" ], "css/WOFF2/metadatadisplay-schema-copyright-001.xht": [ - "72dbfd9330f274c7317d01eba12b65da7b9549e0", + "d704d7628a5f6e589764ba30fa8230b4071647f8", "reftest" ], "css/WOFF2/metadatadisplay-schema-copyright-002-ref.xht": [ - "738ee58af1eac131ab196bc5f4721e3ea6e12394", + "2b452c07bd16f3b641393773d50a2bb37090c82a", "support" ], "css/WOFF2/metadatadisplay-schema-copyright-002.xht": [ - "febdb985e090e197be38b1745d1da60e7efcdf7f", + "a7717c6bfbd5027e2de6415328b1eb3412beb139", "reftest" ], "css/WOFF2/metadatadisplay-schema-copyright-003-ref.xht": [ - "3fc2cbada936735fe931db2b91ce78d6b74dbe54", + "ceec75a12c87a377bd8f0edb2e1ee64199d37a5a", "support" ], "css/WOFF2/metadatadisplay-schema-copyright-003.xht": [ - "93d773a5541e2f5649e2b4852a858c0b117e370c", + "e9d79a274e895c49e3de4f8e138bac7dad4a48f9", "reftest" ], "css/WOFF2/metadatadisplay-schema-copyright-004-ref.xht": [ - "b3a53f3b16e2b70f01e2867bc8fc2d02ad4757d2", + "ff65abb6ade609263802d148eb957f749e74df7f", "support" ], "css/WOFF2/metadatadisplay-schema-copyright-004.xht": [ - "1d80d383d92374427a59495f54f2f099ea377051", + "f12d8f0cedefefef47db13b07448720bb439528d", "reftest" ], "css/WOFF2/metadatadisplay-schema-copyright-005-ref.xht": [ - "e3237332a0ba0d89172335e14daea23acbfb3a40", + "0b8f77ac2fe8dd4aad44dee36404659826db1013", "support" ], "css/WOFF2/metadatadisplay-schema-copyright-005.xht": [ - "12e510ac73ea88c8d46ac0a3c13ab02ffeb06fd6", + "f14b50d1d9fc30b0b2baf6272dbacaf90848319e", "reftest" ], "css/WOFF2/metadatadisplay-schema-copyright-006-ref.xht": [ - "a80f43fd528b98668cf9b8619d2efc4cab6b76cf", + "56f9a873981dba029a69e1d1bb1fb10842ada00f", "support" ], "css/WOFF2/metadatadisplay-schema-copyright-006.xht": [ - "fad58d4cf3c8ca3544e883501895a948fe441ec7", + "f2ed953abfb9d3b14ac7b0cad2a9627918a06a99", "reftest" ], "css/WOFF2/metadatadisplay-schema-copyright-007-ref.xht": [ - "8f4d12c9f4d00fd049f1ce7fdf5a961ed82a20c9", + "8f286cc8fac4c7541ddb91126a5eb3ab9bcc2b51", "support" ], "css/WOFF2/metadatadisplay-schema-copyright-007.xht": [ - "465f644ad61e3fe967c63989553751fd5544f672", + "4effcc6ac6a8655429c1144a74abe4488b82f779", "reftest" ], "css/WOFF2/metadatadisplay-schema-copyright-008-ref.xht": [ - "2732bbb24296f440c6d45655f2bf96e95f5c4235", + "56f3df8b047197288c41fae2ad88235581deb70e", "support" ], "css/WOFF2/metadatadisplay-schema-copyright-008.xht": [ - "fa466441cc9f6f98e14ee5cdd1332637c7cedfc4", + "17082ea7870158cd08d26970508e5239b3b0969c", "reftest" ], "css/WOFF2/metadatadisplay-schema-copyright-009-ref.xht": [ - "ed670f1ae7d08137e1f1661210e8f4709f5b4312", + "10ca0824fe1eb67482ed343ee9df008dc63fd163", "support" ], "css/WOFF2/metadatadisplay-schema-copyright-009.xht": [ - "f8d6111b48b8afb9af5b91f3955133fb21c76c6b", + "19d06923196d18578009a4486f90c1f24fa57e3b", "reftest" ], "css/WOFF2/metadatadisplay-schema-copyright-010-ref.xht": [ - "3f7b90cb9bb795ae2b5d4d7d8f3d191d9367c5f7", + "5744af6897c22df803c3069976c82c4e8e71f863", "support" ], "css/WOFF2/metadatadisplay-schema-copyright-010.xht": [ - "ce17ad669608ac4ed172700f70a81c4981a89c05", + "309e25d4fb40152b1eaba0c043bd56f7f3530336", "reftest" ], "css/WOFF2/metadatadisplay-schema-copyright-011-ref.xht": [ - "963982add5970883d0bae61219c057c2edd024c9", + "63188638ffa9c3c5f4f66b6d29b3f3c828437a46", "support" ], "css/WOFF2/metadatadisplay-schema-copyright-011.xht": [ - "bf6960396ddeb7113cc67a48def2408ced7ac593", + "bd0f573ef0540f520e2409ab1b19a20f034cf41f", "reftest" ], "css/WOFF2/metadatadisplay-schema-copyright-012-ref.xht": [ - "4f2e693dd128537dfc451d94818cfe5bb3e05786", + "94e4d95d70f641c975671d5ced75fd444f822d5c", "support" ], "css/WOFF2/metadatadisplay-schema-copyright-012.xht": [ - "d78812a69447dd9949aeaf7e4edc75f04e7df0a6", + "fd8f497083daab24ee26cfba4b4de4184964faaa", "reftest" ], "css/WOFF2/metadatadisplay-schema-copyright-013-ref.xht": [ - "59102557bdcb3bec9b7920a7cb8d365c7d1219c8", + "8238213165752f53c298deaeaf721289e53d772a", "support" ], "css/WOFF2/metadatadisplay-schema-copyright-013.xht": [ - "a8478b826fb8ecf63da852226d9d8e6e468bfc63", + "5965af460bf066c5e1d7a62c726470567dbd5115", "reftest" ], "css/WOFF2/metadatadisplay-schema-copyright-014-ref.xht": [ - "58e903d75ba7f5fb377635861647482020f63d6f", + "deada86cb1c6bb4ea6a5821f4de6817dec7aa9f1", "support" ], "css/WOFF2/metadatadisplay-schema-copyright-014.xht": [ - "99209cdf49996831fd03534942ed1bdf919a8d50", + "3030859290f6fa6807b0bbbc5bd5ec82704e2d17", "reftest" ], "css/WOFF2/metadatadisplay-schema-copyright-015-ref.xht": [ - "f90208f66ef9cb23f09b3f2c3ebc1cfb250dc075", + "5f83fd5f68afcdcd095262c0f67f05178e8f1516", "support" ], "css/WOFF2/metadatadisplay-schema-copyright-015.xht": [ - "995d8a4f5f60a995a3cf8076254c0294cd23ef2c", + "2ebd694fe56228e7cb01cecf4e157a7b0c1f5cd3", "reftest" ], "css/WOFF2/metadatadisplay-schema-copyright-016-ref.xht": [ - "b3d85808306b8c8ad3b79cc29108c3c6c9111fb0", + "356ad01e345d36b10a68472db503ee2470d8914c", "support" ], "css/WOFF2/metadatadisplay-schema-copyright-016.xht": [ - "3a1003fcdf00cf62f567b5ca450202e4cb4f5010", + "94898f1e6387f76fada1b31a226c9f1a97d5e150", "reftest" ], "css/WOFF2/metadatadisplay-schema-copyright-017-ref.xht": [ - "be296cbc069ae20193eb73ea5ccc991f4c347344", + "c273cf6bd5ea9f250e2bcfe19d4a8a976e8222bf", "support" ], "css/WOFF2/metadatadisplay-schema-copyright-017.xht": [ - "8748fe7d04d758a114008e52c9964c6dfa139a2e", + "ae010571716e5cf81debd35d92b56c52fbcb7327", "reftest" ], "css/WOFF2/metadatadisplay-schema-copyright-018-ref.xht": [ - "676d09ccd288d9a0f719047ddaf35753ac1ea46d", + "2bf16f3319b47c785f1cbddf3e583da982cb91a5", "support" ], "css/WOFF2/metadatadisplay-schema-copyright-018.xht": [ - "6e39e98369ff27b85bc0134024fbc152a2a5ca94", + "ad0de69994ab977b08629e6b612c44b7da5038fb", "reftest" ], "css/WOFF2/metadatadisplay-schema-copyright-019-ref.xht": [ - "434f4c966f0d77cb77cf2799c457b2fbbdd25ad1", + "49e8f807cf2b894800daaa8bbc0ff5dcbf787301", "support" ], "css/WOFF2/metadatadisplay-schema-copyright-019.xht": [ - "e6dbebc9a6dd595e5095a88c36ec0be60f6a70a2", + "fd7b916e56d7905917ed8e8ecd529a08515b3033", "reftest" ], "css/WOFF2/metadatadisplay-schema-copyright-020-ref.xht": [ - "1b8449b8d56be57135ce521a3bf73c79391cd3fa", + "d45e3d7577daca4bb745fc9286e2bec281cdcda4", "support" ], "css/WOFF2/metadatadisplay-schema-copyright-020.xht": [ - "55c82a7bd7c4d424d5e7db3551a62fccb439ac08", + "afe9438642eb188c48cfd7600c842869d53dd8d6", "reftest" ], "css/WOFF2/metadatadisplay-schema-copyright-021-ref.xht": [ - "b66f06cdb852ae54c0f1f8d89a5c2c67b5ef7363", + "b17e8285cc54a11e4b1556613f33485e5988bb3e", "support" ], "css/WOFF2/metadatadisplay-schema-copyright-021.xht": [ - "9a72a058ca3b0c892e788971d15cf007141d560b", + "5f5acc7683bc600928ea6ae31b7a7b738c3f373e", "reftest" ], "css/WOFF2/metadatadisplay-schema-copyright-022-ref.xht": [ - "f6563668e6e9683e8d24e8d0c1ce35382edeaf86", + "dc53685d831ee9657719ea047b10a39ccd142679", "support" ], "css/WOFF2/metadatadisplay-schema-copyright-022.xht": [ - "86eedb7816239781764057746e8572eb5fa831e5", + "23c00254176d80c45b1e149b9796c559ff71ee2d", "reftest" ], "css/WOFF2/metadatadisplay-schema-copyright-023-ref.xht": [ - "593388c74d1c626a028018f9cde51e4626e5aec3", + "df059b10a26a1667935d354325811f7186b79187", "support" ], "css/WOFF2/metadatadisplay-schema-copyright-023.xht": [ - "f19113773c390f2a4074f53ea4f5b24c83ae2040", + "c350157b4f54f9f5e306b6142e56e8e07ed339e1", "reftest" ], "css/WOFF2/metadatadisplay-schema-copyright-024-ref.xht": [ - "6d55d76fe03921fe209a975769e51b949e1c6c36", + "6dd61616110d5b33e190131a425fbd8a3776202b", "support" ], "css/WOFF2/metadatadisplay-schema-copyright-024.xht": [ - "e11f4aebe020777181fd577c4d5506d9a71cffb4", + "a9376f13e9ba995e9226bca27c4326bebe86e02b", "reftest" ], "css/WOFF2/metadatadisplay-schema-copyright-025-ref.xht": [ - "40cd2c39f215b30cbda936de6a288bfecdbc8de8", + "787df6f83e3fe0f3c7298559440d20bb7d842bd7", "support" ], "css/WOFF2/metadatadisplay-schema-copyright-025.xht": [ - "64055b5c83a0846b865276006b2bee3a71c1651e", + "c692226bd2a5540b919403bab33d244c42430535", "reftest" ], "css/WOFF2/metadatadisplay-schema-copyright-026-ref.xht": [ - "ea7bb1c66f17cfe3901cf70d1b9c1f50e3c051d7", + "a28fcff7f47b31a94666af9dd11d468cb3df3b66", "support" ], "css/WOFF2/metadatadisplay-schema-copyright-026.xht": [ - "5b5f346c79a89c2fc64fd1aedf4dfd80d7da04c0", + "5970fab49684fca4af9ea017fcb003e50e902535", "reftest" ], "css/WOFF2/metadatadisplay-schema-copyright-027-ref.xht": [ - "b50ca888035088b756699eee68ff9c511fe86f70", + "4c39175950c955a39cd86c036838be1f13af5144", "support" ], "css/WOFF2/metadatadisplay-schema-copyright-027.xht": [ - "f25ac125b9d8ef0e0a419e584c69551d77869ee0", + "d92bd742a5dbd396f43b6f14f13231ef14306e8a", "reftest" ], "css/WOFF2/metadatadisplay-schema-copyright-028-ref.xht": [ - "b89a04c5a9b044a6e782a700f8a86f74ae728b66", + "c823f7a34b180c6a9093436d6dd0b363794049e1", "support" ], "css/WOFF2/metadatadisplay-schema-copyright-028.xht": [ - "849f6b8c333e1f5f5fae433b90c8dda7b8a0c695", + "a6b6c155ac16616e55ed0ec06b0c95ce7b74b92e", "reftest" ], "css/WOFF2/metadatadisplay-schema-copyright-029-ref.xht": [ - "11c3ce8beb78342881cdecc49640be5aa99d2db0", + "5b355bf25cf27944356693dd31bb0860d42f499c", "support" ], "css/WOFF2/metadatadisplay-schema-copyright-029.xht": [ - "0cecc5d0c0dae180b6c431f09a6990fa45cbcb6b", + "b13195cdc841a9b4277a8c1c6d129e1bc3ff2535", "reftest" ], "css/WOFF2/metadatadisplay-schema-copyright-030-ref.xht": [ - "d21c484b0aa4f277dda27d9124c04ce791ba1397", + "7e7fc3d53c09614249470ac2eb0eae88786b41b1", "support" ], "css/WOFF2/metadatadisplay-schema-copyright-030.xht": [ - "e09da9ad3d0596abf1f5b59bf5c7e74487d9e000", + "f9b104aed1d33a24c7f2a0bc4a40f90eca98d0d9", "reftest" ], "css/WOFF2/metadatadisplay-schema-credit-001-ref.xht": [ - "86feeab5ccc26dcc57fd3b018419100d158715ec", + "18b0dbab4e56861bdc51cf5497c1af059c88a359", "support" ], "css/WOFF2/metadatadisplay-schema-credit-001.xht": [ - "566b1011afb3279f0e5ae6d774ddd5b0d9eff674", + "222cb0f9dc874c02051890bdb64933c47bd1e50d", "reftest" ], "css/WOFF2/metadatadisplay-schema-credit-002-ref.xht": [ - "ac64c89797af9e3df286f6710c59939cd6d922b6", + "de3f2e7abe4a3c8a65d90ea56819940d06c82dd3", "support" ], "css/WOFF2/metadatadisplay-schema-credit-002.xht": [ - "348bf385d963946f966a5beaba923d8553fc5e98", + "5930a8ff061f516ad2804d20f7aa5412a5ff18de", "reftest" ], "css/WOFF2/metadatadisplay-schema-credit-003-ref.xht": [ - "79719ca0c53a252f1ab27bd9e742a1ff73eec1a2", + "2f901c3a0b9cd35f9cc8c45866c1b88877c65fca", "support" ], "css/WOFF2/metadatadisplay-schema-credit-003.xht": [ - "08723813a2d7a6589c76e84533677b4cecad0d2c", + "1056181bf296faffad111ac7c7317ca6309dc649", "reftest" ], "css/WOFF2/metadatadisplay-schema-credit-004-ref.xht": [ - "b365492671402ab8e783cd541dea22f40278d7cd", + "36c2483c4af92dc7441f20059164919352c03b80", "support" ], "css/WOFF2/metadatadisplay-schema-credit-004.xht": [ - "8bf3f5bf2fa21d95d3be8103140618f3fe203bf5", + "2d53123355d62aaa0101015a0aa57d1eabd6f164", "reftest" ], "css/WOFF2/metadatadisplay-schema-credit-005-ref.xht": [ - "152afe3cf7a9ca5a50d6366fe2f5524f231df457", + "763d1f8fa17940168909673009b9fcb815e267e4", "support" ], "css/WOFF2/metadatadisplay-schema-credit-005.xht": [ - "119ecf25dfb8b5e56322e76e800bab9d3dbae428", + "9c5e0d21c0ed0e9679fc8c517515305234b97778", "reftest" ], "css/WOFF2/metadatadisplay-schema-credit-006-ref.xht": [ - "d116823b8e82eaae0c8826ceb42e0cc5c9117c2c", + "89a87a17efd5561795a01f900a431ecc6e27ea1e", "support" ], "css/WOFF2/metadatadisplay-schema-credit-006.xht": [ - "911ac4622b89681f84a686c779f4a3af74f261d6", + "223ab5ec95244d16c451b3301f35a6d484451957", "reftest" ], "css/WOFF2/metadatadisplay-schema-credit-007-ref.xht": [ - "bd1745189a2aad9732dd49b34a9d96e8be457a64", + "acbe2b28838e9eb6611d5e879bae8a73f6032222", "support" ], "css/WOFF2/metadatadisplay-schema-credit-007.xht": [ - "482f3191f321df76603fdee736909d8917a042e2", + "d25c9aeffe74aeef24f0087f7514bff5451af15e", "reftest" ], "css/WOFF2/metadatadisplay-schema-credit-008-ref.xht": [ - "3021b71ec1eca477bf9d6677688de5720e6f9498", + "876f4ac3b5fa32ae09d18121af120d39a94d65ce", "support" ], "css/WOFF2/metadatadisplay-schema-credit-008.xht": [ - "6bdb47552373ef2addf428ca787c467991b64c5b", + "e395b24dc0d9206e505657c3e05c3d29b182dedc", "reftest" ], "css/WOFF2/metadatadisplay-schema-credit-009-ref.xht": [ - "edc4878d215f1768022f12c892762f125c1c279a", + "0653e10344d2df934b4a4549fc7e3ff2f73d077a", "support" ], "css/WOFF2/metadatadisplay-schema-credit-009.xht": [ - "390ccdaf9ea118371f1abd2460652f0663106ecd", + "83d4aa648be82139d2e50ef3c1b201e735ec84c5", "reftest" ], "css/WOFF2/metadatadisplay-schema-credit-010-ref.xht": [ - "d818e5908f24f8c9e6e0bab5f787a7b3a52c460e", + "ae16156c211963d87f3df857f406c0daee19d7ef", "support" ], "css/WOFF2/metadatadisplay-schema-credit-010.xht": [ - "af5cba94dfd976c4e366b63b6e7bac41277ac2ce", + "053fa9efaaca45d9b217066a777398b27f411316", "reftest" ], "css/WOFF2/metadatadisplay-schema-credit-011-ref.xht": [ - "863fa2994bb2b1ff92f7f8de61722b1f5f476519", + "e4b2b574bc5f94ed28cdc2f12b5fb45cdaf372d7", "support" ], "css/WOFF2/metadatadisplay-schema-credit-011.xht": [ - "853fa5f9d40736b5500af96aca73dd08ba5330d7", + "aea69582dd74e337c4cb660631e0157f4e0c670d", "reftest" ], "css/WOFF2/metadatadisplay-schema-credits-001-ref.xht": [ - "19d278e9a48edf4623409ae65e2a0a49c02882e1", + "79b34ea9f1ef98e79ddae76c568d3f9841899a71", "support" ], "css/WOFF2/metadatadisplay-schema-credits-001.xht": [ - "f45079da6e4c439db3a8b38e8efe7609c9e61a62", + "8c807a5c72f5f34a2cb6b4e502f6d54422f21eb1", "reftest" ], "css/WOFF2/metadatadisplay-schema-credits-002-ref.xht": [ - "4d3cabfa59bd72ae27221c7e304cdde2529eb2e1", + "196117caeeea93de5437832cb6caf969c2edf215", "support" ], "css/WOFF2/metadatadisplay-schema-credits-002.xht": [ - "9ef5cb2c827c43a104ec38276cb08a0944931493", + "12f47597ea88053f8662f5d657acf3f0381ebd93", "reftest" ], "css/WOFF2/metadatadisplay-schema-credits-003-ref.xht": [ - "caaabc833c94a83614fd330cd1bb60f7b1d6072e", + "3441709043ac5b75ffeb7f9edb862817322fdf61", "support" ], "css/WOFF2/metadatadisplay-schema-credits-003.xht": [ - "ef3003d9354432b281360d0e9daddf011ac8424c", + "988baa1ed7c5b856c27fa4663468a0b385e1f545", "reftest" ], "css/WOFF2/metadatadisplay-schema-credits-004-ref.xht": [ - "a49fbcaeb750a50af68764c0cabf665fbc23f13c", + "8adc58f1f95b28d4e15b4966ce7b35cb68bc1f30", "support" ], "css/WOFF2/metadatadisplay-schema-credits-004.xht": [ - "e2321498c1b5e2ebcc3d188ed7d097021ae145cf", + "1be65dcb94ace6206fb51d286080095b9c5e4d11", "reftest" ], "css/WOFF2/metadatadisplay-schema-credits-005-ref.xht": [ - "a1b1856acd6aafe606f2dd81aeb91baa4d8777d1", + "870c55aa29f027be245fade472ec84209dfee1d0", "support" ], "css/WOFF2/metadatadisplay-schema-credits-005.xht": [ - "fc16142c7dff393bc6d49d76035e8c9dc7b3f64f", + "a3eb42ee02a669df17435847c1e2899c418b99e5", "reftest" ], "css/WOFF2/metadatadisplay-schema-credits-006-ref.xht": [ - "94ace49dc1efca88dfbcd43728aa50266ced878f", + "cab02fcc4610a5f8880a01faa8f4a3cbee151916", "support" ], "css/WOFF2/metadatadisplay-schema-credits-006.xht": [ - "ff90a54ec3b0ae1dad08b2bf39e37a9ba73850b8", + "4cd7afe15e394dd8cd0047c0aad17ee48bc892a9", "reftest" ], "css/WOFF2/metadatadisplay-schema-credits-007-ref.xht": [ - "9311eeaa044f82e5c9cf7d651af70abd4461d2f6", + "7b87343eb615e3cd012a9d179f77367571962e77", "support" ], "css/WOFF2/metadatadisplay-schema-credits-007.xht": [ - "dfb1e7c9c5a6eafb5cc3a19ba88a9ac0324684f9", + "6bc9c573dc0855747803f1bb67486c629e674240", "reftest" ], "css/WOFF2/metadatadisplay-schema-description-001-ref.xht": [ - "8f6433b7d76f7584051fd43febadf3ab78003244", + "343c9176253533b0bc770da64574ce7c075dedbc", "support" ], "css/WOFF2/metadatadisplay-schema-description-001.xht": [ - "1ceaf9d39d698ae773ad0766cb5915b80db9fbde", + "b3994cbc116fcf96f6e8ac06f2ad90c5d021c180", "reftest" ], "css/WOFF2/metadatadisplay-schema-description-002-ref.xht": [ - "28be5e89f35c56ec09d9e5567acf356dd67708ca", + "f7e2a5a0be7ecc9b6f79a98fcd15b56c94b52b75", "support" ], "css/WOFF2/metadatadisplay-schema-description-002.xht": [ - "8ec443b25718564565f1575e4ee94f4abf3b9884", + "ae7c3f2337af1b326512dad409e4d4963bfa5827", "reftest" ], "css/WOFF2/metadatadisplay-schema-description-003-ref.xht": [ - "02289b1f20097c7311916bffd8d3cdaad75302ee", + "8092b71ab72bea7909cf9280f64a6d57afb33bf2", "support" ], "css/WOFF2/metadatadisplay-schema-description-003.xht": [ - "a4e578b657f5d46d50e977ce51bb7f04099e9688", + "d2417f29a44ebb9aab92db7b6c16605bcfed52d1", "reftest" ], "css/WOFF2/metadatadisplay-schema-description-004-ref.xht": [ - "4b4d1eb6d58905113b3053bdab7e0d2dea2cce05", + "26af7dc862ffd79f3c28dedbfd0321157aab772f", "support" ], "css/WOFF2/metadatadisplay-schema-description-004.xht": [ - "230e93e84d7e63060da74a5ae1d31195e24368ee", + "d225b93e2fbd2661b821d56ddf35ad5214a1ebff", "reftest" ], "css/WOFF2/metadatadisplay-schema-description-005-ref.xht": [ - "cf412eafe4bc201b7fe9d4a9ebb551f4e13b3d7f", + "6930138abbc4be39b39bdd870da7d00b8c90cd5d", "support" ], "css/WOFF2/metadatadisplay-schema-description-005.xht": [ - "df2287bd0527bcbab83100e5f0fb7164f3912319", + "3a819cc0d994f5ca16c62a08e297bdfd077a9c0f", "reftest" ], "css/WOFF2/metadatadisplay-schema-description-006-ref.xht": [ - "08a277ac7a873b1808c6a61c2f9259466658066d", + "30cae6775a57f023637abec9027b96e0f4dfaf9e", "support" ], "css/WOFF2/metadatadisplay-schema-description-006.xht": [ - "b3f726c111cd6204cf30128a83d22d3d3729522c", + "d4cea5ee5279f1ef0552c0e3de289e8a0b7b3b0a", "reftest" ], "css/WOFF2/metadatadisplay-schema-description-007-ref.xht": [ - "51ef0b028c9e4ae4d0b430fe818801f5c15b8915", + "2e187f232369eae281628e000637f6ef39d1acbe", "support" ], "css/WOFF2/metadatadisplay-schema-description-007.xht": [ - "4fe40b4b9640e47b4930bd46518ad0c893f2f764", + "3ae7fff60dad4647e2f2e2bf3839daa42965bb95", "reftest" ], "css/WOFF2/metadatadisplay-schema-description-008-ref.xht": [ - "3322dafcf6174ad8495870a84d09b675ad265e4e", + "7120ab5a36cd7b83bcbbfbf280c33f3582ba8b34", "support" ], "css/WOFF2/metadatadisplay-schema-description-008.xht": [ - "cf0052cc15ca4a67eba2294f5dbd530023661e10", + "e5bf5fc93a5776cc8ba21e3e1fd36355a4a93f78", "reftest" ], "css/WOFF2/metadatadisplay-schema-description-009-ref.xht": [ - "88ed0e2af267b65e2d0137a760d2512a34a7d617", + "c0561ef8f65652d8e457ebc3e4ad56244a2a96ef", "support" ], "css/WOFF2/metadatadisplay-schema-description-009.xht": [ - "1ad179684140cb15757e23332e0cae274b1d854c", + "d210de87825bd489b56bd3fa7d331419ec295b8a", "reftest" ], "css/WOFF2/metadatadisplay-schema-description-010-ref.xht": [ - "aec162550c58f263b9804fddb861d10b24c3809d", + "d187e39f65e34a769b26f2a965d17bc11e47880a", "support" ], "css/WOFF2/metadatadisplay-schema-description-010.xht": [ - "65938f1b8d929aedfe1e67ac8aefbf76494d84ef", + "4c491f4d891b89d716c898f1f313fc35ed9df2ec", "reftest" ], "css/WOFF2/metadatadisplay-schema-description-011-ref.xht": [ - "d3b85a3b281b3496af3eb65cdd620fb3d9c3dff0", + "6c11e1665e71a41b471767c0a3dd8b4d10cce6d3", "support" ], "css/WOFF2/metadatadisplay-schema-description-011.xht": [ - "316ba320f5fe0d541781f67fc0ddaeb2f82485eb", + "00f5023db80db6164967e558223d1baa320ea0f6", "reftest" ], "css/WOFF2/metadatadisplay-schema-description-012-ref.xht": [ - "17c0b45cb9717794bba396109d54c791ccaaebea", + "c4ba83587cf4f3cbde1a3c799e060963cb5fc63d", "support" ], "css/WOFF2/metadatadisplay-schema-description-012.xht": [ - "5a37e2c76de88f57ec84f3e4e169aa83fa0c7102", + "471c07bb43e37022331404cea3e658a0e5ed7d4b", "reftest" ], "css/WOFF2/metadatadisplay-schema-description-013-ref.xht": [ - "22ab2cbb982c76d8913ef54ca6559477a145a407", + "b6df9976081e8cfab3278a55b894dd49541b4c82", "support" ], "css/WOFF2/metadatadisplay-schema-description-013.xht": [ - "cebebeeb15e42ee8215ccf4ad3cd7424ed95ae7b", + "a0b5f93d8ba188a257f96245b7746364039f53c2", "reftest" ], "css/WOFF2/metadatadisplay-schema-description-014-ref.xht": [ - "bb75618d9ccf754f0905d83787870c847a028d14", + "d5fc6067b6a6e7ec8b55daf51c9fbc3aa851fdbe", "support" ], "css/WOFF2/metadatadisplay-schema-description-014.xht": [ - "fa55087e3f81fadc757e0783b5fe160a13e800ac", + "bab37e1ac9d5623fe92894b6dfdfe6b9882c010f", "reftest" ], "css/WOFF2/metadatadisplay-schema-description-015-ref.xht": [ - "5b5a06a736416cddbd133729c49ef35d5bd5b039", + "33f84b93b04ac5b5a87c7466dddd1472eb633385", "support" ], "css/WOFF2/metadatadisplay-schema-description-015.xht": [ - "d3aff5f9fb19927ce98ca1ef92201c978d7f61b4", + "bbc60f9b562eedb216a201393f21ff46b0b7ca79", "reftest" ], "css/WOFF2/metadatadisplay-schema-description-016-ref.xht": [ - "78efb3e3bbcc840e9aeecdf92edbc3125f3a1707", + "cfbb92e7b642717265923e0f8eeb82af8a3acf2b", "support" ], "css/WOFF2/metadatadisplay-schema-description-016.xht": [ - "c549e5ac04027b74bd64955a900eb52c9e3504a3", + "441286e2a315600bab110e3224cff6548e90f152", "reftest" ], "css/WOFF2/metadatadisplay-schema-description-017-ref.xht": [ - "9ef380125fa080a041a8a318323e88e737789711", + "14dc6c0462968c4b8cb84ca773b8a0cf59ba7636", "support" ], "css/WOFF2/metadatadisplay-schema-description-017.xht": [ - "48d4470f7590e2dbf9f6b43c29366495f71c268e", + "e01128f70b3062451f57beb309796520f4794c63", "reftest" ], "css/WOFF2/metadatadisplay-schema-description-018-ref.xht": [ - "e10cfd325d38804b92ff775296b2e8f5b50f8fd5", + "c8e7b8aaa9046a7eb833185af86f386b40739077", "support" ], "css/WOFF2/metadatadisplay-schema-description-018.xht": [ - "8e11651ef08750a728e876c789c3423da90994e1", + "9df6abf372032686c48154a12da584d1647c8dd3", "reftest" ], "css/WOFF2/metadatadisplay-schema-description-019-ref.xht": [ - "911c11599267c182d99dc25996f1de50b3320e77", + "52bef0453476a3220d63b90bace0fbcff458249c", "support" ], "css/WOFF2/metadatadisplay-schema-description-019.xht": [ - "92aaa81ba2ec9cbcea2f07c6d07f96247cd163aa", + "7d025e1d1ede58ce0c5f9d41323b29264ffc7d7e", "reftest" ], "css/WOFF2/metadatadisplay-schema-description-020-ref.xht": [ - "1b808dd97ba3302a55960c1b9d6debfd3052e623", + "33bd39097327b533c75cc2c3491c4fa9ac2a7714", "support" ], "css/WOFF2/metadatadisplay-schema-description-020.xht": [ - "1047ff1532d685e65db49cf370ed58c67518d62e", + "4b2d90471f3452a2b21d82c16b387cbe579418b5", "reftest" ], "css/WOFF2/metadatadisplay-schema-description-021-ref.xht": [ - "34adc94c47fb3124d0023c033ee9d16f016a2eee", + "bf449ae7c7656093f566e92448e616a489853995", "support" ], "css/WOFF2/metadatadisplay-schema-description-021.xht": [ - "5a98a61a875532f6351b153de3db1356018294d9", + "c46e5269aa87e14d10790342c3a39c2932d82aec", "reftest" ], "css/WOFF2/metadatadisplay-schema-description-022-ref.xht": [ - "24adc9fc534b00afa14ad651a01416d3cf345046", + "8ac47a6849c1789d1100a0e2bd0d235304dbc88b", "support" ], "css/WOFF2/metadatadisplay-schema-description-022.xht": [ - "91b6fa5d2ae07c881c5f190ec68443175e44d8ff", + "711539258f8cae19e61c1bbceb4782d21e54331f", "reftest" ], "css/WOFF2/metadatadisplay-schema-description-023-ref.xht": [ - "4ca8558609bfee4755fa46a7ac2d84a9faf70fbe", + "ef02f55e9031d2e247f0d00efa88aad8f648a6e9", "support" ], "css/WOFF2/metadatadisplay-schema-description-023.xht": [ - "a9a054c0b1646696204ec3e9dcb6433b45143a63", + "74ebdd3878a9d1b8dd39732407e324960cf84a8c", "reftest" ], "css/WOFF2/metadatadisplay-schema-description-024-ref.xht": [ - "a0295643fe80b44b25bde841a59a98319a10837a", + "4a7a05957b432010af22d21c3030626c7b3ec1d3", "support" ], "css/WOFF2/metadatadisplay-schema-description-024.xht": [ - "8ace0505bf70dbff3e8ed01e5d6e9ebe6ee772b0", + "77ce50add7ba3b3f20036b51499be90f4c08124c", "reftest" ], "css/WOFF2/metadatadisplay-schema-description-025-ref.xht": [ - "198502304aa1d66afa46bfac47a484f0fcc8d409", + "bc4ae77eaac7f96f8ee98e0dc73a61f0c8862d41", "support" ], "css/WOFF2/metadatadisplay-schema-description-025.xht": [ - "3d0b4cdf3216790c9efea8a9d108e0aafa61f085", + "c9cfe2de6d913734685209b81c142e10b84d1e3c", "reftest" ], "css/WOFF2/metadatadisplay-schema-description-026-ref.xht": [ - "9752269d192db95fd67ad3256f611d92c967acd5", + "70e03cf216d677d5ec67701e6c0723658dc3468f", "support" ], "css/WOFF2/metadatadisplay-schema-description-026.xht": [ - "20ac2154b73c52054ef6432804249816a88fcacf", + "ff4cab9b2ea851ba7507bb0f643eeb0330fc91bb", "reftest" ], "css/WOFF2/metadatadisplay-schema-description-027-ref.xht": [ - "8ed7ef56753e9b617f4445584a7125ca7f0ebabd", + "87a45e528cec828524d69fb7c942e66ee111dc40", "support" ], "css/WOFF2/metadatadisplay-schema-description-027.xht": [ - "9a4b6824fad513913a66eb69a25000e805ed7d91", + "88f92765a31a55038f750eb7327b4e4a08f9fdb1", "reftest" ], "css/WOFF2/metadatadisplay-schema-description-028-ref.xht": [ - "86bde311a8133b282549929c76510cdb33b8b56a", + "9011dee79880080a8e4e1f1c044267a1d1bca102", "support" ], "css/WOFF2/metadatadisplay-schema-description-028.xht": [ - "35c0359d07f3d0fcf70d35e0cbfc790d03c932b8", + "bc4640949f1e7c26e2e965dd3a0391954074cf34", "reftest" ], "css/WOFF2/metadatadisplay-schema-description-029-ref.xht": [ - "1b01a4b2bd999a15790e1160037de5ef87ceb5f5", + "96b54d63c8e5ffafcce15a23aafdb46ad5d1ce14", "support" ], "css/WOFF2/metadatadisplay-schema-description-029.xht": [ - "1f84743b077b2656b3ecfde40b0235ff930f5681", + "9ddc18a0d1a53d1488329624f8ac13184acc395d", "reftest" ], "css/WOFF2/metadatadisplay-schema-description-030-ref.xht": [ - "8f916db909574f79dfd7985f3490432f0125bb86", + "5da7ae094df263d19ff2e83ee70740a529e8a6fb", "support" ], "css/WOFF2/metadatadisplay-schema-description-030.xht": [ - "e59464af36a8d19c0d173a49bc73176854f300e1", + "c0be253c65e2a3a35b177c9084aceff23a322235", "reftest" ], "css/WOFF2/metadatadisplay-schema-description-031-ref.xht": [ - "5d15800308fd1046e5574ab1806b32c33ff5d2d3", + "b0c7b19e58afc81f1c657ffe3e290ac148e028da", "support" ], "css/WOFF2/metadatadisplay-schema-description-031.xht": [ - "3018ae92a3e6f25129615cc8aa116c39106983f0", + "0e1767b8587bcbd373f226f1959ae5e1c5b334c0", "reftest" ], "css/WOFF2/metadatadisplay-schema-description-032-ref.xht": [ - "2b80b675df8bb6a9d19e3cffafca0281214bbe97", + "0982ce4b98f4b61f06c6e121ba4be7589076c825", "support" ], "css/WOFF2/metadatadisplay-schema-description-032.xht": [ - "ae601b70875cd90cbb025c7542b135628326bccc", + "825f8583c812a2109e6acd490ea9b11e28184342", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-001-ref.xht": [ - "46f25c21f0ec256854ffd491358d82f41dd8db70", + "2f08a81ae5b4e0041ae28a165d288eff47a48369", "support" ], "css/WOFF2/metadatadisplay-schema-extension-001.xht": [ - "09872a52c51a27b06776d8514bc83166d85799ea", + "023083e6ff0722a1bb29be3b9b0e819aec26d771", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-002-ref.xht": [ - "3998a8a12da167676841d114c887eed593c34a69", + "d44b489d65abb780429d64619c1a226c7b3fe2dd", "support" ], "css/WOFF2/metadatadisplay-schema-extension-002.xht": [ - "0201bae4a4d03c972714aae391f88676417fd0d8", + "aac6963c66719ea82d2dfd14b6fb70b4b3236b52", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-003-ref.xht": [ - "5509d01a809df1302ea6be79ee3be05cda314386", + "ddf90cf12e444ba39ce6d37c85b9da14c1e4a713", "support" ], "css/WOFF2/metadatadisplay-schema-extension-003.xht": [ - "39333afe2a0dc9913eca0c13a3821664a0dcc667", + "dd74c642406b340675f3af70a9c4f0f4dc1bf3f1", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-004-ref.xht": [ - "3e01d09677804d6a246e753a0bda8f5e9f14e19b", + "079f1214932e0192225664c5dfd1f0e571fad4e9", "support" ], "css/WOFF2/metadatadisplay-schema-extension-004.xht": [ - "abea41f52245bcde231cc0644d9f74e466e78542", + "ed0b7af2cab9bb0882831ef334d0ce126858c217", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-005-ref.xht": [ - "646651d50a22a57af3632dcc6281c4e52350c010", + "f343e77f43dfc796851509e0412d36b28cb094be", "support" ], "css/WOFF2/metadatadisplay-schema-extension-005.xht": [ - "32ddcfab59c51ea2eb4f8f6806e719c8eaf00f60", + "ce77d8dfcda1c5db01d1711f5e5269b2954f2bdb", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-006-ref.xht": [ - "1a05488486da2ff4276294710eaafbd91884bfab", + "b01700f1951d1da431ff86e3beb3922eb84553ae", "support" ], "css/WOFF2/metadatadisplay-schema-extension-006.xht": [ - "1f5a5ff9a0ebdc50783ac2a121b881a7653d1bd1", + "c141eda7d238f300e38bccca6ad0686e17f051f0", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-007-ref.xht": [ - "7cc2ebcbfa404546cd800bcc8b9037f6b28639eb", + "8c6145cd75e0e2b257cba33c42f6b5d261e6aadb", "support" ], "css/WOFF2/metadatadisplay-schema-extension-007.xht": [ - "b1d6b5f70f2d1ecc14fbf2a1e9dbf9ebe35cc575", + "df0c57013871ae861134dc8bdcaf14553423aaab", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-008-ref.xht": [ - "1ecbdc30cc90f68260b7927eee23a0dcd5af6b69", + "16e82474815eceb8ee4d8380080976a4507d6503", "support" ], "css/WOFF2/metadatadisplay-schema-extension-008.xht": [ - "e0b73a6e9f77d7f26b525df60acccbe0fb34581a", + "3867b2e37356c0fdc56985f037be34ca68a6836e", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-009-ref.xht": [ - "c2baf038624f5618f85429e11a7d9ec6eee0d79c", + "f27c732f248c816e57915810276313bdb2f6054d", "support" ], "css/WOFF2/metadatadisplay-schema-extension-009.xht": [ - "5eb34380bb7331986213940fee8f5feb97a5dcdf", + "bee1c2f1a4e57f26d81f11dab5be307439fb2057", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-010-ref.xht": [ - "bc78d5b0a749f6f3130908f2de440f3267c37b66", + "f061d9f9c800f650e6ba2f9661451c687d525fbe", "support" ], "css/WOFF2/metadatadisplay-schema-extension-010.xht": [ - "6114d1e50e26be4b21cbe51dfcb0ac4eed6d7f67", + "dac1d199dbadc9bfaf027356c94319ebcd84f25c", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-011-ref.xht": [ - "4dfcab5bb3edd49a100434c8196f0381e8b733ef", + "ba9462d7fa76cf3cb901c2da73b3d8b150b74286", "support" ], "css/WOFF2/metadatadisplay-schema-extension-011.xht": [ - "aa78059cc344a848a2dee406f66bb038f361387c", + "6c9da6ab49c493e80f761270e6bdac59ed33064e", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-012-ref.xht": [ - "e5ea88fc02365062bb31af2155d2c691058db3f0", + "d69e9613fe55be8a4be0e65333338746384204fb", "support" ], "css/WOFF2/metadatadisplay-schema-extension-012.xht": [ - "84a0c86fb48e12ac7bc37b37db592d9c87158eb5", + "e7737af7d78db75e5263f88a27a99c6a1479d18d", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-013-ref.xht": [ - "ceadd0a42c5f2e9cbf6b8bc36153710c8877aed6", + "d13fc0aca7c469d780f92d8fd9df6ea81f65c9bc", "support" ], "css/WOFF2/metadatadisplay-schema-extension-013.xht": [ - "ce4bcb7368b463cd91b0ff4a3a348cffdbb3e85b", + "e45bb5801997d66135e003d600ab16113857bb3e", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-014-ref.xht": [ - "35bd78be125076330ecdfd1f661784dbc475b3ff", + "e75b2414bb38bab5c7f0f52f738c6856e3a22d62", "support" ], "css/WOFF2/metadatadisplay-schema-extension-014.xht": [ - "73734766bdf06cac9e1ed3f44ec02babce13e45b", + "3842941881f164dd5bc2f9e33756c5c5f964fdff", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-015-ref.xht": [ - "5a44d35b798463db32988807870b32fcdb4f1b00", + "f595d84a2cd759b23d0049c1f9b7fda0f1bf4f92", "support" ], "css/WOFF2/metadatadisplay-schema-extension-015.xht": [ - "40b9311fd1f7f85c4c9e6787b1668e03eb0aa273", + "10a27d4a270c271f1840bafda7833389906ac484", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-016-ref.xht": [ - "fa5fea8abc802d8b11728ae75fbba9478a35fc97", + "603526f3788b531eef43e7bf12df9481d495235d", "support" ], "css/WOFF2/metadatadisplay-schema-extension-016.xht": [ - "2132d10c96547e48e860dce5ea7d0c8a239bfa98", + "d8ad33055649dd653f30185c597ab9f8a8ddd34f", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-017-ref.xht": [ - "0656c48fb3abbb26da11bf7e9bf1eda4d77b00c4", + "ada206680f906620f7446d50def6322a6c1375ba", "support" ], "css/WOFF2/metadatadisplay-schema-extension-017.xht": [ - "6ac4fe3a9ba9525ea190a53eefcb9c386879e650", + "ea5169dbe33c31a18d21dcf0a8bd0e46a82e4dda", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-018-ref.xht": [ - "869bb1af33345bf0d49c5dfc1530cfdd3cf1fc43", + "472f8a6674b4579919d117abce5e13e5dcde484c", "support" ], "css/WOFF2/metadatadisplay-schema-extension-018.xht": [ - "6c77b9ee71be8db8f5754328f4b3a4f71349b31c", + "9d9de6ba88550702ab8ab7e85e6c05808cfafcac", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-019-ref.xht": [ - "38f0ec9d3b5940a81dc3968858b14a1d23c18512", + "39943e107928667527b06432e70548445b908268", "support" ], "css/WOFF2/metadatadisplay-schema-extension-019.xht": [ - "c1c669d41a6f7e7643721ee84fe4f8de456e2ab2", + "7086a519e385c2f5bc4310d522e3b3356830b104", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-020-ref.xht": [ - "5c5f6436563dd1b7b88afd5dea2a66a4659baf13", + "624cd866490e85816958bdf7b442da94212386cd", "support" ], "css/WOFF2/metadatadisplay-schema-extension-020.xht": [ - "a021870f889b4538f4bfd107bd79b7a3ba06728c", + "a1affe13f181bac708ac32c35a8d9f2324445f03", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-021-ref.xht": [ - "ada25ad3c94d7fa720a08f85c74112fa8af95a64", + "83d29f01e44ae835815d5ea9fc8ddde36e426c5c", "support" ], "css/WOFF2/metadatadisplay-schema-extension-021.xht": [ - "39827bb86e69f5f9f2d8425ed2fb118676170c81", + "f7954fafb53791e73b18b4e79ff051abc15a36c4", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-022-ref.xht": [ - "07221a892fed172c3f4108bc72f5e9cb99800c1d", + "48010fbbd8620c78b08f8c262fd07f82574810c3", "support" ], "css/WOFF2/metadatadisplay-schema-extension-022.xht": [ - "5ae1977787bcad5528380c0bce80cd67f67400ac", + "05519b019d84cb7083bd2dfc54a6f92bdd67e65c", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-023-ref.xht": [ - "36477d7c1ed061c5163bf4d372e48c8f1fe84844", + "80c5fe9e4454b7e3653b66708ab237975c5f2f60", "support" ], "css/WOFF2/metadatadisplay-schema-extension-023.xht": [ - "773d3b7d14b8e9e8545a451161cfd1525afc3907", + "dd581b044ee7f2e903f7edb6ccf27f65be719ffb", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-024-ref.xht": [ - "f8319565fbab524188facf9f55c4cebebf310659", + "b4009efeaf6c7032b401ac116df629dae60bc650", "support" ], "css/WOFF2/metadatadisplay-schema-extension-024.xht": [ - "1bdb68019af39ece92f573c74158e173fc621465", + "99e4a4761020b60fde2757f98670e919411c14da", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-025-ref.xht": [ - "8b1de0d6561585ab369f3b587d7e46fc294c6d48", + "4e3938cde6411e0803ca9ead3b250c6ea6793221", "support" ], "css/WOFF2/metadatadisplay-schema-extension-025.xht": [ - "92e36f9d642423afab6d05ceda4ea150fd03c0de", + "d3132ac552ef7d2eeb5930f72bbb790c4dbe921d", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-026-ref.xht": [ - "6ebfc57de7d249144c8822f8dec5b1bd4126b2e5", + "63d01db125c6c18b2b7a7b5e0ef5ec95f3bb3d9d", "support" ], "css/WOFF2/metadatadisplay-schema-extension-026.xht": [ - "24749bd05649f24a3bf0c6728a1bf8a59bf1266d", + "7e66a8b538399f2c351130514fed55aea6528b6b", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-027-ref.xht": [ - "7bf14886a609ef975f4a12978ea2582334dd5378", + "22c83d558771fc0324cd80c39d7809d8d8c34a98", "support" ], "css/WOFF2/metadatadisplay-schema-extension-027.xht": [ - "43dfee5fdd955d36585e3b0d1e93c54e30405389", + "f7d0042f204c211ce5a7b6847b0d755ea1b66237", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-028-ref.xht": [ - "27fa4f8ae6bd78ebe5cbb38eb72d657ae3c318fa", + "4af26683114031d23fb02f6484789452e9df46a7", "support" ], "css/WOFF2/metadatadisplay-schema-extension-028.xht": [ - "f3269ce6950cf06eb9d7b2f72cc6d973efa4ae95", + "8fee1fcb7b60b7900b83c9e0202775a13c0758a4", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-029-ref.xht": [ - "aee692cd7396d0fbceb16a15c3baa1430966ea90", + "7a63016ed71608c2b4ba74c9bfc7d7d460c7939d", "support" ], "css/WOFF2/metadatadisplay-schema-extension-029.xht": [ - "0dbe5d580d23f6295d5dacc9ace5160049c18e4e", + "edb4128fcade6f52ea2d9ce13ce302057050c7e1", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-030-ref.xht": [ - "f800dc725041676b8f6986de345c5a2e02748f9c", + "c64b188f39afc1ddbee068e303c72d790f7bd382", "support" ], "css/WOFF2/metadatadisplay-schema-extension-030.xht": [ - "ccc2144504ba62ea29fb922256da4c737df58d97", + "f80a57185ccedd9791d9cafbe5cabd3a891d342a", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-031-ref.xht": [ - "a30df65e0927cb0dc6a4465cc5d51f64b8478ab9", + "a1ff31ea72d2e8ef19cf880da90a8d7a30b58ee6", "support" ], "css/WOFF2/metadatadisplay-schema-extension-031.xht": [ - "b947ef66d84a733956814a779b297d54d5ed7708", + "947a636a5114f4ed30ba78174b1ee4e2bace458d", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-032-ref.xht": [ - "c29b1a00f3f7f856f1e39fe8dc9001ca880c8421", + "f29773db30132f4c087b27da64672e5d900a4f1e", "support" ], "css/WOFF2/metadatadisplay-schema-extension-032.xht": [ - "c73cd5f1cb171e7b9fbd1df3a477425811fcf54e", + "c3ed5d97806a67d600ca4badd664961f51a03ee1", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-033-ref.xht": [ - "10a1bd9d538bb52c4b1276f3af8672d8d5e8ea0f", + "39751f1592d21103268fb5cab5d8dd44409fc91f", "support" ], "css/WOFF2/metadatadisplay-schema-extension-033.xht": [ - "2b903bb1b47138b39b684655f79e71e18b5c724e", + "01e31715ac2b24a489eb7ca4cec89ac1a96c8f12", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-034-ref.xht": [ - "d3fe8afc3ddf95184e8352b1602262d935eff58b", + "7b0c8ee418c6b567ca901cf62eb07beb61a363f5", "support" ], "css/WOFF2/metadatadisplay-schema-extension-034.xht": [ - "7dfa8a9046cf4273cab545fed27c10f63ff7e4d9", + "083a7d75b1fae8fa57364637eb1e5fa9d5ee430c", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-035-ref.xht": [ - "18b2953c1a4ad7f7a3db3656778306faf91da7b4", + "5f7bf4d8a55b5a7ba02d7ab62d3e5d8774a98b17", "support" ], "css/WOFF2/metadatadisplay-schema-extension-035.xht": [ - "827c4c4a1e8812010b8b8757d9785e6e6d5147c3", + "17a84f537eb060dec42705861e11816775ba641d", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-036-ref.xht": [ - "084da8e75df32b915d7802d9009a48915309a0e9", + "d2eb7c0b759f3c16a5a29ca1168369bb22b4a124", "support" ], "css/WOFF2/metadatadisplay-schema-extension-036.xht": [ - "41e4ca2f78a1a44cc8a06e7142864ab2e978ac08", + "e5d7812a2b7c96dc86500f9005b8dbd0f9f8832a", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-037-ref.xht": [ - "987f86c89c52f1e56fed59d42ab1dd2dce64d7a9", + "79c372be2d7c2b06adcd0b869cc6105c1b900b94", "support" ], "css/WOFF2/metadatadisplay-schema-extension-037.xht": [ - "ba138d4244128891a047788198288c598c24dc25", + "dd55c0316d377716084c9de987417c35c2aaca0e", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-038-ref.xht": [ - "24030d3dfb081a42a657ac3d2015b15851cfb058", + "55d56a1b8b330b421ff16de44a6980c6669856c3", "support" ], "css/WOFF2/metadatadisplay-schema-extension-038.xht": [ - "0f51809437a19bcadd547f553276a536f37db5d0", + "1f23da1e5d5a92d901f82ad7be8b3101b0299d55", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-039-ref.xht": [ - "697e42b4c316baa6bc724b4d2fcf83335b5e47e4", + "cdb72700f453ea4ebf862eda68532eca789ba697", "support" ], "css/WOFF2/metadatadisplay-schema-extension-039.xht": [ - "cf28119d92964e5aedcb721caea22453afb7101f", + "3cda40f84d1546d51b81eb02fb7e13ff9c72e55b", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-040-ref.xht": [ - "885457ec320cf930a414eed24155cb5a60099f19", + "4307fced21df5470c7ab386e0d2eb281f6fac956", "support" ], "css/WOFF2/metadatadisplay-schema-extension-040.xht": [ - "1cfbeda447bc420f050c029966e13cd4019c1abf", + "a2b330c45ff50164a0b883db827b9e0cc19da19a", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-041-ref.xht": [ - "2dac7a29678a60552073567fdccf400e4dfed0dd", + "8f19d4f7ddabde0393cb838bcaea7f387b39ccff", "support" ], "css/WOFF2/metadatadisplay-schema-extension-041.xht": [ - "2d64266e9979bd99b5a55966a5ea221728e12a02", + "d9148df62b5d5ffa77642396431aa5d41656bcff", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-042-ref.xht": [ - "27dd92f74c05ca63b08f09d001a5933eedaa4342", + "ec772433045578db36344f72d0e019ceaf6ac991", "support" ], "css/WOFF2/metadatadisplay-schema-extension-042.xht": [ - "6c0bc8fb6ac82831dd478aec6e390d9adba4a592", + "1e3b7b5ccf9481d9fdc617205e89aefff5110586", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-043-ref.xht": [ - "551e60abdde786bd7423546f0ea32d48de8892ae", + "3267c7e349b59cc9d7d20cc175b2324a2865f50f", "support" ], "css/WOFF2/metadatadisplay-schema-extension-043.xht": [ - "ccd358de4b5c89ef11ddd4c93c89eb1164741715", + "5795936c6f8b56cabd51a575ccfd2a996a09e45f", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-044-ref.xht": [ - "a50c615482605ab488938ff7cc54c0c546bc8648", + "58f7abe98e91d221fba6f7161083ce776cb40882", "support" ], "css/WOFF2/metadatadisplay-schema-extension-044.xht": [ - "8146ba31c7c7f022de7c647d5788bf07de1f3d5f", + "2400d2fa485dc5cda8181e7173e52e863ee68028", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-045-ref.xht": [ - "1f3e1c034d018fafc5379fb3a6052e564cac1390", + "24f6b134c3fb41a42290397757bdd83f2d6f79a4", "support" ], "css/WOFF2/metadatadisplay-schema-extension-045.xht": [ - "1f9389e3b344b8ca9c25128e528127d544882f5f", + "164e3366dae049a5e601ef57f49e3914baf2ab67", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-046-ref.xht": [ - "a0ae2cb9cbe9991e1f1fd465beabb1d1c7e95bcb", + "db8881dd195382f98d835403176915e5f2bb0728", "support" ], "css/WOFF2/metadatadisplay-schema-extension-046.xht": [ - "704a2598ad0fc9712a66ce7a6cc4c71abda9c1ad", + "36d2a33b48c46e8bc68cfffa39f031ea6dcae29f", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-047-ref.xht": [ - "140428a0f8109ca436a61ed096e7e364a47642c8", + "cc241ac0584adbbf023cd05b5991476c21a9ebf4", "support" ], "css/WOFF2/metadatadisplay-schema-extension-047.xht": [ - "97bc671469f804a4de7d31c35ae1b8a7ec302a59", + "7dcfb4a7ae50c006501d8caa975c178006272951", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-048-ref.xht": [ - "88177c4db11f50fad1dea50e2aee00cb6f057c82", + "7c8e47efe9a59e00d4645db10cbc345f80a6d40f", "support" ], "css/WOFF2/metadatadisplay-schema-extension-048.xht": [ - "6eb6277827538c9049748c9bcfba63897a99c90c", + "8c00d85d9bc84ca97c9eb9b6fe92f32497608c1c", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-049-ref.xht": [ - "49174ca262bd2522b7dd51a4762a5f70c5c6646e", + "581a7809999decfcbb16a27c1cc60b6da8742594", "support" ], "css/WOFF2/metadatadisplay-schema-extension-049.xht": [ - "c70662a33024720ef638afbd9b75e1e14b305c8a", + "923fa10f0004bf2311a8883336eb8c40d7d737e2", "reftest" ], "css/WOFF2/metadatadisplay-schema-extension-050-ref.xht": [ - "fd764223470c1cfe7e4fa9deee6d70d42ca81923", + "708672964f34459a78c9afd9e6c588d66a20b79b", "support" ], "css/WOFF2/metadatadisplay-schema-extension-050.xht": [ - "e92768ac96369ac2bfce6403a8a8184af1fb4495", + "988df657abf5abd08d40f27bd686c2b62fa16d16", "reftest" ], "css/WOFF2/metadatadisplay-schema-license-001-ref.xht": [ - "10ae954699265b0d4238366d05ebaea9719884e1", + "3765e19e1ab289d3e94412b73e6c204f589d5f0b", "support" ], "css/WOFF2/metadatadisplay-schema-license-001.xht": [ - "19ab70859d235e92514eb42cb406c261abe6871a", + "a46addd4374e9f027808ece86afdd3d9319d4a36", "reftest" ], "css/WOFF2/metadatadisplay-schema-license-002-ref.xht": [ - "c61d8f2f18f79dd57c81e81e65116caca9177b22", + "4326e6ed07bb37f75027b230ce9b287a5dd84a57", "support" ], "css/WOFF2/metadatadisplay-schema-license-002.xht": [ - "5262547b23ef2b524bb4e5e306730e1c49f1e6b8", + "75ee7a5e3d38ab6faeb94ba6e8fc632f167a2413", "reftest" ], "css/WOFF2/metadatadisplay-schema-license-003-ref.xht": [ - "009a356afa5f8712a8841fc7ade5ee38c72a88b8", + "99ff6e4fa9ba4edf1138144ebfee50b1a32b3db5", "support" ], "css/WOFF2/metadatadisplay-schema-license-003.xht": [ - "cfb63675b23b0890241f3591ab6333f43a8afb17", + "1629969cb9c386267abb5bc2fcea8c82e0bee0ca", "reftest" ], "css/WOFF2/metadatadisplay-schema-license-004-ref.xht": [ - "1e75992b2f92200167e78005474ef11b36908a36", + "342af567f77ab88fc870c386bdcd0dcfa625b72b", "support" ], "css/WOFF2/metadatadisplay-schema-license-004.xht": [ - "8b78d8631659a15ba685513959b0779c4b6d72a0", + "6419b45e649279e15d0bf244c5eabd62f61f8b11", "reftest" ], "css/WOFF2/metadatadisplay-schema-license-005-ref.xht": [ - "c79afce92374d288dd1b578320bbb4bad756d2ab", + "b245e80406a94506ff6114ee8421bd031fa7566f", "support" ], "css/WOFF2/metadatadisplay-schema-license-005.xht": [ - "87b2598246e869be5ec0db943749fcd743dba6d0", + "9929a03155941aa238bae7b77b3c8408867c8c48", "reftest" ], "css/WOFF2/metadatadisplay-schema-license-006-ref.xht": [ - "d7a0b1e5c7700fd9ed0bd05368efd7c2e59df0b6", + "44b06386f0b6425dba51ee632ead298cbbbfbfc6", "support" ], "css/WOFF2/metadatadisplay-schema-license-006.xht": [ - "c7317a5b38da0c63febe3199d158593c24d13c6d", + "6ef59e8eaa3f8d2caf1f641de303f164fdb2b3a1", "reftest" ], "css/WOFF2/metadatadisplay-schema-license-007-ref.xht": [ - "39132b802657b44b9e230c5631d234c25889a028", + "026d9332a5f3eec4548a5ec38f89a42e03a5c64d", "support" ], "css/WOFF2/metadatadisplay-schema-license-007.xht": [ - "6afadcab94500b3d9cef4f3905d321538791b2ad", + "412bbac74b4474502c516572fda1007532e6ee10", "reftest" ], "css/WOFF2/metadatadisplay-schema-license-008-ref.xht": [ - "8a2b6d96e97d51f12058179b154d630e486a80f2", + "c05431ba136e4ceb4c7c9850dc93cc59444cc339", "support" ], "css/WOFF2/metadatadisplay-schema-license-008.xht": [ - "a88b9936c0fbc2043d20babdabc2590e0b370ab8", + "8343e9f322a1ca1c2404d8ff5ce8bd182db0f01d", "reftest" ], "css/WOFF2/metadatadisplay-schema-license-009-ref.xht": [ - "83c53d5964b5484b51ad4082c03c4a69c594446a", + "25a8e3ba74471a16ba00b4e6be21c9bf5a8bbed5", "support" ], "css/WOFF2/metadatadisplay-schema-license-009.xht": [ - "8ebb5cd9ecd8764b18016276f43efc4e54314fa6", + "e9abea0d7e01c70a910f96ccf0f2de629a4e817b", "reftest" ], "css/WOFF2/metadatadisplay-schema-license-010-ref.xht": [ - "7e4d4cf1a2bc50bcf87070a3e9c1b78d7698f3d4", + "5b984d9c783ef734fb411578f6ad57a13dc1677b", "support" ], "css/WOFF2/metadatadisplay-schema-license-010.xht": [ - "bbcacae03fbffcafec549652b6c31ce7ed6d5f88", + "7dc483d85395651777e03820905e49c252bf604a", "reftest" ], "css/WOFF2/metadatadisplay-schema-license-011-ref.xht": [ - "ed86300df183befb54a8f3867cdaf21de3d6be52", + "04ac2a3cf2543b6a13f6594e3fa548bed3b89d75", "support" ], "css/WOFF2/metadatadisplay-schema-license-011.xht": [ - "f4c9df28001bb8cb2c4174ba92a0ca0964169d84", + "72bf48ca9ca169147cd89e1082d34ce7986091cf", "reftest" ], "css/WOFF2/metadatadisplay-schema-license-012-ref.xht": [ - "06bf2921aeed8b338d63b5d2a21751d1910f45e3", + "4b5d9a75809e13d8512784d2e0def6952a74a256", "support" ], "css/WOFF2/metadatadisplay-schema-license-012.xht": [ - "c7db7ea9aa723eb647bcb7942766f9d436a78df4", + "fd82697e823d02b4f6042faae998dca82e764c07", "reftest" ], "css/WOFF2/metadatadisplay-schema-license-013-ref.xht": [ - "d0bc0a48fd096fa1ca5dbb2c064eebd93c632213", + "3b176f0970e4da4740242ac45b317804a559e4fc", "support" ], "css/WOFF2/metadatadisplay-schema-license-013.xht": [ - "46a8ea4787bde13f19f4e6e16bf66317f96752d4", + "60128b6c9bc62575f184e7e3112b90cc39dace78", "reftest" ], "css/WOFF2/metadatadisplay-schema-license-014-ref.xht": [ - "c20a289ed04142d58e24c2686568709a7280e0a2", + "9e58df321040ad9213b211df5e2dc2fcbed7cb62", "support" ], "css/WOFF2/metadatadisplay-schema-license-014.xht": [ - "a16993ba548a68d039db60529e31356ee8bbc047", + "f827698eb222cae409ab63f7af07554cacdcc58e", "reftest" ], "css/WOFF2/metadatadisplay-schema-license-015-ref.xht": [ - "8ae4d2743edb1e53b2f7f685053de4edce011ad6", + "0d6a71bbbe7e2fabeec1fb54f0488e96cea6b20a", "support" ], "css/WOFF2/metadatadisplay-schema-license-015.xht": [ - "e0f67091b8e09482d5cf72693a0baaa7f4c6bbf2", + "8cd88262af62742388a570740fbc24d75009a030", "reftest" ], "css/WOFF2/metadatadisplay-schema-license-016-ref.xht": [ - "2f5fa27437204cc48fc67083c41bec891d46edf8", + "67c6cda22330509b78fd7a42000437d4852e0f4b", "support" ], "css/WOFF2/metadatadisplay-schema-license-016.xht": [ - "b08e5a8ae590145aa1dc6d95309824be5e7ab2fa", + "0fac0b677c534410a398aa05abfa6120017e39cb", "reftest" ], "css/WOFF2/metadatadisplay-schema-license-017-ref.xht": [ - "d737dcc25269b49c154821d6f43aaa6f5603ada5", + "56789a14a657c00cdb6920509c2f9b92ce2cfba9", "support" ], "css/WOFF2/metadatadisplay-schema-license-017.xht": [ - "279c4e8a1c1323e161c32251c1ea641237bacb62", + "1685aa8e4c2f5e7e1112f326e02bcb5cd3831eb9", "reftest" ], "css/WOFF2/metadatadisplay-schema-license-018-ref.xht": [ - "8ce741c5056bc50c9c3c49ffbd8be437c1e2d387", + "71cdd24df422954f22940fecc3738ba13186d602", "support" ], "css/WOFF2/metadatadisplay-schema-license-018.xht": [ - "b80d4c78416edb4d5a32ecfb886ed06cd1b18468", + "ea2fe9e0ec3f0f0379f55774e082d906bec54830", "reftest" ], "css/WOFF2/metadatadisplay-schema-license-019-ref.xht": [ - "4938c759a693d83b24c905d269ec632484721151", + "69878c09238ecabd7ca6a1e9f77662cb28da8f00", "support" ], "css/WOFF2/metadatadisplay-schema-license-019.xht": [ - "35b786966065767d54092d031c02d77eb4bf9873", + "121cfb40aac0e76d357f660f8c631e7bbc9ba679", "reftest" ], "css/WOFF2/metadatadisplay-schema-license-020-ref.xht": [ - "d6c52d998ab83f99d98a8c68a1769d8a61839282", + "1fe123e86c987e529d2ef467795b6bfb279854d3", "support" ], "css/WOFF2/metadatadisplay-schema-license-020.xht": [ - "be245435decdc0450415459ba358f5e299dd834c", + "a234f47e91c291833c96e22b7cbe97f286abf30f", "reftest" ], "css/WOFF2/metadatadisplay-schema-license-021-ref.xht": [ - "b163cf81da1db03cbc8e3dd5fbb083d65c1d4329", + "1b8920b9575c20b156b9d7f11b2aa2530371b839", "support" ], "css/WOFF2/metadatadisplay-schema-license-021.xht": [ - "8f60febd3281d76b822869b298f4cb2d28910f2a", + "8fb628390e92a5f5b25a381a15b1e7861de7475e", "reftest" ], "css/WOFF2/metadatadisplay-schema-license-022-ref.xht": [ - "8000a00a32b3bacf2e023da2b1b87594d728d0a9", + "658a8d9436ff64b81ac32e0bfdec4a7ce6d58cc5", "support" ], "css/WOFF2/metadatadisplay-schema-license-022.xht": [ - "a24b552fa78b77f27198f8f9bc60570e01c9bc7b", + "404d34b07afb619fbea3d50006e793c9ebd8b387", "reftest" ], "css/WOFF2/metadatadisplay-schema-license-023-ref.xht": [ - "12862e7c86be41944cf3e173ec98cacca64f964b", + "2d540b782d6b92bf7f93d77792fa4df63fb2ccd4", "support" ], "css/WOFF2/metadatadisplay-schema-license-023.xht": [ - "fbcfbf57ae50f2e479bce26418701a68fab160e7", + "fb10d843c97df7ac367508c238aba1b972c250ce", "reftest" ], "css/WOFF2/metadatadisplay-schema-license-024-ref.xht": [ - "14198d4a1d3679da765e230139dace0a45e91263", + "b069fe35d9ab70c05a667e6d0c2434443972868b", "support" ], "css/WOFF2/metadatadisplay-schema-license-024.xht": [ - "62a5b9e65aa7dabc2ca502431ca575171d3a6165", + "270b57c077d37e59466c42942f2f6800fb6403c4", "reftest" ], "css/WOFF2/metadatadisplay-schema-license-025-ref.xht": [ - "ac31ac244b67aa98a42428494ce7a8417c311d7e", + "b381d010682949ed3f32cf5735c3703d393132f5", "support" ], "css/WOFF2/metadatadisplay-schema-license-025.xht": [ - "0489175750755f3dbab92861d7d93920ac9f5355", + "803e33a9798e4e44220db42115062a8c52527654", "reftest" ], "css/WOFF2/metadatadisplay-schema-license-026-ref.xht": [ - "dacc5f536c143f01118ddf3751466744e53d2ecb", + "3d682262346d126039c78464f39b0a6d070db50c", "support" ], "css/WOFF2/metadatadisplay-schema-license-026.xht": [ - "d79cd8e381434d27838582057be82ed4a44443a2", + "731f021165ffc5df79a98d45e3c6f2c723849d86", "reftest" ], "css/WOFF2/metadatadisplay-schema-license-027-ref.xht": [ - "9b16af914e12f1061c8624f059845254478959c1", + "c11bb6a7c34d5469b397ba858711e212abf1da6c", "support" ], "css/WOFF2/metadatadisplay-schema-license-027.xht": [ - "c30b3a296c7240f43bc360d1cdba6ae01e5fdfc1", + "d9593025bc552187dfe8aefe2aeb6b21edf18f01", "reftest" ], "css/WOFF2/metadatadisplay-schema-license-028-ref.xht": [ - "73055eeb40ec451414c8b7f008b04907a657711a", + "e3e4bd44e74a9a7117daa8d7c32ea7ba50c4b49d", "support" ], "css/WOFF2/metadatadisplay-schema-license-028.xht": [ - "eb077417a89faea06e7d897b7e959265c5fcfd2f", + "4310281d9fe9134ddd25890279d6ac40a611e23a", "reftest" ], "css/WOFF2/metadatadisplay-schema-license-029-ref.xht": [ - "8661b50014e91011d71a26c68ebc6069c85024e0", + "017b020a6c1c60309a90e7d1ec4c882f559f11f6", "support" ], "css/WOFF2/metadatadisplay-schema-license-029.xht": [ - "99e6c727fa7f3f0a487b1abd7e43a9dfa0af81c5", + "309a78047ddb4aaf665311dfb7dbf0c9e633be71", "reftest" ], "css/WOFF2/metadatadisplay-schema-license-030-ref.xht": [ - "f3a2c91c8772ae5a5dd0e83ef2f24a29b5b03360", + "129e084c67efceb56951a7e7d5eedf5930d3e152", "support" ], "css/WOFF2/metadatadisplay-schema-license-030.xht": [ - "c6a46ca909fd3a97e3ef61ba81b20be8f14f5679", + "e57766a9c55f577caf3a1faae931032c9c884a5e", "reftest" ], "css/WOFF2/metadatadisplay-schema-license-031-ref.xht": [ - "f7af019d8b5712defd1d484a603f73e81b8231af", + "417d1560d5cfb7b722beccbb4d180f15dc766330", "support" ], "css/WOFF2/metadatadisplay-schema-license-031.xht": [ - "db5f0ccb7e107f77a27b6b371464042f8d0684ce", + "d48572e7280e966f8b4fae8f5472389adfdfd4d5", "reftest" ], "css/WOFF2/metadatadisplay-schema-license-032-ref.xht": [ - "830ea8ccbfeb48b734c21750e6eb1296a0201aa6", + "139e58ce8fdf718aa3030a4f4be02734281f0807", "support" ], "css/WOFF2/metadatadisplay-schema-license-032.xht": [ - "f0dcad2053bbf1db9f4536013ef1041bfee9ebce", + "5b3a0ce3a1677f0a0de8b827b0e39f9265aa2824", "reftest" ], "css/WOFF2/metadatadisplay-schema-license-033-ref.xht": [ - "701624e05e093707a11ef76578064bb158335fc5", + "5e1f408a7298cd063f8c406b0e15466960b664a0", "support" ], "css/WOFF2/metadatadisplay-schema-license-033.xht": [ - "2d14cf2783ec91343ce055c05fef0720c5f26baf", + "ad3ace3032428bc384542a8818a5de6a138ee7ba", "reftest" ], "css/WOFF2/metadatadisplay-schema-licensee-001-ref.xht": [ - "2984413b5227490fe9a439e526b6051d4582f725", + "632fc153ed39dfbc23398edab55187bb3d42ec01", "support" ], "css/WOFF2/metadatadisplay-schema-licensee-001.xht": [ - "5c0dfa524e96b761c06eb2e8fb247136acb2259c", + "927439492aa949479eebc355c8c4fb6b45598c6d", "reftest" ], "css/WOFF2/metadatadisplay-schema-licensee-002-ref.xht": [ - "7bba849476ad736d0959f4036f96edc6043a5105", + "11781d46c50e3a27a7019752ad0c43a6f0fc15a3", "support" ], "css/WOFF2/metadatadisplay-schema-licensee-002.xht": [ - "186c01a6f5ebec2d9eeef809f369e9ca8fa7070c", + "bc39a5235e9510aba42b264f65492b77c8198c8b", "reftest" ], "css/WOFF2/metadatadisplay-schema-licensee-003-ref.xht": [ - "ba0e8f1b563a1d94435c321eba36ca115235f9c5", + "2c1fa03e94b9c30b909cc588f4131481486d53b7", "support" ], "css/WOFF2/metadatadisplay-schema-licensee-003.xht": [ - "5ebf284183bed413954ac53939abb06b9be976ef", + "0817ef9db0afe3da07c1a09b4085ff59c162b541", "reftest" ], "css/WOFF2/metadatadisplay-schema-licensee-004-ref.xht": [ - "fcb2b50c85dd8c4a252e8bda57bd0373690426c8", + "92ed28a757b1a20cbf083b82899ec528791147c6", "support" ], "css/WOFF2/metadatadisplay-schema-licensee-004.xht": [ - "aff928eb3c3dbfdb69c7e2f3e229b9a6b3e98446", + "3041d684eaa5f67d75431a51a483dbcd4e68f50e", "reftest" ], "css/WOFF2/metadatadisplay-schema-licensee-005-ref.xht": [ - "881f7eee35198443100f8be52573acf81a67c5fc", + "b2e9e2503375dacbc9ad47b967b3bcd0566408bd", "support" ], "css/WOFF2/metadatadisplay-schema-licensee-005.xht": [ - "aa178e19637705c954ba70dd3c0883147e643bf4", + "cc484cf6b6df93a8d7f57a0dbb5d1d88a6e4fa6c", "reftest" ], "css/WOFF2/metadatadisplay-schema-licensee-006-ref.xht": [ - "ba004c41a0f0a87a4914ad84919033c81b2bca9e", + "c71f75af8440fb46646000a26510cc30b4d2ea50", "support" ], "css/WOFF2/metadatadisplay-schema-licensee-006.xht": [ - "9742262abb6a33d5dd3729866b4946d36e731846", + "54b0412fdf182b759bbe1a7c200cc7a9a691a028", "reftest" ], "css/WOFF2/metadatadisplay-schema-licensee-007-ref.xht": [ - "02c13b29c49c8bd31106c9471bddffc99e8ca8e2", + "3aaad65fc434745589ad69711996143fa40df0b6", "support" ], "css/WOFF2/metadatadisplay-schema-licensee-007.xht": [ - "2e19ad69b5e2e183008737bef308e8dfe6507e39", + "0f08d6c75aecf07fba2a2f493fd4f0e65896bf3f", "reftest" ], "css/WOFF2/metadatadisplay-schema-licensee-008-ref.xht": [ - "157b591dc6920d8d4bb8034f49275bc591cf3dc9", + "80728b454ceab99204b0a355538d409459ab9354", "support" ], "css/WOFF2/metadatadisplay-schema-licensee-008.xht": [ - "97ec539b1fc3e63c464fbdfba2d6488e37131075", + "7b622dbf279d2d05f2c05a67fe7e0e0fa3928c1a", "reftest" ], "css/WOFF2/metadatadisplay-schema-licensee-009-ref.xht": [ - "c86d771ad8c121c3d588f9d8b605dd6f4ae4776c", + "7626f56882dd67ae2478c965dfafe231b3393243", "support" ], "css/WOFF2/metadatadisplay-schema-licensee-009.xht": [ - "bf7b1e54f1a26a443f024935309666deb044fff1", + "ac0651223deb4d41217d7fad865838f123cbb0df", "reftest" ], "css/WOFF2/metadatadisplay-schema-licensee-010-ref.xht": [ - "cd35d44ca21bf192e605ca626095db710807d48d", + "6be567963771451c0938dcfb55ae7d318d276643", "support" ], "css/WOFF2/metadatadisplay-schema-licensee-010.xht": [ - "9c6fae30c7b29d161faa34a7e371a2b876413218", + "9c396c8c9d2748d67be5d31916d263e457a55d28", "reftest" ], "css/WOFF2/metadatadisplay-schema-metadata-001-ref.xht": [ - "9cec2faf2d4e8d9beb0261a92f7554505c2bb224", + "d8ad8ada40000190fe7577d2c0b67ceefee44406", "support" ], "css/WOFF2/metadatadisplay-schema-metadata-001.xht": [ - "5e69da4426b028878b69bce129db04e349f57fcb", + "691f2936b3505b5d09b89560844d145ff1aadd96", "reftest" ], "css/WOFF2/metadatadisplay-schema-metadata-002-ref.xht": [ - "4ce6f5526285a81e3faec18c7dcfc9726fe100c4", + "f4a24301acd088e7817cd3239b660e21fcd74fd1", "support" ], "css/WOFF2/metadatadisplay-schema-metadata-002.xht": [ - "8ecba668cb38dd43a9db5cf64ceafe943178fae0", + "7ad4dd3d8fe18cf14eaade255bcb77994aac9d9c", "reftest" ], "css/WOFF2/metadatadisplay-schema-metadata-003-ref.xht": [ - "1ecca63ec952b4851b795f0bedb46dec66127802", + "0cdf5a23a39a66fd9a2f3aea3dbc65c42d9d9f70", "support" ], "css/WOFF2/metadatadisplay-schema-metadata-003.xht": [ - "bdb4e72822717fdb5ffd35c4bfc2dcd031524ea4", + "ef37d72da149d76c2f08d9119bd358de548d324c", "reftest" ], "css/WOFF2/metadatadisplay-schema-metadata-004-ref.xht": [ - "4eb487d00a900c03fa08f836fce132fda4e38f0a", + "ffb476756692d18f18196c75863f14711b3870f7", "support" ], "css/WOFF2/metadatadisplay-schema-metadata-004.xht": [ - "40b27dda778569cc45db155f1e3b342851761f90", + "d4f7e3d6a16163af8bee04f62008a3534933e0b7", "reftest" ], "css/WOFF2/metadatadisplay-schema-metadata-005-ref.xht": [ - "b3f784911f2fecb33159e366531784f20eaae86e", + "a6f63bb872b5e6e9f3e0a04a95b5de3c5b60eb70", "support" ], "css/WOFF2/metadatadisplay-schema-metadata-005.xht": [ - "114fc6b4c1e33895157c6d6b74c98885fa46dc0f", + "250db9caa4100280499e1ea387f71c842e3a563d", "reftest" ], "css/WOFF2/metadatadisplay-schema-metadata-006-ref.xht": [ - "c1d163b7934508ccf85acf754fd5985c453808fe", + "1d893043301a15bda36dd5e62300ef52e16f5512", "support" ], "css/WOFF2/metadatadisplay-schema-metadata-006.xht": [ - "b374f8730fed0676e05b3c678b8ac5c7dbcc51b4", + "51707bd14632653de40721305cfffaf9bbd53428", "reftest" ], "css/WOFF2/metadatadisplay-schema-trademark-001-ref.xht": [ - "4f76f392816b20cf4cd2c6e968f69d96c1d91177", + "1d5393bbecb82b45276c61be1db7f0e6c9cb5cc4", "support" ], "css/WOFF2/metadatadisplay-schema-trademark-001.xht": [ - "1222259558163769b063e60fd1521707a912bd26", + "9fd67f5f909d18d1bd88cf991c78699fd52e4da0", "reftest" ], "css/WOFF2/metadatadisplay-schema-trademark-002-ref.xht": [ - "b99a87b0cb282e5a40d5fae9aff24dd39a4eb704", + "9c196a1f2937693a4654d10533be91e1f1d59dca", "support" ], "css/WOFF2/metadatadisplay-schema-trademark-002.xht": [ - "20a1ca40d0a84be78a8327afb53d2e812ff514ec", + "69d3082e4d6f98dc3d6eeee570186569244e6cf3", "reftest" ], "css/WOFF2/metadatadisplay-schema-trademark-003-ref.xht": [ - "20935b8e649c7af21cbe70d227d7537b2449f1be", + "06461819db0472388ebce82410baaeea60700543", "support" ], "css/WOFF2/metadatadisplay-schema-trademark-003.xht": [ - "552fd33ddce7933a5956f4b6cbc6b7c91783d542", + "ad5b2212164ecfed4151b42b4d0be5c5eb4de52e", "reftest" ], "css/WOFF2/metadatadisplay-schema-trademark-004-ref.xht": [ - "707f4144c525a08028c120353bad9c49d978fd61", + "2a95e67abe7ab1a8671c00c63f1ac60c12b63218", "support" ], "css/WOFF2/metadatadisplay-schema-trademark-004.xht": [ - "c0f02e30c37f0970a1270dbe1b0ff710723b7353", + "1d266567b367f7fda7d75db9a8c6d270ad91f093", "reftest" ], "css/WOFF2/metadatadisplay-schema-trademark-005-ref.xht": [ - "4ce3685d4016a9aa85b5d8d54ab53721873ff9ff", + "98dfb7df8ffbdc50045727c4814abada795e5c45", "support" ], "css/WOFF2/metadatadisplay-schema-trademark-005.xht": [ - "45a6dfdd2c085ba1f0558cc77e94ee31c05e60c8", + "e852eccc8540324c2eb8aa620c6aac2b01adcaf0", "reftest" ], "css/WOFF2/metadatadisplay-schema-trademark-006-ref.xht": [ - "fb4be694b7d6d1f173e206133d7a7992c85edc62", + "67f3e23fe0fd30c7c7021027dee574624aefddcf", "support" ], "css/WOFF2/metadatadisplay-schema-trademark-006.xht": [ - "9e296021f9c054b2177ce650ac11092f9b8774b1", + "37575543e5331ecf91804b176122016b1bd92f18", "reftest" ], "css/WOFF2/metadatadisplay-schema-trademark-007-ref.xht": [ - "b2870179ef017dadbca82d0970ce8ea85cad77da", + "62b2871317e3b528e5d4e0fb0de5acb3723a4c69", "support" ], "css/WOFF2/metadatadisplay-schema-trademark-007.xht": [ - "0769d211438e4300658f7d8c848c1f929885eaa3", + "b597bed3f12c9362d08f2485b29b440c3e1f9420", "reftest" ], "css/WOFF2/metadatadisplay-schema-trademark-008-ref.xht": [ - "629d91f068324f603439cdc062466dc62481a08a", + "5e9d4cf96a7de128e7214be7c6f42bf6be37c461", "support" ], "css/WOFF2/metadatadisplay-schema-trademark-008.xht": [ - "c9a00cefe6fafdaaf8d00492c2bb985745bfce0c", + "743c7ba03066082bf53f9e161a032e773a85c07d", "reftest" ], "css/WOFF2/metadatadisplay-schema-trademark-009-ref.xht": [ - "7f2fda60e688ab43753d7c5317c97cf2ae29f682", + "2126b8b1c51de5e29385a3bfd26da95fcccd4290", "support" ], "css/WOFF2/metadatadisplay-schema-trademark-009.xht": [ - "7c3f2ebe5f219963dff8c7026768cd4ca0753ff1", + "9c0d3901460310b8ff33b08a300f89639f88c077", "reftest" ], "css/WOFF2/metadatadisplay-schema-trademark-010-ref.xht": [ - "24e9f0a358b2bb32248265aaea131486bba560f6", + "e561c7158053de9b39a0bb03f0c47e3e720d94e9", "support" ], "css/WOFF2/metadatadisplay-schema-trademark-010.xht": [ - "86dc7854d4ac926ea3b1174e0c5a0537338e1f8e", + "aa75cf303ef6ebcf9e5f4bd5b2bc99848061a50f", "reftest" ], "css/WOFF2/metadatadisplay-schema-trademark-011-ref.xht": [ - "89c4b7a1cd9495c4f6d41b9b7fde6fdfff28db9e", + "9916a56f580076448b1d697a0b636b0cd2b99c1b", "support" ], "css/WOFF2/metadatadisplay-schema-trademark-011.xht": [ - "1f81833fd53b76ced23e39d8190fbbd345bc6137", + "93cecca09d560fa83dbeb75f84a4c2c9d3387c8f", "reftest" ], "css/WOFF2/metadatadisplay-schema-trademark-012-ref.xht": [ - "aa824b9be17f9a0311c5fd59cae6402d8148f8da", + "f0b55b8eee003fd4a7aca41b147dd6ba13e0302e", "support" ], "css/WOFF2/metadatadisplay-schema-trademark-012.xht": [ - "ca7d337a589a2e5c31ef3019fc06ca3470aa2c24", + "9ac0280a710fe93ff1ed3bb4eca776ba17a9559b", "reftest" ], "css/WOFF2/metadatadisplay-schema-trademark-013-ref.xht": [ - "4ebd8d037c99127ca153e06d7f1dc321549ad580", + "c59c4d45225d0818c4beb60bef08bc6d75320b61", "support" ], "css/WOFF2/metadatadisplay-schema-trademark-013.xht": [ - "f2c075688fb2663a221432f62456a8b4fb64f8d8", + "fe5441cf46498d6cce5f46476d7fc656f9d7a8bf", "reftest" ], "css/WOFF2/metadatadisplay-schema-trademark-014-ref.xht": [ - "8a8cab88a953bcd2e8d5ab31bd82a9663a230fea", + "cf33d33872614aef451c2ee46cebfa85dc023d8d", "support" ], "css/WOFF2/metadatadisplay-schema-trademark-014.xht": [ - "103895a9187a0b11523c50d85f4acb6251f1ca49", + "2f44aed2a4548375f4e7428aed0fce294df8838a", "reftest" ], "css/WOFF2/metadatadisplay-schema-trademark-015-ref.xht": [ - "a062e8846301a3b3e29432461a0d6dcc0239ad10", + "bff262928b8965edd782b05bcb6249189dcee84d", "support" ], "css/WOFF2/metadatadisplay-schema-trademark-015.xht": [ - "bd68d1d363c1ffffb34cfb2553666db083b1110d", + "53d27e8d41fbcadb8d3fd8090f37ecde6e491f0b", "reftest" ], "css/WOFF2/metadatadisplay-schema-trademark-016-ref.xht": [ - "e912c802238aab221ff397836ede44f0e0453eb2", + "d0b9faa61a8df5890bcc96dd4ff7f958c40c71c5", "support" ], "css/WOFF2/metadatadisplay-schema-trademark-016.xht": [ - "e80ba02609dda8acda6873899a648b8026f0892b", + "57ecc9e7d19c78e2ab45cf10ca47fd65223c4bb4", "reftest" ], "css/WOFF2/metadatadisplay-schema-trademark-017-ref.xht": [ - "9f3ae2c1b8c22e3e192d598fad7d647bd72a2e00", + "37d52cf9e129ebf719f337726b2c7a2b93195f06", "support" ], "css/WOFF2/metadatadisplay-schema-trademark-017.xht": [ - "49a805c5c5596787dcb381e5fe223409490c216c", + "096e9422db0484dd80efb5d836ce3bd30209ff2c", "reftest" ], "css/WOFF2/metadatadisplay-schema-trademark-018-ref.xht": [ - "3f4316ff1e4b5d3ecaf43bb7cb0995f06f148c98", + "ed4bef8c8dc2858c1b7736db3a67d6744212366c", "support" ], "css/WOFF2/metadatadisplay-schema-trademark-018.xht": [ - "b9ad622915c04eb66a3b67176eaabc9a4197c429", + "9cdf5f90163b3ee674314061de37133031e12589", "reftest" ], "css/WOFF2/metadatadisplay-schema-trademark-019-ref.xht": [ - "1fe44eab19612a260c10fc12b229c58473ebfa02", + "1f25b345101e51f77387cfe98ba33469d47652ee", "support" ], "css/WOFF2/metadatadisplay-schema-trademark-019.xht": [ - "6b218c4ec95bfc69bc02374c55dd6d4dca6d96e9", + "57b932f1bff6a0292e2e1a8ed5b5074ece6fdeee", "reftest" ], "css/WOFF2/metadatadisplay-schema-trademark-020-ref.xht": [ - "1524fc6ec76c96da92dacb806a400f48d254ba0e", + "ea741152214531d94125af2ef0a6df21fe1ca8cb", "support" ], "css/WOFF2/metadatadisplay-schema-trademark-020.xht": [ - "01b20f2978671a3bae526239b7cfd464c86184d8", + "20d7acc3e28b24ef29cc793402c9cab9f7d4668e", "reftest" ], "css/WOFF2/metadatadisplay-schema-trademark-021-ref.xht": [ - "d46d5d60ced768bc0607336162db593e448b9672", + "0af299b65cceef962d7e662a8c5fc2bf41f9080e", "support" ], "css/WOFF2/metadatadisplay-schema-trademark-021.xht": [ - "1c5b9dea88323a8730f9c9cf1e418d781000aafe", + "bbd9f0d35b9b3b6ef4dcca184128fbff85f5d69e", "reftest" ], "css/WOFF2/metadatadisplay-schema-trademark-022-ref.xht": [ - "9ec50a5e2a470b2e89e53e0ac63bcf4d48d1ee0d", + "6e0dd8a87caf8e1781f4e3a4474cc79ed6230c9f", "support" ], "css/WOFF2/metadatadisplay-schema-trademark-022.xht": [ - "04423f5c44b909a9ebc340b7700c0b3bab5794a1", + "692ccf2d51b0e1f3378af232e7c6a8d22947024b", "reftest" ], "css/WOFF2/metadatadisplay-schema-trademark-023-ref.xht": [ - "665cb3f450e0461af26995e54772738800219298", + "1ab341f726d37cb104eb3d61bda93fad2ca8d3fc", "support" ], "css/WOFF2/metadatadisplay-schema-trademark-023.xht": [ - "6513a006b18241619528de1a77db6c805e2c84e7", + "489492608258563d751a202f5ac3374b1dd1d4b4", "reftest" ], "css/WOFF2/metadatadisplay-schema-trademark-024-ref.xht": [ - "b68ea4cefd6c89f1f98f1c6e884abe9a960e7548", + "287cadd735e111d2f570a531219012574e98ede4", "support" ], "css/WOFF2/metadatadisplay-schema-trademark-024.xht": [ - "474da0a3635e2764ceb289b88e3d2f0ad3ad8e2b", + "85b8a3a2cde7946b3289dac7a090c112a6b4c3bc", "reftest" ], "css/WOFF2/metadatadisplay-schema-trademark-025-ref.xht": [ - "143cf54c105a4595cf48c3afb60b2ff371e788ef", + "9e966addfe7e98874cd5256f2d7ba2361213d4e0", "support" ], "css/WOFF2/metadatadisplay-schema-trademark-025.xht": [ - "ad8e725884d652f02966c03373aaff727eef35f8", + "2ee000a733bcb333126663648472d0a134107013", "reftest" ], "css/WOFF2/metadatadisplay-schema-trademark-026-ref.xht": [ - "5180eaf3ffdf2f496bccbf1564c1eef4e600f1a1", + "363556b506ef18a1fb2e3a4a4ae7f53917570b79", "support" ], "css/WOFF2/metadatadisplay-schema-trademark-026.xht": [ - "ba6946c5a524d362395e81bc60a52589b5849353", + "34d3c63fdaf5ad910ff52d269f379893a422429d", "reftest" ], "css/WOFF2/metadatadisplay-schema-trademark-027-ref.xht": [ - "256f8234931d862dcb571240d3906ef227a30cf0", + "c3d8bd1e69d310593dd4a5dceb70f8593d456eb0", "support" ], "css/WOFF2/metadatadisplay-schema-trademark-027.xht": [ - "359347e02b265630afab442c8f0fad87ec3e72a5", + "8e8e63350ca900eb7dbce2fd72713cd658d7a02c", "reftest" ], "css/WOFF2/metadatadisplay-schema-trademark-028-ref.xht": [ - "813365a9b6f619a5b728114743c6dcaef0ba7ab5", + "56df24e3f285069102fbe846f1e02975198e603a", "support" ], "css/WOFF2/metadatadisplay-schema-trademark-028.xht": [ - "972a0c4ae57d041bf753ada3e1f7c0b751c05a70", + "18ae6e1e49f36628bbae980051529fe0bb6cde24", "reftest" ], "css/WOFF2/metadatadisplay-schema-trademark-029-ref.xht": [ - "ee4168463c687cf40372f818fd6782c94aa7f86e", + "24c06beab0941789333ffc9e8f370c53a6c96fbc", "support" ], "css/WOFF2/metadatadisplay-schema-trademark-029.xht": [ - "83981de0db2e8f82ac8a55c1471ea28b5f0bee36", + "bb075d6f11a36b48d39bdbff02849913792ad54c", "reftest" ], "css/WOFF2/metadatadisplay-schema-trademark-030-ref.xht": [ - "d4defcdf4dc6beeb5297b1a451e6b63f2b221824", + "198909bcabf6b8be4833a31a425dea4a78ffbc74", "support" ], "css/WOFF2/metadatadisplay-schema-trademark-030.xht": [ - "283202ceb93c418d0b343e6208507dd71bd6d6d7", + "32f01d12acd9d30cd4fef14ddc59552419f0f663", "reftest" ], "css/WOFF2/metadatadisplay-schema-uniqueid-001-ref.xht": [ - "150a1e8da3f3da7dbfc8f75c866c849db22ae426", + "e23ba6c17ae30d528545a075a04fb3f9a218b51a", "support" ], "css/WOFF2/metadatadisplay-schema-uniqueid-001.xht": [ - "90ab551632bd402ffa14f46a4d7d8faa89f4379c", + "48e405ea811d9ee4396a759324aafd0ad038c957", "reftest" ], "css/WOFF2/metadatadisplay-schema-uniqueid-002-ref.xht": [ - "f753bbbc962dc896191018ec3248c7120cadb5c8", + "ada0aa8f060c06189fdb0dc93f78b27e9f5b306b", "support" ], "css/WOFF2/metadatadisplay-schema-uniqueid-002.xht": [ - "174d71f672f434d1ad3009762dfc733e030a4e83", + "9c776f033637f2a52d0ee390c7b9fab2e999a726", "reftest" ], "css/WOFF2/metadatadisplay-schema-uniqueid-003-ref.xht": [ - "bd5dd4ea4440eb37794344f74a7598857e5c722e", + "db007ea6ef12c27af2924af4a93b6aa643c84e86", "support" ], "css/WOFF2/metadatadisplay-schema-uniqueid-003.xht": [ - "2537f8710b296e9df2a28bd0031c5971cbad86b6", + "bfe256a93e5d20a921e0bf32857e3119e780afeb", "reftest" ], "css/WOFF2/metadatadisplay-schema-uniqueid-005-ref.xht": [ - "ad5e224370b744c9faa675056fa5d30695fe426b", + "e63c6c76c62e6a83e5ba490078da385e317e0e7f", "support" ], "css/WOFF2/metadatadisplay-schema-uniqueid-005.xht": [ - "3f6049721509a83a49091accb7d0223b15dbeb01", + "6fb6eb93b9fba91eff475ec008df75c070020974", "reftest" ], "css/WOFF2/metadatadisplay-schema-uniqueid-006-ref.xht": [ - "38e2ee0d3d4b8142140517ece1b10ffdb531ebb6", + "da2b287136d4993e3cf33f7f1632698ced6add26", "support" ], "css/WOFF2/metadatadisplay-schema-uniqueid-006.xht": [ - "877428b0a1215eb2c85168a8246a33e82205800d", + "81dafc2f8afd623192d87d6dc23c3947b1ae464f", "reftest" ], "css/WOFF2/metadatadisplay-schema-uniqueid-007-ref.xht": [ - "bec024284343baeae3dd116254fe5e596b38c9d7", + "92051822ce1b09580cc2a3bc6f81dca51e9662a1", "support" ], "css/WOFF2/metadatadisplay-schema-uniqueid-007.xht": [ - "c2346f7453c0e05dce95e3b966de61f7a76fcc93", + "5686fa4c71f27889cc95e1ac7e1494f93d21df0e", "reftest" ], "css/WOFF2/metadatadisplay-schema-vendor-001-ref.xht": [ - "f3cd0604a7df1155f05c6924eb48c369acdd56b6", + "b7b3146732cabc7e63ab57fe0e97060ef0193d6d", "support" ], "css/WOFF2/metadatadisplay-schema-vendor-001.xht": [ - "93745229e3279db0403529bc17976263b8b71b94", + "406e335a48fa0bb8822eca46daa629e8bf5e0019", "reftest" ], "css/WOFF2/metadatadisplay-schema-vendor-002-ref.xht": [ - "137a69eb7c0e320fd9146c4f5dcccef5be987e6e", + "97c9da3a9fca9071013c92acf64506be03de4659", "support" ], "css/WOFF2/metadatadisplay-schema-vendor-002.xht": [ - "feeec08f8957e11929e619a7d95f17267be5aaf5", + "7493e1c7c349a555cacbb6b71bb48ad5e445c765", "reftest" ], "css/WOFF2/metadatadisplay-schema-vendor-003-ref.xht": [ - "608d37ba45bcd548e8eaef86adeadcc202a50671", + "93fce7bbb6ae1bc1e0db0618c82af12182faf3a0", "support" ], "css/WOFF2/metadatadisplay-schema-vendor-003.xht": [ - "39694a7439b53aacd2f43048fd04bd069fc31715", + "a4d5fec77602fae8e2b83bcf5899eb06d46fd2e8", "reftest" ], "css/WOFF2/metadatadisplay-schema-vendor-004-ref.xht": [ - "5a623b669d7fc2fe0ae16957e15b11347b749f65", + "cd8ae5f0fb2b065b6ba80527993a9f139cc53f3c", "support" ], "css/WOFF2/metadatadisplay-schema-vendor-004.xht": [ - "940b65930059774e3c9e4ae22ea27b0dd53e0851", + "f92a6b3e715644b759deb60d6d6c4a6396c1124a", "reftest" ], "css/WOFF2/metadatadisplay-schema-vendor-006-ref.xht": [ - "3d68b2d1443e4c3de3c21f9eda8e976e6a596026", + "71873a0eb1c061fd4017cf3583617efc3d504809", "support" ], "css/WOFF2/metadatadisplay-schema-vendor-006.xht": [ - "80c6aeb3ae74ed94b32ec411787deaa899548c87", + "deaf33644cf4f28725b76661524af4f8cc490b1c", "reftest" ], "css/WOFF2/metadatadisplay-schema-vendor-007-ref.xht": [ - "602bb8d78fd235efca26fbb061f296df1a49d795", + "b03bc6956e74f8e961b52285ed82a2d39d01b84f", "support" ], "css/WOFF2/metadatadisplay-schema-vendor-007.xht": [ - "5f4004ba78219a50cd26e00c44c92ede425d5afd", + "2bce5225ba8d92e348b50ba61b5848f8304a60e5", "reftest" ], "css/WOFF2/metadatadisplay-schema-vendor-008-ref.xht": [ - "521698ac5f934c38192d4ff078b2c23f1f43edeb", + "57ab5649fec8f5b53d50ba8c302a427832edd59e", "support" ], "css/WOFF2/metadatadisplay-schema-vendor-008.xht": [ - "8ca3f342bfba8df8c378f96b968e9854acf65c2f", + "b73017d123da2259ac2119e8dfbd94a64ac92e15", "reftest" ], "css/WOFF2/metadatadisplay-schema-vendor-009-ref.xht": [ - "89fe06539f2acaa1bccdffa221f9f1472e2fbda2", + "ddc0443204cef59a8615472e8cfcae263925dfb4", "support" ], "css/WOFF2/metadatadisplay-schema-vendor-009.xht": [ - "e9495dacd3e0c492ab0859025af6f91b041ff2c1", + "f960053cc961fbfea74f87fdc0ea6bbecb4c9487", "reftest" ], "css/WOFF2/metadatadisplay-schema-vendor-010-ref.xht": [ - "cfb6d03ffb1fd39e3029add1d76794f69056464d", + "5cb6423de6a8e3220842dc30fe337683e32232bb", "support" ], "css/WOFF2/metadatadisplay-schema-vendor-010.xht": [ - "020fed0a8675aa65b7acb0276eb7e3a3b2c4bf29", + "b141d38a446ad328909b9a9ac47f37b6fe0d0734", "reftest" ], "css/WOFF2/metadatadisplay-schema-vendor-011-ref.xht": [ - "a2e1bdcef030efaeacbea7d4770cb963c815539d", + "1c3e81cc487976abf02aaa7af1a6d38137b0c43d", "support" ], "css/WOFF2/metadatadisplay-schema-vendor-011.xht": [ - "ca9783c6523b6fcfc9a73d4dadc692e2e52fcecd", + "7fcf24afd3719c88d67a88b8246add6526447cbc", "reftest" ], "css/WOFF2/metadatadisplay-schema-vendor-012-ref.xht": [ - "b7545b2290b8498a513a8b9857c8dae88a5ccf6f", + "fefc4fa41be384a2e9b1692bf3f59c0b988fce3c", "support" ], "css/WOFF2/metadatadisplay-schema-vendor-012.xht": [ - "f8ac64b6f6a0677350635c45f266f05ec9779d88", + "4b7b071e2747e1d1b4a28bac86ac50e5369ddac8", "reftest" ], "css/WOFF2/metadatadisplay-well-formed-001-ref.xht": [ - "9df59601528041afab81f26fe5720c9b879d87ad", + "9ac3f9035d0c65511085c48fb39c7001b7331312", "support" ], "css/WOFF2/metadatadisplay-well-formed-001.xht": [ - "dc6e09f398789ffb17e20a2f799f8d52afb8fdc6", + "b0dadfe775838419332323f87f67bc157bc0ab5b", "reftest" ], "css/WOFF2/metadatadisplay-well-formed-002-ref.xht": [ - "5e43965576753758c359b43a0fcaaa0fdc23bb84", + "e1757a62ced51f9dc340eb9a955e5de3e1d1f851", "support" ], "css/WOFF2/metadatadisplay-well-formed-002.xht": [ - "43ab6d84c739a9f60619cb133eeeb606fd9740ce", + "29fac420c9bd666e9c950a45714942b208331523", "reftest" ], "css/WOFF2/metadatadisplay-well-formed-003-ref.xht": [ - "df91f88dc38e79e0757c1b617ddb135c1471d642", + "c372c75e01f5494abd7c912ce454dc025ed53eef", "support" ], "css/WOFF2/metadatadisplay-well-formed-003.xht": [ - "6a7727242d1e1c469486a7f77705a7ae0fcbbc0d", + "28670c41c5b2ba61c4fdcb4c6a8ce94772c54fff", "reftest" ], "css/WOFF2/metadatadisplay-well-formed-004-ref.xht": [ - "b9b681bebade24dc347d19af9e41cca9972d2393", + "8e76b028387ab28601bc7d00c7462f231661680d", "support" ], "css/WOFF2/metadatadisplay-well-formed-004.xht": [ - "76e6c65aea64735b9db5c280d274db99bba27cdb", + "bea4a244851d948c361aaecc262a382119df6962", "reftest" ], "css/WOFF2/metadatadisplay-well-formed-005-ref.xht": [ - "eb471f07add09d6069e7e8abca844a76554b7245", + "77cfbeda75e7091cf71cebf774734b999a846cb4", "support" ], "css/WOFF2/metadatadisplay-well-formed-005.xht": [ - "69f69911a7190a36bd211c9e53e364c964ede376", + "045a4a3d7fadc4b9dda3e76b2080b77d5ff2063f", "reftest" ], "css/WOFF2/metadatadisplay-well-formed-006-ref.xht": [ - "6b52fb2533700079315e88f93eec62d6bdc0a6e6", + "ba8e0c22d0c3f58cb0ed8b555ae6e7c2b4b64eb2", "support" ], "css/WOFF2/metadatadisplay-well-formed-006.xht": [ - "12fb046871c0a688d15476cea946bb44fb7ca6b8", + "3838d003f05385d6ddc349a3c853d355344bfee4", "reftest" ], "css/WOFF2/metadatadisplay-well-formed-007-ref.xht": [ - "0e0fa0a03453c7b69d02edcadf6f8956765d0905", + "4ebdf1982d998177d8365e213d72afa3fc55cb71", "support" ], "css/WOFF2/metadatadisplay-well-formed-007.xht": [ - "1153e65056c56691dac32b367962209b4c6880d8", + "317751900df25ff1b52e1dac844d950f685fb359", "reftest" ], "css/WOFF2/privatedata-noeffect-001-ref.xht": [ - "1236098acb537a2dfe14cf3c40762fc24fcb2db4", + "6dfded3814b9bf0342515f14d445942937794536", "support" ], "css/WOFF2/privatedata-noeffect-001.xht": [ - "9d51062241fe309222c30b2d7df2b685a72d40f4", + "3cf21a3330e7cfa5bf7247fac576adc04cba6a2e", "reftest" ], "css/WOFF2/privatedata-noeffect-002-ref.xht": [ - "b38606f22c51e92d31e7961795a673017b047080", + "ce28725deae31ebecd06c48da9f958e55e256fd4", "support" ], "css/WOFF2/privatedata-noeffect-002.xht": [ - "860f7cda576e172d6026b6ff5e94db7550b3ddd7", + "8a68d8b41358c8fe17b9f276a90fd8c0793ccb44", "reftest" ], "css/WOFF2/support/SFNT-CFF-Fallback.otf": [ @@ -494751,11 +495025,11 @@ "support" ], "css/WOFF2/support/available-001a.xht": [ - "f0f8d0c812c04e9d8d92de518c3c5ee3c5be6d72", + "d2e35b515d7c5513ff296908169531a4a350b0b1", "support" ], "css/WOFF2/support/available-001b.xht": [ - "40b719cc57be9a9fb1abcb2387914af8b6b13908", + "b0386ffaeb87725cf487c84969f9f3625675045d", "support" ], "css/WOFF2/support/available-002.woff2": [ @@ -494763,11 +495037,11 @@ "support" ], "css/WOFF2/support/available-002a.xht": [ - "4846124a378a0ac0563358cb5ed7cf324d4b28fa", + "86b213c3405ee19b4feea09d0fc878d58afeefda", "support" ], "css/WOFF2/support/available-002b.xht": [ - "aa13699a7a06c0a73cb9deed94056343bfa54855", + "5ef103fbc3bc26a30d1c5b8515c2137637c5f06c", "support" ], "css/WOFF2/support/blocks-extraneous-data-001.woff2": [ @@ -495971,247 +496245,247 @@ "support" ], "css/WOFF2/tabledata-bad-origlength-loca-001-ref.xht": [ - "6c6f4c46030bf5063c45957e4f1d0f1625fe40bb", + "abc5baeb06a03e323b0a4b194042f9312a9c78a8", "support" ], "css/WOFF2/tabledata-bad-origlength-loca-001.xht": [ - "cb69a92d16460c566ce5da497c76daf749eb3a20", + "bf0d90cd0f83bb67a677f24e52ade258ca667fb3", "reftest" ], "css/WOFF2/tabledata-bad-origlength-loca-002-ref.xht": [ - "f5ecf9b344a85da463639a5ea95baa09f0a5d9de", + "022fb4cf70a5ceb721f12800618747685bcfd3ce", "support" ], "css/WOFF2/tabledata-bad-origlength-loca-002.xht": [ - "2bddfd436d49a8da7d9fdc718f10d4c446810f50", + "543ef6f278eb1430be10300974a30c8150166c13", "reftest" ], "css/WOFF2/tabledata-brotli-001-ref.xht": [ - "dc247487958277292f8345f3a95923348599edeb", + "3c4e580e4931c3765c0f8f5c214375e4a5e8b361", "support" ], "css/WOFF2/tabledata-brotli-001.xht": [ - "99da1939b40cbb172d2332ad3ef677e5594f5094", + "8bde94b148fd228edb3c8ea273d7c46ad8c6c148", "reftest" ], "css/WOFF2/tabledata-decompressed-length-001-ref.xht": [ - "2326ed3d66c57c78f360461dcd1463c79318708d", + "f922e7550e08a208f9fb1b46a03b97eade889506", "support" ], "css/WOFF2/tabledata-decompressed-length-001.xht": [ - "e48581581985f5a6ada647f8c980a6637c28f870", + "e11d8526db09fb0515d45e15f1e2f229387050b7", "reftest" ], "css/WOFF2/tabledata-decompressed-length-002-ref.xht": [ - "99c9076f8ace3f9e0806dc825a86e5216a13ae8d", + "1e7d135a7c01f7b8c972aceacf4622cb6fd26039", "support" ], "css/WOFF2/tabledata-decompressed-length-002.xht": [ - "95ccec29bd1149098ab6b78b3a9104bf28e3ad39", + "63d698c570a1c7a9f216ecf3bf6287a1f16e38cb", "reftest" ], "css/WOFF2/tabledata-decompressed-length-003-ref.xht": [ - "028f4081b7139010cc9f626731438d88d151f1a3", + "c34877e52f0122f151d9b4074376c61766b1d8d1", "support" ], "css/WOFF2/tabledata-decompressed-length-003.xht": [ - "a3b01a1652e816506052a6c81090f1ae23ae3b36", + "e3000540b1090905c1d385891ddcca6b6d35fc33", "reftest" ], "css/WOFF2/tabledata-decompressed-length-004-ref.xht": [ - "8a03ef9409c605e143818333b53c09b1405a15b7", + "a4e2706e327488afa30e354229e1689a0f7c6eeb", "support" ], "css/WOFF2/tabledata-decompressed-length-004.xht": [ - "d33ce7902d64ee0870ed180cbdd1cfdac599ace8", + "700cf77f0bd575f6a5dff2e5b215624d26cb66e4", "reftest" ], "css/WOFF2/tabledata-extraneous-data-001-ref.xht": [ - "d38463a13cb0aef359f8ec6323b93168d831a430", + "10d44d5079b9031649b42d0dc020b455d65f4deb", "support" ], "css/WOFF2/tabledata-extraneous-data-001.xht": [ - "557b8a0cc08af063f362d9ee759ee6b63391cef6", + "9a77215fdffcd08bc95816945b61d4ae58152cce", "reftest" ], "css/WOFF2/tabledata-glyf-bbox-001-ref.xht": [ - "39fc4f41fe6c49b9ec0de8e93b6cfd2aef224d64", + "a6a0e1746853feca098ef273025d9e061f4aa365", "support" ], "css/WOFF2/tabledata-glyf-bbox-001.xht": [ - "4fc7c5a6164a7d9b5788eec977b612a2bcf915a9", + "ee34619ebaa43f8234e994976da6042e55765738", "reftest" ], "css/WOFF2/tabledata-glyf-bbox-002-ref.xht": [ - "b6772651e2fc695afa0f2acf5f0a2fa4180213aa", + "804ec4facb8481956cd8f5fdafad3b702a5734b4", "support" ], "css/WOFF2/tabledata-glyf-bbox-002.xht": [ - "b3c615b70b99e4d56b4c97c04e07525f06d99b3c", + "fada9f04b99e5777ffa57f503c37842ff49d6688", "reftest" ], "css/WOFF2/tabledata-glyf-bbox-003-ref.xht": [ - "08942c732de0cd05d30c003e4ab17a372398caf1", + "e811840f31a1d675f25579459261ce1dd1673a84", "support" ], "css/WOFF2/tabledata-glyf-bbox-003.xht": [ - "06be91a77a3582d48549b36da510950e89c36104", + "9427dce221c7298a078494edaac9720adde6eb0f", "reftest" ], "css/WOFF2/tabledata-glyf-origlength-001-ref.xht": [ - "f25d26db4980fab780a902dd5d67300c290e0d2d", + "27e938931211a8dd7af4e59dc2f5cedf026a2f47", "support" ], "css/WOFF2/tabledata-glyf-origlength-001.xht": [ - "982de529fc4bf0545a929ff5f087009a2fd31dcc", + "7cc8574aa2fa3724ba661e7098678c7d8823336b", "reftest" ], "css/WOFF2/tabledata-glyf-origlength-002-ref.xht": [ - "71a2de6924c94992e1844d0c6d0f27769ddad7ce", + "4268e6707c049158c181e7cd62d63f11d4d9e789", "support" ], "css/WOFF2/tabledata-glyf-origlength-002.xht": [ - "327c6fa746f6e8ff256626b043d2fa9be6ce42c7", + "d19d8cb62b6b94f2e6413e748d2472f655309fc8", "reftest" ], "css/WOFF2/tabledata-glyf-origlength-003-ref.xht": [ - "7507f42fdd6aafdf65871bcfbb8a908fc3da78ee", + "45f14f2e973b20265e7f593d32e9e217c19ecb3e", "support" ], "css/WOFF2/tabledata-glyf-origlength-003.xht": [ - "513579d874b497478c880b5620e3a29865ce5fe2", + "af2300309306241443d28046d96be7aa7c6403a6", "reftest" ], "css/WOFF2/tabledata-non-zero-loca-001-ref.xht": [ - "6d6c3b481fc5890f8a4654ddf7c3e32bf6e2947e", + "79496fdd47d11451064cda32006f102973464cf1", "support" ], "css/WOFF2/tabledata-non-zero-loca-001.xht": [ - "f0eb7b5daa570a34c4221ac894efcc0632a05118", + "5cd09c41c4161d0bccc882e20d4c938510258b5d", "reftest" ], "css/WOFF2/tabledata-recontruct-loca-001-ref.xht": [ - "edb68f0f17706c86173a7e989efa756051ad986f", + "9d0e35959016706dec9f505ea595d7d7a5d14b0e", "support" ], "css/WOFF2/tabledata-recontruct-loca-001.xht": [ - "8be8166fe62dd873aa0adc72c922148c40ca3a64", + "8dc053b7ca73aa5b525d4ce77d5f1f3020225fa2", "reftest" ], "css/WOFF2/tabledata-transform-bad-flag-001-ref.xht": [ - "d35261840137f7a298f8ec6be46b0af2a913ab0b", + "88477ab1d39aa55fee6f344d8efb79e18b73132e", "support" ], "css/WOFF2/tabledata-transform-bad-flag-001.xht": [ - "528d131ce0a8af5a45f05d94d8efc13c6afba2ca", + "cdae84df2959fa4917b7483fd33b9cb20886f7bf", "reftest" ], "css/WOFF2/tabledata-transform-bad-flag-002-ref.xht": [ - "2f5237ec5cc4dd7a3b5d4a0b0c2ab128ce3a0d26", + "255415edb537d0053b93518d4a9c546ae67efb17", "support" ], "css/WOFF2/tabledata-transform-bad-flag-002.xht": [ - "cc8f421deb25dc55018fefd553e9057d09a86997", + "ccc485587431c4b7dd4884d3e8f6417d54af2b25", "reftest" ], "css/WOFF2/tabledata-transform-hmtx-001-ref.xht": [ - "b48742e43f50705438b8262266e73545efb67dc9", + "eaf4f2bb2567e3a4db87734e9eacf25a58133ad8", "support" ], "css/WOFF2/tabledata-transform-hmtx-001.xht": [ - "d430936bccf37b55af0a109b7cf682436cbdaa2e", + "2b1f8c1cd097993393e3c585abfe0199286d8ba1", "reftest" ], "css/WOFF2/tabledata-transform-hmtx-002-ref.xht": [ - "a0280ff8ca9749adbc0e7aa52d2342a3eba11f3d", + "59a37c39b531d6d0d148a766dfd28501f6dfe04c", "support" ], "css/WOFF2/tabledata-transform-hmtx-002.xht": [ - "49d79c202646cd3c4ccd26ab16464c8edd6d4cda", + "77feeb071e3dad1a8bf1a5ded999f12906d18bd7", "reftest" ], "css/WOFF2/tabledata-transform-hmtx-003-ref.xht": [ - "7ce3a68eecbaa30604bd1cb0f6edbb5e73ed4e5c", + "ac2f272680144f914b768b5feed09dcc617ff87c", "support" ], "css/WOFF2/tabledata-transform-hmtx-003.xht": [ - "e672dbd73f000f7e7b0f54c3dae5393d34427a09", + "1685a256f084e0ea9934407ef4778add14cc81e3", "reftest" ], "css/WOFF2/tabledata-transform-hmtx-004-ref.xht": [ - "2fb259d1389d48fba911f85a734110d91d7f79ef", + "aac02ec4f5c6392a1966904ee9e55ab238345d05", "support" ], "css/WOFF2/tabledata-transform-hmtx-004.xht": [ - "270fd342d8edc53c0c0c15f6f7e7c034efac60b7", + "0ec03060a224882b93798b6452ca43df7c74abc5", "reftest" ], "css/WOFF2/testcaseindex.xht": [ - "61e31662525a66543159dc57c85b5d014bfb1403", + "a8627edb97ec0446d800a3e27f98518a319c55c8", "support" ], "css/WOFF2/valid-001-ref.xht": [ - "df547716b8f0c8249f5c181127c09d4d9a3e0a0f", + "eb8275ce5d75e446ee85bb783ca98f9517afd2b9", "support" ], "css/WOFF2/valid-001.xht": [ - "af9b2c5c0e29793a59035f497aa17f6cc7c08687", + "3a0939ac976d4b6136bd5357092076a9a650245b", "reftest" ], "css/WOFF2/valid-002-ref.xht": [ - "a0a39e5bdbcced6125c6e715ca719f2164b56cdd", + "7aab5bd35e94d0c52dca0e61086aa0446b5d767c", "support" ], "css/WOFF2/valid-002.xht": [ - "3b6704b54b4bd4447cea3a0613e57af196c39856", + "d88b1fdb68ba7ceb13c2ea8bddee4f453be55b35", "reftest" ], "css/WOFF2/valid-003-ref.xht": [ - "ab8daa0b790956da16d1ebcb87070af1b258e974", + "2c0656c473a93ed7afcbeed9eded5981a609f617", "support" ], "css/WOFF2/valid-003.xht": [ - "39ca1a42b204e916fb94437d4375d7d707bfc509", + "a6983a5547236672ba05cd08681e982c73de711c", "reftest" ], "css/WOFF2/valid-004-ref.xht": [ - "2ff10f7d8a743f7d9797f80ae6034b7b8f3afdd8", + "7e8324c22ad78aaad6b7ca57baab66703596ebbd", "support" ], "css/WOFF2/valid-004.xht": [ - "70cfb6f702ddcf583b997decb0ee820c0ba1a544", + "c68077dfa2dad84f16aa2a07868bf42015247af3", "reftest" ], "css/WOFF2/valid-005-ref.xht": [ - "972e0b5054e4893da3f8877a8ad4cd6347bedaf3", + "18e1dec20bf6a61cc14c73371b987093a43e02bc", "support" ], "css/WOFF2/valid-005.xht": [ - "f182f192b96cdd75730f851ec7d32b30a125a49e", + "8cbd1525eb2121f558a76ab35e2edda2d0b19905", "reftest" ], "css/WOFF2/valid-006-ref.xht": [ - "23763a19b8d042f360bfbbf81e7ba7aade76044d", + "138ce8183e2cbd378e89eaa79ecd68477d3d36f2", "support" ], "css/WOFF2/valid-006.xht": [ - "9772e89775c413131c1d58eb99ee730a5a139c90", + "46285602c03028bc644dc7e7fe7f6c80741d5757", "reftest" ], "css/WOFF2/valid-007-ref.xht": [ - "3afbc55c9d2074748db93b286f943962f122b84a", + "bfe71573a96a8bc56a91b47996aeac4f662d39f2", "support" ], "css/WOFF2/valid-007.xht": [ - "7e9945d8503825dfb732b764378619124bfad414", + "e60e803cfdc057cd2248eb6858dd273b3354601b", "reftest" ], "css/WOFF2/valid-008-ref.xht": [ - "0f914051b7b0699f0e8a6d9568433220965ffa00", + "867425a0b040730881212f4addade2afdd499775", "support" ], "css/WOFF2/valid-008.xht": [ - "ddc431892b20b9beeaf9a7df155f7c79bee4cb23", + "45d4387d3afe2a1080b8917ec2a16ae9852ebdf8", "reftest" ], "css/build-css-testsuites.sh": [ @@ -497358,14 +497632,6 @@ "5f2bf4b6712dd230109be62407cd31800451a271", "testharness" ], - "css/css-animations/set-animation-play-state-to-paused-002-ref.html": [ - "8156c889e4af141b1bdf3df52626c4337b20c611", - "support" - ], - "css/css-animations/set-animation-play-state-to-paused-002.html": [ - "bd0740fea0d8b0fae749539c9702d3929b0a8093", - "reftest" - ], "css/css-animations/support/testcommon.js": [ "3e2b733b29fca0963c95c0d069b7a518db266004", "support" @@ -501918,6 +502184,10 @@ "08bea5d1d2a8cac172e232d86ecf99926e027817", "reftest" ], + "css/css-contain/contain-layout-015.html": [ + "a2c0e1c578d9d0da43cc5d1f61b5d3cdfbf813b9", + "reftest" + ], "css/css-contain/contain-layout-breaks-001.html": [ "09fcfd311126800c7ce63f27c3154ef31fc647bd", "reftest" @@ -504615,27 +504885,27 @@ "reftest" ], "css/css-flexbox/flex-aspect-ratio-img-column-001.html": [ - "e355ee48c5c08adcb2383e45665db3d762eaa68d", + "dd1dd075e088c2168400f2be4629ef8ec822ebf9", "reftest" ], "css/css-flexbox/flex-aspect-ratio-img-column-002.html": [ - "308ac0f86d98f3c78ab18e8388920819db13020b", + "15760299bc6666cd5c0acbae8edf637ca20a6500", "reftest" ], "css/css-flexbox/flex-aspect-ratio-img-column-003.html": [ - "d0ceab01caa4006bcd85f429f9778e0a65287f1e", + "289a665ffc47c52e011ea5791d01a637e9cb8a30", "reftest" ], "css/css-flexbox/flex-aspect-ratio-img-row-001.html": [ - "201a66cad4f811903eac3113ef74a38bb77c6014", + "e29c7e3d000a9bc0dccf072d34b7f1838c42b952", "reftest" ], "css/css-flexbox/flex-aspect-ratio-img-row-002.html": [ - "1afe14f17399fa9e0b7b84f0d692b3fedf903dac", + "23f2c44641c4e2e71151ead8f4abf6b3e6eaa0b3", "reftest" ], "css/css-flexbox/flex-aspect-ratio-img-row-003.html": [ - "fef941903e0d6940b2383cfd3e549f6c8348b7d9", + "ccb9b7ccc85240da99a012f01c6236791852cc38", "reftest" ], "css/css-flexbox/flex-basis-001.html": [ @@ -504883,7 +505153,7 @@ "reftest" ], "css/css-flexbox/flex-minimum-height-flex-items-006.xht": [ - "57dd8a81ecc56a968b56f97f14091e1c1bf68838", + "4685fe43ee150719f463ddf67061e34eee9de696", "reftest" ], "css/css-flexbox/flex-minimum-height-flex-items-007.xht": [ @@ -504891,7 +505161,7 @@ "reftest" ], "css/css-flexbox/flex-minimum-height-flex-items-008.xht": [ - "9a01ecb867ca0bf702e32df20ab1215e47a8e74f", + "f82050576262b36302d0fa9d56048ecfa9978702", "reftest" ], "css/css-flexbox/flex-minimum-width-flex-items-001.xht": [ @@ -504915,7 +505185,7 @@ "reftest" ], "css/css-flexbox/flex-minimum-width-flex-items-006.xht": [ - "cedba40c149e345b21295d9c18c0f8c0a2ffe9c9", + "e639382a3dce47a920931d326bdfc70cc43819be", "reftest" ], "css/css-flexbox/flex-minimum-width-flex-items-007.xht": [ @@ -504923,7 +505193,7 @@ "reftest" ], "css/css-flexbox/flex-minimum-width-flex-items-008.xht": [ - "2b3222aaf5dccd791ba46b0c7747dc49c50bd0dc", + "834f36f4b5f04e06578c49159bbe2ba3770ced37", "reftest" ], "css/css-flexbox/flex-order-ref.html": [ @@ -508534,6 +508804,10 @@ "d773f016699bcdcbe54f196118de13fbdbd60a69", "testharness" ], + "css/css-fonts/idlharness.html": [ + "c8a4d33543cf5c9b77611c577116a71ca1ebfefb", + "testharness" + ], "css/css-fonts/language-specific-01.html": [ "779c6c4875d44915e4c314acc028cc5ff21c4d42", "visual" @@ -518067,7 +518341,7 @@ "testharness" ], "css/css-logical/logicalprops-quirklength.html": [ - "3024bbd54e4cbe1ee55e59684188587e2a56fda6", + "04c724e71003824ad8c9fe37c5d4b309d2954282", "testharness" ], "css/css-logical/resources/test-box-properties.js": [ @@ -518874,6 +519148,10 @@ "8853e79d6e9c3d262ebb38c569e97932f3b27cd4", "support" ], + "css/css-masking/idlharness.html": [ + "527fb8b8884e00d898c047f092221af56211bbcd", + "testharness" + ], "css/css-masking/parsing/clip-invalid.html": [ "81cd98170ea4abe216c0cf155aa493c58079bd53", "testharness" @@ -518922,6 +519200,10 @@ "43a6f9e055b908a42b5811d6ce5e48acf8c9ed08", "testharness" ], + "css/css-multicol/filter-with-abspos.html": [ + "099f4ae1562f9ba2908bfb8dfcb0a5c9afc8b423", + "testharness" + ], "css/css-multicol/float-and-block.html": [ "435614e6d5dcdbd8325687f70014bea0e3dea5f7", "reftest" @@ -523622,10 +523904,18 @@ "ab3c3d205e59df800ba5b4217245b83685521c31", "reftest" ], + "css/css-scoping/shadow-host-with-before-after.html": [ + "99af6e29e69b3131b59dbdc2b0eead52931123c2", + "reftest" + ], "css/css-scoping/shadow-reassign-dynamic-001.html": [ "11ed4da2e6ce88d8a2b98a8f1c814417ef7770dd", "reftest" ], + "css/css-scoping/shadow-reassign-dynamic-002.html": [ + "2a90e0623a99cfb46430f0236ceea44f93a25131", + "reftest" + ], "css/css-scoping/shadow-root-insert-into-document.html": [ "2cee9fff35c9222074f4ef78dcfcb8a3e02bbc98", "reftest" @@ -523662,6 +523952,10 @@ "5816d3d7af3c4bef07f4a299ab65c74b7b8d80f9", "testharness" ], + "css/css-scoping/whitespace-crash-001.html": [ + "ffcc7ce387110d170772e0c9178991a2377753ad", + "reftest" + ], "css/css-scroll-anchoring/OWNERS": [ "d9c8054b356c9273a054a83abeb9be0626c23921", "support" @@ -528574,6 +528868,10 @@ "9f88a667825f8cb725dc348e17081e1a25b3f4de", "reftest" ], + "css/css-text/overflow-wrap/overflow-wrap-min-content-size-001.html": [ + "5858dbb88a775bb8975f338d866b6fc837485364", + "reftest" + ], "css/css-text/overflow-wrap/reference/overflow-wrap-break-word-001-ref.html": [ "0b16a0bdb25ddd647ad96dd82e3430274667ee87", "support" @@ -528590,6 +528888,10 @@ "7daf4c0482ae02fdd5a6855b3f750e664373efcd", "support" ], + "css/css-text/overflow-wrap/reference/overflow-wrap-min-content-size-001-ref.html": [ + "f3e09183b565f71e38158cc5cd4d96ab5fbf25d4", + "support" + ], "css/css-text/overflow-wrap/word-wrap-001.html": [ "8bafc4d48bbfee1e6c465a95b29792ba33c30346", "reftest" @@ -528610,6 +528912,10 @@ "5f656293d6ce705ad0278ee0dca22201c2cdcb3b", "reftest" ], + "css/css-text/overflow-wrap/word-wrap-alias.html": [ + "3169acee2991fd327d30f3fbebc1e3a85e6a3bb1", + "testharness" + ], "css/css-text/support/1x1-green.png": [ "51e7b6974a09eda6cb31337717c5eaeb9c44b443", "support" @@ -538302,6 +538608,18 @@ "9bcaa9b053c7f5a9d4db008cb2be1dfa13c90ab0", "manual" ], + "css/css-ui/cursor-pointer-links-001-manual.html": [ + "4d02ce48b672e22a2fdc9e9666c638c55d9c8209", + "manual" + ], + "css/css-ui/cursor-pointer-links-002-manual.html": [ + "651a5cdf4bc7fbd83f47a4fe6260da9b375f0e37", + "manual" + ], + "css/css-ui/cursor-pointer-links-003-manual.html": [ + "52d4b8e9637151738189c848071df7f32c2f8424", + "manual" + ], "css/css-ui/cursor-text-001.html": [ "f07e9bded7606975b35d4b9514043b4a80a59562", "manual" @@ -547438,6 +547756,10 @@ "ed3dc5f811d0e0920689b051da26c6b3c34b9a54", "testharness" ], + "css/cssom-view/dom-element-scroll.html": [ + "a892451d722bd7b818aa6a5efc5e07c1ff96d4cd", + "testharness" + ], "css/cssom-view/elementFromPoint-001.html": [ "bf1c490777f450275a95ecfc6d6d2c0d055aca82", "testharness" @@ -547911,7 +548233,7 @@ "testharness" ], "css/cssom/computed-style-set-property.html": [ - "ce05e756acf5a53d37d854e5e635bb68febf84a1", + "cb05ff525eb659d43bf234d932fd860795959c9e", "testharness" ], "css/cssom/css-style-attr-decl-block.html": [ @@ -548887,7 +549209,7 @@ "testharness" ], "css/geometry/DOMPoint-001.html": [ - "02bf66acde06025e22d65c762234a2a37fbaab68", + "5c174b7b7616867e5b306c935ee5069024ba2110", "testharness" ], "css/geometry/DOMPoint-002.html": [ @@ -550678,6 +551000,10 @@ "5f52d44b36429f1ec8bb9158a6afd397fde85e6b", "manual" ], + "css/selectors/focus-visible-007.html": [ + "9b28bbb588f0d5257acf7e648971b3e153cb7001", + "testharness" + ], "css/selectors/focus-within-001-ref.html": [ "cd36270f1a34ea74b10b761cb153a7eb85b221bc", "support" @@ -560483,7 +560809,7 @@ "support" ], "docs/_appendix/github-intro.md": [ - "c20efd86390f96afb120274321f4e570953b8c69", + "c26effebf90d5483a890945f191b2f3626301962", "support" ], "docs/_appendix/index.md": [ @@ -560930,6 +561256,14 @@ "40ab5636653dfd105738ab38e7d22316132eb630", "testharness" ], + "dom/events/event-global-extra.window.js": [ + "5dcae39971b2e345cf9e21531727e344573cbebe", + "testharness" + ], + "dom/events/event-global.html": [ + "10a189637c05eafd6ffe74e21edde501d2f7da9c", + "testharness" + ], "dom/events/event-global.worker.js": [ "084a6f752edee6578113035fece6d0eb85a2fdf7", "testharness" @@ -560938,6 +561272,10 @@ "563ac74d2750439ccac70c524c61f74d4eb49275", "testharness" ], + "dom/events/resources/event-global-extra-frame.html": [ + "8fcec228320f8b2ba9373269a7db239d3beaa78c", + "support" + ], "dom/historical.html": [ "291d078c4424d0491aeab7524d350eab7304f989", "testharness" @@ -561827,11 +562165,11 @@ "support" ], "dom/nodes/ParentNode-querySelector-All-xht.xht": [ - "5469b8ad07ecbb07d5ca46d82c71aa4e470a5c2e", + "7c245a11e39f6e7b23bd63ffe5daab6f4d9de2c3", "testharness" ], "dom/nodes/ParentNode-querySelector-All.html": [ - "83baf7fa751b086622742908845c7a4db2e65fcb", + "f2bc7ad3c9c348a8d06c1c1cd5cc0d759e9651f7", "testharness" ], "dom/nodes/ParentNode-querySelector-All.js": [ @@ -566191,7 +566529,7 @@ "support" ], "fetch/api/resources/echo-content.py": [ - "edc7a1d75d7c438ca3cca59f81d03058b3c2758f", + "df8169fcbb5312760a7bff3bd3c9b2e0612a5013", "support" ], "fetch/api/resources/empty.txt": [ @@ -566687,11 +567025,11 @@ "support" ], "fetch/range/general.any.js": [ - "2c16c0398373fca53ae80aae1107868c8cdeb6b4", + "ad1cdfc3bdcd8e713f27831f6f08c4213726ccfb", "testharness" ], - "fetch/range/partial-script.window.js": [ - "1352080860b8671290919ab0d09cb41f4100763e", + "fetch/range/general.window.js": [ + "1ce131a5aa6815d9a6bb7f4a9f2004c33d28dacd", "testharness" ], "fetch/range/resources/basic.html": [ @@ -566699,7 +567037,7 @@ "support" ], "fetch/range/resources/long-wav.py": [ - "a9bdaefeb4e9cefd4bb678832d7ffcbe1b3167f7", + "b3e9951b240ccd97756eb6c65651223d40c78cd3", "support" ], "fetch/range/resources/partial-script.py": [ @@ -566707,7 +567045,7 @@ "support" ], "fetch/range/resources/range-sw.js": [ - "1ec66e1dd8bf9a11b058b90e32ca7caab2233d4d", + "24fd34bdf1331eb908e0a2144f4c84af357c9fa3", "support" ], "fetch/range/resources/stash-take.py": [ @@ -566715,11 +567053,11 @@ "support" ], "fetch/range/resources/utils.js": [ - "81cc493a76265cc64408fc2d41a67434ec99391a", + "fd2e57888fa9c18d46a2a4d7c9857d6cb99d087b", "support" ], "fetch/range/sw.https.window.js": [ - "5bf1ebc9ce82990013831f2f7f55589e29a69bde", + "32cc96656190618f73951d577abe948b45abb777", "testharness" ], "fetch/sec-metadata/README.md": [ @@ -568271,7 +568609,7 @@ "testharness" ], "html/browsers/browsing-the-web/history-traversal/hashchange_event.html": [ - "4471d424840818a9e3bc5507680a20a6707530b9", + "14ca22c06495da0cf734956ddb2f3c25017fa36c", "testharness" ], "html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/resources/blank1.html": [ @@ -568315,7 +568653,7 @@ "testharness" ], "html/browsers/browsing-the-web/history-traversal/popstate_event.html": [ - "ba82d7fe6f6a903e60987e07a0ad3087d7988837", + "ed84161a523f48546ffc2fd8ba92d16ba0f247fb", "testharness" ], "html/browsers/browsing-the-web/history-traversal/resources/a.html": [ @@ -568846,6 +569184,18 @@ "2b3a56895dbe6450ed38ebbb31a915c9e8b7abd6", "testharness" ], + "html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-closeable.html": [ + "7b60961703fd447aff290aa5fedf6950b242b9d5", + "testharness" + ], + "html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-uncloseable-1.html": [ + "0e8cf55368a34a0367763cdf902fdf6a5dc51f28", + "support" + ], + "html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-uncloseable.html": [ + "faa25d4925073f71b3ee451427b253cc232c01f7", + "testharness" + ], "html/browsers/browsing-the-web/unloading-documents/prompt/001-1.html": [ "758c04e8df6778e435346c59280c17e02295cca6", "support" @@ -568870,6 +569220,18 @@ "c37ad1ea3a1c8e389f6066c95c7b2745648e9e7e", "testharness" ], + "html/browsers/browsing-the-web/unloading-documents/prompt/004-1.html": [ + "3530a94754361d436b6c20496bea07eb0bec4893", + "support" + ], + "html/browsers/browsing-the-web/unloading-documents/prompt/004-2.html": [ + "01dc2c7f9c673781291a5afbdb40ca0f0919e797", + "support" + ], + "html/browsers/browsing-the-web/unloading-documents/prompt/004.html": [ + "4c8485a929926005115dd0f8e2d2a2d8e1673c6f", + "testharness" + ], "html/browsers/browsing-the-web/unloading-documents/prompt/manual-001.html": [ "895580cf70904918397da755527c5dda3f227b8a", "support" @@ -570447,7 +570809,7 @@ "testharness" ], "html/browsers/the-window-object/window-open-noopener.html": [ - "2e20bfcd1dfe9bee00a9747b87cdaf42004d6415", + "ee8d53b12b8034d1c0ede3b2c6516a345890915e", "testharness" ], "html/browsers/the-window-object/window-properties.https.html": [ @@ -587798,6 +588160,14 @@ "c11d6b875af47f6134c98a23a7d2ce4fe4baa8c2", "wdspec" ], + "input-device-capabilities/OWNERS": [ + "d4e4ff1ad12e54c45e32ff0b4938fe9a9b1f0f4d", + "support" + ], + "input-device-capabilities/interfaces.html": [ + "327ff946ec80b347be627814ea9260ebd7ef6c1d", + "testharness" + ], "input-events/OWNERS": [ "9e7b0206de5d60e7e0cf529e7b8987367c84c0f6", "support" @@ -587838,10 +588208,18 @@ "149cca0098cf37769391b4caa0650a7182ed8212", "support" ], + "interfaces/InputDeviceCapabilities.idl": [ + "75bf10b0d1bda48c56cb5cd2ac1c73eb59f744fc", + "support" + ], "interfaces/OWNERS": [ "389275a34cb76282af66797b3cd06b72a3b9ddbe", "support" ], + "interfaces/ResizeObserver.idl": [ + "2835174993c1648c5f8e2a4639727118d62e2d77", + "support" + ], "interfaces/ServiceWorker.idl": [ "7884feabcb4c9d0a447cccfa2359e3c45eef5455", "support" @@ -587890,6 +588268,14 @@ "a0d53cc4e88f38cce9fd45759963e5da9a6f3dc3", "support" ], + "interfaces/css-fonts.idl": [ + "ff2d83e9468c743993c9b4a1ecf3fab09684dc16", + "support" + ], + "interfaces/css-masking.idl": [ + "5f4ed3d8922e30ab3ddb714d185c6e6f794e5a29", + "support" + ], "interfaces/css-typed-om.idl": [ "36526913c07a04f9fd329a5650430db82407d766", "support" @@ -587907,7 +588293,7 @@ "support" ], "interfaces/dom.idl": [ - "86ea69e6432ac3e4172129591f4aeac69e336a82", + "9621186ac979a5860d5c909b7505900a48c2c810", "support" ], "interfaces/encoding.idl": [ @@ -588002,6 +588388,14 @@ "594179265efe3f056059ba834da5e1873c3e6174", "support" ], + "interfaces/performance-timeline.idl": [ + "57f26fe863d12c7672905d185e9a2c7ab9cb98a0", + "support" + ], + "interfaces/permissions.idl": [ + "7fec46d25cf175390524b681cdbec7b0b76c89b9", + "support" + ], "interfaces/pointerevents.idl": [ "29ca4e05813256592af7e9804e8135aaffdcc995", "support" @@ -588046,6 +588440,10 @@ "416ee65b3ba9e438a3178c6c04a414f42d759fc8", "support" ], + "interfaces/user-timing.idl": [ + "41c00eec8e9c1b2137bd05e85bdc029b7a87c349", + "support" + ], "interfaces/vibration.idl": [ "d1f3f51b0c6a46958d4bb3e9cc8bbc85e8a74512", "support" @@ -588343,7 +588741,7 @@ "testharness" ], "lifecycle/freeze.html": [ - "aca6ab2b23924ff891dc2abc26eb3067ad099e5b", + "79f45af08ff1cfe5c29d318fe6a32d281e990960", "testharness" ], "lifecycle/resources/foo.txt": [ @@ -588351,7 +588749,7 @@ "support" ], "lifecycle/resources/window.html": [ - "3c839ba3697d5ce8bcda99824af7dea7b37534c1", + "6ec159fbf686750e2866db1c1467c8f7e09c7e3c", "support" ], "longtask-timing/OWNERS": [ @@ -598178,8 +598576,8 @@ "9c6b6edf19800a2730de2dfe601a7cd2503cf87d", "testharness" ], - "performance-timeline/idlharness.html": [ - "d6ce8e5c21b42843caea8e61c1637d75c2e51d64", + "performance-timeline/idlharness.any.js": [ + "0a3ea0b532a1634008b776489b7409b348952d6f", "testharness" ], "performance-timeline/performanceentry-tojson.html": [ @@ -598242,6 +598640,14 @@ "dc978fd8669d67118109fcab245010fdd7d799b0", "testharness" ], + "permissions/OWNERS": [ + "fec8c86a6652ad9871d914c0c5119a2158172c11", + "support" + ], + "permissions/interfaces.any.js": [ + "2b16f91ae23a516d2c58299b81e0b3895cba117b", + "testharness" + ], "picture-in-picture/OWNERS": [ "6f6511f82937c14788c608d760c567d47b139fc0", "support" @@ -607198,6 +607604,10 @@ "a508a8bd68ef64bd826f76cc6f0967d2a5f1d3e9", "testharness" ], + "resize-observer/idlharness.html": [ + "2b1960834f7164e351cdbba119694830055dcf17", + "testharness" + ], "resize-observer/notify.html": [ "29f22b18a6ae894b80bec599dd71fc5050dbb292", "testharness" @@ -608379,7 +608789,7 @@ "support" ], "server-timing/resources/parsing/67.js": [ - "db03fe36244bd2c07fc92720fd1d24825f9a4d11", + "b40f75f2522ae8277f5c391472fe285a9b504a02", "support" ], "server-timing/resources/parsing/67.js.sub.headers": [ @@ -608387,7 +608797,7 @@ "support" ], "server-timing/resources/parsing/68.js": [ - "6101bd375a67052cb449c83494dc32691b6e6146", + "f208d939265d10b033f3574a333d3fa497db37d0", "support" ], "server-timing/resources/parsing/68.js.sub.headers": [ @@ -609135,7 +609545,7 @@ "testharness" ], "service-workers/service-worker/fetch-event.https.html": [ - "dfd8525f82292cc3728cc3b1afb2a14e19ef4b43", + "d4ff864f1d5a7896cc748cd4abe10d08c0fb08f9", "testharness" ], "service-workers/service-worker/fetch-frame-resource.https.html": [ @@ -609158,8 +609568,8 @@ "01a5220ff2abe5735d7b03c2ee3ccbe21c9a260e", "testharness" ], - "service-workers/service-worker/fetch-request-css-cross-origin-mime-check.https.html": [ - "d41f17b4a7ea596ba38a91cfbd910aa6be43e70f", + "service-workers/service-worker/fetch-request-css-cross-origin.https.html": [ + "91ec6e3e7e56f20058cd32e97dad0d245eda7d79", "testharness" ], "service-workers/service-worker/fetch-request-css-images.https.html": [ @@ -609543,7 +609953,7 @@ "testharness" ], "service-workers/service-worker/registration-updateviacache.https.html": [ - "c5fe71cfb142f80d451f541accaa0120d9923f2b", + "7a640f15203c284cfa9b228da98c55efe5a2219d", "testharness" ], "service-workers/service-worker/rejections.https.html": [ @@ -609943,7 +610353,7 @@ "support" ], "service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-iframe.html": [ - "77fdb8a4bf48160dacb9b463fa075a91b1d34b10", + "f014972c2230bd056c4b76e4a414c70e68477be9", "support" ], "service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-same.css": [ @@ -609954,8 +610364,12 @@ "9770895a8ca9897a13b5f116e12b2b47dd59f009", "support" ], - "service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-worker.js": [ - "5bdb78b2d188d06eea4a0243d7cf35c5542d868f", + "service-workers/service-worker/resources/fetch-request-css-cross-origin-read-contents.html": [ + "fcec3ece697564806719b32ca6144432f8216d9e", + "support" + ], + "service-workers/service-worker/resources/fetch-request-css-cross-origin-worker.js": [ + "20eaf7162096519d6811e4b5d513ca70fc46e8b6", "support" ], "service-workers/service-worker/resources/fetch-request-fallback-iframe.html": [ @@ -616323,7 +616737,7 @@ "support" ], "url/resources/urltestdata.json": [ - "442c5f9d5faeb6752c8b33a04c73f3f3ba82ccb7", + "a0acd65cc414b97083cb92fa0f6fb4d12ba26288", "support" ], "url/toascii.window.js": [ @@ -616430,8 +616844,8 @@ "bb08ac2ee06bc12e75cc44b76f06d3f0262f44ba", "testharness" ], - "user-timing/idlharness.html": [ - "b24d4d5faf5df5d67135560d5fe362cc6d72c28f", + "user-timing/idlharness.any.js": [ + "6a0dcd26b5ff16b18603c50b9257d55e6e25f0ce", "testharness" ], "user-timing/invoke_with_timing_attributes.html": [ @@ -625450,6 +625864,10 @@ "32cd3419ff904a2440d9a6eaa7cb28f78d4a7e32", "testharness" ], + "workers/modules/dedicated-worker-import-referrer.html": [ + "c6a618329eac51a8d6bbf0f7aece906145f49a33", + "testharness" + ], "workers/modules/dedicated-worker-import.html": [ "0b839e87ae98ad1abf32216a2086334cbc011ac0", "testharness" @@ -625478,10 +625896,18 @@ "9d64de6e63d110e6eff89a124e94cdec9d1802c2", "support" ], + "workers/modules/resources/dynamic-import-remote-origin-referrer-checker-worker.sub.js": [ + "e2f21f99d9fbc328146a4b5af66bd4d12e3b7dce", + "support" + ], "workers/modules/resources/dynamic-import-remote-origin-script-worker.sub.js": [ "bb2d9e0c4c641451640987cecb2f28eff3f8b518", "support" ], + "workers/modules/resources/dynamic-import-same-origin-referrer-checker-worker.js": [ + "34ffb1015fa662f06f11f806e76132fdfd47fe0b", + "support" + ], "workers/modules/resources/dynamic-import-worker.js": [ "9db02105e0ee1300518ca70259d4a93671062219", "support" @@ -625534,6 +625960,10 @@ "c67a79ade775435a67e5999d17e7cdda450c8e50", "support" ], + "workers/modules/resources/referrer-checker.py": [ + "b80225456f5629012f290e03c5dc470be59686bf", + "support" + ], "workers/modules/resources/static-import-and-then-dynamic-import-worker.js": [ "d6db01b9912dbe05e03e8011bf79e644651dacae", "support" @@ -625542,10 +625972,18 @@ "e8e1f0aedcc780aac742af01387dd151b10104bc", "support" ], + "workers/modules/resources/static-import-remote-origin-referrer-checker-worker.sub.js": [ + "45f4a02525a6b1acf2a4ec14e7a9e4a4af4abbd1", + "support" + ], "workers/modules/resources/static-import-remote-origin-script-worker.sub.js": [ "2f0657e4a67fb1e5e5c6c8bb81fcc084a846ad71", "support" ], + "workers/modules/resources/static-import-same-origin-referrer-checker-worker.js": [ + "b9eda708063a8769a351ed23dc0ed908f771cdef", + "support" + ], "workers/modules/resources/static-import-worker.js": [ "4ccc3d3a7522527a5e62ec1adeb963220cfcd43c", "support" diff --git a/tests/wpt/metadata/css/css-animations/set-animation-play-state-to-paused-002.html.ini b/tests/wpt/metadata/css/css-animations/set-animation-play-state-to-paused-002.html.ini deleted file mode 100644 index d0b39d4e03b..00000000000 --- a/tests/wpt/metadata/css/css-animations/set-animation-play-state-to-paused-002.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[set-animation-play-state-to-paused-002.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/css/css-flexbox/flex-aspect-ratio-img-column-003.html.ini b/tests/wpt/metadata/css/css-flexbox/flex-aspect-ratio-img-column-003.html.ini deleted file mode 100644 index 7ca1525c090..00000000000 --- a/tests/wpt/metadata/css/css-flexbox/flex-aspect-ratio-img-column-003.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[flex-aspect-ratio-img-column-003.html] - type: reftest - expected: FAIL diff --git a/tests/wpt/metadata/css/css-flexbox/flex-aspect-ratio-img-row-003.html.ini b/tests/wpt/metadata/css/css-flexbox/flex-aspect-ratio-img-row-003.html.ini deleted file mode 100644 index 1fa26cd7964..00000000000 --- a/tests/wpt/metadata/css/css-flexbox/flex-aspect-ratio-img-row-003.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[flex-aspect-ratio-img-row-003.html] - type: reftest - expected: FAIL diff --git a/tests/wpt/metadata/css/css-fonts/idlharness.html.ini b/tests/wpt/metadata/css/css-fonts/idlharness.html.ini new file mode 100644 index 00000000000..262197d06ed --- /dev/null +++ b/tests/wpt/metadata/css/css-fonts/idlharness.html.ini @@ -0,0 +1,4 @@ +[idlharness.html] + [css-fonts IDL tests] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text/overflow-wrap/overflow-wrap-min-content-size-001.html.ini b/tests/wpt/metadata/css/css-text/overflow-wrap/overflow-wrap-min-content-size-001.html.ini new file mode 100644 index 00000000000..d0e0bb36b57 --- /dev/null +++ b/tests/wpt/metadata/css/css-text/overflow-wrap/overflow-wrap-min-content-size-001.html.ini @@ -0,0 +1,2 @@ +[overflow-wrap-min-content-size-001.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/geometry/DOMPoint-001.html.ini b/tests/wpt/metadata/css/geometry/DOMPoint-001.html.ini index 6404cf03499..f2cfb97e90d 100644 --- a/tests/wpt/metadata/css/geometry/DOMPoint-001.html.ini +++ b/tests/wpt/metadata/css/geometry/DOMPoint-001.html.ini @@ -3,15 +3,6 @@ [testConstructorDictionary2undefined] expected: FAIL - [testConstructorDictionary0] - expected: FAIL - - [testConstructorDictionary1] - expected: FAIL - - [testConstructorDictionary2] - expected: FAIL - [testConstructorDictionary3] expected: FAIL @@ -27,9 +18,6 @@ [testConstructorDOMPoint] expected: FAIL - [testConstructorUndefined2] - expected: FAIL - [testConstructorIllegal1] expected: FAIL diff --git a/tests/wpt/metadata/dom/events/event-global-extra.window.js.ini b/tests/wpt/metadata/dom/events/event-global-extra.window.js.ini new file mode 100644 index 00000000000..0759f69d170 --- /dev/null +++ b/tests/wpt/metadata/dom/events/event-global-extra.window.js.ini @@ -0,0 +1,19 @@ +[event-global-extra.window.html] + [window.event for constructors from another global: EventTarget] + expected: FAIL + + [window.event for constructors from another global: XMLHttpRequest] + expected: FAIL + + [window.event and element from another document] + expected: FAIL + + [window.event and moving an element post-dispatch] + expected: FAIL + + [window.event should not be affected by nodes moving post-dispatch] + expected: FAIL + + [Listener from a different global] + expected: FAIL + diff --git a/tests/wpt/metadata/dom/events/event-global.html.ini b/tests/wpt/metadata/dom/events/event-global.html.ini new file mode 100644 index 00000000000..96ad1069096 --- /dev/null +++ b/tests/wpt/metadata/dom/events/event-global.html.ini @@ -0,0 +1,19 @@ +[event-global.html] + [event exists on window, which is initially set to undefined] + expected: FAIL + + [window.event is only defined during dispatch] + expected: FAIL + + [window.event is undefined if the target is in a shadow tree (event dispatched outside shadow tree)] + expected: FAIL + + [window.event is undefined if the target is in a shadow tree (event dispatched inside shadow tree)] + expected: FAIL + + [window.event is set to the current event during dispatch] + expected: FAIL + + [window.event is set to the current event, which is the event passed to dispatch] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/range/partial-script.window.js.ini b/tests/wpt/metadata/fetch/range/general.window.js.ini index aa1cf84a436..fded4bc04d5 100644 --- a/tests/wpt/metadata/fetch/range/partial-script.window.js.ini +++ b/tests/wpt/metadata/fetch/range/general.window.js.ini @@ -1,4 +1,4 @@ -[partial-script.window.html] +[general.window.html] [Untitled] expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/popstate_event.html.ini b/tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/popstate_event.html.ini new file mode 100644 index 00000000000..7124dbe254f --- /dev/null +++ b/tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/popstate_event.html.ini @@ -0,0 +1,4 @@ +[popstate_event.html] + [Queue a task to fire popstate event] + expected: FAIL + diff --git a/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-abort/javascript-url-abort-return-value-undefined.tentative.html.ini b/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-abort/javascript-url-abort-return-value-undefined.tentative.html.ini index 78879bad5f1..5b38c37b086 100644 --- a/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-abort/javascript-url-abort-return-value-undefined.tentative.html.ini +++ b/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-abort/javascript-url-abort-return-value-undefined.tentative.html.ini @@ -1,5 +1,4 @@ [javascript-url-abort-return-value-undefined.tentative.html] - expected: TIMEOUT [Not aborting fetch for javascript:undefined navigation] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/the-window-object/window-open-noopener.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/window-open-noopener.html.ini index 5b40d253f1e..7844c379089 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/window-open-noopener.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/window-open-noopener.html.ini @@ -25,3 +25,45 @@ [noopener window.open targeting _self] expected: NOTRUN + +[window-open-noopener.html?_parent] + expected: ERROR + [noopener window.open targeting _parent] + expected: NOTRUN + + +[window-open-noopener.html?_top] + expected: ERROR + [noopener window.open targeting _top] + expected: NOTRUN + + +[window-open-noopener.html?indexed] + expected: ERROR + [window.open() with 'noopener' should not reuse existing target] + expected: FAIL + + [noopener needs to be present as a token on its own] + expected: NOTRUN + + [noopener needs to be present as a token on its own again] + expected: NOTRUN + + [noopener needs to be present as a token on its own yet again] + expected: NOTRUN + + [Trailing noopener should work] + expected: NOTRUN + + [Leading noopener should work] + expected: NOTRUN + + [Interior noopener should work] + expected: NOTRUN + + +[window-open-noopener.html?_self] + expected: ERROR + [noopener window.open targeting _self] + expected: NOTRUN + diff --git a/tests/wpt/metadata/performance-timeline/idlharness.any.js.ini b/tests/wpt/metadata/performance-timeline/idlharness.any.js.ini new file mode 100644 index 00000000000..7773d627528 --- /dev/null +++ b/tests/wpt/metadata/performance-timeline/idlharness.any.js.ini @@ -0,0 +1,17 @@ +[idlharness.any.sharedworker.html] + [Untitled] + expected: FAIL + + +[idlharness.any.worker.html] + expected: ERROR + +[idlharness.any.html] + [Untitled] + expected: FAIL + + +[idlharness.https.any.serviceworker.html] + [Untitled] + expected: FAIL + diff --git a/tests/wpt/metadata/performance-timeline/idlharness.html.ini b/tests/wpt/metadata/performance-timeline/idlharness.html.ini deleted file mode 100644 index b17d75503ec..00000000000 --- a/tests/wpt/metadata/performance-timeline/idlharness.html.ini +++ /dev/null @@ -1,20 +0,0 @@ -[idlharness.html] - type: testharness - [PerformanceEntry interface: [object PerformanceMark\] must inherit property "toJSON()" with the proper type] - expected: FAIL - - [Test default toJSON operation of PerformanceEntry] - expected: FAIL - - [PerformanceEntry interface: operation toJSON()] - expected: FAIL - - [PerformanceObserver interface: operation takeRecords()] - expected: FAIL - - [Test default toJSON operation of PerformanceMark] - expected: FAIL - - [Performance Timeline IDL tests] - expected: FAIL - diff --git a/tests/wpt/metadata/url/a-element-xhtml.xhtml.ini b/tests/wpt/metadata/url/a-element-xhtml.xhtml.ini index 939b2644d3e..8abf0e96552 100644 --- a/tests/wpt/metadata/url/a-element-xhtml.xhtml.ini +++ b/tests/wpt/metadata/url/a-element-xhtml.xhtml.ini @@ -210,3 +210,6 @@ [Parsing: <http://foo.bar/baz?qux#foo`bar> against <about:blank>] expected: FAIL + [Parsing: <http://host/?'> against <about:blank>] + expected: FAIL + diff --git a/tests/wpt/metadata/url/a-element.html.ini b/tests/wpt/metadata/url/a-element.html.ini index aa7e1be63e1..43d58c6105b 100644 --- a/tests/wpt/metadata/url/a-element.html.ini +++ b/tests/wpt/metadata/url/a-element.html.ini @@ -210,3 +210,6 @@ [Parsing: <http://foo.bar/baz?qux#foo`bar> against <about:blank>] expected: FAIL + [Parsing: <http://host/?'> against <about:blank>] + expected: FAIL + diff --git a/tests/wpt/metadata/url/url-constructor.html.ini b/tests/wpt/metadata/url/url-constructor.html.ini index c3b9ceadc63..e8a51ab3de0 100644 --- a/tests/wpt/metadata/url/url-constructor.html.ini +++ b/tests/wpt/metadata/url/url-constructor.html.ini @@ -201,3 +201,6 @@ [Parsing: <http://foo.bar/baz?qux#foo`bar> against <about:blank>] expected: FAIL + [Parsing: <http://host/?'> against <about:blank>] + expected: FAIL + diff --git a/tests/wpt/metadata/workers/modules/dedicated-worker-import-referrer.html.ini b/tests/wpt/metadata/workers/modules/dedicated-worker-import-referrer.html.ini new file mode 100644 index 00000000000..3c7c4f0059e --- /dev/null +++ b/tests/wpt/metadata/workers/modules/dedicated-worker-import-referrer.html.ini @@ -0,0 +1,4 @@ +[dedicated-worker-import-referrer.html] + [DedicatedWorker: Referrer] + expected: FAIL + diff --git a/tests/wpt/mozilla/meta/css/iframe/hide_after_load.html.ini b/tests/wpt/mozilla/meta/css/iframe/hide_after_load.html.ini new file mode 100644 index 00000000000..65c78fd3a4a --- /dev/null +++ b/tests/wpt/mozilla/meta/css/iframe/hide_after_load.html.ini @@ -0,0 +1,2 @@ +[hide_after_load.html] + expected: TIMEOUT diff --git a/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/canvas/rapid-resizing.html.ini b/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/canvas/rapid-resizing.html.ini new file mode 100644 index 00000000000..1e2567027d8 --- /dev/null +++ b/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/canvas/rapid-resizing.html.ini @@ -0,0 +1,5 @@ +[rapid-resizing.html] + expected: TIMEOUT + [Overall test] + expected: NOTRUN + diff --git a/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/glsl/misc/shader-uniform-packing-restrictions.html.ini b/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/glsl/misc/shader-uniform-packing-restrictions.html.ini new file mode 100644 index 00000000000..594360ffb15 --- /dev/null +++ b/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/glsl/misc/shader-uniform-packing-restrictions.html.ini @@ -0,0 +1,5 @@ +[shader-uniform-packing-restrictions.html] + expected: TIMEOUT + [Overall test] + expected: NOTRUN + diff --git a/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/glsl/misc/shader-with-non-reserved-words.html.ini b/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/glsl/misc/shader-with-non-reserved-words.html.ini new file mode 100644 index 00000000000..fb8852c9e7a --- /dev/null +++ b/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/glsl/misc/shader-with-non-reserved-words.html.ini @@ -0,0 +1,5 @@ +[shader-with-non-reserved-words.html] + expected: TIMEOUT + [Overall test] + expected: NOTRUN + diff --git a/tests/wpt/web-platform-tests/.gitmodules b/tests/wpt/web-platform-tests/.gitmodules index 90c91af579f..f40c77f6331 100644 --- a/tests/wpt/web-platform-tests/.gitmodules +++ b/tests/wpt/web-platform-tests/.gitmodules @@ -1,6 +1,3 @@ -[submodule "tools/html5lib/html5lib/tests/testdata"] - path = tools/html5lib/html5lib/tests/testdata - url = https://github.com/html5lib/html5lib-tests.git [submodule "resources/webidl2/test/widlproc"] path = resources/webidl2/test/widlproc url = https://github.com/dontcallmedom/widlproc.git
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_self.html b/tests/wpt/web-platform-tests/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_self.html deleted file mode 100644 index 83cf53583ce..00000000000 --- a/tests/wpt/web-platform-tests/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_self.html +++ /dev/null @@ -1,17 +0,0 @@ -<link rel="match" href="drawimage_canvas_self_ref.html"> -<canvas id="dest" height="100" width="100"></canvas> -<script> -var canvasWidth = canvasHeight = 100; -var destWidth = canvasWidth / 4; -var destHeight = canvasHeight / 4; -var destCanvas = document.getElementById('dest'); -var destCtx = destCanvas.getContext('2d'); - -destCtx.fillStyle = 'red'; -destCtx.fillRect(0, 0, canvasWidth, canvasHeight); -destCtx.fillStyle = 'green'; -destCtx.fillRect(0, 0, canvasWidth / 2, canvasHeight / 2); -destCtx.drawImage(destCanvas, - 0, 0, destWidth, destHeight, - canvasWidth / 2, canvasHeight / 2, destWidth, destHeight); -</script> diff --git a/tests/wpt/web-platform-tests/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_self_ref.html b/tests/wpt/web-platform-tests/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_self_ref.html deleted file mode 100644 index 9f297cacdcd..00000000000 --- a/tests/wpt/web-platform-tests/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_self_ref.html +++ /dev/null @@ -1,11 +0,0 @@ -<canvas id="dest" height="100" width="100"></canvas> -<script> -var canvasWidth = canvasHeight = 100; -var destCanvas = document.getElementById('dest'); -var destCtx = destCanvas.getContext('2d'); -destCtx.fillStyle = 'red'; -destCtx.fillRect(0, 0, canvasWidth, canvasHeight); -destCtx.fillStyle = 'green'; -destCtx.fillRect(0, 0, canvasWidth / 2, canvasHeight / 2); -destCtx.fillRect(canvasWidth / 2, canvasHeight / 2, canvasWidth / 4, canvasHeight / 4); -</script> diff --git a/tests/wpt/web-platform-tests/FileAPI/FileReaderSync.worker.js b/tests/wpt/web-platform-tests/FileAPI/FileReaderSync.worker.js index 77af6a7a6a2..3d7a0222f31 100644 --- a/tests/wpt/web-platform-tests/FileAPI/FileReaderSync.worker.js +++ b/tests/wpt/web-platform-tests/FileAPI/FileReaderSync.worker.js @@ -1,28 +1,56 @@ importScripts("/resources/testharness.js"); -var blob, readerSync; -setup(function() { - readerSync = new FileReaderSync(); - blob = new Blob(["test"]); +var blob, empty_blob, readerSync; +setup(() => { + readerSync = new FileReaderSync(); + blob = new Blob(["test"]); + empty_blob = new Blob(); }); -test(function() { - assert_true(readerSync instanceof FileReaderSync); +test(() => { + assert_true(readerSync instanceof FileReaderSync); }, "Interface"); -test(function() { - var text = readerSync.readAsText(blob); - assert_equals(text, "test"); +test(() => { + var text = readerSync.readAsText(blob); + assert_equals(text, "test"); }, "readAsText"); -test(function() { - var data = readerSync.readAsDataURL(blob); - assert_equals(data.indexOf("data:"), 0); +test(() => { + var text = readerSync.readAsText(empty_blob); + assert_equals(text, ""); +}, "readAsText with empty blob"); + +test(() => { + var data = readerSync.readAsDataURL(blob); + assert_equals(data.indexOf("data:"), 0); }, "readAsDataURL"); -test(function() { - var data = readerSync.readAsArrayBuffer(blob); - assert_true(data instanceof ArrayBuffer); +test(() => { + var data = readerSync.readAsDataURL(empty_blob); + assert_equals(data.indexOf("data:"), 0); +}, "readAsDataURL with empty blob"); + +test(() => { + var data = readerSync.readAsBinaryString(blob); + assert_equals(data, "test"); +}, "readAsBinaryString"); + +test(() => { + var data = readerSync.readAsBinaryString(empty_blob); + assert_equals(data, ""); +}, "readAsBinaryString with empty blob"); + +test(() => { + var data = readerSync.readAsArrayBuffer(blob); + assert_true(data instanceof ArrayBuffer); + assert_equals(data.byteLength, "test".length); }, "readAsArrayBuffer"); +test(() => { + var data = readerSync.readAsArrayBuffer(empty_blob); + assert_true(data instanceof ArrayBuffer); + assert_equals(data.byteLength, 0); +}, "readAsArrayBuffer with empty blob"); + done(); diff --git a/tests/wpt/web-platform-tests/README.md b/tests/wpt/web-platform-tests/README.md index 84cd627eafd..773dbf346b0 100644 --- a/tests/wpt/web-platform-tests/README.md +++ b/tests/wpt/web-platform-tests/README.md @@ -433,7 +433,7 @@ upstream review. Search filters to find things to review: * [Open PRs (excluding vendor exports)](https://github.com/web-platform-tests/wpt/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+-label%3A%22mozilla%3Agecko-sync%22+-label%3A%22chromium-export%22+-label%3A%22webkit-export%22+-label%3A%22servo-export%22) -* [Reviewed but still open PRs (excluding vendor exports)](https://github.com/web-platform-tests/wpt/pulls?q=is%3Apr+is%3Aopen+-label%3Amozilla%3Agecko-sync+-label%3Achromium-export+-label%3Awebkit-export+-label%3Aservo-export+review%3Aapproved) (Merge? Something left to fix? Ping other reviewer?) +* [Reviewed but still open PRs (excluding vendor exports)](https://github.com/web-platform-tests/wpt/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+-label%3Amozilla%3Agecko-sync+-label%3Achromium-export+-label%3Awebkit-export+-label%3Aservo-export+review%3Aapproved+-label%3A%22do+not+merge+yet%22+-label%3A%22status%3Aneeds-spec-decision%22) (Merge? Something left to fix? Ping other reviewer?) * [Open PRs without owners](https://github.com/web-platform-tests/wpt/pulls?q=is%3Apr+is%3Aopen+label%3Astatus%3Aneeds-owners) * [Open PRs with label `infra` (excluding vendor exports)](https://github.com/web-platform-tests/wpt/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+label%3Ainfra+-label%3A%22mozilla%3Agecko-sync%22+-label%3A%22chromium-export%22+-label%3A%22webkit-export%22+-label%3A%22servo-export%22) * [Open PRs with label `docs` (excluding vendor exports)](https://github.com/web-platform-tests/wpt/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+label%3Adocs+-label%3A%22mozilla%3Agecko-sync%22+-label%3A%22chromium-export%22+-label%3A%22webkit-export%22+-label%3A%22servo-export%22) diff --git a/tests/wpt/web-platform-tests/content-security-policy/generic/policy-inherited-correctly-by-plznavigate.html b/tests/wpt/web-platform-tests/content-security-policy/generic/policy-inherited-correctly-by-plznavigate.html index e83cbaf1f35..e21bede418c 100644 --- a/tests/wpt/web-platform-tests/content-security-policy/generic/policy-inherited-correctly-by-plznavigate.html +++ b/tests/wpt/web-platform-tests/content-security-policy/generic/policy-inherited-correctly-by-plznavigate.html @@ -12,17 +12,13 @@ <body> <script> var t = async_test("iframe still inherits correct CSP"); - </script> - - <iframe id="x" srcdoc="<a href='about:blank'>123</a>"></iframe> - <script> window.onmessage = t.step_func_done(function(e) { assert_equals(e.data, "frame-src"); }); - x = document.getElementById('x'); - x.onload = function() { + function doDocWrite() { + x = document.getElementById('x'); x.location = ""; // While document.write is deprecated I did not find another way to reproduce @@ -34,8 +30,14 @@ '<iframe src="../support/fail.html"></iframe>' ); x.contentDocument.close(); + + var s = document.createElement('script'); + s.async = true; + s.defer = true; + s.src = '../support/checkReport.sub.js?reportField=violated-directive&reportValue=frame-src%20%27none%27'; + document.lastChild.appendChild(s); } </script> - <script async defer src='../support/checkReport.sub.js?reportField=violated-directive&reportValue=frame-src%20%27none%27''></script> + <iframe id="x" onload="doDocWrite()" srcdoc="<a href='about:blank'>123</a>"></iframe> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/available-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/available-001.xht index 494c214a646..c93f013ddb1 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/available-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/available-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/available-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/available-002.xht index efeef4b9627..dd6e4d4bb99 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/available-002.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/available-002.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-001-ref.xht index ed5b68c76ae..38828583892 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-001.xht index e5a6008e79e..9897c475d5c 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-002-ref.xht index b658f8bc516..36088764ce5 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-002-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-002-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-002.xht index 01bd78306ef..63a3c0b3b68 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-002.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-002.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-003-ref.xht index 660eebd2532..ef3fe81feb3 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-003-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-003-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-003.xht index d5747adfea5..79ae40b029b 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-003.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-003.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-004-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-004-ref.xht index f88f9bff644..a120a27e7af 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-004-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-004-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-004.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-004.xht index d3a3a0fa7fc..e473f4c28c5 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-004.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-004.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-005-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-005-ref.xht index 23682016271..0ef4b05ce4b 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-005-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-005-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-005.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-005.xht index 7852758de89..3aee0900ad7 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-005.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-005.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-006-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-006-ref.xht index f17849aacf8..ddc20d36e68 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-006-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-006-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-006.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-006.xht index 2b9867eb546..00b5cc97b94 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-006.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-006.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-007-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-007-ref.xht index 59defed6a2c..41b00cd09ab 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-007-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-007-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-007.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-007.xht index ea617ed6a7e..e125ba1a74a 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-007.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-007.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-008-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-008-ref.xht index 46fda4183ec..f88be5a7f98 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-008-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-008-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-008.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-008.xht index ce55626ee61..ca201352ad8 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-008.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-extraneous-data-008.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-001-ref.xht index 61600f03ee9..7e25d310851 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-001.xht index 76aa1d5e98d..c9d22c90fec 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-002-ref.xht index 8807dfd6acd..2422204adb4 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-002-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-002-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-002.xht index e65c72860f2..f1144ac17a2 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-002.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-002.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-003-ref.xht index 3b41fa621f4..80fadc5089d 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-003-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-003-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-003.xht index f5db6520638..72dca32170a 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-003.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/blocks-overlap-003.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/datatypes-alt-255uint16-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/datatypes-alt-255uint16-001-ref.xht index 5e9265674e4..c421fd16d39 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/datatypes-alt-255uint16-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/datatypes-alt-255uint16-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/datatypes-alt-255uint16-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/datatypes-alt-255uint16-001.xht index 7582afe041f..33a67fd16e6 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/datatypes-alt-255uint16-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/datatypes-alt-255uint16-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-001-ref.xht index 1cc6d8e7ab9..6f742c972eb 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-001.xht index 6468278e713..338162da2fc 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-002-ref.xht index 233b0523c02..d292e75e098 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-002-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-002-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-002.xht index 490747a8b51..b18fdb94528 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-002.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-002.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-003-ref.xht index 5c479e7318a..e2a7242ef85 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-003-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-003-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-003.xht index 725f2fcea53..34d58f1cac4 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-003.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/datatypes-invalid-base128-003.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/directory-knowntags-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/directory-knowntags-001-ref.xht index 43076d2ba43..15a317dcc03 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/directory-knowntags-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/directory-knowntags-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/directory-knowntags-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/directory-knowntags-001.xht index e30189c698b..d06ea2d3f45 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/directory-knowntags-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/directory-knowntags-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/directory-mismatched-tables-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/directory-mismatched-tables-001-ref.xht index 31644ba5b86..d597415b8c9 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/directory-mismatched-tables-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/directory-mismatched-tables-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/directory-mismatched-tables-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/directory-mismatched-tables-001.xht index 30cb149dc85..d3891b92833 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/directory-mismatched-tables-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/directory-mismatched-tables-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/header-length-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/header-length-001-ref.xht index 61a8a5d9491..1a99ec0edd9 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/header-length-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/header-length-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/header-length-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/header-length-001.xht index da85eb31059..7ac89559f81 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/header-length-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/header-length-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/header-length-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/header-length-002-ref.xht index 9a2f97df8c7..0719e2fca42 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/header-length-002-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/header-length-002-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/header-length-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/header-length-002.xht index f9635d392b1..100514a1aed 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/header-length-002.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/header-length-002.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/header-numTables-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/header-numTables-001-ref.xht index 644e685fdc9..b3e80b91d71 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/header-numTables-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/header-numTables-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/header-numTables-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/header-numTables-001.xht index 4ba6218f8bb..b024f83d3f2 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/header-numTables-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/header-numTables-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/header-reserved-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/header-reserved-001-ref.xht index 845d14651e0..fd1dd5c2e86 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/header-reserved-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/header-reserved-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/header-reserved-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/header-reserved-001.xht index 36c2ee430bc..15b540418d4 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/header-reserved-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/header-reserved-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/header-signature-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/header-signature-001-ref.xht index 83b77acffc7..a7cfadb9808 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/header-signature-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/header-signature-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/header-signature-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/header-signature-001.xht index 1cabf3c97bb..5ae39feb03e 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/header-signature-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/header-signature-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/header-totalsfntsize-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/header-totalsfntsize-001-ref.xht index 8ceae402ec7..ab74d24ead3 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/header-totalsfntsize-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/header-totalsfntsize-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/header-totalsfntsize-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/header-totalsfntsize-001.xht index 394876a4408..769343b6617 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/header-totalsfntsize-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/header-totalsfntsize-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/header-totalsfntsize-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/header-totalsfntsize-002-ref.xht index 3e41d1c3c8f..b79656fc73f 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/header-totalsfntsize-002-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/header-totalsfntsize-002-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/header-totalsfntsize-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/header-totalsfntsize-002.xht index 0fb4920d4ae..7821f073cda 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/header-totalsfntsize-002.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/header-totalsfntsize-002.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadata-noeffect-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadata-noeffect-001-ref.xht index 74cbea4fb65..2fb8e345f6f 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadata-noeffect-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadata-noeffect-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadata-noeffect-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadata-noeffect-001.xht index 72c523d78ca..d63472b3b49 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadata-noeffect-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadata-noeffect-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadata-noeffect-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadata-noeffect-002-ref.xht index e6cd20fae24..334f2efe3bc 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadata-noeffect-002-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadata-noeffect-002-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadata-noeffect-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadata-noeffect-002.xht index 04bc0136a90..a1bedf2e1b1 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadata-noeffect-002.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadata-noeffect-002.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-authoritative-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-authoritative-001-ref.xht index 9b36d39195c..17910334229 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-authoritative-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-authoritative-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-authoritative-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-authoritative-001.xht index 53ef02f1bd4..5a4f64384e3 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-authoritative-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-authoritative-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-001-ref.xht index a029377ba4f..7f2f75a54a3 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-001.xht index e203c10a121..5a50ae8559a 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-002-ref.xht index 094888446d2..cc24c2cee57 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-002-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-002-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-002.xht index ce8fd6f43ad..1cec6e1240c 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-002.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-002.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-003-ref.xht index 8dc5807677d..f8796b61947 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-003-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-003-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-003.xht index 9bdd78d3291..ce82fb15598 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-003.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-003.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-004-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-004-ref.xht index c30e2d87bf7..cba52bda11a 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-004-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-004-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-004.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-004.xht index c3dfd0079a4..a9d206ab1de 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-004.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-004.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-005-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-005-ref.xht index dd5bd47a376..6ee737921b4 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-005-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-005-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-005.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-005.xht index 80fe8811059..ada1e0ed0c8 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-005.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-005.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-006-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-006-ref.xht index 1e7a876d747..d07847ac25d 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-006-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-006-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-006.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-006.xht index 7ef5c2b3b18..b3580dc5a05 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-006.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-encoding-006.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-001-ref.xht index cf91f567a55..9e332d2c19e 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-001.xht index db86381d486..9471d401ceb 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-002-ref.xht index 2088e6e6956..cf702283801 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-002-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-002-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-002.xht index 2fccf77a5fe..8a9b7bbf66c 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-002.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-002.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-003-ref.xht index e6c037f2371..c794fb09545 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-003-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-003-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-003.xht index b976512cc63..d63a5bfbb2f 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-003.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-003.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-004-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-004-ref.xht index 24bfad470cb..99a57a6e2ea 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-004-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-004-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-004.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-004.xht index 7a4e5f1703c..276dfc8528b 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-004.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-004.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-005-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-005-ref.xht index 232e02c3d06..b2614c79e76 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-005-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-005-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-005.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-005.xht index d3d0943ce73..662d57d0b73 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-005.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-005.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-006-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-006-ref.xht index cddfe1ffd30..4f62d09a92e 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-006-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-006-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-006.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-006.xht index 9eb102cb380..f8c1542aee1 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-006.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-006.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-007-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-007-ref.xht index bb06af3b2f4..61857f57bf5 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-007-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-007-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-007.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-007.xht index 571b5c2e36b..aa187eade3d 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-007.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-007.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-008-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-008-ref.xht index e2289e8d3f8..4483f95cf00 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-008-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-008-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-008.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-008.xht index 586274f3a02..81fb1bf045d 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-008.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-008.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-009-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-009-ref.xht index 083dfbbb29b..fde8b957989 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-009-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-009-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-009.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-009.xht index 052daf9c75a..49f8e86e23e 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-009.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-009.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-010-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-010-ref.xht index 05d0e26cc69..82cfbad843b 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-010-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-010-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-010.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-010.xht index f52623e5f56..ba21b4fe9c6 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-010.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-010.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-011-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-011-ref.xht index 14b073f0be1..a27f3d7257c 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-011-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-011-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-011.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-011.xht index 7eb6bb9e068..db20d27ac5c 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-011.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-011.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-012-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-012-ref.xht index 74e305dbf18..b558ad39cac 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-012-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-012-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-012.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-012.xht index 39e8eafa781..c2e156cd37f 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-012.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-012.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-013-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-013-ref.xht index 35075cb9623..74131924dfc 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-013-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-013-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-013.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-013.xht index c04a679c6a7..e52f935e27e 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-013.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-013.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-014-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-014-ref.xht index 88102534932..98a0d9eff9b 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-014-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-014-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-014.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-014.xht index 7a4e914b799..19b4b2c90b4 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-014.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-014.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-015-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-015-ref.xht index d6357bc8288..2924ffc68c2 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-015-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-015-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-015.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-015.xht index f3fc96bc976..227dd39cc89 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-015.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-015.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-016-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-016-ref.xht index 591349315b2..2fe2680bacb 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-016-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-016-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-016.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-016.xht index 24807b46683..5e1d69fe358 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-016.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-016.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-017-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-017-ref.xht index acc91e76c01..60e03a15824 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-017-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-017-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-017.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-017.xht index d93e9d2fc46..b8b1bea7540 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-017.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-017.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-018-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-018-ref.xht index cf57224e438..de243814c4b 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-018-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-018-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-018.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-018.xht index 988029a7ab7..e478d49405e 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-018.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-018.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-019-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-019-ref.xht index 9b37273f321..9594daa359b 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-019-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-019-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-019.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-019.xht index 6332e78a8a0..908710db9f2 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-019.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-019.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-020-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-020-ref.xht index de0733cfbf6..0103ea17bdf 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-020-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-020-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-020.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-020.xht index 00593cb69d6..36f71ae0172 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-020.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-020.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-021-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-021-ref.xht index 297a7e93976..84c99872c3e 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-021-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-021-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-021.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-021.xht index 79c690d4197..0b1b864308b 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-021.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-021.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-022-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-022-ref.xht index ed606c087a4..7901e4c27c1 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-022-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-022-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-022.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-022.xht index ad0b9ed1bf2..765fe623162 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-022.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-022.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-023-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-023-ref.xht index 686d5fd0bd7..5c971edfe4e 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-023-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-023-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-023.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-023.xht index a8898d61470..fca660ed287 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-023.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-023.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-024-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-024-ref.xht index d0a66285ac5..f2a2ffc91c5 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-024-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-024-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-024.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-024.xht index 20aec9d3b89..aa911a25254 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-024.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-024.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-025-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-025-ref.xht index 3739bff838a..be087ea9449 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-025-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-025-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-025.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-025.xht index 894935da22b..5f37b4c0b87 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-025.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-025.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-026-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-026-ref.xht index c3c101db3bb..acf7a92736d 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-026-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-026-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-026.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-026.xht index 4cd7b9aff63..7ac2efd3e29 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-026.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-026.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-027-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-027-ref.xht index d216909ad67..7348e86319e 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-027-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-027-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-027.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-027.xht index 451afa456cd..be6655ce0e9 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-027.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-027.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-028-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-028-ref.xht index ba8631981c7..38b9464158c 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-028-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-028-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-028.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-028.xht index 7567c7ed481..16795ad5584 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-028.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-028.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-029-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-029-ref.xht index 8d5e4cc434c..51117d00226 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-029-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-029-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-029.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-029.xht index 3add190565e..ef827f1af8c 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-029.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-029.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-030-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-030-ref.xht index 15a9124f696..6728da7d988 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-030-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-030-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-030.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-030.xht index 6e6bf224568..4987376bbca 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-030.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-copyright-030.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-001-ref.xht index 4e6a1654c1d..f0ff4475ffc 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-001.xht index e1f01aba0e0..f2036e0c9ad 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-002-ref.xht index 1d02c98b9b1..09257e203ad 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-002-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-002-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-002.xht index d5c7bfa25ac..1bedbe51152 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-002.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-002.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-003-ref.xht index b24e02372cc..dd8e19ca3ed 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-003-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-003-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-003.xht index 2916cde1c3f..755ec761ee2 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-003.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-003.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-004-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-004-ref.xht index 2c0b58c5b8b..b0a7eae6bce 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-004-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-004-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-004.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-004.xht index b12fff3f2cb..0342c6d007e 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-004.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-004.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-005-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-005-ref.xht index c1b31eee0eb..09c69c721a7 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-005-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-005-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-005.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-005.xht index fc63b381b4d..ec016921bd8 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-005.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-005.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-006-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-006-ref.xht index acba5fe976c..21786c889ca 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-006-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-006-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-006.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-006.xht index 963e57200f9..fe5901933fb 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-006.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-006.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-007-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-007-ref.xht index d1d0661a524..7aa4443467b 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-007-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-007-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-007.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-007.xht index cb99b51a513..eba69ef054b 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-007.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-007.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-008-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-008-ref.xht index 3357a97fb76..c0235836be5 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-008-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-008-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-008.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-008.xht index 63835d12e91..dde83aada4a 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-008.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-008.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-009-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-009-ref.xht index ebc54cf192a..58cc8a67c97 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-009-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-009-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-009.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-009.xht index fa76352bf42..dfc9fefabc1 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-009.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-009.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-010-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-010-ref.xht index 49c35eca5a3..041da846864 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-010-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-010-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-010.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-010.xht index 3eb968939fb..236a8abb939 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-010.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-010.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-011-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-011-ref.xht index 41180a47690..0a2554a0df7 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-011-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-011-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-011.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-011.xht index bb51400c319..5e96f4ebac6 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-011.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credit-011.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-001-ref.xht index 2eccfa0c2b4..78dbbcb1ff0 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-001.xht index 8d561f908c1..0426902a005 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-002-ref.xht index 210b6acaf9d..733322d27bf 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-002-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-002-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-002.xht index 3773b4eb162..d03b025759b 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-002.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-002.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-003-ref.xht index b7345fcf39d..1a90cafdbe2 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-003-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-003-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-003.xht index ad17d425b12..3c022483b83 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-003.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-003.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-004-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-004-ref.xht index 58815830723..5dc7472d266 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-004-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-004-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-004.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-004.xht index 079c036b64d..d4c61c5e30b 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-004.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-004.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-005-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-005-ref.xht index f92bef47acf..19893c2b6db 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-005-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-005-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-005.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-005.xht index 3bd34fb911c..fca34323785 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-005.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-005.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-006-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-006-ref.xht index be62dd4a0ad..b67124f394c 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-006-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-006-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-006.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-006.xht index c309e8e3db6..fa049ab4453 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-006.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-006.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-007-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-007-ref.xht index 0679a7cc29e..7c392e24d58 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-007-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-007-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-007.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-007.xht index 99583885b33..679eb3501ca 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-007.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-credits-007.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-001-ref.xht index 4dd4882ccf0..8cb02608548 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-001.xht index da6b4234902..9037a5187f3 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-002-ref.xht index 5f7f49d323c..ffbeb0831d6 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-002-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-002-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-002.xht index 1e6e33c79c8..81f1aba207c 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-002.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-002.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-003-ref.xht index 25bcb2e67bb..256ec2e2f7f 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-003-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-003-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-003.xht index 4a09915fe83..9c3f097ea99 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-003.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-003.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-004-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-004-ref.xht index d7735f0f561..854752cdc07 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-004-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-004-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-004.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-004.xht index 5f33d8e892e..59b4b0761ba 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-004.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-004.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-005-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-005-ref.xht index 19d54bdb3af..c96732e7a42 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-005-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-005-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-005.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-005.xht index 1458176a185..db67c98b734 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-005.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-005.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-006-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-006-ref.xht index d23cd8ffb75..02d558f3cce 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-006-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-006-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-006.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-006.xht index 02d0f29ac33..7983a22be93 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-006.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-006.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-007-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-007-ref.xht index 444efc7f0d7..9b0b8a5c027 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-007-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-007-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-007.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-007.xht index d1e05dfdc76..b79c27615b3 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-007.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-007.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-008-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-008-ref.xht index 08aa7ac6056..31a50fb9a32 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-008-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-008-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-008.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-008.xht index 06050b4272b..1f8284db1f4 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-008.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-008.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-009-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-009-ref.xht index 2f59b764f41..8ece3e3222c 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-009-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-009-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-009.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-009.xht index 3d55c4d246f..e412d8bfd49 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-009.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-009.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-010-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-010-ref.xht index c2de5d3688f..372ce67b107 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-010-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-010-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-010.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-010.xht index f0eb8fe0824..7efc023847e 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-010.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-010.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-011-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-011-ref.xht index 5ac4e4361f6..87c08323ab4 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-011-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-011-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-011.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-011.xht index 70b0726c2b0..a2ea3832b0e 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-011.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-011.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-012-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-012-ref.xht index 6c2ef0f7bdf..93a2e9f91f2 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-012-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-012-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-012.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-012.xht index 29326933f09..36805634b27 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-012.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-012.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-013-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-013-ref.xht index 544448cc794..3c089912f22 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-013-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-013-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-013.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-013.xht index 9b77e4f09f4..727ca4d292b 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-013.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-013.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-014-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-014-ref.xht index eaf00dffacc..11f5fc18a68 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-014-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-014-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-014.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-014.xht index 0eabe5f301d..945f1fe2c67 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-014.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-014.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-015-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-015-ref.xht index 69f93647546..8b9abf7eab6 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-015-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-015-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-015.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-015.xht index 999fc6ed1c9..1da62452cc7 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-015.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-015.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-016-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-016-ref.xht index 86122db1d15..aa6997c2c32 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-016-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-016-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-016.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-016.xht index 42a13cb89f7..76e0ddb51a7 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-016.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-016.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-017-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-017-ref.xht index fc199601a86..fdb3deace68 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-017-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-017-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-017.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-017.xht index 7cb27c2eb6c..5135914740c 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-017.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-017.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-018-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-018-ref.xht index fbb88c09728..cf9f7385e61 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-018-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-018-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-018.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-018.xht index e06fccdb3ae..29c21582a16 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-018.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-018.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-019-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-019-ref.xht index 3b3be991e76..ffd7da7186a 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-019-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-019-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-019.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-019.xht index 7dea5bf41b8..cd8595359d7 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-019.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-019.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-020-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-020-ref.xht index 7a9ae18b55b..ad1549475bd 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-020-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-020-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-020.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-020.xht index 7b5260182a0..bbf9fa62e26 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-020.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-020.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-021-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-021-ref.xht index f875aeb58f5..08489bfeb8e 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-021-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-021-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-021.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-021.xht index dff82addea8..719f48b599f 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-021.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-021.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-022-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-022-ref.xht index 25d55b9bf3f..89807edcdfa 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-022-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-022-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-022.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-022.xht index d88d3c6a149..3a24b993a97 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-022.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-022.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-023-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-023-ref.xht index 11796275000..b035c79fd84 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-023-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-023-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-023.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-023.xht index 562ccddd3ac..2ce0cb87f02 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-023.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-023.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-024-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-024-ref.xht index 88f87738bf6..c1d142d70bc 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-024-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-024-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-024.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-024.xht index 5fd4321e363..cf108b762c6 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-024.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-024.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-025-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-025-ref.xht index 19f1d5f2c53..a8b3d57de19 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-025-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-025-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-025.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-025.xht index ca515947f77..c825aeb51c0 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-025.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-025.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-026-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-026-ref.xht index 5d810a64acf..b780fa576b6 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-026-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-026-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-026.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-026.xht index b76a6dfa350..741cd98ac8f 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-026.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-026.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-027-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-027-ref.xht index 48f76c97778..9ce1f70c474 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-027-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-027-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-027.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-027.xht index 6340954f5d8..64e0151cc64 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-027.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-027.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-028-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-028-ref.xht index 0b062d5e552..5011445e2be 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-028-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-028-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-028.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-028.xht index ba9f333a077..533f0681879 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-028.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-028.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-029-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-029-ref.xht index 8f95e8a8508..ed67746cc72 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-029-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-029-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-029.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-029.xht index 7812595fff6..442edc34548 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-029.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-029.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-030-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-030-ref.xht index 134249b8a19..f9cbd230242 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-030-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-030-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-030.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-030.xht index 7146a0dd89a..873e7b7e7fe 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-030.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-030.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-031-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-031-ref.xht index 380726824bd..d619643e117 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-031-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-031-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-031.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-031.xht index fe4beb3fe0d..79650aed720 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-031.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-031.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-032-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-032-ref.xht index 2298334a1e4..3816bc34924 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-032-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-032-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-032.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-032.xht index b5426d566bc..f63c8049d4c 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-032.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-description-032.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-001-ref.xht index 28f50e1f6f6..1ae37fb8b62 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-001.xht index 2b45c19fa1d..580fdad9dca 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-002-ref.xht index 457d93d6654..8f77f1f68dd 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-002-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-002-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-002.xht index 7aa67d72265..a5699d9388d 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-002.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-002.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-003-ref.xht index babac89591b..9923ff27cb5 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-003-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-003-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-003.xht index bef479caeb7..0d232649948 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-003.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-003.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-004-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-004-ref.xht index 17cdcb88323..8728810f94d 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-004-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-004-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-004.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-004.xht index 0e2d0a6a251..193d3bc3202 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-004.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-004.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-005-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-005-ref.xht index 10203aaea18..257221ad3d8 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-005-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-005-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-005.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-005.xht index 949d85db553..b5de63fdecd 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-005.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-005.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-006-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-006-ref.xht index 04ac88aa516..e2324cedd88 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-006-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-006-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-006.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-006.xht index cc1b38a6729..59080410cae 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-006.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-006.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-007-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-007-ref.xht index e979f3f030a..7a3b582727d 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-007-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-007-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-007.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-007.xht index d916f0d3248..8f5041de426 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-007.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-007.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-008-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-008-ref.xht index 3888a9d1459..b4d48586eb3 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-008-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-008-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-008.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-008.xht index 792d95a5ffd..d89228937d4 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-008.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-008.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-009-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-009-ref.xht index 98418b3d730..5caca3cda7a 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-009-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-009-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-009.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-009.xht index 203c2ee289e..3e710a90cb9 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-009.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-009.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-010-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-010-ref.xht index 132ff2c7663..37dd06e8b1c 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-010-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-010-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-010.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-010.xht index ee27c877ace..3fa5d219ee5 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-010.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-010.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-011-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-011-ref.xht index fa122dc16e2..99cb8525be1 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-011-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-011-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-011.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-011.xht index 7b3e5e902b1..e1ce7b12c0c 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-011.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-011.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-012-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-012-ref.xht index d6b98b76e95..7a5d540ee19 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-012-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-012-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-012.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-012.xht index 53ca2213b7a..bf60af8821e 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-012.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-012.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-013-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-013-ref.xht index 44a322488c7..a4242625566 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-013-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-013-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-013.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-013.xht index 0c3cd023370..a02b80f383f 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-013.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-013.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-014-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-014-ref.xht index f7051a3cf76..10508b56261 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-014-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-014-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-014.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-014.xht index 029a579751b..717262ef213 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-014.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-014.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-015-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-015-ref.xht index 0ee4bc9e69e..77f62555d93 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-015-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-015-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-015.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-015.xht index 825cd9a0a16..0221c4f4dfa 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-015.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-015.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-016-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-016-ref.xht index 31d15ee6ed7..56bb888e29b 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-016-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-016-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-016.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-016.xht index a35daa8f46d..bb92c0f71ef 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-016.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-016.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-017-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-017-ref.xht index f8666b36faf..ffa183926a8 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-017-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-017-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-017.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-017.xht index ca044a70146..153818839d8 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-017.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-017.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-018-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-018-ref.xht index 6ff676e2137..b8803b41023 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-018-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-018-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-018.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-018.xht index 69cd5960f61..0c2c8ac6483 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-018.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-018.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-019-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-019-ref.xht index 7bfb6ff6d03..0a9b481775f 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-019-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-019-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-019.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-019.xht index 495934bbcf1..924ef854836 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-019.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-019.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-020-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-020-ref.xht index 62f5b6bb395..2875d4d0059 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-020-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-020-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-020.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-020.xht index 540cf9f13ab..c970a685ec0 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-020.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-020.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-021-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-021-ref.xht index 31412bc365c..d7004863b7f 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-021-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-021-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-021.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-021.xht index b8b736e5ca2..4987130b991 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-021.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-021.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-022-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-022-ref.xht index 3b588573317..8e397ec1e0f 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-022-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-022-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-022.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-022.xht index e06f93c6883..5904ee72210 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-022.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-022.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-023-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-023-ref.xht index 1caaf71a2cc..c3bae5adf1e 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-023-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-023-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-023.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-023.xht index 330b3c1b147..31c89c2b5a2 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-023.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-023.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-024-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-024-ref.xht index 62d3896293d..b459614e53f 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-024-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-024-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-024.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-024.xht index 455cf07306c..864ade19234 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-024.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-024.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-025-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-025-ref.xht index fac5c079d81..2dffc2a2d5c 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-025-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-025-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-025.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-025.xht index cd9ba04ee82..935229408cc 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-025.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-025.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-026-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-026-ref.xht index 5ff37c597c7..5b1c188fe11 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-026-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-026-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-026.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-026.xht index a2d912ed974..65898373d9f 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-026.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-026.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-027-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-027-ref.xht index f58614d1cba..20506eb4694 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-027-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-027-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-027.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-027.xht index 781a3daa2e2..4a57328f453 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-027.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-027.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-028-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-028-ref.xht index 906d169e73e..ea8448f234c 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-028-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-028-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-028.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-028.xht index e6a62a03246..9318a32ca35 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-028.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-028.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-029-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-029-ref.xht index a37622dcb20..4900e7eb448 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-029-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-029-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-029.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-029.xht index 5350694edcc..139bc0a787c 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-029.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-029.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-030-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-030-ref.xht index 53ec7040970..80b424a616a 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-030-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-030-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-030.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-030.xht index 9a704e0b167..92aaac17e65 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-030.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-030.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-031-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-031-ref.xht index 904c263fc58..12b53d8c151 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-031-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-031-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-031.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-031.xht index 9fe368dcc52..b0a72742155 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-031.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-031.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-032-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-032-ref.xht index e8e45c9277c..d2252c9d4d1 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-032-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-032-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-032.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-032.xht index f38b0e13fa6..11927e5b841 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-032.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-032.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-033-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-033-ref.xht index 7d93a838cf8..dc4b410bc48 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-033-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-033-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-033.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-033.xht index 08d2a158c05..60167d40c6d 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-033.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-033.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-034-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-034-ref.xht index f049f281ae9..893e746e272 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-034-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-034-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-034.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-034.xht index 2941331d84a..eb33ee887fc 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-034.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-034.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-035-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-035-ref.xht index 2e9c0a4d788..fc823a3573a 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-035-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-035-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-035.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-035.xht index b5ea7ed01ee..93f42ec3f73 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-035.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-035.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-036-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-036-ref.xht index f4e180ede7e..128ed2f2809 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-036-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-036-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-036.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-036.xht index c3fd7c0061a..e62f0d04dd0 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-036.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-036.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-037-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-037-ref.xht index 7841954063f..abff1a62fe4 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-037-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-037-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-037.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-037.xht index 65af2e362f8..dd606a86bb5 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-037.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-037.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-038-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-038-ref.xht index 962995c1176..f6b4dc2a711 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-038-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-038-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-038.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-038.xht index a5f8276c57f..ab70032baf7 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-038.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-038.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-039-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-039-ref.xht index 3c2a00200e2..1cb9a9aabae 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-039-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-039-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-039.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-039.xht index 3d2d810bc2e..0d0d310b09e 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-039.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-039.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-040-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-040-ref.xht index 7262eceb9ca..7f49b2814b2 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-040-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-040-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-040.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-040.xht index 9011b68be25..16a25a468a0 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-040.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-040.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-041-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-041-ref.xht index 9455fe103cd..0c400f51824 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-041-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-041-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-041.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-041.xht index d0e332f757d..058bab9a464 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-041.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-041.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-042-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-042-ref.xht index 17964ced702..0c2b968fc2f 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-042-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-042-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-042.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-042.xht index 9a123c09801..76f738771ba 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-042.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-042.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-043-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-043-ref.xht index 4041e08e64b..f0cb455254c 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-043-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-043-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-043.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-043.xht index a412063d7f3..c274ef4e5a6 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-043.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-043.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-044-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-044-ref.xht index eeee8133157..e85822b0224 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-044-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-044-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-044.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-044.xht index a6e33c3c4cc..64bec35e7e5 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-044.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-044.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-045-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-045-ref.xht index 238f61d0722..99c70c0ab24 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-045-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-045-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-045.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-045.xht index 144a09465af..70e5f7c8873 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-045.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-045.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-046-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-046-ref.xht index a70963c06d4..234aa03fc27 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-046-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-046-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-046.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-046.xht index 5634b2694a7..52537bd211a 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-046.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-046.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-047-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-047-ref.xht index a3d295dad96..a4b30113055 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-047-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-047-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-047.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-047.xht index 5fa7cf1315d..2324d271927 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-047.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-047.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-048-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-048-ref.xht index 8f3dcc4f385..5581a23abd0 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-048-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-048-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-048.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-048.xht index 6f6738bb371..ada0e9db962 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-048.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-048.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-049-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-049-ref.xht index d1980580d2b..247253a1283 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-049-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-049-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-049.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-049.xht index d7f9618851e..345dec4a676 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-049.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-049.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-050-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-050-ref.xht index 4fda603b128..10b5ed1526d 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-050-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-050-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-050.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-050.xht index 694158feb5d..d9857d66021 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-050.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-extension-050.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-001-ref.xht index 9a4d73b9c50..41e7e621c8b 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-001.xht index d51dad08c95..90b0a6a28b8 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-002-ref.xht index 9eafd4813d7..9ce36cb5520 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-002-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-002-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-002.xht index f31d582f468..bf575cf6299 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-002.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-002.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-003-ref.xht index 5c6173c9a2e..b373eefbda0 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-003-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-003-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-003.xht index 32d1d8f9484..5c767817bea 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-003.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-003.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-004-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-004-ref.xht index 8207b775a86..d2bd9579d34 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-004-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-004-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-004.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-004.xht index cb14c0020d0..4f2ae4253a7 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-004.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-004.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-005-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-005-ref.xht index 2752872600f..687322b87d4 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-005-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-005-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-005.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-005.xht index 9ecc90dedb5..3f56ce888e6 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-005.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-005.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-006-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-006-ref.xht index 6b43b9e26b1..ac64c0b9c40 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-006-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-006-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-006.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-006.xht index d6f7fdc020f..22596e83f57 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-006.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-006.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-007-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-007-ref.xht index b155db4f9f8..fa4d8ffd773 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-007-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-007-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-007.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-007.xht index 5299797afe9..eb873685ce8 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-007.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-007.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-008-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-008-ref.xht index a8d06a1991a..8f8f693a176 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-008-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-008-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-008.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-008.xht index adb1938bbd3..18cd6cbf256 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-008.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-008.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-009-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-009-ref.xht index bd561774a6a..5dbf3a1bf7a 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-009-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-009-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-009.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-009.xht index 2f8c50b7080..73abdbb47f6 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-009.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-009.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-010-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-010-ref.xht index df83cc60c9e..e35102d0d07 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-010-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-010-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-010.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-010.xht index 5288aa03b99..9339b9b4682 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-010.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-010.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-011-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-011-ref.xht index 4f664ad580e..5e48fa15d7f 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-011-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-011-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-011.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-011.xht index df585c275a8..d8ef5814a9b 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-011.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-011.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-012-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-012-ref.xht index c2519bcd370..3d8261f9f50 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-012-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-012-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-012.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-012.xht index dffb528de02..e1667bf5868 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-012.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-012.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-013-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-013-ref.xht index 1ae86b0ada2..cebfa5547b1 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-013-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-013-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-013.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-013.xht index f46e36402f7..90eb0d1bfbe 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-013.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-013.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-014-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-014-ref.xht index 6bd75166351..8229c0c8203 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-014-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-014-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-014.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-014.xht index 973f166bf3b..5b56279d1d6 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-014.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-014.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-015-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-015-ref.xht index 4a5406ee6f0..07ae0f7571a 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-015-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-015-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-015.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-015.xht index 5a846a982e8..85b05c916b7 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-015.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-015.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-016-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-016-ref.xht index 581b55b9624..a81065feb3a 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-016-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-016-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-016.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-016.xht index b0b0fa61f9a..ecd1714e53f 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-016.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-016.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-017-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-017-ref.xht index 9dd084f30b4..ca0a368bc43 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-017-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-017-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-017.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-017.xht index 1968de3638f..e88ed7df9f0 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-017.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-017.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-018-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-018-ref.xht index 031053f4474..366f68ef5b8 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-018-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-018-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-018.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-018.xht index 54989fa599c..9fa105cab23 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-018.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-018.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-019-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-019-ref.xht index 126fb6f1766..ff1c5e172e0 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-019-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-019-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-019.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-019.xht index 3ff146e90ec..7de65f7497e 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-019.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-019.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-020-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-020-ref.xht index a3f5e8a0117..c3d451ff47e 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-020-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-020-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-020.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-020.xht index 28095c297b2..5c3fec390c0 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-020.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-020.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-021-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-021-ref.xht index 28356e49aa0..f32f2b4a513 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-021-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-021-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-021.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-021.xht index 4f7dfea2d15..d67b3bbc099 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-021.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-021.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-022-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-022-ref.xht index b9835adfc17..ab86634d1f6 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-022-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-022-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-022.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-022.xht index 95dbb9e5439..f8c66b9a91a 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-022.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-022.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-023-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-023-ref.xht index 72e430c79bc..3fc791b4013 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-023-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-023-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-023.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-023.xht index e55bce8fb14..f8806db4f52 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-023.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-023.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-024-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-024-ref.xht index 2ab50d9e92f..1e643e65bc5 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-024-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-024-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-024.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-024.xht index cde9e4c8dee..8c52881952b 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-024.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-024.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-025-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-025-ref.xht index 59dd793d158..3ad4b70989e 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-025-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-025-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-025.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-025.xht index f3aa026d489..da200c0090e 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-025.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-025.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-026-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-026-ref.xht index 13ff2b92e78..5cc1cc41770 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-026-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-026-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-026.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-026.xht index 0ddab169e2f..fc942a5263f 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-026.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-026.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-027-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-027-ref.xht index 870f1ee743d..ccde52d6029 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-027-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-027-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-027.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-027.xht index 73641077c77..2f9a28f0825 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-027.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-027.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-028-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-028-ref.xht index a7b75c077d8..69307bdd902 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-028-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-028-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-028.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-028.xht index 13ec26fa4c2..30a802e5717 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-028.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-028.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-029-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-029-ref.xht index 7794b4b309d..35bdfd779eb 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-029-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-029-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-029.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-029.xht index cc7641d1ff5..425ce7aa351 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-029.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-029.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-030-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-030-ref.xht index 28fdc02aea7..aa52bc93e2d 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-030-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-030-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-030.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-030.xht index 8120b080561..512ba15511f 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-030.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-030.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-031-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-031-ref.xht index 86f0836c87e..9d4a618e4bf 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-031-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-031-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-031.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-031.xht index 964fd8d991f..2ea71218b90 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-031.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-031.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-032-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-032-ref.xht index 6b8141a079e..447b345b6ab 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-032-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-032-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-032.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-032.xht index e167c741179..d8c835bced2 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-032.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-032.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-033-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-033-ref.xht index 6d264385a16..49f2af0fd24 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-033-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-033-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-033.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-033.xht index ce9d3231db5..a1f8183bd55 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-033.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-license-033.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-001-ref.xht index 2e3051590de..d28202a6f05 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-001.xht index 2950f2be5d6..fafc0d1a982 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-002-ref.xht index 61fb8c6b7e5..f0fbf887877 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-002-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-002-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-002.xht index e3c5f400339..0c306cbb37b 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-002.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-002.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-003-ref.xht index e0092b9982b..5353ec3f67b 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-003-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-003-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-003.xht index f4e3c830b98..fdbca2c53e5 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-003.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-003.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-004-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-004-ref.xht index fc9ddc87a49..98865d0348c 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-004-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-004-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-004.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-004.xht index 6addf0eac93..e58d013a338 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-004.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-004.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-005-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-005-ref.xht index 03ad42905b4..3c9194eb4b3 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-005-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-005-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-005.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-005.xht index b61a49efa77..f4de99562c0 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-005.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-005.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-006-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-006-ref.xht index 31709ca24e2..a9433cdecdd 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-006-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-006-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-006.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-006.xht index 51505b24615..9d23323dbd8 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-006.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-006.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-007-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-007-ref.xht index fe48e360010..26fcbeaba59 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-007-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-007-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-007.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-007.xht index d2519e5dd61..474a9f2de2a 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-007.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-007.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-008-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-008-ref.xht index b94d0a042b8..180897e68d2 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-008-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-008-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-008.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-008.xht index 7a06375925a..22d4d714147 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-008.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-008.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-009-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-009-ref.xht index 7142f54009e..1aae1a582df 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-009-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-009-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-009.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-009.xht index 21cb35d16f4..330c868ecd8 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-009.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-009.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-010-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-010-ref.xht index e8593b842a6..ce0c0faef27 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-010-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-010-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-010.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-010.xht index c23e6c4303b..5410ec57247 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-010.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-licensee-010.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-001-ref.xht index c157fd84b2f..acfddb1a068 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-001.xht index 36b447d9f28..a89f58ec421 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-002-ref.xht index 30d64883a8c..44f7a50985a 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-002-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-002-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-002.xht index 0945287df57..591e5cc73c6 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-002.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-002.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-003-ref.xht index 4a689ef9fb9..b0b95ccc032 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-003-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-003-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-003.xht index 22ec57bf361..fe30a6a07fd 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-003.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-003.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-004-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-004-ref.xht index 5c3ebc53354..5f6cf032367 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-004-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-004-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-004.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-004.xht index 27d8b4a506c..148eaf597bc 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-004.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-004.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-005-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-005-ref.xht index 801b7a38489..2400dd1e2ac 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-005-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-005-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-005.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-005.xht index cae7156a454..0e098d541be 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-005.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-005.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-006-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-006-ref.xht index 8ce00985a77..6783ed032e2 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-006-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-006-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-006.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-006.xht index 28cf56af09a..ddd56222b66 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-006.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-metadata-006.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-001-ref.xht index 630aa67af10..af7e199c35b 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-001.xht index 03418449087..2a520247080 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-002-ref.xht index 1753b2e7fa0..c74af76aa08 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-002-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-002-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-002.xht index 1a428f92428..e060ebe1b17 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-002.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-002.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-003-ref.xht index d8e6cbb820a..aea664632b4 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-003-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-003-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-003.xht index 51457d08430..38615df5dbd 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-003.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-003.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-004-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-004-ref.xht index 5501b955bd4..95cf51e5186 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-004-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-004-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-004.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-004.xht index e7a2ec992f3..951ee5f58e7 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-004.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-004.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-005-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-005-ref.xht index 2255e280737..4c1fe3f8328 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-005-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-005-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-005.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-005.xht index 735d055a897..a27963ba62f 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-005.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-005.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-006-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-006-ref.xht index 7655bc0e4b5..8ebe117ac46 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-006-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-006-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-006.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-006.xht index cc807f8c591..352b7fc5a83 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-006.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-006.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-007-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-007-ref.xht index 6ab8c706023..915c6bf9c12 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-007-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-007-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-007.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-007.xht index 7b7f6eda5ae..c526e028be7 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-007.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-007.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-008-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-008-ref.xht index fb77d285926..0a159d30df3 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-008-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-008-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-008.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-008.xht index 3f8e57fdcca..fc6d3f51275 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-008.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-008.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-009-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-009-ref.xht index 628860f0fa8..412af550983 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-009-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-009-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-009.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-009.xht index 27f1b967117..1d2652cf8e1 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-009.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-009.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-010-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-010-ref.xht index e4d09476c07..4d87a13a5ff 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-010-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-010-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-010.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-010.xht index c28c7c8bc70..1b9b49525cd 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-010.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-010.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-011-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-011-ref.xht index fe6f924f3f5..8e147615f63 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-011-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-011-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-011.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-011.xht index 093bd4462fb..190cd156f50 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-011.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-011.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-012-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-012-ref.xht index 4c26662ec65..7572e21548b 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-012-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-012-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-012.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-012.xht index b2b44509104..781d63f40a6 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-012.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-012.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-013-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-013-ref.xht index 13a6250583b..37aec9cba4c 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-013-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-013-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-013.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-013.xht index 136f52c3a72..a2c78fadc60 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-013.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-013.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-014-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-014-ref.xht index 58cfda95e4a..edcb775f98d 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-014-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-014-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-014.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-014.xht index 6a0e6944e77..59c9a2c2caf 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-014.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-014.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-015-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-015-ref.xht index 0029aa61c93..04d8c191c56 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-015-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-015-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-015.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-015.xht index cea7d135c6b..9fae1626ab3 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-015.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-015.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-016-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-016-ref.xht index 4f73920b804..0b7ace6a735 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-016-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-016-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-016.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-016.xht index 21b5869eab7..de1a4e56791 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-016.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-016.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-017-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-017-ref.xht index 3767dd52a9d..af2409addc8 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-017-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-017-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-017.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-017.xht index ac949b719e1..c8286248167 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-017.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-017.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-018-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-018-ref.xht index 5a98ab9cfbc..fe197c9c6c6 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-018-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-018-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-018.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-018.xht index 61ea5bc43b9..c9f3d971b4d 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-018.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-018.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-019-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-019-ref.xht index c22de59c9cc..ef78c16cae8 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-019-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-019-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-019.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-019.xht index 18d8c3c496e..fd6b4739bbd 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-019.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-019.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-020-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-020-ref.xht index 97a22843abd..dc68913f697 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-020-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-020-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-020.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-020.xht index b8fb1fff624..9540cf33968 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-020.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-020.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-021-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-021-ref.xht index 39c5272b58c..477658a45ef 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-021-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-021-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-021.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-021.xht index 23c6b0d5ab8..3197f14ffd5 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-021.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-021.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-022-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-022-ref.xht index 8d4504f18f9..d189b3f4cc5 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-022-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-022-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-022.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-022.xht index 887bd48e465..82b6bdc9a5c 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-022.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-022.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-023-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-023-ref.xht index 3864d20215a..e1d76e87eca 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-023-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-023-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-023.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-023.xht index 0291c356802..e147b7d9d98 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-023.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-023.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-024-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-024-ref.xht index ade7baa6ba0..30cad4f1392 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-024-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-024-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-024.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-024.xht index 0278970494c..cb64cf6bc44 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-024.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-024.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-025-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-025-ref.xht index 22d1150b91a..ec4beb6911e 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-025-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-025-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-025.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-025.xht index 549e2ae4da2..a637413ac42 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-025.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-025.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-026-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-026-ref.xht index c3acbbdad12..0d8d7e78459 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-026-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-026-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-026.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-026.xht index c939766557d..942a3a1ae28 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-026.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-026.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-027-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-027-ref.xht index 079c6d501ef..5befcb5b090 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-027-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-027-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-027.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-027.xht index 441b1efac0d..913bd3dedb4 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-027.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-027.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-028-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-028-ref.xht index 0e54cce4b32..f19f63ca2fc 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-028-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-028-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-028.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-028.xht index f5f70dec7f1..4c87a166863 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-028.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-028.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-029-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-029-ref.xht index 674f9d19a8c..1fe32f823b9 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-029-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-029-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-029.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-029.xht index 2c79965ce5d..e40eb5b9f63 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-029.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-029.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-030-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-030-ref.xht index 5143caea89a..2ec0c8bc05d 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-030-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-030-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-030.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-030.xht index c23b29bce97..13d44c9d234 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-030.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-trademark-030.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-001-ref.xht index 2146d55afa5..72d9e076d15 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-001.xht index 8f05162a788..1d1bad56903 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-002-ref.xht index 940d73e9f82..235541f8849 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-002-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-002-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-002.xht index b6e7f9c44a1..daa99d93f66 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-002.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-002.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-003-ref.xht index 935515d22f7..4fe2ce087e7 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-003-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-003-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-003.xht index aeed38b38f8..8b7d3dfa1ca 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-003.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-003.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-005-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-005-ref.xht index ef62b2f8262..2808ec80fe0 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-005-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-005-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-005.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-005.xht index 5516ae23415..f1adddd3551 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-005.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-005.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-006-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-006-ref.xht index af2869291c5..6800d9f85b4 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-006-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-006-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-006.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-006.xht index 6bcff4a3835..8d80b0f6dab 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-006.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-006.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-007-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-007-ref.xht index a812572075f..baf4c71977f 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-007-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-007-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-007.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-007.xht index a6bfc062830..a51f490950b 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-007.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-uniqueid-007.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-001-ref.xht index 1564ac6f916..889ed26d850 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-001.xht index 73fa2f14c94..086089fcd96 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-002-ref.xht index 9cdbb38e64e..74f38a6eb81 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-002-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-002-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-002.xht index 5a5a4b6ac9d..f2dc70146f9 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-002.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-002.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-003-ref.xht index 1b3e63a03e8..acb11326192 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-003-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-003-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-003.xht index 1c5d35afcd4..f6324eb4dca 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-003.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-003.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-004-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-004-ref.xht index c2140a473a6..885eb597a3d 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-004-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-004-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-004.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-004.xht index 58219eb421d..471ac25ae5e 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-004.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-004.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-006-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-006-ref.xht index 08f4b72e6e1..083cc04d59e 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-006-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-006-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-006.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-006.xht index 5540e92051d..88873b97008 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-006.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-006.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-007-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-007-ref.xht index 33864135fc8..1cb3909e1a2 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-007-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-007-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-007.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-007.xht index 54ddd7a1183..dcc4f519eec 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-007.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-007.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-008-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-008-ref.xht index 77795aeef0e..17aecbdcd0d 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-008-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-008-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-008.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-008.xht index 47e1c9ed316..d8a4ea7f2e6 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-008.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-008.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-009-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-009-ref.xht index e338e7277bc..ae20d3c2d7f 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-009-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-009-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-009.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-009.xht index 69a515ccb5e..419f0aab4c6 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-009.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-009.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-010-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-010-ref.xht index f087ec9e5a2..f432446220c 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-010-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-010-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-010.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-010.xht index 68ec33bbb58..3a6ea34612e 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-010.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-010.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-011-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-011-ref.xht index 22348fc1f0a..ca85a88d4df 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-011-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-011-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-011.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-011.xht index 2b2a3bf23c7..acb06e79705 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-011.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-011.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-012-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-012-ref.xht index ea6309c35f4..eaa74182078 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-012-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-012-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-012.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-012.xht index 763618bab68..35fe1bf54a5 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-012.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-schema-vendor-012.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-001-ref.xht index 05679261966..fa727b98c8c 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-001.xht index b21c06c7529..e97bbbacca0 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-002-ref.xht index e6998b2aad0..c2296b2a5cf 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-002-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-002-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-002.xht index 8cbc7605c7d..16583b97bdd 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-002.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-002.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-003-ref.xht index 0f1d9a39e71..ce783be0a3d 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-003-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-003-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-003.xht index 05fd27d2d7d..c7e45ae07b3 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-003.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-003.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-004-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-004-ref.xht index ecbca33328c..3f9fc913bff 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-004-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-004-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-004.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-004.xht index f90b5b202c5..5f04b21e794 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-004.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-004.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-005-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-005-ref.xht index e0a1757f862..76c7138598a 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-005-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-005-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-005.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-005.xht index 8a8d833bb11..616e527521a 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-005.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-005.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-006-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-006-ref.xht index a6c5e707851..3fc5cc78d25 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-006-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-006-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-006.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-006.xht index fc19dedfc5f..a245c0ed28c 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-006.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-006.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-007-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-007-ref.xht index 68187959f6d..92db0bbf800 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-007-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-007-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-007.xht b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-007.xht index 6060a0a4860..854cf67ef84 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-007.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/metadatadisplay-well-formed-007.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/privatedata-noeffect-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/privatedata-noeffect-001-ref.xht index 32c5413c1cf..ff52caee245 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/privatedata-noeffect-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/privatedata-noeffect-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/privatedata-noeffect-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/privatedata-noeffect-001.xht index 85eb544d88d..9a9cc04f684 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/privatedata-noeffect-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/privatedata-noeffect-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/privatedata-noeffect-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/privatedata-noeffect-002-ref.xht index 8eea4cfcede..5f17e1f32cb 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/privatedata-noeffect-002-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/privatedata-noeffect-002-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/privatedata-noeffect-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/privatedata-noeffect-002.xht index 65394188034..fbcd9beb2e7 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/privatedata-noeffect-002.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/privatedata-noeffect-002.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/support/available-001a.xht b/tests/wpt/web-platform-tests/css/WOFF2/support/available-001a.xht index 09029569542..6d0ad65936f 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/support/available-001a.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/support/available-001a.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/support/available-001b.xht b/tests/wpt/web-platform-tests/css/WOFF2/support/available-001b.xht index f7f569497b9..189a89677a7 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/support/available-001b.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/support/available-001b.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/support/available-002a.xht b/tests/wpt/web-platform-tests/css/WOFF2/support/available-002a.xht index 067adf8d661..ff9f51083ff 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/support/available-002a.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/support/available-002a.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/support/available-002b.xht b/tests/wpt/web-platform-tests/css/WOFF2/support/available-002b.xht index ee59eaa5d3a..ccbd5aabf07 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/support/available-002b.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/support/available-002b.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-bad-origlength-loca-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-bad-origlength-loca-001-ref.xht index ab995af5685..4d916f251ed 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-bad-origlength-loca-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-bad-origlength-loca-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-bad-origlength-loca-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-bad-origlength-loca-001.xht index 3ce3c8cc0db..d1f67828948 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-bad-origlength-loca-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-bad-origlength-loca-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-bad-origlength-loca-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-bad-origlength-loca-002-ref.xht index 1ac313de797..ef03c56f149 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-bad-origlength-loca-002-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-bad-origlength-loca-002-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-bad-origlength-loca-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-bad-origlength-loca-002.xht index 5388db19591..f331212726d 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-bad-origlength-loca-002.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-bad-origlength-loca-002.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-brotli-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-brotli-001-ref.xht index e5f2a2d2a1b..ad11214b8e8 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-brotli-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-brotli-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-brotli-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-brotli-001.xht index 2b2100894e2..7be424a673a 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-brotli-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-brotli-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-001-ref.xht index 6a5e13a9f35..44f27a1aed8 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-001.xht index 4a1bf59670c..08bf25e55a4 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-002-ref.xht index ec745a387b3..1004e16b1ae 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-002-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-002-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-002.xht index 5550ede5ac0..15271e73ce2 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-002.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-002.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-003-ref.xht index 6080f215c72..a8e51bd5110 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-003-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-003-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-003.xht index 13f003209d1..7406b6419ba 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-003.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-003.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-004-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-004-ref.xht index f2578f215a8..60303ca2771 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-004-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-004-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-004.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-004.xht index 3f4ffe7b8cb..b177e85e3ec 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-004.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-decompressed-length-004.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-extraneous-data-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-extraneous-data-001-ref.xht index 374d15c7769..e4b1afbd3a6 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-extraneous-data-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-extraneous-data-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-extraneous-data-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-extraneous-data-001.xht index 08045652d9e..5c72c5f2cd3 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-extraneous-data-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-extraneous-data-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-001-ref.xht index 85026404ef6..3b329b1cc38 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-001.xht index c6976fd78f8..fc6cb7a45eb 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-002-ref.xht index b7916df3986..8023e9c57cd 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-002-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-002-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-002.xht index 073731ae906..90b485e40d5 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-002.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-002.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-003-ref.xht index fcb193f8abb..fa07590afac 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-003-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-003-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-003.xht index 9d7d18a41d7..40da4df2062 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-003.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-bbox-003.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-001-ref.xht index e971644ba2c..6a6d68bdbbf 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-001.xht index 5a408eadb9f..b5b8e24848e 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-002-ref.xht index b6231b72646..d4bfdd22552 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-002-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-002-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-002.xht index 0adbd23390a..c3857334be7 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-002.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-002.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-003-ref.xht index f95b76077a9..dfb62bf21b1 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-003-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-003-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-003.xht index a9caabd58ba..e2e339c29e0 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-003.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-003.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-non-zero-loca-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-non-zero-loca-001-ref.xht index e85e7de1c86..67dab5c07a6 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-non-zero-loca-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-non-zero-loca-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-non-zero-loca-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-non-zero-loca-001.xht index 3d960f779fc..21164679d68 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-non-zero-loca-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-non-zero-loca-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-recontruct-loca-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-recontruct-loca-001-ref.xht index d307fbdbf8b..5fd36b9ddfb 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-recontruct-loca-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-recontruct-loca-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-recontruct-loca-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-recontruct-loca-001.xht index 4b873d15316..913cd528eb9 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-recontruct-loca-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-recontruct-loca-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-bad-flag-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-bad-flag-001-ref.xht index dbc114b2d88..714432eceff 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-bad-flag-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-bad-flag-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-bad-flag-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-bad-flag-001.xht index 1e4b6bd65da..0f3968fbaa1 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-bad-flag-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-bad-flag-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-bad-flag-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-bad-flag-002-ref.xht index ae1b09aa22a..70a448f7830 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-bad-flag-002-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-bad-flag-002-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-bad-flag-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-bad-flag-002.xht index d2d6f72a0e7..9ff041c12c3 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-bad-flag-002.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-bad-flag-002.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-001-ref.xht index 301f14801f7..8bdcdbdf40d 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-001.xht index 867f7acecb0..75b5f3f5462 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-002-ref.xht index 8424043c54c..d0eb050cf01 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-002-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-002-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-002.xht index 9f413ea5533..5d047cb59c1 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-002.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-002.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-003-ref.xht index 2b2d252afba..573597f666a 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-003-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-003-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-003.xht index 25e5cfaa391..b2b6731f89e 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-003.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-003.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-004-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-004-ref.xht index fa07e22bc23..e92e8b43783 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-004-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-004-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-004.xht b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-004.xht index c5289d2fd17..184303c6e2d 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-004.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/tabledata-transform-hmtx-004.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/testcaseindex.xht b/tests/wpt/web-platform-tests/css/WOFF2/testcaseindex.xht index 0997db372f4..e2b8dc58516 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/testcaseindex.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/testcaseindex.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>WOFF 2.0: User Agent Test Suite</title> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/valid-001-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/valid-001-ref.xht index c7a94c3c392..7250e3197aa 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/valid-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/valid-001-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/valid-001.xht b/tests/wpt/web-platform-tests/css/WOFF2/valid-001.xht index f63e6f5af34..ed85515cba9 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/valid-001.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/valid-001.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/valid-002-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/valid-002-ref.xht index 36d57b15345..aa50b96f608 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/valid-002-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/valid-002-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/valid-002.xht b/tests/wpt/web-platform-tests/css/WOFF2/valid-002.xht index c8d1794d109..7e09c2a9b17 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/valid-002.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/valid-002.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/valid-003-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/valid-003-ref.xht index d3135408c2c..515b674936f 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/valid-003-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/valid-003-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/valid-003.xht b/tests/wpt/web-platform-tests/css/WOFF2/valid-003.xht index 7883a88a47d..0151c028a1c 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/valid-003.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/valid-003.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/valid-004-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/valid-004-ref.xht index 763e305ef4f..862f28b2c5a 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/valid-004-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/valid-004-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/valid-004.xht b/tests/wpt/web-platform-tests/css/WOFF2/valid-004.xht index 4b17feb0025..2ea190b960a 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/valid-004.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/valid-004.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/valid-005-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/valid-005-ref.xht index b794143115e..763f036f29c 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/valid-005-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/valid-005-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/valid-005.xht b/tests/wpt/web-platform-tests/css/WOFF2/valid-005.xht index d73dbc8ee42..713b25b19d6 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/valid-005.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/valid-005.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/valid-006-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/valid-006-ref.xht index 32f7e1dfd09..2ce9aac5483 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/valid-006-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/valid-006-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/valid-006.xht b/tests/wpt/web-platform-tests/css/WOFF2/valid-006.xht index d372cd7afd4..b50a9f38806 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/valid-006.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/valid-006.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/valid-007-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/valid-007-ref.xht index dd5f794b31c..75d94540122 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/valid-007-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/valid-007-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/valid-007.xht b/tests/wpt/web-platform-tests/css/WOFF2/valid-007.xht index 6821eeb9b5b..7c23d1e399d 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/valid-007.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/valid-007.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/valid-008-ref.xht b/tests/wpt/web-platform-tests/css/WOFF2/valid-008-ref.xht index f9e884de212..737a6094e1a 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/valid-008-ref.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/valid-008-ref.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/WOFF2/valid-008.xht b/tests/wpt/web-platform-tests/css/WOFF2/valid-008.xht index afc09135f84..a3892510ee3 100644 --- a/tests/wpt/web-platform-tests/css/WOFF2/valid-008.xht +++ b/tests/wpt/web-platform-tests/css/WOFF2/valid-008.xht @@ -1,4 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!-- THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> diff --git a/tests/wpt/web-platform-tests/css/css-animations/set-animation-play-state-to-paused-002-ref.html b/tests/wpt/web-platform-tests/css/css-animations/set-animation-play-state-to-paused-002-ref.html deleted file mode 100644 index 16bcb212c41..00000000000 --- a/tests/wpt/web-platform-tests/css/css-animations/set-animation-play-state-to-paused-002-ref.html +++ /dev/null @@ -1,36 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <meta charset="utf-8"> - <title>Dynamically set animation-play-state to paused (reference)</title> - <style> - #container { - position: absolute; - left: 0; - top: 3em; - } - #coveringRectLinear, #coveringRectSteps { - position: absolute; - background: lightgreen; - width: 40px; - height: 70px; - left: 80px; - transform-origin: 50% 10%; - transform: translate(36px, 0) rotate(144deg); - } - #coveringRectLinear { - top: 50px; - } - #coveringRectSteps { - top: 150px; - } - </style> - </head> - <body> - <p>This test passes if you see two rotated green rectangles and no red.</p> - <div id="container"> - <div id="coveringRectLinear"></div> - <div id="coveringRectSteps"></div> - </div> - </body> -</html> diff --git a/tests/wpt/web-platform-tests/css/css-animations/set-animation-play-state-to-paused-002.html b/tests/wpt/web-platform-tests/css/css-animations/set-animation-play-state-to-paused-002.html deleted file mode 100644 index 210d0274b85..00000000000 --- a/tests/wpt/web-platform-tests/css/css-animations/set-animation-play-state-to-paused-002.html +++ /dev/null @@ -1,95 +0,0 @@ -<!DOCTYPE html> -<html class="reftest-wait"> - <head> - <meta charset="utf-8"> - <title>Dynamically set animation-play-state to paused</title> - <link rel="author" title="Igalia S.L." href="https://www.igalia.com/"> - <link rel="help" href="https://drafts.csswg.org/css-animations-1/#animation-play-state"> - <meta name="assert" content="Visually check that complex animations stop - when animation-play-state is set to paused"> - <link rel="match" href="set-animation-play-state-to-paused-002-ref.html"> - <style> - #container { - position: absolute; - left: 0; - top: 3em; - } - #lineLinear, #lineSteps { - position: absolute; - background: red; - width: 10px; - height: 50px; - left: 95px; - transform-origin: 50% 0%; - } - #coveringRectLinear, #coveringRectSteps { - position: absolute; - background: lightgreen; - width: 40px; - height: 70px; - left: 80px; - transform-origin: 50% 10%; - transform: translate(36px, 0) rotate(144deg); - } - #coveringRectLinear, #lineLinear { - top: 50px; - } - #coveringRectSteps, #lineSteps { - top: 150px; - } - #lineLinear { - animation: rotate 2s linear; - } - #lineSteps { - animation: rotate 2s steps(360, end); - } - .pause { - opacity: 0.6; - animation-play-state: paused !important; - } - @keyframes rotate - { - 100% { - transform: translate(90px, 0) rotate(360deg); - } - } - </style> - <script> - var start = null; - var animationDuration = 2000; - var coveringRectAngle = 144; - var rectFinalAngle = 360; - function step(timestamp) { - if (!start) start = timestamp; - var progress = timestamp - start; - - // Pause the animations when the squares pass under the covering rect. - var targetProgress = animationDuration * coveringRectAngle / rectFinalAngle; - if (progress >= targetProgress) { - document.getElementById("lineLinear").classList.add("pause"); - document.getElementById("lineSteps").classList.add("pause"); - } - - // Wait a bit so that the squares pass the covering rect if the - // animation fails to be paused. - var delta = 200; - if (progress < targetProgress + delta) - window.requestAnimationFrame(step) - else - document.documentElement.classList.remove("reftest-wait"); - } - function runTest() { - window.requestAnimationFrame(step); - } - </script> - </head> - <body onload="runTest()"> - <p>This test passes if you see two rotated green rectangles and no red.</p> - <div id="container"> - <div id="lineLinear"></div> - <div id="coveringRectLinear"></div> - <div id="lineSteps"></div> - <div id="coveringRectSteps"></div> - </div> - </body> -</html> diff --git a/tests/wpt/web-platform-tests/css/css-contain/contain-layout-015.html b/tests/wpt/web-platform-tests/css/css-contain/contain-layout-015.html new file mode 100644 index 00000000000..9c5f6757b0e --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-contain/contain-layout-015.html @@ -0,0 +1,36 @@ +<!DOCTYPE html> +<meta charset=utf-8> +<title>CSS Containment Test: Layout containment ink overflow</title> +<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com"> +<link rel="help" href="https://drafts.csswg.org/css-contain-1/#containment-layout"> +<link rel="help" href="https://drafts.csswg.org/css-overflow-3/#ink-overflow"> +<link rel="match" href="../reference/ref-filled-green-100px-square.xht"> +<meta name=assert content="Layout containment treats the element overflowing contents as ink overflow."> + +<style> +#wrapper { + width: 100px; + height: 100px; + overflow: auto; + background: red; +} + +#contain-layout { + contain: layout; + width: 50px; + height: 50px; +} + +#overflow { + width: 200px; + height: 200px; + background: green; +} +</style> + +<p>Test passes if there is a filled green square and <strong>no red</strong>.</p> +<div id="wrapper"> + <div id="contain-layout"> + <div id="overflow"></div> + </div> +</div> diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-001.html b/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-001.html index b6d4ea5aa78..ad84dc23fe7 100644 --- a/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-001.html +++ b/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-001.html @@ -33,7 +33,7 @@ <div id="reference-overlapped-red"></div> <div id="constrained-flex"> - <img id="test-flex-item-overlapping-green" src="support/200x200-green.png" /> + <img id="test-flex-item-overlapping-green" src="support/100x100-green.png" /> </div> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-002.html b/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-002.html index 765344883b5..3849d454a02 100644 --- a/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-002.html +++ b/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-002.html @@ -35,7 +35,7 @@ <div id="reference-overlapped-red"></div> <div id="constrained-flex"> - <img id="test-flex-item-overlapping-green" src="support/200x200-green.png" /> + <img id="test-flex-item-overlapping-green" src="support/100x100-green.png" /> </div> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-003.html b/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-003.html index be40dcb493c..a3ee677bd97 100644 --- a/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-003.html +++ b/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-003.html @@ -35,7 +35,7 @@ <div id="reference-overlapped-red"></div> <div id="constrained-flex"> - <img id="test-flex-item-overlapping-green" src="support/200x200-green.png" /> + <img id="test-flex-item-overlapping-green" src="support/100x100-green.png" /> </div> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-001.html b/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-001.html index 63d77664075..14fabf760ca 100644 --- a/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-001.html +++ b/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-001.html @@ -32,7 +32,7 @@ <div id="reference-overlapped-red"></div> <div id="constrained-flex"> - <img id="test-flex-item-overlapping-green" src="support/200x200-green.png" /> + <img id="test-flex-item-overlapping-green" src="support/100x100-green.png" /> </div> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-002.html b/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-002.html index 89a87e5845c..9f2c63240f8 100644 --- a/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-002.html +++ b/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-002.html @@ -33,7 +33,7 @@ <div id="reference-overlapped-red"></div> <div id="constrained-flex"> - <img id="test-flex-item-overlapping-green" src="support/200x200-green.png" /> + <img id="test-flex-item-overlapping-green" src="support/100x100-green.png" /> </div> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-003.html b/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-003.html index 3cfcd2ceb4d..a3a8e4a0e38 100644 --- a/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-003.html +++ b/tests/wpt/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-003.html @@ -33,7 +33,7 @@ <div id="reference-overlapped-red"></div> <div id="constrained-flex"> - <img id="test-flex-item-overlapping-green" src="support/200x200-green.png" /> + <img id="test-flex-item-overlapping-green" src="support/100x100-green.png" /> </div> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-006.xht b/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-006.xht index ef0e32f8346..1387c6f1d14 100644 --- a/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-006.xht +++ b/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-006.xht @@ -32,7 +32,7 @@ <div id="reference-overlapped-red"></div> <div id="constrained-flex"> - <img id="test-flex-item-overlapping-green" src="support/200x200-green.png" /> + <img id="test-flex-item-overlapping-green" src="support/100x100-green.png" /> </div> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-008.xht b/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-008.xht index bbae2cac9dd..ead7a424b37 100644 --- a/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-008.xht +++ b/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-008.xht @@ -32,7 +32,7 @@ <div id="reference-overlapped-red"></div> <div id="constrained-flex"> - <img id="test-flex-item-overlapping-green" src="support/200x200-green.png" /> + <img id="test-flex-item-overlapping-green" src="support/100x100-green.png" /> </div> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-006.xht b/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-006.xht index 24bcf2502a1..1b06ecab7d2 100644 --- a/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-006.xht +++ b/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-006.xht @@ -30,7 +30,7 @@ <div id="reference-overlapped-red"></div> <div id="constrained-flex"> - <img id="test-flex-item-overlapping-green" src="support/200x200-green.png" /> + <img id="test-flex-item-overlapping-green" src="support/100x100-green.png" /> </div> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-008.xht b/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-008.xht index 411ce750a67..3daa38a450d 100644 --- a/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-008.xht +++ b/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-008.xht @@ -30,7 +30,7 @@ <div id="reference-overlapped-red"></div> <div id="constrained-flex"> - <img id="test-flex-item-overlapping-green" src="support/200x200-green.png" /> + <img id="test-flex-item-overlapping-green" src="support/100x100-green.png" /> </div> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-fonts/idlharness.html b/tests/wpt/web-platform-tests/css/css-fonts/idlharness.html new file mode 100644 index 00000000000..9209144c3e5 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-fonts/idlharness.html @@ -0,0 +1,19 @@ +<!doctype html> +<title>css-fonts IDL tests</title> +<link rel="help" href="https://drafts.csswg.org/css-fonts-4/"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/WebIDLParser.js"></script> +<script src="/resources/idlharness.js"></script> +<script> + "use strict"; + + promise_test(async () => { + const idl_array = new IdlArray(); + const idl = await fetch("/interfaces/css-fonts.idl").then(r => r.text()); + const cssom = await fetch("/interfaces/cssom.idl").then(r => r.text()); + idl_array.add_idls(idl); + idl_array.add_dependency_idls(cssom); + idl_array.test(); + }, "Test IDL implementation of css-fonts API"); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-logical/logicalprops-quirklength.html b/tests/wpt/web-platform-tests/css/css-logical/logicalprops-quirklength.html index 04317839f45..3e133db880c 100644 --- a/tests/wpt/web-platform-tests/css/css-logical/logicalprops-quirklength.html +++ b/tests/wpt/web-platform-tests/css/css-logical/logicalprops-quirklength.html @@ -1,7 +1,8 @@ <meta charset="utf-8"> -<title>CSS Logical Properties: {max-,min-}block-size</title> +<title>CSS Logical Properties</title> <link rel="author" title="Xu Xing" href="mailto:openxu@gmail.com"> <link rel="help" href="https://drafts.csswg.org/css-logical-props-1/#logical-dimension-properties"> +<link rel="help" href="https://drafts.csswg.org/css-logical-props-1/#logical-prop"> <link rel="help" href="https://drafts.csswg.org/css-writing-modes-3/#logical-to-physical"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> @@ -23,7 +24,12 @@ var tests = [ {cssText:"inline-size: 1"}, {cssText:"min-inline-size: 1"}, {cssText:"max-inline-size: 1"}, + {cssText:"margin-block-start: 1"}, + {cssText:"margin-block-end: 1"}, + {cssText:"margin-inline-start: 1"}, + {cssText:"margin-inline-end: 1"}, ]; + tests.forEach(function(t) { test(() => assert_false(isValidDeclaration(t.cssText)), 'Check that "' + t.cssText + '" is not valid in quirks mode'); }); diff --git a/tests/wpt/web-platform-tests/css/css-masking/idlharness.html b/tests/wpt/web-platform-tests/css/css-masking/idlharness.html new file mode 100644 index 00000000000..71cca64c3e4 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-masking/idlharness.html @@ -0,0 +1,36 @@ +<!doctype html> +<title>css-masking IDL tests</title> +<link rel="help" href="https://drafts.fxtf.org/css-masking-1/"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/WebIDLParser.js"></script> +<script src="/resources/idlharness.js"></script> +<script> + "use strict"; + + promise_test(async () => { + const idl_array = new IdlArray(); + const idl = await fetch("/interfaces/css-masking.idl").then(r => r.text()); + const dom = await fetch("/interfaces/dom.idl").then(r => r.text()); + idl_array.add_idls(idl); + idl_array.add_untested_idls('interface SVGElement : Element {};'); + idl_array.add_untested_idls('interface SVGAnimatedEnumeration {};'); + idl_array.add_untested_idls('interface SVGAnimatedLength {};'); + idl_array.add_untested_idls('interface SVGAnimatedTransformList {};'); + idl_array.add_dependency_idls(dom); // Needed for Element + idl_array.add_objects({ + SVGClipPathElement: [document.querySelector('#clip1')], + SVGMaskElement: [document.querySelector('#mask1')], + }); + idl_array.test(); + }, "Test IDL implementation of css-masking"); +</script> + +<svg xmlns="http://www.w3.org/2000/svg" xmlns:html="http://www.w3.org/1999/xhtml"> + <clipPath id="clip1"> + <rect x="50" y="50" width="100" height="100" /> + </clipPath> + <mask id="mask1" x="0" y="0" width="1" height="1" maskContentUnits="objectBoundingBox"> + <rect x="0" y="0" width="1" height="1" fill="white" /> + </mask> +</svg> diff --git a/tests/wpt/web-platform-tests/css/css-multicol/filter-with-abspos.html b/tests/wpt/web-platform-tests/css/css-multicol/filter-with-abspos.html new file mode 100644 index 00000000000..763bf1fc5a1 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-multicol/filter-with-abspos.html @@ -0,0 +1,27 @@ +<!DOCTYPE html> +<title>Filtered block becomes containing block of absolutely positioned child</title> +<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org"> +<link rel="help" href="https://drafts.fxtf.org/filter-effects-1/#FilterProperty" title="5. Graphic filters: the filter property"> +<meta name="assert" content="A filtered block will be a containing block for absolutely positioned descendants. If all this takes place inside a multicol container, this means that the absolutely positioned box also has the multicol container in its containing block, which means that it should be fragmented."> +<div id="multicol" style="columns:2;"> + <div id="container" style="height:100px;"> + <!-- The spanner is here to trigger the crash in crbug.com/847328 --> + <div style="column-span:all;"></div> + <div id="abspos" style="position:absolute; height:100px;"></div> + </div> +</div> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +test(() => { + let container = document.getElementById("container"); + let abspos = document.getElementById("abspos"); + document.body.offsetTop; + assert_equals(abspos.getBoundingClientRect().height, 100); + container.style.filter = "opacity(0.5)"; + assert_equals(abspos.getBoundingClientRect().height, 50); + // The last step will cause a crash if crbug.com/847328 is present + document.body.offsetTop; + abspos.style.display = "none"; +}, "Making a container filtered, and then removing an abspos child"); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-scoping/shadow-host-with-before-after.html b/tests/wpt/web-platform-tests/css/css-scoping/shadow-host-with-before-after.html new file mode 100644 index 00000000000..87e1554f154 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-scoping/shadow-host-with-before-after.html @@ -0,0 +1,83 @@ +<!doctype html> +<title>CSS Test: Pseudo-elements and :host selector.</title> +<link rel="author" title="Antti Koivisto" href="mailto:koivisto@iki.fi"/> +<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io"/> +<link rel="help" href="https://drafts.csswg.org/css-scoping/#selectors-data-model"> +<link rel="match" href="reference/green-box.html"/> +<style> +.test { + width: 100px; + height: 25px; + background: red; + color: red; +} +#host1, #host2 { + color: green; +} +#host3 div, #host4 div { + width: 50%; + height: 100%; + background: green; + display: inline-block; +} +</style> +<p>Test passes if you see a single 100px by 100px green box below.</p> +<div id="host1" class="test"></div> +<div id="host2" class="test"></div> +<div id="host3" class="test"><div>text</div></div> +<div id="host4" class="test"><div>text</div></div> +<script> + +host1.attachShadow({mode: 'closed'}).innerHTML = `<style> + :host::before, :host::after { + width: 50%; + height: 100%; + background: green; + display: inline-block; + content: "test"; + } + </style>`; + +host2.attachShadow({mode: 'closed'}).innerHTML = `<style> + :host(.green)::before, :host(.green)::after { + width: 50%; + height: 100%; + background: green; + display: inline-block; + content: "test"; + } + </style>`; + +getComputedStyle(host2).backgroundColor; +host2.classList.add('green'); + +host3.attachShadow({mode: 'closed'}).innerHTML = `<style> + :host { + color: green !important; + } + :host::before { + width: 50%; + height: 100%; + background: green; + display: inline-block; + content: "test"; + } + </style><slot></slot>`; + +host4.attachShadow({mode: 'closed'}).innerHTML = `<style> + :host(.green) { + color: green !important; + } + :host(.green)::after { + width: 50%; + height: 100%; + background: green; + display: inline-block; + content: "test"; + } + </style><slot></slot>`; + +getComputedStyle(host4).backgroundColor; +host4.classList.add('green'); + +</script> diff --git a/tests/wpt/web-platform-tests/css/css-scoping/shadow-reassign-dynamic-002.html b/tests/wpt/web-platform-tests/css/css-scoping/shadow-reassign-dynamic-002.html new file mode 100644 index 00000000000..7874e2e1398 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-scoping/shadow-reassign-dynamic-002.html @@ -0,0 +1,21 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Scoping: Dynamic reassignment of a slot.</title> +<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io"> +<link rel="help" href="https://drafts.csswg.org/css-scoping/#selectors-data-model"> +<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1465572"> +<link rel="match" href="reference/green-box.html"/> +<div id="host"> + FAIL + <div style="background: green" slot="the-slot"></div> +</div> +<script> + document.body.offsetTop; + host.attachShadow({ mode: "open" }).innerHTML = ` + <style>::slotted(div) { width: 100px; height: 100px }</style> + <p>Test passes if you see a single 100px by 100px green box below.</p> + <slot>FAIL</slot> + `; + document.body.offsetTop; + host.shadowRoot.querySelector("slot").setAttribute("name", "the-slot"); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-scoping/whitespace-crash-001.html b/tests/wpt/web-platform-tests/css/css-scoping/whitespace-crash-001.html new file mode 100644 index 00000000000..d3b4a8a4ad2 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-scoping/whitespace-crash-001.html @@ -0,0 +1,32 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Scoping: Dynamic shadow root creation and whitespace optimization crash.</title> +<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io"> +<link rel="help" href="https://drafts.csswg.org/css-scoping/#selectors-data-model"> +<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1465572"> +<link rel="match" href="reference/green-box.html"/> +<p>Test passes if you see a single 100px by 100px green box below.</p> +<!-- + It's important for the test-case that there's whitespace inside the host, + and that it's not assigned to any slot. +--> +<div id="host"> + <div style="display: inline" slot="the-slot"></div> +</div> +<script> + // Flush layout before creating a ShadowRoot, so that the whitespace ends up + // suppressed. + document.body.offsetTop; + host.attachShadow({ mode: "open" }).innerHTML = ` + <style> + ::slotted(div) { + width: 100px; + height: 100px; + background: green; + } + </style> + <slot name="the-slot"></slot> + `; + document.body.offsetTop; + host.firstElementChild.style.display = "block"; // or anything else that reframes the <div>. +</script> diff --git a/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-min-content-size-001.html b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-min-content-size-001.html new file mode 100644 index 00000000000..e4a7ef4a385 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-min-content-size-001.html @@ -0,0 +1,41 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Text Test: overflow-wrap: break-word and intrinsic sizing</title> +<link rel="author" title="Florian Rivoal" href="http://florian.rivoal.net/"> +<link rel="help" href="https://drafts.csswg.org/css-text-3/#overflow-wrap-property"> +<meta name="flags" content=""> +<link rel="match" href="reference/overflow-wrap-min-content-size-001-ref.html"> +<meta name="assert" content="Soft wrap opportunities introduced by overflow-wrap:break-word **are** considered when calculating min-content intrinsic sizes."> +<style> +table { + overflow-wrap: break-word; + max-width: 0; + border: 0; + border-collapse: collapse; +} +td { + padding: 0; + background: green; + color: transparent; +} +#red { + position: absolute; + z-index: -1; + background: red; + color: transparent; +} +</style> + +<p>Test passes if there is a green box below and no red. +<div id=red>X<br>X<br>X<br>X</div> +<table><tr><td>XXXX</table> + +<!-- + width:min-content on the div directly without using a table + would achieve the goal of this test, and be a lot simpler. + + However, width:min-content is not yet widely supported. + + Using a table, and forcing it to be as small as possible + will achieve min-content sizing of the div in all browsers. +--> diff --git a/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/reference/overflow-wrap-min-content-size-001-ref.html b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/reference/overflow-wrap-min-content-size-001-ref.html new file mode 100644 index 00000000000..99d964777c6 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/reference/overflow-wrap-min-content-size-001-ref.html @@ -0,0 +1,14 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Text Test reference</title> +<link rel="author" title="Florian Rivoal" href="http://florian.rivoal.net/"> +<style> +div { + position: absolute; + background: green; + color: transparent; +} +</style> + +<p>Test passes if there is a green box below and no red. +<div>X<br>X<br>X<br>X</div> diff --git a/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/word-wrap-alias.html b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/word-wrap-alias.html new file mode 100644 index 00000000000..74e8aa23124 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/word-wrap-alias.html @@ -0,0 +1,16 @@ +<!DOCTYPE html> +<link rel="help" href="https://drafts.csswg.org/css-text-3/#propdef-word-wrap"> +<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/866"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<div id="test" style="word-wrap: break-word; overflow-wrap: break-word;"></div> +<script> +test(function() { + const div = document.getElementById("test"); + assert_equals(div.style.cssText, "overflow-wrap: break-word;", "Only overflow-wrap should appear when serializing the declaration."); + assert_equals(div.style.wordWrap, "break-word"); + assert_equals(div.style.overflowWrap, "break-word"); + assert_equals(getComputedStyle(div).wordWrap, "break-word"); + assert_equals(getComputedStyle(div).overflowWrap, "break-word"); +}, "word-wrap should be defined as an alias of overflow-wrap"); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-ui/cursor-pointer-links-001-manual.html b/tests/wpt/web-platform-tests/css/css-ui/cursor-pointer-links-001-manual.html new file mode 100644 index 00000000000..4d4be0d303a --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-ui/cursor-pointer-links-001-manual.html @@ -0,0 +1,16 @@ +<!DOCTYPE html> +<html lang="en"> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: pointer cursor on svg links</title> +<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net"> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#cursor"> +<meta name="flags" content="interact"> +<meta name="assert" content="The pointer cursor is applied to SVG links"> +<style> +</style> +<body> + <p>The test passes if, when moved over the blue text, the cursor indicates a link. Often rendered as the backside of a hand with the index finger poiting and the other fingers closed.</p> + <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <a xlink:href=""><text x="0" y="16" font-size="16" fill="blue">Hover me</text></a> + </svg> +</body> diff --git a/tests/wpt/web-platform-tests/css/css-ui/cursor-pointer-links-002-manual.html b/tests/wpt/web-platform-tests/css/css-ui/cursor-pointer-links-002-manual.html new file mode 100644 index 00000000000..fc9c2a3d63f --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-ui/cursor-pointer-links-002-manual.html @@ -0,0 +1,14 @@ +<!DOCTYPE html> +<html lang="en"> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: pointer cursor on svg links</title> +<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net"> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#cursor"> +<meta name="flags" content="interact"> +<meta name="assert" content="The pointer cursor is applied to HTML links"> +<style> +</style> +<body> + <p>The test passes if, when moved over the blue text, the cursor indicates a link. Often rendered as the backside of a hand with the index finger poiting and the other fingers closed.</p> + <a href="" style="color: blue">Hover me</a> +</body> diff --git a/tests/wpt/web-platform-tests/css/css-ui/cursor-pointer-links-003-manual.html b/tests/wpt/web-platform-tests/css/css-ui/cursor-pointer-links-003-manual.html new file mode 100644 index 00000000000..ceaa1748475 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-ui/cursor-pointer-links-003-manual.html @@ -0,0 +1,15 @@ +<!DOCTYPE html> +<html lang="en"> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: pointer cursor on svg links</title> +<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net"> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#cursor"> +<meta name="flags" content="interact"> +<meta name="assert" content="The pointer cursor is applied to HTML image maps"> +<style> +</style> +<body> + <p>The test passes if, when moved over the blue box, the cursor indicates a link. Often rendered as the backside of a hand with the index finger poiting and the other fingers closed.</p> + <map name="m1"><area coords="0,0,100,100" href=""></map> + <img usemap="#m1" src="../support/swatch-blue.png" alt="blue square" width=100 height=100> +</body> diff --git a/tests/wpt/web-platform-tests/css/cssom-view/dom-element-scroll.html b/tests/wpt/web-platform-tests/css/cssom-view/dom-element-scroll.html new file mode 100644 index 00000000000..3f3e27aaf67 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/cssom-view/dom-element-scroll.html @@ -0,0 +1,100 @@ +<!doctype html> +<meta charset="utf-8"> +<title>dom-element-scroll tests</title> +<link rel="help" href="https://drafts.csswg.org/cssom-view/#dom-element-scrolltop"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> + #section1 { + width: 300px; + height: 500px; + top: 16px; + left: 16px; + border: inset gray 3px; + background: white; + } + + #scrollable { + width: 400px; + height: 700px; + background: linear-gradient(135deg, red, blue); + } + + #section2 { + width: 300px; + height: 500px; + top: 16px; + left: 16px; + border: inset gray 3px; + background: white; + } + + #unscrollable { + width: 200px; + height: 300px; + background: linear-gradient(135deg, red, blue); + } +</style> +<section id="section1"> + <div id="scrollable"></div> +</section> +<section id="section2"> + <div id="unscrollable"></div> +</section> +<script> + var section1 = document.getElementById("section1"); + var section2 = document.getElementById("section2"); + + test(function () { + // let it be "hidden" to have scrolling box + section1.style.overflow = "hidden"; + + section1.scroll(50, 60); + assert_equals(section1.scrollLeft, 50, "changed scrollLeft should be 50"); + assert_equals(section1.scrollTop, 60, "changed scrollTop should be 60"); + + section1.scroll(0, 0); // back to the origin + }, "Element test for having scrolling box"); + + test(function () { + section1.scroll(10, 20); + assert_equals(section1.scrollLeft, 10, "changed scrollLeft should be 10"); + assert_equals(section1.scrollTop, 20, "changed scrollTop should be 20"); + + section1.scroll(0, 0); // back to the origin + }, "Element test for having overflow"); + + test(function () { + // make it not "hidden" to not have scrolling box + section1.style.overflow = "visible"; + + section1.scroll(50, 0); + assert_equals(section1.scrollLeft, 0, "changed scrollLeft should be 0"); + assert_equals(section1.scrollTop, 0, "changed scrollTop should be 0"); + + section1.scroll(0, 60); + assert_equals(section1.scrollLeft, 0, "changed scrollLeft should be 0"); + assert_equals(section1.scrollTop, 0, "changed scrollTop should be 0"); + + section1.scroll(50, 60); + assert_equals(section1.scrollLeft, 0, "changed scrollLeft should be 0"); + assert_equals(section1.scrollTop, 0, "changed scrollTop should be 0"); + + section1.scroll(0, 0); // back to the origin + }, "Element test for not having scrolling box"); + + test(function () { + section2.scroll(0, 20); + assert_equals(section2.scrollLeft, 0, "changed scrollLeft should be 0"); + assert_equals(section2.scrollTop, 0, "changed scrollTop should be 0"); + + section2.scroll(10, 0); + assert_equals(section2.scrollLeft, 0, "changed scrollLeft should be 0"); + assert_equals(section2.scrollTop, 0, "changed scrollTop should be 0"); + + section2.scroll(10, 20); + assert_equals(section2.scrollLeft, 0, "changed scrollLeft should be 0"); + assert_equals(section2.scrollTop, 0, "changed scrollTop should be 0"); + }, "Element test for not having overflow"); + +</script> diff --git a/tests/wpt/web-platform-tests/css/cssom/computed-style-set-property.html b/tests/wpt/web-platform-tests/css/cssom/computed-style-set-property.html index a5fcc156a38..65678526817 100644 --- a/tests/wpt/web-platform-tests/css/cssom/computed-style-set-property.html +++ b/tests/wpt/web-platform-tests/css/cssom/computed-style-set-property.html @@ -1,4 +1,4 @@ -<!DOCTYPE> +<!DOCTYPE html> <title>NoModificationAllowedError when mutating read only properties</title> <link rel="author" title="Anders Hartvoll Ruud" href="andruud@chromium.org"> <link rel="help" href="https://www.w3.org/TR/cssom-1/#dom-cssstyledeclaration-setpropertyvalue"> diff --git a/tests/wpt/web-platform-tests/css/geometry/DOMPoint-001.html b/tests/wpt/web-platform-tests/css/geometry/DOMPoint-001.html index 0554d3f5401..40d2f631a89 100644 --- a/tests/wpt/web-platform-tests/css/geometry/DOMPoint-001.html +++ b/tests/wpt/web-platform-tests/css/geometry/DOMPoint-001.html @@ -36,40 +36,22 @@ checkDOMPoint(new DOMPoint(1, 2, 3, 4, 5), {x:1, y:2, z:3, w:4}); },'testConstructor5'); test(function() { - checkDOMPoint(new DOMPoint({}), {x:0, y:0, z:0, w:1}); + checkDOMPoint(new DOMPoint({}), {x:NaN, y:0, z:0, w:1}); },'testConstructorDictionary0'); test(function() { - checkDOMPoint(new DOMPoint({x:1}), {x:1, y:0, z:0, w:1}); + checkDOMPoint(new DOMPoint({x:1}), {x:NaN, y:0, z:0, w:1}); },'testConstructorDictionary1'); test(function() { - checkDOMPoint(new DOMPoint({x:1, y:2}), {x:1, y:2, z:0, w:1}); + checkDOMPoint(new DOMPoint({x:1, y:2}), {x:NaN, y:0, z:0, w:1}); },'testConstructorDictionary2'); test(function() { - checkDOMPoint(new DOMPoint({x:1, y:2, z:3}), {x:1, y:2, z:3, w:1}); - },'testConstructorDictionary3'); - test(function() { - checkDOMPoint(new DOMPoint({x:1, y:2, z:3, w:4}), {x:1, y:2, z:3, w:4}); - },'testConstructorDictionary4'); - test(function() { - checkDOMPoint(new DOMPoint({x:1, y:2, z:3, w:4, v:5}), {x:1, y:2, z:3, w:4}); - },'testConstructorDictionary5'); - test(function() { - checkDOMPoint(new DOMPoint({x:1, z:3}), {x:1, y:0, z:3, w:1}); - },'testConstructorDictionary2irregular'); - test(function() { - checkDOMPoint(new DOMPoint({x:1, y: undefined, z:3}), {x:1, y:0, z:3, w:1}); - },'testConstructorDictionary2undefined'); - test(function() { - checkDOMPoint(new DOMPoint({x:1, z:3}), {x:1, y:0, z:3, w:1}); - },'testConstructorDOMPoint'); - test(function() { checkDOMPoint(new DOMPoint(1, undefined), {x:1, y:0, z:0, w:1}); },'testConstructor2undefined'); test(function() { checkDOMPoint(new DOMPoint("a", "b"), {x:NaN, y:NaN, z:0, w:1}); },'testConstructorUndefined1'); test(function() { - checkDOMPoint(new DOMPoint({x:"a", y:"b"}), {x:NaN, y:NaN, z:0, w:1}); + checkDOMPoint(new DOMPoint({x:"a", y:"b"}), {x:NaN, y:0, z:0, w:1}); },'testConstructorUndefined2'); test(function() { checkDOMPoint(new DOMPointReadOnly(), {x:0, y:0, z:0, w:1}); diff --git a/tests/wpt/web-platform-tests/css/selectors/focus-visible-007.html b/tests/wpt/web-platform-tests/css/selectors/focus-visible-007.html new file mode 100644 index 00000000000..53d91cbd92c --- /dev/null +++ b/tests/wpt/web-platform-tests/css/selectors/focus-visible-007.html @@ -0,0 +1,91 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="utf-8" /> + <title>CSS Test (Selectors): Keyboard focus enables :focus-visible</title> + <link rel="author" title="Alice Boxhall" href="aboxhall@chromium.org" /> + <link rel="help" href="https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo" /> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/resources/testdriver.js"></script> + <script src="/resources/testdriver-vendor.js"></script> + <style> + body[data-hadkeydown] #one:focus-visible { background-color: rgb(128, 196, 128); } + body:not([data-hadkeydown]) #one:focus-visible { background-color: rgb(196, 128, 128); } + + body:not([data-hadkeydown]) #two:focus-visible { background-color: rgb(196, 128, 128); } + body:not([data-hadkeydown]) #two:focus:not(:focus-visible) { + background-color: rgb(128, 196, 128); + } + </style> +</head> +<body> + <div id="one" tabindex="0">Click me first.</div> + <div id="two" tabindex="0">Click me second.</div> + <script> + document.body.addEventListener("keydown", (e) => { + delete document.body.dataset.hadmousedown; + document.body.dataset.hadkeydown = ""; + }, true); + + document.body.addEventListener("mousedown", (e) => { + document.body.dataset.hadmousedown = ""; + }, true); + + document.body.addEventListener("focus", (e) => { + if ("hadmousedown" in document.body.dataset) { + delete document.body.dataset.hadmousedown; + delete document.body.dataset.hadkeydown; + } + }, true); + + async_test(async function(t) { + let tested_modality_change = false; + let tested_modality_unchanged_by_mouse_click = false; + let tested_mouse_focus_after_modality_change = false; + + // TODO(crbug.com/828858): Remove this check once bug is resolved. + test_driver.send_keys(document.body, "\uE050").then(t.step_func(() => { + const handle_initial_focus = t.step_func(() => { + one.addEventListener("keyup", t.step_func(test_modality_change)); + one.removeEventListener("focus", handle_initial_focus); + + test_driver.send_keys(one, "\uE050"); + }); + + const test_modality_change = t.step_func(() => { + assert_equals(getComputedStyle(one).backgroundColor, "rgb(128, 196, 128)"); + tested_modality_change = true; + one.removeEventListener("keyup", test_modality_change); + one.addEventListener("click", test_modality_unchanged_by_mouse_click); + test_driver.click(one); + }); + + const test_modality_unchanged_by_mouse_click = t.step_func(() => { + assert_true(tested_modality_change); + assert_equals(getComputedStyle(one).backgroundColor, "rgb(128, 196, 128)"); + tested_modality_unchanged_by_mouse_click = true; + one.removeEventListener("click", test_modality_unchanged_by_mouse_click); + two.addEventListener("focus", test_mouse_focus_after_modality_change); + test_driver.click(two); + }); + + const test_mouse_focus_after_modality_change = t.step_func(() => { + assert_true(tested_modality_unchanged_by_mouse_click); + assert_false("hadkeydown" in document.body.dataset); + assert_equals(getComputedStyle(two).backgroundColor, "rgb(128, 196, 128)"); + tested_mouse_focus_after_modality_change = true; + t.done(); + }); + + one.addEventListener("focus", handle_initial_focus); + test_driver.click(one); + })).catch(t.step_func((e) => { + // TODO(crbug.com/828858): Remove this check once bug is resolved. + assert_true(false, "send_keys not implmented yet"); + t.done(); + })); + }, "Using keyboard while element is focused should trigger :focus-visible; using mouse without moving focus should not cancel it; moving focus using mouse should cancel it."); + </script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/docs/_appendix/github-intro.md b/tests/wpt/web-platform-tests/docs/_appendix/github-intro.md index a9919d0019e..7c78e35d029 100644 --- a/tests/wpt/web-platform-tests/docs/_appendix/github-intro.md +++ b/tests/wpt/web-platform-tests/docs/_appendix/github-intro.md @@ -105,6 +105,14 @@ repository. For additional information, please see the [GitHub docs][github-fork-docs]. +## Configure your environment + +If all you intend to do is to load [manual tests][manual-tests] or [ref tests][ref-tests] from your local file system, +the above setup should be sufficient. +But many tests (and in particular, all [testharness.js tests][testharness-tests]) require a local web server. + +See [Local Setup][local-setup] for more information. + ## Branch Now that you have everything locally, create a branch for your tests. @@ -362,6 +370,10 @@ If you do not expect work with more PRs from the same author, you may also discard your connection to their repo: `git remote remove <author-id>` +[local-setup]: {{ site.baseurl }}/introduction.html#local-setup +[manual-tests]: {{ site.baseurl }}/writing-tests/manual.html +[ref-tests]: {{ site.baseurl }}/writing-tests/reftests.html +[testharness-tests]: {{ site.baseurl }}/writing-tests/testharness.html [branch]: #branch [commit]: #commit [clone]: #clone diff --git a/tests/wpt/web-platform-tests/dom/events/event-global-extra.window.js b/tests/wpt/web-platform-tests/dom/events/event-global-extra.window.js new file mode 100644 index 00000000000..f2687696680 --- /dev/null +++ b/tests/wpt/web-platform-tests/dom/events/event-global-extra.window.js @@ -0,0 +1,90 @@ +const otherWindow = document.body.appendChild(document.createElement("iframe")).contentWindow; + +["EventTarget", "XMLHttpRequest"].forEach(constructorName => { + async_test(t => { + const eventTarget = new otherWindow[constructorName](); + eventTarget.addEventListener("hi", t.step_func_done(e => { + assert_equals(otherWindow.event, undefined); + assert_equals(e, window.event); + })); + eventTarget.dispatchEvent(new Event("hi")); + }, "window.event for constructors from another global: " + constructorName); +}); + +// XXX: It would be good to test a subclass of EventTarget once we sort out +// https://github.com/heycam/webidl/issues/540 + +async_test(t => { + const element = document.body.appendChild(otherWindow.document.createElement("meh")); + element.addEventListener("yo", t.step_func_done(e => { + assert_equals(e, window.event); + })); + element.dispatchEvent(new Event("yo")); +}, "window.event and element from another document"); + +async_test(t => { + const doc = otherWindow.document, + element = doc.body.appendChild(doc.createElement("meh")), + child = element.appendChild(doc.createElement("bleh")); + element.addEventListener("yoyo", t.step_func(e => { + document.body.appendChild(element); + assert_equals(element.ownerDocument, document); + assert_equals(window.event, e); + assert_equals(otherWindow.event, undefined); + }), true); + element.addEventListener("yoyo", t.step_func(e => { + assert_equals(element.ownerDocument, document); + assert_equals(window.event, e); + assert_equals(otherWindow.event, undefined); + }), true); + child.addEventListener("yoyo", t.step_func_done(e => { + assert_equals(child.ownerDocument, document); + assert_equals(window.event, e); + assert_equals(otherWindow.event, undefined); + })); + child.dispatchEvent(new Event("yoyo")); +}, "window.event and moving an element post-dispatch"); + +test(t => { + const host = document.createElement("div"), + shadow = host.attachShadow({ mode: "open" }), + child = shadow.appendChild(document.createElement("trala")), + furtherChild = child.appendChild(document.createElement("waddup")); + let counter = 0; + host.addEventListener("hi", t.step_func(e => { + assert_equals(window.event, e); + assert_equals(counter++, 3); + })); + child.addEventListener("hi", t.step_func(e => { + assert_equals(window.event, e); + assert_equals(counter++, 2); + })); + furtherChild.addEventListener("hi", t.step_func(e => { + host.appendChild(child); + assert_equals(window.event, e); + assert_equals(counter++, 0); + })); + furtherChild.addEventListener("hi", t.step_func(e => { + assert_equals(window.event, e); + assert_equals(counter++, 1); + })); + furtherChild.dispatchEvent(new Event("hi", { composed: true, bubbles: true })); + assert_equals(counter, 4); +}, "window.event should not be affected by nodes moving post-dispatch"); + +async_test(t => { + const frame = document.body.appendChild(document.createElement("iframe")); + frame.src = "resources/event-global-extra-frame.html"; + frame.onload = t.step_func_done(() => { + const event = new Event("hi"); + document.addEventListener("hi", frame.contentWindow.listener); // listener intentionally not wrapped in t.step_func + document.addEventListener("hi", t.step_func(e => { + assert_equals(event, e); + assert_equals(window.event, e); + })); + document.dispatchEvent(event); + assert_equals(frameState.event, event); + assert_equals(frameState.windowEvent, event); + assert_equals(frameState.parentEvent, undefined); + }); +}, "Listener from a different global"); diff --git a/tests/wpt/web-platform-tests/dom/events/event-global.html b/tests/wpt/web-platform-tests/dom/events/event-global.html new file mode 100644 index 00000000000..5cb1b1416aa --- /dev/null +++ b/tests/wpt/web-platform-tests/dom/events/event-global.html @@ -0,0 +1,91 @@ +<!DOCTYPE html> +<title>window.event tests</title> +<link rel="author" title="Mike Taylor" href="mailto:miketaylr@gmail.com"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<div id=log></div> +<script> +test(t => { + assert_own_property(window, "event"); + assert_equals(window.event, undefined); +}, "event exists on window, which is initially set to undefined"); + +async_test(t => { + let target = document.createElement("div"); + assert_equals(window.event, undefined, "undefined before dispatch"); + + let clickEvent = new Event("click"); + target.addEventListener("click", t.step_func_done(e => { + assert_equals(window.event, clickEvent, "window.event set to current event during dispatch"); + })); + + target.dispatchEvent(clickEvent); + assert_equals(window.event, undefined, "undefined after dispatch"); +}, "window.event is only defined during dispatch"); + +async_test(t => { + let parent = document.createElement("div"); + let root = parent.attachShadow({mode: "closed"}); + let span = document.createElement("span"); + root.appendChild(span); + + span.addEventListener("test", t.step_func(e => { + assert_equals(window.event, undefined); + assert_not_equals(window.event, e); + })); + + parent.addEventListener("test", t.step_func_done(e => { + assert_equals(window.event, e); + assert_not_equals(window.event, undefined); + })); + + parent.dispatchEvent(new Event("test", {composed: true})); +}, "window.event is undefined if the target is in a shadow tree (event dispatched outside shadow tree)"); + +async_test(t => { + let parent = document.createElement("div"); + let root = parent.attachShadow({mode: "closed"}); + let span = document.createElement("span"); + root.appendChild(span); + let shadowNode = root.firstElementChild; + + shadowNode.addEventListener("test", t.step_func((e) => { + assert_not_equals(window.event, e); + assert_equals(window.event, undefined); + })); + + parent.addEventListener("test", t.step_func_done(e => { + assert_equals(window.event, e); + assert_not_equals(window.event, undefined); + })); + + shadowNode.dispatchEvent(new Event("test", {composed: true, bubbles: true})); +}, "window.event is undefined if the target is in a shadow tree (event dispatched inside shadow tree)"); + +async_test(t => { + let target1 = document.createElement("div"); + let target2 = document.createElement("div"); + + target2.addEventListener("dude", t.step_func(() => { + assert_equals(window.event.type, "dude"); + })); + + target1.addEventListener("cool", t.step_func_done(() => { + assert_equals(window.event.type, "cool", "got expected event from global event during dispatch"); + target2.dispatchEvent(new Event("dude")); + assert_equals(window.event.type, "cool", "got expected event from global event after handling a different event handler callback"); + })); + + target1.dispatchEvent(new Event("cool")); +}, "window.event is set to the current event during dispatch"); + +async_test(t => { + let target = document.createElement("div"); + + target.addEventListener("click", t.step_func_done(e => { + assert_equals(e, window.event); + })); + + target.dispatchEvent(new Event("click")); +}, "window.event is set to the current event, which is the event passed to dispatch"); +</script> diff --git a/tests/wpt/web-platform-tests/dom/events/resources/event-global-extra-frame.html b/tests/wpt/web-platform-tests/dom/events/resources/event-global-extra-frame.html new file mode 100644 index 00000000000..241dda8b66f --- /dev/null +++ b/tests/wpt/web-platform-tests/dom/events/resources/event-global-extra-frame.html @@ -0,0 +1,9 @@ +<script> +function listener(e) { + parent.frameState = { + event: e, + windowEvent: window.event, + parentEvent: parent.event + } +} +</script> diff --git a/tests/wpt/web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht.xht b/tests/wpt/web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht.xht index 3915aee42cf..f6d8280b7cd 100644 --- a/tests/wpt/web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht.xht +++ b/tests/wpt/web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht.xht @@ -1,6 +1,7 @@ <!DOCTYPE html> <html id="html" lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head id="head"> +<meta name="timeout" content="long" /> <title>Selectors-API Test Suite: XHTML</title> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> diff --git a/tests/wpt/web-platform-tests/dom/nodes/ParentNode-querySelector-All.html b/tests/wpt/web-platform-tests/dom/nodes/ParentNode-querySelector-All.html index a1793df4e8c..465898c67c0 100644 --- a/tests/wpt/web-platform-tests/dom/nodes/ParentNode-querySelector-All.html +++ b/tests/wpt/web-platform-tests/dom/nodes/ParentNode-querySelector-All.html @@ -1,5 +1,6 @@ <!DOCTYPE html> <meta charset="UTF-8"> +<meta name=timeout content=long> <title>Selectors-API Test Suite: HTML</title> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> diff --git a/tests/wpt/web-platform-tests/fetch/api/resources/echo-content.py b/tests/wpt/web-platform-tests/fetch/api/resources/echo-content.py index 5c39e838181..9a038f329c8 100644 --- a/tests/wpt/web-platform-tests/fetch/api/resources/echo-content.py +++ b/tests/wpt/web-platform-tests/fetch/api/resources/echo-content.py @@ -2,8 +2,9 @@ def main(request, response): headers = [("X-Request-Method", request.method), ("X-Request-Content-Length", request.headers.get("Content-Length", "NO")), - ("X-Request-Content-Type", request.headers.get("Content-Type", "NO"))] - + ("X-Request-Content-Type", request.headers.get("Content-Type", "NO")), + # Avoid any kind of content sniffing on the response. + ("Content-Type", "text/plain")] content = request.body return headers, content diff --git a/tests/wpt/web-platform-tests/fetch/range/general.any.js b/tests/wpt/web-platform-tests/fetch/range/general.any.js index 2e49ed1e0f9..656ac1ceea2 100644 --- a/tests/wpt/web-platform-tests/fetch/range/general.any.js +++ b/tests/wpt/web-platform-tests/fetch/range/general.any.js @@ -1,3 +1,5 @@ +// META: script=/common/utils.js + // Helpers that return headers objects with a particular guard function headersGuardNone(fill) { if (fill) return new Headers(fill); @@ -58,3 +60,31 @@ test(() => { assert_false(headers.has('Range')); }, `Privileged header not allowed for guard type: request-no-cors`); +promise_test(async () => { + const wavURL = new URL('resources/long-wav.py', location); + const stashTakeURL = new URL('resources/stash-take.py', location); + + function changeToken() { + const stashToken = token(); + wavURL.searchParams.set('accept-encoding-key', stashToken); + stashTakeURL.searchParams.set('key', stashToken); + } + + const rangeHeaders = [ + 'bytes=0-10', + 'foo=0-10', + 'foo', + '' + ]; + + for (const rangeHeader of rangeHeaders) { + changeToken(); + + await fetch(wavURL, { + headers: { Range: rangeHeader } + }); + + const response = await fetch(stashTakeURL); + assert_equals(await response.json(), 'identity', `Expect identity accept-encoding if range header is ${JSON.stringify(rangeHeader)}`); + } +}, `Fetch with range header will be sent with Accept-Encoding: identity`); diff --git a/tests/wpt/web-platform-tests/fetch/range/general.window.js b/tests/wpt/web-platform-tests/fetch/range/general.window.js new file mode 100644 index 00000000000..afe80d63a6b --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/range/general.window.js @@ -0,0 +1,29 @@ +// META: script=resources/utils.js +// META: script=/common/utils.js + +const onload = new Promise(r => window.addEventListener('load', r)); + +// It's weird that browsers do this, but it should continue to work. +promise_test(async t => { + await loadScript('resources/partial-script.py?pretend-offset=90000'); + assert_true(self.scriptExecuted); +}, `Script executed from partial response`); + +promise_test(async () => { + const wavURL = new URL('resources/long-wav.py', location); + const stashTakeURL = new URL('resources/stash-take.py', location); + const stashToken = token(); + wavURL.searchParams.set('accept-encoding-key', stashToken); + stashTakeURL.searchParams.set('key', stashToken); + + // The testing framework waits for window onload. If the audio element + // is appended before onload, it extends it, and the test times out. + await onload; + + const audio = appendAudio(document, wavURL); + await new Promise(r => audio.addEventListener('progress', r)); + audio.remove(); + + const response = await fetch(stashTakeURL); + assert_equals(await response.json(), 'identity', `Expect identity accept-encoding on media request`); +}, `Fetch with range header will be sent with Accept-Encoding: identity`); diff --git a/tests/wpt/web-platform-tests/fetch/range/partial-script.window.js b/tests/wpt/web-platform-tests/fetch/range/partial-script.window.js deleted file mode 100644 index 36b4bba31aa..00000000000 --- a/tests/wpt/web-platform-tests/fetch/range/partial-script.window.js +++ /dev/null @@ -1,7 +0,0 @@ -// META: script=resources/utils.js - -// It's weird that browsers do this, but it should continue to work. -promise_test(async t => { - await loadScript('resources/partial-script.py?pretend-offset=90000'); - assert_true(self.scriptExecuted); -}, `Script executed from partial response`); diff --git a/tests/wpt/web-platform-tests/fetch/range/resources/long-wav.py b/tests/wpt/web-platform-tests/fetch/range/resources/long-wav.py index d510767c309..5df28eb741e 100644 --- a/tests/wpt/web-platform-tests/fetch/range/resources/long-wav.py +++ b/tests/wpt/web-platform-tests/fetch/range/resources/long-wav.py @@ -50,11 +50,28 @@ def main(request, response): response.headers.set("Cache-Control", "no-cache") range_header = request.headers.get('Range', '') + range_header_match = range_header and re.search(r'^bytes=(\d*)-(\d*)$', range_header) range_received_key = request.GET.first('range-received-key', '') + accept_encoding_key = request.GET.first('accept-encoding-key', '') if range_received_key and range_header: + # Remove any current value + request.server.stash.take(range_received_key, '/fetch/range/') # This is later collected using stash-take.py - request.stash.put(range_received_key, 'range-header-received', '/fetch/range/') + request.server.stash.put(range_received_key, 'range-header-received', '/fetch/range/') + + if accept_encoding_key: + # Remove any current value + request.server.stash.take( + accept_encoding_key, + '/fetch/range/' + ) + # This is later collected using stash-take.py + request.server.stash.put( + accept_encoding_key, + request.headers.get('Accept-Encoding', ''), + '/fetch/range/' + ) # Audio details sample_rate = 8000 @@ -66,9 +83,9 @@ def main(request, response): bytes_remaining_to_send = total_length initial_write = '' - if range_header: + if range_header_match: response.status = 206 - start, end = re.search(r'^bytes=(\d*)-(\d*)$', range_header).groups() + start, end = range_header_match.groups() start = int(start) end = int(end) if end else 0 diff --git a/tests/wpt/web-platform-tests/fetch/range/resources/range-sw.js b/tests/wpt/web-platform-tests/fetch/range/resources/range-sw.js index 1dfee58e452..3680c0c471d 100644 --- a/tests/wpt/web-platform-tests/fetch/range/resources/range-sw.js +++ b/tests/wpt/web-platform-tests/fetch/range/resources/range-sw.js @@ -31,6 +31,9 @@ addEventListener('fetch', event => { case 'use-stored-ranged-response': useStoredRangeResponse(event); return; + case 'broadcast-accept-encoding': + broadcastAcceptEncoding(event); + return; } }); @@ -108,7 +111,7 @@ function rangeHeaderPassthroughTest(event) { promise_test(async () => { await fetch(event.request); const response = await fetch('stash-take.py?key=' + key); - assert_equals(await response.json(), '"range-header-received"'); + assert_equals(await response.json(), 'range-header-received'); resolve(); }, `Include range header in network request`); @@ -140,3 +143,17 @@ function useStoredRangeResponse(event) { return response.clone(); }()); } + +function broadcastAcceptEncoding(event) { + /** @type Request */ + const request = event.request; + const id = new URL(request.url).searchParams.get('id'); + + broadcast({ + id, + acceptEncoding: request.headers.get('Accept-Encoding') + }); + + // Just send back any response, it isn't important for the test. + event.respondWith(new Response('')); +} diff --git a/tests/wpt/web-platform-tests/fetch/range/resources/utils.js b/tests/wpt/web-platform-tests/fetch/range/resources/utils.js index 567f231d030..16ed737f63e 100644 --- a/tests/wpt/web-platform-tests/fetch/range/resources/utils.js +++ b/tests/wpt/web-platform-tests/fetch/range/resources/utils.js @@ -7,3 +7,18 @@ function loadScript(url, { doc = document }={}) { doc.body.appendChild(script); }) } + +/** + * + * @param {Document} document + * @param {string|URL} url + * @returns {HTMLAudioElement} + */ +function appendAudio(document, url) { + const audio = document.createElement('audio'); + audio.muted = true; + audio.src = url; + audio.preload = true; + document.body.appendChild(audio); + return audio; +} diff --git a/tests/wpt/web-platform-tests/fetch/range/sw.https.window.js b/tests/wpt/web-platform-tests/fetch/range/sw.https.window.js index aa3d2c478dd..faaee86734e 100644 --- a/tests/wpt/web-platform-tests/fetch/range/sw.https.window.js +++ b/tests/wpt/web-platform-tests/fetch/range/sw.https.window.js @@ -4,28 +4,21 @@ // META: script=resources/utils.js const { REMOTE_HOST } = get_host_info(); -const SCOPE = 'resources/basic.html' + Math.random(); - -function appendAudio(document, url) { - const audio = document.createElement('audio'); - audio.muted = true; - audio.src = url; - audio.preload = true; - document.body.appendChild(audio); -} +const BASE_SCOPE = 'resources/basic.html?'; async function cleanup() { for (const iframe of document.querySelectorAll('.test-iframe')) { iframe.parentNode.removeChild(iframe); } - const reg = await navigator.serviceWorker.getRegistration(SCOPE); - if (reg) await reg.unregister(); + for (const reg of await navigator.serviceWorker.getRegistrations()) { + await reg.unregister(); + } } -async function setupRegistration(t) { +async function setupRegistration(t, scope) { await cleanup(); - const reg = await navigator.serviceWorker.register('resources/range-sw.js', { scope: SCOPE }); + const reg = await navigator.serviceWorker.register('resources/range-sw.js', { scope }); await wait_for_state(t, reg.installing, 'activated'); return reg; } @@ -35,14 +28,15 @@ function awaitMessage(obj, id) { obj.addEventListener('message', function listener(event) { if (event.data.id !== id) return; obj.removeEventListener('message', listener); - resolve(); + resolve(event.data); }); }); } promise_test(async t => { - const reg = await setupRegistration(t); - const iframe = await with_iframe(SCOPE); + const scope = BASE_SCOPE + Math.random(); + const reg = await setupRegistration(t, scope); + const iframe = await with_iframe(scope); const w = iframe.contentWindow; // Trigger a cross-origin range request using media @@ -55,8 +49,9 @@ promise_test(async t => { }, `Defer range header filter tests to service worker`); promise_test(async t => { - const reg = await setupRegistration(t); - const iframe = await with_iframe(SCOPE); + const scope = BASE_SCOPE + Math.random(); + const reg = await setupRegistration(t, scope); + const iframe = await with_iframe(scope); const w = iframe.contentWindow; // Trigger a cross-origin range request using media @@ -71,8 +66,9 @@ promise_test(async t => { }, `Defer range header passthrough tests to service worker`); promise_test(async t => { - await setupRegistration(t); - const iframe = await with_iframe(SCOPE); + const scope = BASE_SCOPE + Math.random(); + await setupRegistration(t, scope); + const iframe = await with_iframe(scope); const w = iframe.contentWindow; const id = Math.random() + ''; const storedRangeResponse = awaitMessage(w.navigator.serviceWorker, id); @@ -102,8 +98,9 @@ promise_test(async t => { }, `Ranged response not allowed following no-cors ranged request`); promise_test(async t => { - await setupRegistration(t); - const iframe = await with_iframe(SCOPE); + const scope = BASE_SCOPE + Math.random(); + await setupRegistration(t, scope); + const iframe = await with_iframe(scope); const w = iframe.contentWindow; const id = Math.random() + ''; const storedRangeResponse = awaitMessage(w.navigator.serviceWorker, id); @@ -126,3 +123,29 @@ promise_test(async t => { assert_true(w.scriptExecuted, `Partial response should be executed`); }, `Non-opaque ranged response executed`); + +promise_test(async t => { + const scope = BASE_SCOPE + Math.random(); + await setupRegistration(t, scope); + const iframe = await with_iframe(scope); + const w = iframe.contentWindow; + const fetchId = Math.random() + ''; + const fetchBroadcast = awaitMessage(w.navigator.serviceWorker, fetchId); + const audioId = Math.random() + ''; + const audioBroadcast = awaitMessage(w.navigator.serviceWorker, audioId); + + const url = new URL('long-wav.py', w.location); + url.searchParams.set('action', 'broadcast-accept-encoding'); + url.searchParams.set('id', fetchId); + + await w.fetch(url, { + headers: { Range: 'bytes=0-10' } + }); + + assert_equals((await fetchBroadcast).acceptEncoding, null, "Accept-Encoding should not be set for fetch"); + + url.searchParams.set('id', audioId); + appendAudio(w.document, url); + + assert_equals((await audioBroadcast).acceptEncoding, null, "Accept-Encoding should not be set for media"); +}, `Accept-Encoding should not appear in a service worker`); diff --git a/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/hashchange_event.html b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/hashchange_event.html index 287e7a6ef1d..b7111255f8b 100644 --- a/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/hashchange_event.html +++ b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/hashchange_event.html @@ -18,11 +18,11 @@ window.onload = t.step_func(function () { location.hash = 'foo'; window.onhashchange = t.step_func(function (e) { - assert_true(e.isTrusted); - assert_equals(e.target, window); - assert_equals(e.type, "hashchange"); - assert_true(e instanceof HashChangeEvent); - assert_true(e.bubbles, "bubble"); + assert_true(e.isTrusted, "isTrusted"); + assert_equals(e.target, window, "target"); + assert_equals(e.type, "hashchange", "type"); + assert_true(e instanceof HashChangeEvent, "is HashChangeEvent"); + assert_false(e.bubbles, "bubbles"); assert_false(e.cancelable, "cancelable"); oldURLs.push(e.oldURL); newURLs.push(e.newURL); diff --git a/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/popstate_event.html b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/popstate_event.html index 7630b991843..a41fabf9686 100644 --- a/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/popstate_event.html +++ b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/popstate_event.html @@ -15,6 +15,13 @@ window.onload = t.step_func(function () { history.back(); window.onpopstate = t.step_func(function (e) { + assert_true(e.isTrusted, "isTrusted"); + assert_equals(e.target, window, "target"); + assert_equals(e.type, "popstate", "type"); + assert_true(e instanceof PopStateEvent, "is PopStateEvent"); + assert_false(e.bubbles, "bubbles"); + assert_false(e.cancelable, "cancelable"); + states.push(e.state); if (states.length === 2) { diff --git a/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-closeable.html b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-closeable.html new file mode 100644 index 00000000000..0c11b587eb1 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-closeable.html @@ -0,0 +1,22 @@ +<!doctype html> +<title>beforeunload and unload events fire after window.close() in script-closeable browsing context</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<div id="log"></div> +<script> +beforeunload_fired = false; +var t = async_test(); + +onload = t.step_func(function() { + window.close(); +}); + +onbeforeunload = t.step_func(function() { + beforeunload_fired = true; +}); + +onunload = t.step_func(function() { + assert_true(beforeunload_fired); + t.done() +}); +</script> diff --git a/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-uncloseable-1.html b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-uncloseable-1.html new file mode 100644 index 00000000000..3a557ce34ea --- /dev/null +++ b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-uncloseable-1.html @@ -0,0 +1,10 @@ +<!doctype html> +script-uncloseable-1 +<script> +onbeforeunload = function() { + parent.beforeunload_fired = true; +}; +onunload = function() { + parent.unload_fired = true; +}; +</script> diff --git a/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-uncloseable.html b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-uncloseable.html new file mode 100644 index 00000000000..f6a17d740b5 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt-and-unload-script-uncloseable.html @@ -0,0 +1,24 @@ +<!doctype html> +<title>beforeunload and unload events do not fire after window.close() in script-uncloseable browsing context</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<div id="log"></div> +<script> +var beforeunload_fired = false; +var unload_fired = false; +var t = async_test(); + +onload = t.step_func(function() { + var iframe = document.getElementsByTagName("iframe")[0] + iframe.onload = t.step_func(function() { + iframe.contentWindow.close() + t.step_timeout(function() { + assert_false(beforeunload_fired); + assert_false(unload_fired); + t.done(); + }, 1000); + }); + iframe.src = "prompt-and-unload-script-uncloseable-1.html"; +}); +</script> +<iframe></iframe> diff --git a/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt/004-1.html b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt/004-1.html new file mode 100644 index 00000000000..a3ca82f520a --- /dev/null +++ b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt/004-1.html @@ -0,0 +1,28 @@ +<!doctype html> +004-1 +<script> +var handleBeforeUnload = function() { + parent.beforeunload_fired = true; + removeListener(); + setTimeout(function() { + parent.timeout_fired = true; + }, 1000); +} + +var removeListener = function() { + assert_true(window.removeEventListener('beforeunload', handleBeforeUnload, false)); +} + +window.addEventListener('beforeunload', handleBeforeUnload, false); + +onload = function() { + if (!parent.loaded) { + parent.loaded = true; + location="004-2.html?" + Math.random(); + } +} +</script> +// child frame with no onbeforeunload listener. Should leave the parent as unsalvageable. +// Adding the iframe prevents potential implementation bugs where the the recursive steps of #prompt-to-unload-a-document +// would overwrite the salvageable state of the parent. +<iframe></iframe> diff --git a/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt/004-2.html b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt/004-2.html new file mode 100644 index 00000000000..1a605b1b3d5 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt/004-2.html @@ -0,0 +1,5 @@ +<!doctype html> +004-2 +<script> +onload = function() {setTimeout(parent.t.step_func(function() {parent.start_test(); history.go(-1)}), 100)} +</script> diff --git a/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt/004.html b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt/004.html new file mode 100644 index 00000000000..7076a4dd18e --- /dev/null +++ b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/prompt/004.html @@ -0,0 +1,29 @@ +<!doctype html> +<title>salvagable state of document after setting beforeunload listener</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<div id="log"></div> +<script> +var t = async_test(); + +var loaded = false; +var beforeunload_fired = false; +var timeout_fired = false; + +function start_test() { + step_timeout( + t.step_func(function() { + assert_true(beforeunload_fired); + assert_false(timeout_fired); + t.done() + }), 1000); +} + +onload = function() { + var iframe = document.getElementsByTagName("iframe")[0] + onload = null; + iframe.src="004-1.html?" + Math.random(); +}; + +</script> +<iframe></iframe> diff --git a/tests/wpt/web-platform-tests/html/browsers/the-window-object/window-open-noopener.html b/tests/wpt/web-platform-tests/html/browsers/the-window-object/window-open-noopener.html index f9489c3be32..7d1d430c0de 100644 --- a/tests/wpt/web-platform-tests/html/browsers/the-window-object/window-open-noopener.html +++ b/tests/wpt/web-platform-tests/html/browsers/the-window-object/window-open-noopener.html @@ -1,6 +1,12 @@ <!doctype html> <meta charset=utf-8> <title>window.open() with "noopener" tests</title> + +<meta name="variant" content="?indexed"> +<meta name="variant" content="?_self"> +<meta name="variant" content="?_parent"> +<meta name="variant" content="?_top"> + <script src=/resources/testharness.js></script> <script src=/resources/testharnessreport.js></script> <script> @@ -28,7 +34,6 @@ var testData = [ shouldReuse: false }, ]; -var tests = []; /** * Loop over our testData array and kick off an async test for each entry. Each * async test opens a window using window.open() with some per-test unique name, @@ -39,56 +44,59 @@ var tests = []; * cases and non-null in the cases when the existing window gets reused) and so * forth. */ -for (var i = 0; i < testData.length; ++i) { - var test = testData[i]; - var t = async_test(test.testDescription); - tests.push(t); - t.secondWindowFeatureString = test.secondWindowFeatureString; - t.windowName = "someuniquename" + i; +function indexedTests() { + var tests = []; + for(var i = 0; i < testData.length; ++i) { + var test = testData[i]; + var t = async_test(test.testDescription); + tests.push(t); + t.secondWindowFeatureString = test.secondWindowFeatureString; + t.windowName = "someuniquename" + i; - if (test.shouldReuse) { - t.step(function() { - var windowName = this.windowName; + if (test.shouldReuse) { + t.step(function() { + var windowName = this.windowName; - var w1 = window.open("", windowName); - this.add_cleanup(function() { w1.close(); }); + var w1 = window.open("", windowName); + this.add_cleanup(function() { w1.close(); }); - assert_equals(w1.opener, window); + assert_equals(w1.opener, window); - var w2 = window.open("", windowName, this.secondWindowFeatureString); - assert_equals(w2, w1); - assert_equals(w2.opener, w1.opener); - assert_equals(w2.opener, window); - this.done(); - }); - } else { - t.step(function() { - var w1; - this.add_cleanup(function() { - w1.close(); - channel.postMessage(null); + var w2 = window.open("", windowName, this.secondWindowFeatureString); + assert_equals(w2, w1); + assert_equals(w2.opener, w1.opener); + assert_equals(w2.opener, window); + this.done(); }); + } else { + t.step(function() { + var w1; + this.add_cleanup(function() { + w1.close(); + channel.postMessage(null); + }); - var windowName = this.windowName; - var channel = new BroadcastChannel(windowName); + var windowName = this.windowName; + var channel = new BroadcastChannel(windowName); - channel.onmessage = this.step_func_done(function(e) { - var data = e.data; - assert_equals(data.name, windowName, "Should have the right name"); - assert_equals(data.haveOpener, false, "Should not have opener"); - assert_equals(w1.opener, window); - assert_equals(w1.location.href, "about:blank"); - }); + channel.onmessage = this.step_func_done(function(e) { + var data = e.data; + assert_equals(data.name, windowName, "Should have the right name"); + assert_equals(data.haveOpener, false, "Should not have opener"); + assert_equals(w1.opener, window); + assert_equals(w1.location.href, "about:blank"); + }); - w1 = window.open("", windowName); - assert_equals(w1.opener, window); + w1 = window.open("", windowName); + assert_equals(w1.opener, window); - var w2 = window.open("support/noopener-target.html?" + windowName, - windowName, this.secondWindowFeatureString); - assert_equals(w2, null); + var w2 = window.open("support/noopener-target.html?" + windowName, + windowName, this.secondWindowFeatureString); + assert_equals(w2, null); - assert_equals(w1.opener, window); - }); + assert_equals(w1.opener, window); + }); + } } } @@ -96,13 +104,27 @@ for (var i = 0; i < testData.length; ++i) { * Loop over the special targets that ignore noopener and check that doing a * window.open() with those targets correctly reuses the existing window. */ -for (var target of ["_self", "_parent", "_top"]) { - var t = async_test("noopener window.open targeting " + target); - tests.push(t); - t.openedWindow = window.open(`javascript:var w2 = window.open("", "${target}", "noopener"); this.checkValues(w2); this.close(); void(0);`); - assert_equals(t.openedWindow.opener, window); - t.openedWindow.checkValues = t.step_func_done(function(win) { - assert_equals(win, this.openedWindow); - }); +function specialTargetTest(target) { + if (["_self", "_parent", "_top"].includes(target)) { + var t = async_test("noopener window.open targeting " + target); + t.openedWindow = window.open(`javascript:var w2 = window.open("", "${target}", "noopener"); this.checkValues(w2); this.close(); void(0);`); + assert_equals(t.openedWindow.opener, window); + t.openedWindow.checkValues = t.step_func_done(function(win) { + assert_equals(win, this.openedWindow); + }); + } else { + throw 'testError: special target must be one of: _self, _parent, _top' + } +} + +/** + * Parse the Query string, check if it matches keyword 'indexed' to run the indexed tests, + * otherwise test it as a special target + */ +var variant = window.location.href.split("?")[1] +if(variant == "indexed") { + indexedTests(); +} else { + specialTargetTest(variant); } </script> diff --git a/tests/wpt/web-platform-tests/input-device-capabilities/OWNERS b/tests/wpt/web-platform-tests/input-device-capabilities/OWNERS new file mode 100644 index 00000000000..097ba63e510 --- /dev/null +++ b/tests/wpt/web-platform-tests/input-device-capabilities/OWNERS @@ -0,0 +1,2 @@ +@SummerLW +@NavidZ diff --git a/tests/wpt/web-platform-tests/input-device-capabilities/interfaces.html b/tests/wpt/web-platform-tests/input-device-capabilities/interfaces.html new file mode 100644 index 00000000000..178ce5aa892 --- /dev/null +++ b/tests/wpt/web-platform-tests/input-device-capabilities/interfaces.html @@ -0,0 +1,24 @@ +<!doctype html> +<title>Input Device Capabilities IDL tests</title> +<link rel="help" href="https://wicg.github.io/InputDeviceCapabilities/"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/WebIDLParser.js"></script> +<script src="/resources/idlharness.js"></script> +<script> + "use strict"; + + promise_test(async () => { + const idl_array = new IdlArray(); + const idl = await (await fetch("/interfaces/InputDeviceCapabilities.idl")).text(); + const uievents = await (await fetch("/interfaces/uievents.idl")).text(); + const dom = await (await fetch("/interfaces/dom.idl")).text(); + idl_array.add_idls(idl); + idl_array.add_dependency_idls(uievents); + idl_array.add_dependency_idls(dom); + idl_array.add_objects({ + InputDeviceCapabilities: ["new InputDeviceCapabilities"], + }); + idl_array.test(); + }, "Test driver"); +</script> diff --git a/tests/wpt/web-platform-tests/interfaces/InputDeviceCapabilities.idl b/tests/wpt/web-platform-tests/interfaces/InputDeviceCapabilities.idl new file mode 100644 index 00000000000..6be9be7aa60 --- /dev/null +++ b/tests/wpt/web-platform-tests/interfaces/InputDeviceCapabilities.idl @@ -0,0 +1,22 @@ +// GENERATED CONTENT - DO NOT EDIT +// Content of this file was automatically extracted from the +// "Input Device Capabilities" spec. +// See: https://wicg.github.io/InputDeviceCapabilities/ + +[Constructor(optional InputDeviceCapabilitiesInit deviceInitDict)] +interface InputDeviceCapabilities { + readonly attribute boolean firesTouchEvents; + readonly attribute boolean pointerMovementScrolls; +}; + +dictionary InputDeviceCapabilitiesInit { + boolean firesTouchEvents = false; + boolean pointerMovementScrolls = false; +}; +partial interface UIEvent { + readonly attribute InputDeviceCapabilities? sourceCapabilities; +}; + +partial dictionary UIEventInit { + InputDeviceCapabilities? sourceCapabilities = null; +}; diff --git a/tests/wpt/web-platform-tests/interfaces/ResizeObserver.idl b/tests/wpt/web-platform-tests/interfaces/ResizeObserver.idl new file mode 100644 index 00000000000..a75a11c965c --- /dev/null +++ b/tests/wpt/web-platform-tests/interfaces/ResizeObserver.idl @@ -0,0 +1,30 @@ +// GENERATED CONTENT - DO NOT EDIT +// Content of this file was automatically extracted from the +// "Resize Observer 1" spec. +// See: https://wicg.github.io/ResizeObserver/ + +[Constructor(ResizeObserverCallback callback), + Exposed=Window] +interface ResizeObserver { + void observe(Element target); + void unobserve(Element target); + void disconnect(); +}; + +callback ResizeObserverCallback = void (sequence<ResizeObserverEntry> entries, ResizeObserver observer); + +[Constructor(Element target) +] +interface ResizeObserverEntry { + readonly attribute Element target; + readonly attribute DOMRectReadOnly contentRect; +}; + +[Constructor(Element target) +] +interface ResizeObservation { + readonly attribute Element target; + readonly attribute float broadcastWidth; + readonly attribute float broadcastHeight; + boolean isActive(); +}; diff --git a/tests/wpt/web-platform-tests/interfaces/css-fonts.idl b/tests/wpt/web-platform-tests/interfaces/css-fonts.idl new file mode 100644 index 00000000000..7cb29f28432 --- /dev/null +++ b/tests/wpt/web-platform-tests/interfaces/css-fonts.idl @@ -0,0 +1,35 @@ +// GENERATED CONTENT - DO NOT EDIT +// Content of this file was automatically extracted from the +// "CSS Fonts Module Level 4" spec. +// See: https://drafts.csswg.org/css-fonts-4/ + +[Exposed=Window] +interface CSSFontFaceRule : CSSRule { + readonly attribute CSSStyleDeclaration style; +}; + +partial interface CSSRule { const unsigned short FONT_FEATURE_VALUES_RULE = 14; +}; +interface CSSFontFeatureValuesRule : CSSRule { attribute CSSOMString fontFamily; + readonly attribute CSSFontFeatureValuesMap annotation; + readonly attribute CSSFontFeatureValuesMap ornaments; + readonly attribute CSSFontFeatureValuesMap stylistic; + readonly attribute CSSFontFeatureValuesMap swash; + readonly attribute CSSFontFeatureValuesMap characterVariant; + readonly attribute CSSFontFeatureValuesMap styleset; +}; + +interface CSSFontFeatureValuesMap { + maplike<CSSOMString, sequence<unsigned long>>; + void set(CSSOMString featureValueName, + (unsigned long or sequence<unsigned long>) values); +}; +partial interface CSSRule { + const unsigned short FONT_PALETTE_VALUES_RULE = 15; +}; + +interface CSSFontPaletteValuesRule : CSSRule { + maplike<unsigned long, (CSSOMString or CSSOMRGBColor)>; + attribute CSSOMString fontFamily; + attribute CSSOMString basePalette; +}; diff --git a/tests/wpt/web-platform-tests/interfaces/css-masking.idl b/tests/wpt/web-platform-tests/interfaces/css-masking.idl new file mode 100644 index 00000000000..726e0a0454c --- /dev/null +++ b/tests/wpt/web-platform-tests/interfaces/css-masking.idl @@ -0,0 +1,18 @@ +// GENERATED CONTENT - DO NOT EDIT +// Content of this file was automatically extracted from the +// "CSS Masking Module Level 1" spec. +// See: https://drafts.fxtf.org/css-masking-1/ + +interface SVGClipPathElement : SVGElement { + readonly attribute SVGAnimatedEnumeration clipPathUnits; + readonly attribute SVGAnimatedTransformList transform; +}; + +interface SVGMaskElement : SVGElement { + readonly attribute SVGAnimatedEnumeration maskUnits; + readonly attribute SVGAnimatedEnumeration maskContentUnits; + readonly attribute SVGAnimatedLength x; + readonly attribute SVGAnimatedLength y; + readonly attribute SVGAnimatedLength width; + readonly attribute SVGAnimatedLength height; +}; diff --git a/tests/wpt/web-platform-tests/interfaces/dom.idl b/tests/wpt/web-platform-tests/interfaces/dom.idl index 45cae33f896..3779e3d6141 100644 --- a/tests/wpt/web-platform-tests/interfaces/dom.idl +++ b/tests/wpt/web-platform-tests/interfaces/dom.idl @@ -35,6 +35,11 @@ dictionary EventInit { }; +partial interface Window { + [Replaceable] readonly attribute any event; +}; + + [Constructor(DOMString type, optional CustomEventInit eventInitDict), Exposed=(Window,Worker)] interface CustomEvent : Event { diff --git a/tests/wpt/web-platform-tests/interfaces/performance-timeline.idl b/tests/wpt/web-platform-tests/interfaces/performance-timeline.idl new file mode 100644 index 00000000000..857be8c6dac --- /dev/null +++ b/tests/wpt/web-platform-tests/interfaces/performance-timeline.idl @@ -0,0 +1,40 @@ +// GENERATED CONTENT - DO NOT EDIT +// Content of this file was automatically extracted from the +// "Performance Timeline Level 2" spec. +// See: https://w3c.github.io/performance-timeline/ + +partial interface Performance { + PerformanceEntryList getEntries(); + PerformanceEntryList getEntriesByType(DOMString type); + PerformanceEntryList getEntriesByName(DOMString name, + optional DOMString type); +}; +typedef sequence<PerformanceEntry> PerformanceEntryList; +[Exposed=(Window,Worker)] +interface PerformanceEntry { + readonly attribute DOMString name; + readonly attribute DOMString entryType; + readonly attribute DOMHighResTimeStamp startTime; + readonly attribute DOMHighResTimeStamp duration; + [Default] object toJSON(); +}; +callback PerformanceObserverCallback = void (PerformanceObserverEntryList entries, + PerformanceObserver observer); +[Constructor(PerformanceObserverCallback callback), + Exposed=(Window,Worker)] +interface PerformanceObserver { + void observe(PerformanceObserverInit options); + void disconnect(); + PerformanceEntryList takeRecords(); +}; +dictionary PerformanceObserverInit { + required sequence<DOMString> entryTypes; + boolean buffered = false; +}; +[Exposed=(Window,Worker)] +interface PerformanceObserverEntryList { + PerformanceEntryList getEntries(); + PerformanceEntryList getEntriesByType(DOMString type); + PerformanceEntryList getEntriesByName(DOMString name, + optional DOMString type); +}; diff --git a/tests/wpt/web-platform-tests/interfaces/permissions.idl b/tests/wpt/web-platform-tests/interfaces/permissions.idl new file mode 100644 index 00000000000..9b088b27d42 --- /dev/null +++ b/tests/wpt/web-platform-tests/interfaces/permissions.idl @@ -0,0 +1,53 @@ +// GENERATED CONTENT - DO NOT EDIT +// Content of this file was automatically extracted from the +// "Permissions" spec. +// See: https://w3c.github.io/permissions/ + +dictionary PermissionDescriptor { + required PermissionName name; +}; + +enum PermissionState { + "granted", + "denied", + "prompt", +}; + +[Exposed=(Window,Worker)] +interface PermissionStatus : EventTarget { + readonly attribute PermissionState state; + attribute EventHandler onchange; +}; + +[Exposed=(Window)] +partial interface Navigator { + readonly attribute Permissions permissions; +}; + +[Exposed=(Worker)] +partial interface WorkerNavigator { + readonly attribute Permissions permissions; +}; + +[Exposed=(Window,Worker)] +interface Permissions { + Promise<PermissionStatus> query(object permissionDesc); +}; + +dictionary PushPermissionDescriptor : PermissionDescriptor { + boolean userVisibleOnly = false; +}; + +dictionary MidiPermissionDescriptor : PermissionDescriptor { + boolean sysex = false; +}; + +dictionary DevicePermissionDescriptor : PermissionDescriptor { + DOMString deviceId; +}; + +dictionary PermissionSetParameters { + required PermissionDescriptor descriptor; + required PermissionState state; + boolean oneRealm = false; +}; diff --git a/tests/wpt/web-platform-tests/interfaces/user-timing.idl b/tests/wpt/web-platform-tests/interfaces/user-timing.idl new file mode 100644 index 00000000000..576ee5357a9 --- /dev/null +++ b/tests/wpt/web-platform-tests/interfaces/user-timing.idl @@ -0,0 +1,19 @@ +// GENERATED CONTENT - DO NOT EDIT +// Content of this file was automatically extracted from the +// "User Timing Level 2" spec. +// See: https://w3c.github.io/user-timing/ + +partial interface Performance { + void mark(DOMString markName); + void clearMarks(optional DOMString markName); + void measure(DOMString measureName, + optional DOMString startMark, + optional DOMString endMark); + void clearMeasures(optional DOMString measureName); +}; +[Exposed=(Window,Worker)] +interface PerformanceMark : PerformanceEntry { +}; +[Exposed=(Window,Worker)] +interface PerformanceMeasure : PerformanceEntry { +}; diff --git a/tests/wpt/web-platform-tests/lifecycle/freeze.html b/tests/wpt/web-platform-tests/lifecycle/freeze.html index 66bbbffd1fa..88e32c9d3b0 100644 --- a/tests/wpt/web-platform-tests/lifecycle/freeze.html +++ b/tests/wpt/web-platform-tests/lifecycle/freeze.html @@ -6,7 +6,8 @@ <script> var test = async_test('Test freeze callback.'); -var childWindow = window.open('resources/window.html', 'Child Window'); +window.open('resources/window.html', 'Child Window'); + var total_steps = 0; const StepStatus = { diff --git a/tests/wpt/web-platform-tests/lifecycle/resources/window.html b/tests/wpt/web-platform-tests/lifecycle/resources/window.html index 1e52587c526..69fdbc09866 100644 --- a/tests/wpt/web-platform-tests/lifecycle/resources/window.html +++ b/tests/wpt/web-platform-tests/lifecycle/resources/window.html @@ -45,6 +45,15 @@ function testXHR(async) { }; } +function testSendBeacon() { + var name = 'testSendBeacon'; + window.opener.add_step(name); + if (navigator.sendBeacon("foo.txt", "data=1")) + window.opener.step_success(name); + else + window.opener.step_fail(name); +} + window.document.addEventListener("freeze", () => { // Testing fetch, only fetch keepalive should succeed. testFetch(true /* keepalive */); @@ -52,11 +61,12 @@ window.document.addEventListener("freeze", () => { // Testing XHR, both sync and async should fail. testXHR(true /* async */); testXHR(false /* sync */); + // Testing navigator.sendBeacon, which should be allowed. + testSendBeacon(); window.opener.step_success(freezingStepName); }); onload = function() { - window.opener.focus(); window.opener.add_step(freezingStepName); test_driver.freeze(); }; diff --git a/tests/wpt/web-platform-tests/performance-timeline/idlharness.any.js b/tests/wpt/web-platform-tests/performance-timeline/idlharness.any.js new file mode 100644 index 00000000000..b15a667b256 --- /dev/null +++ b/tests/wpt/web-platform-tests/performance-timeline/idlharness.any.js @@ -0,0 +1,26 @@ +// META: global=window,worker +// META: script=/resources/WebIDLParser.js +// META: script=/resources/idlharness.js + +// https://w3c.github.io/performance-timeline/ + +'use strict'; + +promise_test(async () => { + const idl_array = new IdlArray(); + const idl = await fetch("/interfaces/performance-timeline.idl").then(r => r.text()); + const dom = await fetch("/interfaces/dom.idl").then(r => r.text()); + const hrtime = await fetch("/interfaces/hr-time.idl").then(r => r.text()); + + // create first mark + self.performance.mark("mark"); + + idl_array.add_idls(idl); + idl_array.add_dependency_idls(hrtime); + idl_array.add_dependency_idls(dom); + idl_array.add_objects({ + Performance: ["performance"], + PerformanceMark: [self.performance.getEntriesByName("mark")[0]], + }); + idl_array.test(); +}, "Test IDL implementation of performance-timeline API"); diff --git a/tests/wpt/web-platform-tests/performance-timeline/idlharness.html b/tests/wpt/web-platform-tests/performance-timeline/idlharness.html deleted file mode 100644 index 8cef4fb3fc9..00000000000 --- a/tests/wpt/web-platform-tests/performance-timeline/idlharness.html +++ /dev/null @@ -1,90 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"> -<title>Performance Timeline IDL tests</title> -<link rel="author" title="W3C" href="http://www.w3.org/" /> -<link rel="help" href="http://www.w3.org/TR/performance-timeline/#performanceentry"/> -<link rel="help" href="http://www.w3.org/TR/performance-timeline/#performance"/> -<link rel="help" href="http://www.w3.org/TR/performance-timeline/#performanceentrylist"/> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="/resources/WebIDLParser.js"></script> -<script src="/resources/idlharness.js"></script> -</head> -<body> -<h1>Performance Timeline IDL tests</h1> -<div id="log"></div> - -<pre id='untested_idl' style='display:none'> -interface Performance { -}; - -typedef double DOMHighResTimeStamp; - -[Exposed=(Window,Worker)] -interface PerformanceMark : PerformanceEntry { -}; -</pre> - -<pre id='idl'> -[Exposed=(Window,Worker)] -interface PerformanceEntry { - readonly attribute DOMString name; - readonly attribute DOMString entryType; - readonly attribute DOMHighResTimeStamp startTime; - readonly attribute DOMHighResTimeStamp duration; - [Default] object toJSON(); -}; - -partial interface Performance { - PerformanceEntryList getEntries(); - PerformanceEntryList getEntriesByType(DOMString type); - PerformanceEntryList getEntriesByName(DOMString name, - optional DOMString type); -}; - -typedef sequence <PerformanceEntry> PerformanceEntryList; - -dictionary PerformanceObserverInit { - required sequence<DOMString> entryTypes; - boolean buffered = false; -}; - -[Exposed=(Window,Worker)] -interface PerformanceObserverEntryList { - PerformanceEntryList getEntries(); - PerformanceEntryList getEntriesByType(DOMString type); - PerformanceEntryList getEntriesByName(DOMString name, - optional DOMString type); -}; - -callback PerformanceObserverCallback = void (PerformanceObserverEntryList entries, - PerformanceObserver observer); - -[Constructor(PerformanceObserverCallback callback), - Exposed=(Window,Worker)] -interface PerformanceObserver { - void observe(PerformanceObserverInit options); - void disconnect(); - PerformanceEntryList takeRecords(); -}; -</pre> - -<script> -var idl_array; -setup(function() { - idl_array = new IdlArray(); - idl_array.add_untested_idls(document.getElementById("untested_idl").textContent); - idl_array.add_idls(document.getElementById("idl").textContent); - // create first mark - self.performance.mark("mark"); - idl_array.add_objects({ - Performance: ["window.performance"], - PerformanceMark: [self.performance.getEntriesByName("mark")[0]] - }); -}); -idl_array.test(); -</script> -</body> -</html> diff --git a/tests/wpt/web-platform-tests/permissions/OWNERS b/tests/wpt/web-platform-tests/permissions/OWNERS new file mode 100644 index 00000000000..7259a0abd3d --- /dev/null +++ b/tests/wpt/web-platform-tests/permissions/OWNERS @@ -0,0 +1,3 @@ +@jyasskin +@mounirlamouri +@marcoscaceres diff --git a/tests/wpt/web-platform-tests/permissions/interfaces.any.js b/tests/wpt/web-platform-tests/permissions/interfaces.any.js new file mode 100644 index 00000000000..c20f422bf43 --- /dev/null +++ b/tests/wpt/web-platform-tests/permissions/interfaces.any.js @@ -0,0 +1,38 @@ +// META: script=/resources/WebIDLParser.js +// META: script=/resources/idlharness.js + +"use strict"; + +if (self.importScripts) { + importScripts("/resources/testharness.js"); + importScripts("/resources/WebIDLParser.js", "/resources/idlharness.js"); +} + +// https://w3c.github.io/permissions/#idl-index + +promise_test(async () => { + + const permissions_idl = await fetch("/interfaces/permissions.idl") + .then(response => response.text()); + const idl_array = new IdlArray(); + + idl_array.add_untested_idls('interface Navigator {};'); + idl_array.add_untested_idls('[Exposed=(Window,Worker)] interface EventTarget {};'); + idl_array.add_untested_idls('interface EventHandler {};'); + idl_array.add_untested_idls('interface WorkerNavigator {};'); + idl_array.add_idls(permissions_idl); + + self.permissionStatus = await navigator.permissions.query({ name: "geolocation" }); + + if (self.GLOBAL.isWorker()) { + idl_array.add_objects({ WorkerNavigator: ['navigator'] }); + } else { + idl_array.add_objects({ Navigator: ['navigator'] }); + } + + idl_array.add_objects({ + Permissions: ['navigator.permissions'], + PermissionStatus: ['permissionStatus'] + }); + idl_array.test(); +}, "Test IDL implementation of Permissions API"); diff --git a/tests/wpt/web-platform-tests/resize-observer/idlharness.html b/tests/wpt/web-platform-tests/resize-observer/idlharness.html new file mode 100644 index 00000000000..51ab4fd24e5 --- /dev/null +++ b/tests/wpt/web-platform-tests/resize-observer/idlharness.html @@ -0,0 +1,20 @@ +<!doctype html> +<title>ResizeObserver IDL tests</title> +<link rel="help" href="https://wicg.github.io/ResizeObserver/"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/WebIDLParser.js"></script> +<script src="/resources/idlharness.js"></script> +<script> + "use strict"; + + promise_test(async () => { + const idl_array = new IdlArray(); + const idl = await fetch("/interfaces/ResizeObserver.idl").then(r => r.text()); + idl_array.add_idls(idl); + idl_array.add_objects({ + ResizeObserver: ["new ResizeObserver(entries => {})"], + }); + idl_array.test(); + }, "Test IDL implementation of ResizeObserver"); +</script> diff --git a/tests/wpt/web-platform-tests/resources/idlharness.js b/tests/wpt/web-platform-tests/resources/idlharness.js index d00572492df..484094eb9e4 100644 --- a/tests/wpt/web-platform-tests/resources/idlharness.js +++ b/tests/wpt/web-platform-tests/resources/idlharness.js @@ -662,42 +662,48 @@ IdlArray.prototype.is_json_type = function(type) }; function exposure_set(object, default_set) { - var exposed = object.extAttrs.filter(function(a) { return a.name == "Exposed" }); - if (exposed.length > 1) { + var exposed = object.extAttrs && object.extAttrs.filter(a => a.name === "Exposed"); + if (exposed && exposed.length > 1) { throw new IdlHarnessError( `Multiple 'Exposed' extended attributes on ${object.name}`); } - if (exposed.length === 0) { - return default_set; + let result = default_set || ["Window"]; + if (result && !(result instanceof Set)) { + result = new Set(result); } - - var set = exposed[0].rhs.value; - // Could be a list or a string. - if (typeof set == "string") { - set = [ set ]; + if (exposed && exposed.length) { + var set = exposed[0].rhs.value; + // Could be a list or a string. + if (typeof set == "string") { + set = [ set ]; + } + result = new Set(set); } - return set; + if (result && result.has("Worker")) { + result.delete("Worker"); + result.add("DedicatedWorker"); + result.add("ServiceWorker"); + result.add("SharedWorker"); + } + return result; } function exposed_in(globals) { if ('document' in self) { - return globals.indexOf("Window") >= 0; + return globals.has("Window"); } if ('DedicatedWorkerGlobalScope' in self && self instanceof DedicatedWorkerGlobalScope) { - return globals.indexOf("Worker") >= 0 || - globals.indexOf("DedicatedWorker") >= 0; + return globals.has("DedicatedWorker"); } if ('SharedWorkerGlobalScope' in self && self instanceof SharedWorkerGlobalScope) { - return globals.indexOf("Worker") >= 0 || - globals.indexOf("SharedWorker") >= 0; + return globals.has("SharedWorker"); } if ('ServiceWorkerGlobalScope' in self && self instanceof ServiceWorkerGlobalScope) { - return globals.indexOf("Worker") >= 0 || - globals.indexOf("ServiceWorker") >= 0; + return globals.has("ServiceWorker"); } throw new IdlHarnessError("Unexpected global object"); } @@ -737,27 +743,7 @@ IdlArray.prototype.test = function() // First merge in all the partial interfaces and implements statements we // encountered. - this.partials.forEach(function(parsed_idl) - { - if (!(parsed_idl.name in this.members) - || !(this.members[parsed_idl.name] instanceof IdlInterface - || this.members[parsed_idl.name] instanceof IdlDictionary)) - { - throw new IdlHarnessError(`Partial ${parsed_idl.type} ${parsed_idl.name} with no original ${parsed_idl.type}`); - } - if (parsed_idl.extAttrs) - { - parsed_idl.extAttrs.forEach(function(extAttr) - { - this.members[parsed_idl.name].extAttrs.push(extAttr); - }.bind(this)); - } - parsed_idl.members.forEach(function(member) - { - this.members[parsed_idl.name].members.push(new IdlInterfaceMember(member)); - }.bind(this)); - }.bind(this)); - this.partials = []; + this.collapse_partials(); for (var lhs in this["implements"]) { @@ -814,7 +800,7 @@ IdlArray.prototype.test = function() return; } - var globals = exposure_set(member, ["Window"]); + var globals = exposure_set(member); member.exposed = exposed_in(globals); member.exposureSet = globals; }.bind(this)); @@ -834,6 +820,78 @@ IdlArray.prototype.test = function() }; //@} +IdlArray.prototype.collapse_partials = function() +//@{ +{ + const testedPartials = new Map(); + this.partials.forEach(function(parsed_idl) + { + const originalExists = parsed_idl.name in this.members + && (this.members[parsed_idl.name] instanceof IdlInterface + || this.members[parsed_idl.name] instanceof IdlDictionary); + + let partialTestName = parsed_idl.name; + if (!parsed_idl.untested) { + // Ensure unique test name in case of multiple partials. + let partialTestCount = 1; + if (testedPartials.has(parsed_idl.name)) { + partialTestCount += testedPartials.get(parsed_idl.name); + partialTestName = `${partialTestName}[${partialTestCount}]`; + } + testedPartials.set(parsed_idl.name, partialTestCount); + + test(function () { + assert_true(originalExists, `Original ${parsed_idl.type} should be defined`); + }.bind(this), `Partial ${parsed_idl.type} ${partialTestName}: original ${parsed_idl.type} defined`); + } + if (!originalExists) { + // Not good.. but keep calm and carry on. + return; + } + + if (parsed_idl.extAttrs) + { + // Special-case "Exposed". Must be a subset of original interface's exposure. + // Exposed on a partial is the equivalent of having the same Exposed on all nested members. + // See https://github.com/heycam/webidl/issues/154 for discrepency between Exposed and + // other extended attributes on partial interfaces. + const exposureAttr = parsed_idl.extAttrs.find(a => a.name === "Exposed"); + if (exposureAttr) { + if (!parsed_idl.untested) { + test(function () { + const partialExposure = exposure_set(parsed_idl); + const memberExposure = exposure_set(this.members[parsed_idl.name]); + partialExposure.forEach(name => { + if (!memberExposure || !memberExposure.has(name)) { + throw new IdlHarnessError( + `Partial ${parsed_idl.name} ${parsed_idl.type} is exposed to '${name}', the original ${parsed_idl.type} is not.`); + } + }); + }.bind(this), `Partial ${parsed_idl.type} ${partialTestName}: valid exposure set`); + } + parsed_idl.members.forEach(function (member) { + member.extAttrs.push(exposureAttr); + }.bind(this)); + } + + parsed_idl.extAttrs.forEach(function(extAttr) + { + // "Exposed" already handled above. + if (extAttr.name === "Exposed") { + return; + } + this.members[parsed_idl.name].extAttrs.push(extAttr); + }.bind(this)); + } + parsed_idl.members.forEach(function(member) + { + this.members[parsed_idl.name].members.push(new IdlInterfaceMember(member)); + }.bind(this)); + }.bind(this)); + this.partials = []; +} + +//@} IdlArray.prototype.assert_type_is = function(value, type) //@{ { @@ -1529,7 +1587,7 @@ IdlInterface.prototype.test_self = function() if (this.is_callback()) { throw new IdlHarnessError("Invalid IDL: LegacyWindowAlias extended attribute on non-interface " + this.name); } - if (this.exposureSet.indexOf("Window") === -1) { + if (!this.exposureSet.has("Window")) { throw new IdlHarnessError("Invalid IDL: LegacyWindowAlias extended attribute on " + this.name + " which is not exposed in Window"); } // TODO: when testing of [NoInterfaceObject] interfaces is supported, diff --git a/tests/wpt/web-platform-tests/resources/test/tests/functional/idlharness/IdlDictionary/test_partial_interface_of.html b/tests/wpt/web-platform-tests/resources/test/tests/functional/idlharness/IdlDictionary/test_partial_interface_of.html new file mode 100644 index 00000000000..7bb435708f3 --- /dev/null +++ b/tests/wpt/web-platform-tests/resources/test/tests/functional/idlharness/IdlDictionary/test_partial_interface_of.html @@ -0,0 +1,73 @@ +<!DOCTYPE HTML> +<html> + +<head> + <meta charset="utf-8"> + <title>idlharness: Partial dictionary</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/resources/WebIDLParser.js"></script> + <script src="/resources/idlharness.js"></script> +</head> + +<body> + <p>Verify the series of sub-tests that are executed for "partial" dictionary objects.</p> + <script> + "use strict"; + + // No original existence + (() => { + const idlArray = new IdlArray(); + idlArray.add_idls('partial dictionary A {};'); + idlArray.test(); + })(); + + // Multiple partials existence + (() => { + const idlArray = new IdlArray(); + idlArray.add_untested_idls('partial dictionary B {};'); + idlArray.add_idls('partial dictionary B {};'); + idlArray.add_idls('partial dictionary B {};'); + idlArray.add_idls('partial dictionary B {};'); + idlArray.add_idls('dictionary B {};'); + idlArray.test(); + })(); + </script> + <script type="text/json" id="expected"> +{ + "summarized_status": { + "status_string": "OK", + "message": null + }, + "summarized_tests": [ + { + "name": "Partial dictionary A: original dictionary defined", + "status_string": "FAIL", + "properties": {}, + "message": "assert_true: Original dictionary should be defined expected true got false" + }, + { + "name": "Partial dictionary B: original dictionary defined", + "status_string": "PASS", + "properties": {}, + "message": null + }, + { + "name": "Partial dictionary B[2]: original dictionary defined", + "status_string": "PASS", + "properties": {}, + "message": null + }, + { + "name": "Partial dictionary B[3]: original dictionary defined", + "status_string": "PASS", + "properties": {}, + "message": null + } + ], + "type": "complete" +} +</script> +</body> + +</html> diff --git a/tests/wpt/web-platform-tests/resources/test/tests/functional/idlharness/IdlInterface/test_partial_interface_of.html b/tests/wpt/web-platform-tests/resources/test/tests/functional/idlharness/IdlInterface/test_partial_interface_of.html new file mode 100644 index 00000000000..75019c60da6 --- /dev/null +++ b/tests/wpt/web-platform-tests/resources/test/tests/functional/idlharness/IdlInterface/test_partial_interface_of.html @@ -0,0 +1,110 @@ +<!DOCTYPE HTML> +<html> + +<head> + <meta charset="utf-8"> + <title>idlharness: Partail interface</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/resources/WebIDLParser.js"></script> + <script src="/resources/idlharness.js"></script> +</head> + +<body> + <p>Verify the series of sub-tests that are executed for "partial" interface objects.</p> + <script> + "use strict"; + + // No original existence + (() => { + const idlArray = new IdlArray(); + idlArray.add_idls('partial interface A {};'); + idlArray.test(); + })(); + + // Valid exposure (Note: Worker -> {Shared,Dedicated,Service}Worker) + (() => { + const idlArray = new IdlArray(); + idlArray.add_untested_idls(` + [Exposed=(Worker)] + interface B {}; + + [Exposed=(DedicatedWorker, ServiceWorker, SharedWorker)] + interface C {};`); + idlArray.add_idls(` + [Exposed=(DedicatedWorker, ServiceWorker, SharedWorker)] + partial interface B {}; + + [Exposed=(Worker)] + partial interface C {};`); + idlArray.collapse_partials(); + })(); + + // Invalid exposure + (() => { + const idlArray = new IdlArray(); + idlArray.add_untested_idls(` + [Exposed=(Window, ServiceWorker)] + interface D {};`); + idlArray.add_idls(` + [Exposed=(DedicatedWorker)] + partial interface D {};`); + idlArray.collapse_partials(); + })(); + </script> + <script type="text/json" id="expected"> +{ + "summarized_status": { + "status_string": "OK", + "message": null + }, + "summarized_tests": [ + { + "name": "Partial interface A: original interface defined", + "status_string": "FAIL", + "properties": {}, + "message": "assert_true: Original interface should be defined expected true got false" + }, + { + "name": "Partial interface B: original interface defined", + "status_string": "PASS", + "properties": {}, + "message": null + }, + { + "name": "Partial interface B: valid exposure set", + "status_string": "PASS", + "properties": {}, + "message": null + }, + { + "name": "Partial interface C: original interface defined", + "status_string": "PASS", + "properties": {}, + "message": null + }, + { + "name": "Partial interface C: valid exposure set", + "status_string": "PASS", + "properties": {}, + "message": null + }, + { + "name": "Partial interface D: original interface defined", + "status_string": "PASS", + "properties": {}, + "message": null + }, + { + "name": "Partial interface D: valid exposure set", + "status_string": "FAIL", + "properties": {}, + "message": "Partial D interface is exposed to 'DedicatedWorker', the original interface is not." + } + ], + "type": "complete" +} +</script> +</body> + +</html> diff --git a/tests/wpt/web-platform-tests/resources/test/tests/unit/IdlDictionary/test_partial_dictionary.html b/tests/wpt/web-platform-tests/resources/test/tests/unit/IdlDictionary/test_partial_dictionary.html index cfcea545ffa..d6137f6895f 100644 --- a/tests/wpt/web-platform-tests/resources/test/tests/unit/IdlDictionary/test_partial_dictionary.html +++ b/tests/wpt/web-platform-tests/resources/test/tests/unit/IdlDictionary/test_partial_dictionary.html @@ -33,12 +33,6 @@ test(() => { let members = idlArray.members["A"].members.map(m => m.name); assert_array_equals(members, ["B", "C"], 'A should contain B, C'); }, 'Partial dictionaries'); - -test(() => { - let idlArray = new IdlArray(); - idlArray.add_idls('partial dictionary D {};'); - idlArray.assert_throws('Partial dictionary D with no original dictionary', i => i.test()); -}, 'Partial-only dictionary definition') </script> </body> diff --git a/tests/wpt/web-platform-tests/resources/test/tests/unit/basic.html b/tests/wpt/web-platform-tests/resources/test/tests/unit/basic.html index 439c203dc95..7998a2ab8b7 100644 --- a/tests/wpt/web-platform-tests/resources/test/tests/unit/basic.html +++ b/tests/wpt/web-platform-tests/resources/test/tests/unit/basic.html @@ -29,28 +29,15 @@ test(function() { assert_equals(typeof WebIDL2.parse("interface Foo {};"), "object"); }, 'WebIDL2 parse method should produce an AST for correct WebIDL'); - for (let type of ['dictionary', 'interface']) { - test(function() { + test(function () { + try { let i = new IdlArray(); - i.add_untested_idls(`partial ${type} A {};`); - i.assert_throws(new IdlHarnessError(`Partial ${type} A with no original ${type}`), i => i.test()); - }, `assert_throws should handle ${type} IdlHarnessError`); - test(function() { - let i = new IdlArray(); - i.add_untested_idls(`partial ${type} A {};`); - i.assert_throws(`Partial ${type} A with no original ${type}`, i => i.test()); - }, `assert_throws should handle ${type} IdlHarnessError from message`); - test(function () { - try { - let i = new IdlArray(); - i.add_untested_idls(`${type} A {};`); - i.assert_throws(`Partial ${type} A with no original ${type}`, i => i.test()); - } catch (e) { - assert_true(e instanceof IdlHarnessError); - } - }, `assert_throws should throw if no ${type} IdlHarnessError thrown`); - } + i.add_untested_idls(`interface C {};`); + i.assert_throws('Anything', i => i.test()); + } catch (e) { + assert_true(e instanceof IdlHarnessError); + } + }, `assert_throws should throw if no IdlHarnessError thrown`); </script> </body> </html> - diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/67.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/67.js index 03b778bd845..b763b8145e5 100644 --- a/tests/wpt/web-platform-tests/server-timing/resources/parsing/67.js +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/67.js @@ -1 +1 @@ -testServerTiming(document.currentScript, [{"name":"metric"}]) +testServerTiming(document.currentScript, [{"name":"metric","dur":123.4}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/68.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/68.js index e6946c38dbb..1bc4d7fea66 100644 --- a/tests/wpt/web-platform-tests/server-timing/resources/parsing/68.js +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/68.js @@ -1 +1 @@ -testServerTiming(document.currentScript, [{"name":"metric1"}]) +testServerTiming(document.currentScript, [{"name":"metric1"},{"name":"metric2"}]) diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event.https.html index 8ecf8e6cbe8..ecb1c142231 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event.https.html @@ -10,15 +10,21 @@ function wait(ms) { return new Promise(resolve => step_timeout(resolve, ms)); } -async_test(function(t) { - const scope = 'resources/simple.html?headers'; - service_worker_unregister_and_register(t, worker, scope) - .then(function(reg) { - return wait_for_state(t, reg.installing, 'activated'); - }) - .then(function() { return with_iframe(scope); }) +promise_test(async t => { + const scope = 'resources/'; + const registration = + await service_worker_unregister_and_register(t, worker, scope); + await wait_for_state(t, registration.installing, 'activated'); + promise_test(t => { + return registration.unregister(); + }, 'restore global state'); + }, 'global setup'); + +promise_test(t => { + const page_url = 'resources/simple.html?headers'; + return with_iframe(page_url) .then(function(frame) { - t.add_cleanup(function() { frame.remove(); }); + t.add_cleanup(() => { frame.remove(); }); const headers = JSON.parse(frame.contentDocument.body.textContent); const header_names = {}; for (const [name, value] of headers) { @@ -29,20 +35,14 @@ async_test(function(t) { header_names.hasOwnProperty('accept'), 'request includes "Accept" header as inserted by Fetch' ); - - return service_worker_unregister_and_done(t, scope); - }) - .catch(unreached_rejection(t)); + }); }, 'Service Worker headers in the request of a fetch event'); -async_test(function(t) { - var scope = 'resources/simple.html?string'; - service_worker_unregister_and_register(t, worker, scope) - .then(function(reg) { - return wait_for_state(t, reg.installing, 'activated'); - }) - .then(function() { return with_iframe(scope); }) +promise_test(t => { + const page_url = 'resources/simple.html?string'; + return with_iframe(page_url) .then(function(frame) { + t.add_cleanup(() => { frame.remove(); }); assert_equals( frame.contentDocument.body.textContent, 'Test string', @@ -55,23 +55,17 @@ async_test(function(t) { frame.contentDocument.characterSet, 'UTF-8', 'The character set of the response created with a string should be UTF-8'); - frame.remove(); - return service_worker_unregister_and_done(t, scope); - }) - .catch(unreached_rejection(t)); + }); }, 'Service Worker responds to fetch event with string'); -async_test(function(t) { - var scope = 'resources/simple.html?string'; +promise_test(t => { + const page_url = 'resources/simple.html?string'; var frame; - service_worker_unregister_and_register(t, worker, scope) - .then(function(reg) { - return wait_for_state(t, reg.installing, 'activated'); - }) - .then(function() { return with_iframe(scope) }) + return with_iframe(page_url) .then(function(f) { frame = f; - return frame.contentWindow.fetch(scope + "#foo") + t.add_cleanup(() => { frame.remove(); }); + return frame.contentWindow.fetch(page_url + "#foo") }) .then(function(response) { return response.text() }) .then(function(text) { @@ -79,58 +73,40 @@ async_test(function(t) { text, 'Test string', 'Service Worker should respond to fetch with a test string'); - frame.remove(); - return service_worker_unregister_and_done(t, scope); - }) - .catch(unreached_rejection(t)); + }); }, 'Service Worker responds to fetch event using request fragment with string'); -async_test(function(t) { - var scope = 'resources/simple.html?blob'; - service_worker_unregister_and_register(t, worker, scope) - .then(function(reg) { - return wait_for_state(t, reg.installing, 'activated'); - }) - .then(function() { return with_iframe(scope); }) - .then(function(frame) { +promise_test(t => { + const page_url = 'resources/simple.html?blob'; + return with_iframe(page_url) + .then(frame => { + t.add_cleanup(() => { frame.remove(); }); assert_equals( frame.contentDocument.body.textContent, 'Test blob', 'Service Worker should respond to fetch with a test string'); - frame.remove(); - return service_worker_unregister_and_done(t, scope); - }) - .catch(unreached_rejection(t)); + }); }, 'Service Worker responds to fetch event with blob body'); -async_test(function(t) { - var scope = 'resources/simple.html?referrer'; - service_worker_unregister_and_register(t, worker, scope) - .then(function(reg) { - return wait_for_state(t, reg.installing, 'activated'); - }) - .then(function() { return with_iframe(scope); }) - .then(function(frame) { +promise_test(t => { + const page_url = 'resources/simple.html?referrer'; + return with_iframe(page_url) + .then(frame => { + t.add_cleanup(() => { frame.remove(); }); assert_equals( frame.contentDocument.body.textContent, 'Referrer: ' + document.location.href, 'Service Worker should respond to fetch with the referrer URL'); - frame.remove(); - return service_worker_unregister_and_done(t, scope); - }) - .catch(unreached_rejection(t)); + }); }, 'Service Worker responds to fetch event with the referrer URL'); -async_test(function(t) { - var scope = 'resources/simple.html?clientId'; +promise_test(t => { + const page_url = 'resources/simple.html?clientId'; var frame; - service_worker_unregister_and_register(t, worker, scope) - .then(function(reg) { - return wait_for_state(t, reg.installing, 'activated'); - }) - .then(function() { return with_iframe(scope); }) + return with_iframe(page_url) .then(function(f) { frame = f; + t.add_cleanup(() => { frame.remove(); }); assert_equals( frame.contentDocument.body.textContent, 'Client ID Not Found', @@ -144,61 +120,40 @@ async_test(function(t) { response_text.substr(0, 15), 'Client ID Found', 'Service Worker should respond to fetch with an existing client id'); - frame.remove(); - return service_worker_unregister_and_done(t, scope); - }) - .catch(unreached_rejection(t)); + }); }, 'Service Worker responds to fetch event with an existing client id'); -async_test(function(t) { - var scope = 'resources/simple.html?ignore'; - service_worker_unregister_and_register(t, worker, scope) - .then(function(reg) { - return wait_for_state(t, reg.installing, 'activated'); - }) - .then(function() { return with_iframe(scope); }) +promise_test(t => { + const page_url = 'resources/simple.html?ignore'; + return with_iframe(page_url) .then(function(frame) { + t.add_cleanup(() => { frame.remove(); }); assert_equals(frame.contentDocument.body.textContent, 'Here\'s a simple html file.\n', 'Response should come from fallback to native fetch'); - frame.remove(); - return service_worker_unregister_and_done(t, scope); - }) - .catch(unreached_rejection(t)); + }); }, 'Service Worker does not respond to fetch event'); -async_test(function(t) { - var scope = 'resources/simple.html?null'; - service_worker_unregister_and_register(t, worker, scope) - .then(function(reg) { - return wait_for_state(t, reg.installing, 'activated'); - }) - .then(function() { return with_iframe(scope); }) +promise_test(t => { + const page_url = 'resources/simple.html?null'; + return with_iframe(page_url) .then(function(frame) { + t.add_cleanup(() => { frame.remove(); }); assert_equals(frame.contentDocument.body.textContent, '', 'Response should be the empty string'); - frame.remove(); - return service_worker_unregister_and_done(t, scope); - }) - .catch(unreached_rejection(t)); + }); }, 'Service Worker responds to fetch event with null response body'); -async_test(function(t) { - var scope = 'resources/simple.html?fetch'; - service_worker_unregister_and_register(t, worker, scope) - .then(function(reg) { - return wait_for_state(t, reg.installing, 'activated'); - }) - .then(function() { return with_iframe(scope); }) +promise_test(t => { + const page_url = 'resources/simple.html?fetch'; + return with_iframe(page_url) .then(function(frame) { + t.add_cleanup(() => { frame.remove(); }); assert_equals(frame.contentDocument.body.textContent, 'Here\'s an other html file.\n', 'Response should come from fetched other file'); - frame.remove(); - return service_worker_unregister_and_done(t, scope); - }) - .catch(unreached_rejection(t)); + }); }, 'Service Worker fetches other file in fetch event'); // Creates a form and an iframe and does a form submission that navigates the @@ -232,82 +187,54 @@ function submit_form(action_url) { } promise_test(t => { - const scope = 'resources/simple.html?form-post'; - let registration; - return service_worker_unregister_and_register(t, worker, scope) - .then(reg => { - registration = reg; - add_completion_callback(() => { reg.unregister(); }); - return wait_for_state(t, reg.installing, 'activated'); - }) - .then(() => { - return submit_form(scope); - }) + const page_url = 'resources/simple.html?form-post'; + return submit_form(page_url) .then(frame => { + t.add_cleanup(() => { frame.remove(); }); assert_equals(frame.contentDocument.body.textContent, 'POST:application/x-www-form-urlencoded:' + 'testName1=testValue1&testName2=testValue2'); - frame.remove(); - return registration.unregister(); }); }, 'Service Worker responds to fetch event with POST form'); promise_test(t => { - // Add '?ignore' to scope so the service worker falls back to network. - const scope = 'resources/echo-content.py?ignore'; - let registration; - return service_worker_unregister_and_register(t, worker, scope) - .then(reg => { - registration = reg; - add_completion_callback(() => { reg.unregister(); }); - return wait_for_state(t, reg.installing, 'activated'); - }) - .then(() => { - return submit_form(scope); - }) + // Add '?ignore' so the service worker falls back to network. + const page_url = 'resources/echo-content.py?ignore'; + return submit_form(page_url) .then(frame => { + t.add_cleanup(() => { frame.remove(); }); assert_equals(frame.contentDocument.body.textContent, 'testName1=testValue1&testName2=testValue2'); - frame.remove(); - return registration.unregister(); }); }, 'Service Worker falls back to network in fetch event with POST form'); -async_test(function(t) { - var scope = 'resources/simple.html?multiple-respond-with'; - service_worker_unregister_and_register(t, worker, scope) - .then(function(reg) { - return wait_for_state(t, reg.installing, 'activated'); - }) - .then(function() { return with_iframe(scope); }) - .then(function(frame) { +promise_test(t => { + const page_url = 'resources/simple.html?multiple-respond-with'; + return with_iframe(page_url) + .then(frame => { + t.add_cleanup(() => { frame.remove(); }); assert_equals( frame.contentDocument.body.textContent, '(0)(1)[InvalidStateError](2)[InvalidStateError]', 'Multiple calls of respondWith must throw InvalidStateErrors.'); - frame.remove(); - return service_worker_unregister_and_done(t, scope); - }) - .catch(unreached_rejection(t)); + }); }, 'Multiple calls of respondWith must throw InvalidStateErrors'); -async_test(function(t) { - var scope = 'resources/simple.html?used-check'; +promise_test(t => { + const page_url = 'resources/simple.html?used-check'; var first_frame; - service_worker_unregister_and_register(t, worker, scope) - .then(function(reg) { - return wait_for_state(t, reg.installing, 'activated'); - }) - .then(function() { return with_iframe(scope); }) + return with_iframe(page_url) .then(function(frame) { assert_equals(frame.contentDocument.body.textContent, 'Here\'s an other html file.\n', 'Response should come from fetched other file'); first_frame = frame; - return with_iframe(scope); + t.add_cleanup(() => { first_frame.remove(); }); + return with_iframe(page_url); }) .then(function(frame) { - // When we access to the scope in the second time, the content of the + t.add_cleanup(() => { frame.remove(); }); + // When we access to the page_url in the second time, the content of the // response is generated inside the ServiceWorker. The body contains // the value of bodyUsed of the first response which is already // consumed by FetchEvent.respondWith method. @@ -315,46 +242,33 @@ async_test(function(t) { frame.contentDocument.body.textContent, 'bodyUsed: true', 'event.respondWith must set the used flag.'); - first_frame.remove(); - frame.remove(); - return service_worker_unregister_and_done(t, scope); - }) - .catch(unreached_rejection(t)); + }); }, 'Service Worker event.respondWith must set the used flag'); -async_test(function(t) { - var scope = 'resources/simple.html?fragment-check'; +promise_test(t => { + const page_url = 'resources/simple.html?fragment-check'; var fragment = '#/some/fragment'; var first_frame; - service_worker_unregister_and_register(t, worker, scope) - .then(function(reg) { - return wait_for_state(t, reg.installing, 'activated'); - }) - .then(function() { return with_iframe(scope + fragment); }) + return with_iframe(page_url + fragment) .then(function(frame) { + t.add_cleanup(() => { frame.remove(); }); assert_equals( frame.contentDocument.body.textContent, 'Fragment Found :' + fragment, 'Service worker should expose URL fragments in request.'); - frame.remove(); - return service_worker_unregister_and_done(t, scope); - }) - .catch(unreached_rejection(t)); + }); }, 'Service Worker should expose FetchEvent URL fragments.'); -async_test(function(t) { - var scope = 'resources/simple.html?cache'; +promise_test(t => { + const page_url = 'resources/simple.html?cache'; var frame; var cacheTypes = [ undefined, 'default', 'no-store', 'reload', 'no-cache', 'force-cache', 'only-if-cached' ]; - service_worker_unregister_and_register(t, worker, scope) - .then(function(reg) { - return wait_for_state(t, reg.installing, 'activated'); - }) - .then(function() { return with_iframe(scope); }) + return with_iframe(page_url) .then(function(f) { frame = f; + t.add_cleanup(() => { frame.remove(); }); assert_equals(frame.contentWindow.document.body.textContent, 'default'); var tests = cacheTypes.map(function(type) { return new Promise(function(resolve, reject) { @@ -364,7 +278,7 @@ async_test(function(t) { // requires the mode to be same-origin. init.mode = 'same-origin'; } - return frame.contentWindow.fetch(scope + '=' + type, init) + return frame.contentWindow.fetch(page_url + '=' + type, init) .then(function(response) { return response.text(); }) .then(function(response_text) { var expected = (type === undefined) ? 'default' : type; @@ -391,21 +305,16 @@ async_test(function(t) { }); frame.contentWindow.location.reload(); }); - }) - .then(function() { - frame.remove(); - return service_worker_unregister_and_done(t, scope); - }) - .catch(unreached_rejection(t)); + }); }, 'Service Worker responds to fetch event with the correct cache types'); -async_test(function(t) { - var scope = 'resources/simple.html?eventsource'; +promise_test(t => { + const page_url = 'resources/simple.html?eventsource'; var frame; function test_eventsource(opts) { return new Promise(function(resolve, reject) { - var eventSource = new frame.contentWindow.EventSource(scope, opts); + var eventSource = new frame.contentWindow.EventSource(page_url, opts); eventSource.addEventListener('message', function(msg) { eventSource.close(); try { @@ -430,73 +339,54 @@ async_test(function(t) { }); } - service_worker_unregister_and_register(t, worker, scope) - .then(function(reg) { - return wait_for_state(t, reg.installing, 'activated'); - }) - .then(function() { return with_iframe(scope); }) + return with_iframe(page_url) .then(function(f) { frame = f; + t.add_cleanup(() => { frame.remove(); }); return test_eventsource({ withCredentials: false }); }) .then(function() { return test_eventsource({ withCredentials: true }); - }) - .then(function() { - frame.remove(); - return service_worker_unregister_and_done(t, scope); - }) - .catch(unreached_rejection(t)); + }); }, 'Service Worker should intercept EventSource'); -async_test(function(t) { - var scope = 'resources/simple.html?integrity'; +promise_test(t => { + const page_url = 'resources/simple.html?integrity'; var frame; var integrity_metadata = 'gs0nqru8KbsrIt5YToQqS9fYao4GQJXtcId610g7cCU='; - service_worker_unregister_and_register(t, worker, scope) - .then(function(reg) { - return wait_for_state(t, reg.installing, 'activated'); - }) - .then(function() { return with_iframe(scope); }) + return with_iframe(page_url) .then(function(f) { frame = f; + t.add_cleanup(() => { frame.remove(); }); // A request has associated integrity metadata (a string). // Unless stated otherwise, it is the empty string. assert_equals( frame.contentDocument.body.textContent, ''); - return frame.contentWindow.fetch(scope, {'integrity': integrity_metadata}); + return frame.contentWindow.fetch(page_url, {'integrity': integrity_metadata}); }) .then(response => { return response.text(); }) .then(response_text => { assert_equals(response_text, integrity_metadata, 'integrity'); - frame.remove(); - return service_worker_unregister_and_done(t, scope); - }) - .catch(unreached_rejection(t)); + }); }, 'Service Worker responds to fetch event with the correct integrity_metadata'); // Test that the service worker can read FetchEvent#body when it is a string. // It responds with request body it read. promise_test(t => { - // Set scope to "?ignore" so the service worker falls back to network + // Set page_url to "?ignore" so the service worker falls back to network // for the main resource request, and add a suffix to avoid colliding // with other tests. - const scope = 'resources/simple.html?ignore-for-request-body-string'; + const page_url = 'resources/simple.html?ignore-for-request-body-string'; let frame; - return service_worker_unregister_and_register(t, worker, scope) - .then(reg => { - add_completion_callback(() => { reg.unregister(); }); - return wait_for_state(t, reg.installing, 'activated'); - }) - .then(() => { - return with_iframe(scope); }) + return with_iframe(page_url) .then(f => { frame = f; + t.add_cleanup(() => { frame.remove(); }); return frame.contentWindow.fetch('simple.html?request-body', { method: 'POST', body: 'i am the request body' @@ -506,7 +396,6 @@ promise_test(t => { return response.text(); }) .then(response_text => { - frame.remove(); assert_equals(response_text, 'i am the request body'); }); }, 'FetchEvent#body is a string'); @@ -514,21 +403,16 @@ promise_test(t => { // Test that the request body is sent to network upon network fallback, // for a string body. promise_test(t => { - // Set scope to "?ignore" so the service worker falls back to network + // Set page_url to "?ignore" so the service worker falls back to network // for the main resource request, and add a suffix to avoid colliding // with other tests. - const scope = 'resources/?ignore-for-request-body-fallback-string'; + const page_url = 'resources/?ignore-for-request-body-fallback-string'; let frame; - return service_worker_unregister_and_register(t, worker, scope) - .then(reg => { - add_completion_callback(() => { reg.unregister(); }); - return wait_for_state(t, reg.installing, 'activated'); - }) - .then(() => { - return with_iframe(scope); }) + return with_iframe(page_url) .then(f => { frame = f; + t.add_cleanup(() => { frame.remove(); }); // Add "?ignore" so the service worker falls back to echo-content.py. const echo_url = '/fetch/api/resources/echo-content.py?ignore'; return frame.contentWindow.fetch(echo_url, { @@ -540,7 +424,6 @@ promise_test(t => { return response.text(); }) .then(response_text => { - frame.remove(); assert_equals( response_text, 'i am the request body', @@ -551,21 +434,16 @@ promise_test(t => { // Test that the service worker can read FetchEvent#body when it is a blob. // It responds with request body it read. promise_test(t => { - // Set scope to "?ignore" so the service worker falls back to network + // Set page_url to "?ignore" so the service worker falls back to network // for the main resource request, and add a suffix to avoid colliding // with other tests. - const scope = 'resources/simple.html?ignore-for-request-body-blob'; + const page_url = 'resources/simple.html?ignore-for-request-body-blob'; let frame; - return service_worker_unregister_and_register(t, worker, scope) - .then(reg => { - add_completion_callback(() => { reg.unregister(); }); - return wait_for_state(t, reg.installing, 'activated'); - }) - .then(() => { - return with_iframe(scope); }) + return with_iframe(page_url) .then(f => { frame = f; + t.add_cleanup(() => { frame.remove(); }); const blob = new Blob(['it\'s me the blob', ' ', 'and more blob!']); return frame.contentWindow.fetch('simple.html?request-body', { method: 'POST', @@ -576,7 +454,6 @@ promise_test(t => { return response.text(); }) .then(response_text => { - frame.remove(); assert_equals(response_text, 'it\'s me the blob and more blob!'); }); }, 'FetchEvent#body is a blob'); @@ -584,21 +461,16 @@ promise_test(t => { // Test that the request body is sent to network upon network fallback, // for a blob body. promise_test(t => { - // Set scope to "?ignore" so the service worker falls back to network + // Set page_url to "?ignore" so the service worker falls back to network // for the main resource request, and add a suffix to avoid colliding // with other tests. - const scope = 'resources/simple.html?ignore-for-request-body-fallback-blob'; + const page_url = 'resources/simple.html?ignore-for-request-body-fallback-blob'; let frame; - return service_worker_unregister_and_register(t, worker, scope) - .then(reg => { - add_completion_callback(() => { reg.unregister(); }); - return wait_for_state(t, reg.installing, 'activated'); - }) - .then(() => { - return with_iframe(scope); }) + return with_iframe(page_url) .then(f => { frame = f; + t.add_cleanup(() => { frame.remove(); }); const blob = new Blob(['it\'s me the blob', ' ', 'and more blob!']); // Add "?ignore" so the service worker falls back to echo-content.py. const echo_url = '/fetch/api/resources/echo-content.py?ignore'; @@ -611,7 +483,6 @@ promise_test(t => { return response.text(); }) .then(response_text => { - frame.remove(); assert_equals( response_text, 'it\'s me the blob and more blob!', @@ -620,461 +491,316 @@ promise_test(t => { }, 'FetchEvent#body is a blob and is passed to network fallback'); promise_test(async (t) => { - const scope = 'resources/simple.html?keepalive'; - - const reg = await service_worker_unregister_and_register(t, worker, scope); - await wait_for_state(t, reg.installing, 'activated'); - const frame = await with_iframe(scope); + const page_url = 'resources/simple.html?keepalive'; + const frame = await with_iframe(page_url); + t.add_cleanup(() => { frame.remove(); }); assert_equals(frame.contentDocument.body.textContent, 'false'); - const response = await frame.contentWindow.fetch(scope, {keepalive: true}); + const response = await frame.contentWindow.fetch(page_url, {keepalive: true}); const text = await response.text(); assert_equals(text, 'true'); - frame.remove(); - await service_worker_unregister_and_done(t, scope); }, 'Service Worker responds to fetch event with the correct keepalive value'); promise_test(async (t) => { - const scope = 'resources/simple.html?isReloadNavigation'; - let frame; - let reg; - try { - reg = await service_worker_unregister_and_register(t, worker, scope); - await wait_for_state(t, reg.installing, 'activated'); - frame = await with_iframe(scope); - assert_equals(frame.contentDocument.body.textContent, - 'method = GET, isReloadNavigation = false'); - await new Promise((resolve) => { - frame.addEventListener('load', resolve); - frame.contentWindow.location.reload(); - }); - assert_equals(frame.contentDocument.body.textContent, - 'method = GET, isReloadNavigation = true'); - } finally { - if (frame) { - frame.remove(); - } - if (reg) { - await reg.unregister(); - } - } + const page_url = 'resources/simple.html?isReloadNavigation'; + const frame = await with_iframe(page_url); + t.add_cleanup(() => { frame.remove(); }); + assert_equals(frame.contentDocument.body.textContent, + 'method = GET, isReloadNavigation = false'); + await new Promise((resolve) => { + frame.addEventListener('load', resolve); + frame.contentWindow.location.reload(); + }); + assert_equals(frame.contentDocument.body.textContent, + 'method = GET, isReloadNavigation = true'); }, 'FetchEvent#request.isReloadNavigation is true (location.reload())'); promise_test(async (t) => { - const scope = 'resources/simple.html?isReloadNavigation'; - let frame; - let reg; - try { - reg = await service_worker_unregister_and_register(t, worker, scope); - await wait_for_state(t, reg.installing, 'activated'); - frame = await with_iframe(scope); - assert_equals(frame.contentDocument.body.textContent, - 'method = GET, isReloadNavigation = false'); - await new Promise((resolve) => { - frame.addEventListener('load', resolve); - frame.contentWindow.history.go(0); - }); - assert_equals(frame.contentDocument.body.textContent, - 'method = GET, isReloadNavigation = true'); - } finally { - if (frame) { - frame.remove(); - } - if (reg) { - await reg.unregister(); - } - } + const page_url = 'resources/simple.html?isReloadNavigation'; + const frame = await with_iframe(page_url); + t.add_cleanup(() => { frame.remove(); }); + assert_equals(frame.contentDocument.body.textContent, + 'method = GET, isReloadNavigation = false'); + await new Promise((resolve) => { + frame.addEventListener('load', resolve); + frame.contentWindow.history.go(0); + }); + assert_equals(frame.contentDocument.body.textContent, + 'method = GET, isReloadNavigation = true'); }, 'FetchEvent#request.isReloadNavigation is true (history.go(0))'); promise_test(async (t) => { - const scope = 'resources/simple.html?isReloadNavigation'; - let frame; - let reg; - - try { - reg = await service_worker_unregister_and_register(t, worker, scope); - await wait_for_state(t, reg.installing, 'activated'); - frame = await with_iframe(scope); - assert_equals(frame.contentDocument.body.textContent, - 'method = GET, isReloadNavigation = false'); - await new Promise((resolve) => { - frame.addEventListener('load', resolve); - const form = frame.contentDocument.createElement('form'); - form.method = 'POST'; - form.name = 'form'; - form.action = new Request(scope).url; - frame.contentDocument.body.appendChild(form); - form.submit(); - }); - assert_equals(frame.contentDocument.body.textContent, - 'method = POST, isReloadNavigation = false'); - await new Promise((resolve) => { - frame.addEventListener('load', resolve); - frame.contentWindow.location.reload(); - }); - assert_equals(frame.contentDocument.body.textContent, - 'method = POST, isReloadNavigation = true'); - } finally { - if (frame) { - frame.remove(); - } - if (reg) { - await reg.unregister(); - } - } + const page_url = 'resources/simple.html?isReloadNavigation'; + const frame = await with_iframe(page_url); + t.add_cleanup(() => { frame.remove(); }); + assert_equals(frame.contentDocument.body.textContent, + 'method = GET, isReloadNavigation = false'); + await new Promise((resolve) => { + frame.addEventListener('load', resolve); + const form = frame.contentDocument.createElement('form'); + form.method = 'POST'; + form.name = 'form'; + form.action = new Request(page_url).url; + frame.contentDocument.body.appendChild(form); + form.submit(); + }); + assert_equals(frame.contentDocument.body.textContent, + 'method = POST, isReloadNavigation = false'); + await new Promise((resolve) => { + frame.addEventListener('load', resolve); + frame.contentWindow.location.reload(); + }); + assert_equals(frame.contentDocument.body.textContent, + 'method = POST, isReloadNavigation = true'); }, 'FetchEvent#request.isReloadNavigation is true (POST + location.reload())'); promise_test(async (t) => { - const scope = 'resources/simple.html?isReloadNavigation'; + const page_url = 'resources/simple.html?isReloadNavigation'; const anotherUrl = new Request('resources/simple.html').url; - let frame; - let reg; - - try { - reg = await service_worker_unregister_and_register(t, worker, scope); - await wait_for_state(t, reg.installing, 'activated'); - frame = await with_iframe(scope); - assert_equals(frame.contentDocument.body.textContent, - 'method = GET, isReloadNavigation = false'); - // Use step_timeout(0) to ensure the history entry is created for Blink - // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861. - await wait(0); - await new Promise((resolve) => { - frame.addEventListener('load', resolve); - frame.src = anotherUrl; - }); - assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n"); - await new Promise((resolve) => { - frame.addEventListener('load', resolve); - frame.contentWindow.history.go(-1); - }); - assert_equals(frame.contentDocument.body.textContent, - 'method = GET, isReloadNavigation = false'); - await new Promise((resolve) => { - frame.addEventListener('load', resolve); - frame.contentWindow.history.go(0); - }); - assert_equals(frame.contentDocument.body.textContent, - 'method = GET, isReloadNavigation = true'); - await new Promise((resolve) => { - frame.addEventListener('load', resolve); - frame.contentWindow.history.go(1); - }); - assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n"); - } finally { - if (frame) { - frame.remove(); - } - if (reg) { - await reg.unregister(); - } - } + let frame = await with_iframe(page_url); + t.add_cleanup(() => { frame.remove(); }); + assert_equals(frame.contentDocument.body.textContent, + 'method = GET, isReloadNavigation = false'); + // Use step_timeout(0) to ensure the history entry is created for Blink + // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861. + await wait(0); + await new Promise((resolve) => { + frame.addEventListener('load', resolve); + frame.src = anotherUrl; + }); + assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n"); + await new Promise((resolve) => { + frame.addEventListener('load', resolve); + frame.contentWindow.history.go(-1); + }); + assert_equals(frame.contentDocument.body.textContent, + 'method = GET, isReloadNavigation = false'); + await new Promise((resolve) => { + frame.addEventListener('load', resolve); + frame.contentWindow.history.go(0); + }); + assert_equals(frame.contentDocument.body.textContent, + 'method = GET, isReloadNavigation = true'); + await new Promise((resolve) => { + frame.addEventListener('load', resolve); + frame.contentWindow.history.go(1); + }); + assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n"); }, 'FetchEvent#request.isReloadNavigation is true (with history traversal)'); promise_test(async (t) => { - const scope = 'resources/simple.html?isHistoryNavigation'; - const anotherUrl = new Request('resources/simple.html').url; - let frame; - let reg; - - try { - reg = await service_worker_unregister_and_register(t, worker, scope); - await wait_for_state(t, reg.installing, 'activated'); - frame = await with_iframe(scope); - assert_equals(frame.contentDocument.body.textContent, - 'method = GET, isHistoryNavigation = false'); - // Use step_timeout(0) to ensure the history entry is created for Blink - // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861. - await wait(0); - await new Promise((resolve) => { - frame.addEventListener('load', resolve); - frame.src = anotherUrl; - }); - assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n"); - await new Promise((resolve) => { - frame.addEventListener('load', resolve); - frame.contentWindow.history.go(-1); - }); - assert_equals(frame.contentDocument.body.textContent, - 'method = GET, isHistoryNavigation = true'); - } finally { - if (frame) { - frame.remove(); - } - if (reg) { - await reg.unregister(); - } - } + const page_url = 'resources/simple.html?isHistoryNavigation'; + const anotherUrl = new Request('resources/simple.html?ignore').url; + const frame = await with_iframe(page_url); + t.add_cleanup(() => { frame.remove(); }); + assert_equals(frame.contentDocument.body.textContent, + 'method = GET, isHistoryNavigation = false'); + // Use step_timeout(0) to ensure the history entry is created for Blink + // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861. + await wait(0); + await new Promise((resolve) => { + frame.addEventListener('load', resolve); + frame.src = anotherUrl; + }); + assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n"); + await new Promise((resolve) => { + frame.addEventListener('load', resolve); + frame.contentWindow.history.go(-1); + }); + assert_equals(frame.contentDocument.body.textContent, + 'method = GET, isHistoryNavigation = true'); }, 'FetchEvent#request.isHistoryNavigation is true (with history.go(-1))'); promise_test(async (t) => { - const scope = 'resources/simple.html?isHistoryNavigation'; - const anotherUrl = new Request('resources/simple.html').url; - let frame; - let reg; - - try { - reg = await service_worker_unregister_and_register(t, worker, scope); - await wait_for_state(t, reg.installing, 'activated'); - frame = await with_iframe(anotherUrl); - assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n"); - // Use step_timeout(0) to ensure the history entry is created for Blink - // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861. - await wait(0); - await new Promise((resolve) => { - frame.addEventListener('load', resolve); - frame.src = scope; - }); - assert_equals(frame.contentDocument.body.textContent, - 'method = GET, isHistoryNavigation = false'); - await new Promise((resolve) => { - frame.addEventListener('load', resolve); - frame.contentWindow.history.go(-1); - }); - await new Promise((resolve) => { - frame.addEventListener('load', resolve); - frame.contentWindow.history.go(1); - }); - assert_equals(frame.contentDocument.body.textContent, - 'method = GET, isHistoryNavigation = true'); - } finally { - if (frame) { - frame.remove(); - } - if (reg) { - await reg.unregister(); - } - } + const page_url = 'resources/simple.html?isHistoryNavigation'; + const anotherUrl = new Request('resources/simple.html?ignore').url; + const frame = await with_iframe(anotherUrl); + t.add_cleanup(() => { frame.remove(); }); + assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n"); + // Use step_timeout(0) to ensure the history entry is created for Blink + // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861. + await wait(0); + await new Promise((resolve) => { + frame.addEventListener('load', resolve); + frame.src = page_url; + }); + assert_equals(frame.contentDocument.body.textContent, + 'method = GET, isHistoryNavigation = false'); + await new Promise((resolve) => { + frame.addEventListener('load', resolve); + frame.contentWindow.history.go(-1); + }); + await new Promise((resolve) => { + frame.addEventListener('load', resolve); + frame.contentWindow.history.go(1); + }); + assert_equals(frame.contentDocument.body.textContent, + 'method = GET, isHistoryNavigation = true'); }, 'FetchEvent#request.isHistoryNavigation is true (with history.go(1))'); promise_test(async (t) => { - const scope = 'resources/simple.html?isHistoryNavigation'; - const anotherUrl = new Request('resources/simple.html').url; - let frame; - let reg; - - try { - reg = await service_worker_unregister_and_register(t, worker, scope); - await wait_for_state(t, reg.installing, 'activated'); - frame = await with_iframe(anotherUrl); - assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n"); - // Use step_timeout(0) to ensure the history entry is created for Blink - // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861. - await wait(0); - await new Promise((resolve) => { - frame.addEventListener('load', resolve); - frame.src = scope; - }); - assert_equals(frame.contentDocument.body.textContent, - 'method = GET, isHistoryNavigation = false'); - await new Promise((resolve) => { - frame.addEventListener('load', resolve); - frame.contentWindow.history.go(-1); - }); - await new Promise((resolve) => { - frame.addEventListener('load', resolve); - frame.contentWindow.history.go(1); - }); - assert_equals(frame.contentDocument.body.textContent, - 'method = GET, isHistoryNavigation = true'); - await new Promise((resolve) => { - frame.addEventListener('load', resolve); - frame.contentWindow.history.go(0); - }); - assert_equals(frame.contentDocument.body.textContent, - 'method = GET, isHistoryNavigation = false'); - } finally { - if (frame) { - frame.remove(); - } - if (reg) { - await reg.unregister(); - } - } + const page_url = 'resources/simple.html?isHistoryNavigation'; + const anotherUrl = new Request('resources/simple.html?ignore').url; + const frame = await with_iframe(anotherUrl); + t.add_cleanup(() => { frame.remove(); }); + assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n"); + // Use step_timeout(0) to ensure the history entry is created for Blink + // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861. + await wait(0); + await new Promise((resolve) => { + frame.addEventListener('load', resolve); + frame.src = page_url; + }); + assert_equals(frame.contentDocument.body.textContent, + 'method = GET, isHistoryNavigation = false'); + await new Promise((resolve) => { + frame.addEventListener('load', resolve); + frame.contentWindow.history.go(-1); + }); + await new Promise((resolve) => { + frame.addEventListener('load', resolve); + frame.contentWindow.history.go(1); + }); + assert_equals(frame.contentDocument.body.textContent, + 'method = GET, isHistoryNavigation = true'); + await new Promise((resolve) => { + frame.addEventListener('load', resolve); + frame.contentWindow.history.go(0); + }); + assert_equals(frame.contentDocument.body.textContent, + 'method = GET, isHistoryNavigation = false'); }, 'FetchEvent#request.isHistoryNavigation is false (with history.go(0))'); promise_test(async (t) => { - const scope = 'resources/simple.html?isHistoryNavigation'; - const anotherUrl = new Request('resources/simple.html').url; - let frame; - let reg; - - try { - reg = await service_worker_unregister_and_register(t, worker, scope); - await wait_for_state(t, reg.installing, 'activated'); - frame = await with_iframe(anotherUrl); - assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n"); - // Use step_timeout(0) to ensure the history entry is created for Blink - // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861. - await wait(0); - await new Promise((resolve) => { - frame.addEventListener('load', resolve); - frame.src = scope; - }); - assert_equals(frame.contentDocument.body.textContent, - 'method = GET, isHistoryNavigation = false'); - await new Promise((resolve) => { - frame.addEventListener('load', resolve); - frame.contentWindow.history.go(-1); - }); - await new Promise((resolve) => { - frame.addEventListener('load', resolve); - frame.contentWindow.history.go(1); - }); - assert_equals(frame.contentDocument.body.textContent, - 'method = GET, isHistoryNavigation = true'); - await new Promise((resolve) => { - frame.addEventListener('load', resolve); - frame.contentWindow.location.reload(); - }); - assert_equals(frame.contentDocument.body.textContent, - 'method = GET, isHistoryNavigation = false'); - } finally { - if (frame) { - frame.remove(); - } - if (reg) { - await reg.unregister(); - } - } + const page_url = 'resources/simple.html?isHistoryNavigation'; + const anotherUrl = new Request('resources/simple.html?ignore').url; + const frame = await with_iframe(anotherUrl); + t.add_cleanup(() => { frame.remove(); }); + assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n"); + // Use step_timeout(0) to ensure the history entry is created for Blink + // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861. + await wait(0); + await new Promise((resolve) => { + frame.addEventListener('load', resolve); + frame.src = page_url; + }); + assert_equals(frame.contentDocument.body.textContent, + 'method = GET, isHistoryNavigation = false'); + await new Promise((resolve) => { + frame.addEventListener('load', resolve); + frame.contentWindow.history.go(-1); + }); + await new Promise((resolve) => { + frame.addEventListener('load', resolve); + frame.contentWindow.history.go(1); + }); + assert_equals(frame.contentDocument.body.textContent, + 'method = GET, isHistoryNavigation = true'); + await new Promise((resolve) => { + frame.addEventListener('load', resolve); + frame.contentWindow.location.reload(); + }); + assert_equals(frame.contentDocument.body.textContent, + 'method = GET, isHistoryNavigation = false'); }, 'FetchEvent#request.isHistoryNavigation is false (with location.reload)'); promise_test(async (t) => { - const scope = 'resources/simple.html?isHistoryNavigation'; - const anotherUrl = new Request('resources/simple.html').url; - const oneAnotherUrl = new Request('resources/simple.html?').url; - let frame; - let reg; - - try { - reg = await service_worker_unregister_and_register(t, worker, scope); - await wait_for_state(t, reg.installing, 'activated'); - frame = await with_iframe(scope); - assert_equals(frame.contentDocument.body.textContent, - 'method = GET, isHistoryNavigation = false'); - // Use step_timeout(0) to ensure the history entry is created for Blink - // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861. - await wait(0); - await new Promise((resolve) => { - frame.addEventListener('load', resolve); - frame.src = anotherUrl; - }); - assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n"); - await wait(0); - await new Promise((resolve) => { - frame.addEventListener('load', resolve); - frame.src = oneAnotherUrl; - }); - assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n"); - await new Promise((resolve) => { - frame.addEventListener('load', resolve); - frame.contentWindow.history.go(-2); - }); - assert_equals(frame.contentDocument.body.textContent, - 'method = GET, isHistoryNavigation = true'); - } finally { - if (frame) { - frame.remove(); - } - if (reg) { - await reg.unregister(); - } - } + const page_url = 'resources/simple.html?isHistoryNavigation'; + const anotherUrl = new Request('resources/simple.html?ignore').url; + const oneAnotherUrl = new Request('resources/simple.html?ignore2').url; + + const frame = await with_iframe(page_url); + t.add_cleanup(() => { frame.remove(); }); + assert_equals(frame.contentDocument.body.textContent, + 'method = GET, isHistoryNavigation = false'); + // Use step_timeout(0) to ensure the history entry is created for Blink + // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861. + await wait(0); + await new Promise((resolve) => { + frame.addEventListener('load', resolve); + frame.src = anotherUrl; + }); + assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n"); + await wait(0); + await new Promise((resolve) => { + frame.addEventListener('load', resolve); + frame.src = oneAnotherUrl; + }); + assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n"); + await new Promise((resolve) => { + frame.addEventListener('load', resolve); + frame.contentWindow.history.go(-2); + }); + assert_equals(frame.contentDocument.body.textContent, + 'method = GET, isHistoryNavigation = true'); }, 'FetchEvent#request.isHistoryNavigation is true (with history.go(-2))'); promise_test(async (t) => { - const scope = 'resources/simple.html?isHistoryNavigation'; - const anotherUrl = new Request('resources/simple.html').url; - const oneAnotherUrl = new Request('resources/simple.html?').url; - let frame; - let reg; - - try { - reg = await service_worker_unregister_and_register(t, worker, scope); - await wait_for_state(t, reg.installing, 'activated'); - frame = await with_iframe(anotherUrl); - assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n"); - // Use step_timeout(0) to ensure the history entry is created for Blink - // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861. - await wait(0); - await new Promise((resolve) => { - frame.addEventListener('load', resolve); - frame.src = oneAnotherUrl; - }); - assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n"); - await wait(0); - await new Promise((resolve) => { - frame.addEventListener('load', resolve); - frame.src = scope; - }); - assert_equals(frame.contentDocument.body.textContent, - 'method = GET, isHistoryNavigation = false'); - await new Promise((resolve) => { - frame.addEventListener('load', resolve); - frame.contentWindow.history.go(-2); - }); - await new Promise((resolve) => { - frame.addEventListener('load', resolve); - frame.contentWindow.history.go(2); - }); - assert_equals(frame.contentDocument.body.textContent, - 'method = GET, isHistoryNavigation = true'); - } finally { - if (frame) { - frame.remove(); - } - if (reg) { - await reg.unregister(); - } - } + const page_url = 'resources/simple.html?isHistoryNavigation'; + const anotherUrl = new Request('resources/simple.html?ignore').url; + const oneAnotherUrl = new Request('resources/simple.html?ignore2').url; + const frame = await with_iframe(anotherUrl); + t.add_cleanup(() => { frame.remove(); }); + assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n"); + // Use step_timeout(0) to ensure the history entry is created for Blink + // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861. + await wait(0); + await new Promise((resolve) => { + frame.addEventListener('load', resolve); + frame.src = oneAnotherUrl; + }); + assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n"); + await wait(0); + await new Promise((resolve) => { + frame.addEventListener('load', resolve); + frame.src = page_url; + }); + assert_equals(frame.contentDocument.body.textContent, + 'method = GET, isHistoryNavigation = false'); + await new Promise((resolve) => { + frame.addEventListener('load', resolve); + frame.contentWindow.history.go(-2); + }); + await new Promise((resolve) => { + frame.addEventListener('load', resolve); + frame.contentWindow.history.go(2); + }); + assert_equals(frame.contentDocument.body.textContent, + 'method = GET, isHistoryNavigation = true'); }, 'FetchEvent#request.isHistoryNavigation is true (with history.go(2))'); promise_test(async (t) => { - const scope = 'resources/simple.html?isHistoryNavigation'; - const anotherUrl = new Request('resources/simple.html').url; - let frame; - let reg; - - try { - reg = await service_worker_unregister_and_register(t, worker, scope); - await wait_for_state(t, reg.installing, 'activated'); - frame = await with_iframe(scope); - assert_equals(frame.contentDocument.body.textContent, - 'method = GET, isHistoryNavigation = false'); - await new Promise((resolve) => { - frame.addEventListener('load', resolve); - const form = frame.contentDocument.createElement('form'); - form.method = 'POST'; - form.name = 'form'; - form.action = new Request(scope).url; - frame.contentDocument.body.appendChild(form); - form.submit(); - }); - assert_equals(frame.contentDocument.body.textContent, - 'method = POST, isHistoryNavigation = false'); - // Use step_timeout(0) to ensure the history entry is created for Blink - // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861. - await wait(0); - await new Promise((resolve) => { - frame.addEventListener('load', resolve); - frame.src = anotherUrl; - }); - assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n"); - await wait(0); - await new Promise((resolve) => { - frame.addEventListener('load', resolve); - frame.contentWindow.history.go(-1); - }); - assert_equals(frame.contentDocument.body.textContent, - 'method = POST, isHistoryNavigation = true'); - } finally { - if (frame) { - frame.remove(); - } - if (reg) { - await reg.unregister(); - } - } + const page_url = 'resources/simple.html?isHistoryNavigation'; + const anotherUrl = new Request('resources/simple.html?ignore').url; + const frame = await with_iframe(page_url); + t.add_cleanup(() => { frame.remove(); }); + assert_equals(frame.contentDocument.body.textContent, + 'method = GET, isHistoryNavigation = false'); + await new Promise((resolve) => { + frame.addEventListener('load', resolve); + const form = frame.contentDocument.createElement('form'); + form.method = 'POST'; + form.name = 'form'; + form.action = new Request(page_url).url; + frame.contentDocument.body.appendChild(form); + form.submit(); + }); + assert_equals(frame.contentDocument.body.textContent, + 'method = POST, isHistoryNavigation = false'); + // Use step_timeout(0) to ensure the history entry is created for Blink + // and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861. + await wait(0); + await new Promise((resolve) => { + frame.addEventListener('load', resolve); + frame.src = anotherUrl; + }); + assert_equals(frame.contentDocument.body.textContent, "Here's a simple html file.\n"); + await wait(0); + await new Promise((resolve) => { + frame.addEventListener('load', resolve); + frame.contentWindow.history.go(-1); + }); + assert_equals(frame.contentDocument.body.textContent, + 'method = POST, isHistoryNavigation = true'); }, 'FetchEvent#request.isHistoryNavigation is true (POST + history.go(-1))'); - </script> </body> diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-request-css-cross-origin-mime-check.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-request-css-cross-origin-mime-check.https.html deleted file mode 100644 index 7835f60a2ca..00000000000 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-request-css-cross-origin-mime-check.https.html +++ /dev/null @@ -1,50 +0,0 @@ -<!DOCTYPE html> -<title>Service Worker: Mime type checking of CSS files fetched via SW.</title> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="/common/get-host-info.sub.js"></script> -<script src="resources/test-helpers.sub.js"></script> -<script> - -function getElementColorInFrame(frame, id) { - var element = frame.contentDocument.getElementById(id); - var style = frame.contentWindow.getComputedStyle(element, ''); - return style['color']; -} - -promise_test(function(t) { - var SCOPE = - 'resources/fetch-request-css-cross-origin-mime-check-iframe.html'; - var SCRIPT = - 'resources/fetch-request-css-cross-origin-mime-check-worker.js'; - var EXPECTED_COLOR = 'rgb(0, 0, 255)'; - - return service_worker_unregister_and_register(t, SCRIPT, SCOPE) - .then(r => wait_for_state(t, r.installing, 'activated')) - .then(_ => with_iframe(SCOPE) ) - .then(f => { - assert_equals( - getElementColorInFrame(f, 'crossOriginCss'), - EXPECTED_COLOR, - 'The color must be overridden by cross origin CSS.'); - assert_equals( - getElementColorInFrame(f, 'crossOriginHtml'), - EXPECTED_COLOR, - 'The color must not be overridden by cross origin non CSS file.'); - assert_equals( - getElementColorInFrame(f, 'sameOriginCss'), - EXPECTED_COLOR, - 'The color must be overridden by same origin CSS.'); - assert_equals( - getElementColorInFrame(f, 'sameOriginHtml'), - EXPECTED_COLOR, - 'The color must be overridden by same origin non CSS file.'); - assert_equals( - getElementColorInFrame(f, 'synthetic'), - EXPECTED_COLOR, - 'The color must be overridden by synthetic CSS.'); - f.remove(); - return service_worker_unregister_and_done(t, SCOPE); - }); - }, 'Mime type checking of CSS files fetched via SW.'); -</script> diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-request-css-cross-origin.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-request-css-cross-origin.https.html new file mode 100644 index 00000000000..2cdfdea996f --- /dev/null +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-request-css-cross-origin.https.html @@ -0,0 +1,81 @@ +<!DOCTYPE html> +<title>Service Worker: Cross-origin CSS files fetched via SW.</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/common/get-host-info.sub.js"></script> +<script src="resources/test-helpers.sub.js"></script> +<script> + +function getElementColorInFrame(frame, id) { + var element = frame.contentDocument.getElementById(id); + var style = frame.contentWindow.getComputedStyle(element, ''); + return style['color']; +} + +promise_test(async t => { + var SCOPE = + 'resources/fetch-request-css-cross-origin'; + var SCRIPT = + 'resources/fetch-request-css-cross-origin-worker.js'; + let registration = await service_worker_unregister_and_register( + t, SCRIPT, SCOPE); + promise_test(async t => { + await registration.unregister(); + }, 'cleanup global state'); + + await wait_for_state(t, registration.installing, 'activated'); +}, 'setup global state'); + +promise_test(async t => { + const EXPECTED_COLOR = 'rgb(0, 0, 255)'; + const PAGE = + 'resources/fetch-request-css-cross-origin-mime-check-iframe.html'; + + const f = await with_iframe(PAGE); + t.add_cleanup(() => {f.remove(); }); + assert_equals( + getElementColorInFrame(f, 'crossOriginCss'), + EXPECTED_COLOR, + 'The color must be overridden by cross origin CSS.'); + assert_equals( + getElementColorInFrame(f, 'crossOriginHtml'), + EXPECTED_COLOR, + 'The color must not be overridden by cross origin non CSS file.'); + assert_equals( + getElementColorInFrame(f, 'sameOriginCss'), + EXPECTED_COLOR, + 'The color must be overridden by same origin CSS.'); + assert_equals( + getElementColorInFrame(f, 'sameOriginHtml'), + EXPECTED_COLOR, + 'The color must be overridden by same origin non CSS file.'); + assert_equals( + getElementColorInFrame(f, 'synthetic'), + EXPECTED_COLOR, + 'The color must be overridden by synthetic CSS.'); +}, 'MIME checking of CSS resources fetched via service worker when Content-Type is not set.'); + +promise_test(async t => { + const PAGE = + 'resources/fetch-request-css-cross-origin-read-contents.html'; + + const f = await with_iframe(PAGE); + t.add_cleanup(() => {f.remove(); }); + assert_throws('SecurityError', () => { + f.contentDocument.styleSheets[0].cssRules[0].cssText; + }); + assert_equals( + f.contentDocument.styleSheets[1].cssRules[0].cssText, + '#crossOriginCss { color: blue; }', + 'cross-origin CORS approved response'); + assert_equals( + f.contentDocument.styleSheets[2].cssRules[0].cssText, + '#sameOriginCss { color: blue; }', + 'same-origin response'); + assert_equals( + f.contentDocument.styleSheets[3].cssRules[0].cssText, + '#synthetic { color: blue; }', + 'service worker generated response'); + }, 'Same-origin policy for access to CSS resources fetched via service worker'); + +</script> diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/registration-updateviacache.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/registration-updateviacache.https.html index 64c277d94dc..dbcc6eab1f8 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/registration-updateviacache.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/registration-updateviacache.https.html @@ -1,5 +1,6 @@ <!DOCTYPE html> <title>Service Worker: Registration-updateViaCache</title> +<meta name="timeout" content="long"> <script src="/resources/testharness.js"></script> <script src="resources/testharness-helpers.js"></script> <script src="/resources/testharnessreport.js"></script> diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-iframe.html b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-iframe.html index dcb82871354..9a4adedb84d 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-iframe.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-iframe.html @@ -5,11 +5,11 @@ #sameOriginHtml { color: red; } #synthetic { color: red; } </style> -<link href="./cross-origin-css.css" rel="stylesheet" type="text/css"> -<link href="./cross-origin-html.css" rel="stylesheet" type="text/css"> +<link href="./cross-origin-css.css?mime=no" rel="stylesheet" type="text/css"> +<link href="./cross-origin-html.css?mime=no" rel="stylesheet" type="text/css"> <link href="./fetch-request-css-cross-origin-mime-check-same.css" rel="stylesheet" type="text/css"> <link href="./fetch-request-css-cross-origin-mime-check-same.html" rel="stylesheet" type="text/css"> -<link href="./synthetic.css" rel="stylesheet" type="text/css"> +<link href="./synthetic.css?mime=no" rel="stylesheet" type="text/css"> <h1 id=crossOriginCss>I should be blue</h1> <h1 id=crossOriginHtml>I should be blue</h1> <h1 id=sameOriginCss>I should be blue</h1> diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-worker.js b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-worker.js deleted file mode 100644 index 274142f5ce4..00000000000 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-worker.js +++ /dev/null @@ -1,20 +0,0 @@ -importScripts('/common/get-host-info.sub.js'); -importScripts('test-helpers.sub.js'); - -self.addEventListener('fetch', function(event) { - if (event.request.url.indexOf('cross-origin-css.css') != -1) { - event.respondWith(fetch( - get_host_info()['HTTPS_REMOTE_ORIGIN'] + base_path() + - 'fetch-request-css-cross-origin-mime-check-cross.css', - {mode: 'no-cors'})); - } else if (event.request.url.indexOf('cross-origin-html.css') != -1) { - event.respondWith(fetch( - get_host_info()['HTTPS_REMOTE_ORIGIN'] + base_path() + - 'fetch-request-css-cross-origin-mime-check-cross.html', - {mode: 'no-cors'})); - } else if (event.request.url.indexOf('synthetic.css') != -1) { - event.respondWith(new Response("#synthetic { color: blue; }")); - } else { - event.respondWith(fetch(event.request)); - } - }); diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-read-contents.html b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-read-contents.html new file mode 100644 index 00000000000..c902366b023 --- /dev/null +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-read-contents.html @@ -0,0 +1,15 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>iframe: cross-origin CSS via service worker</title> + +<!-- Service worker responds with a cross-origin opaque response. --> +<link href="cross-origin-css.css" rel="stylesheet" type="text/css"> + +<!-- Service worker responds with a cross-origin CORS approved response. --> +<link href="cross-origin-css.css?cors" rel="stylesheet" type="text/css"> + +<!-- Service worker falls back to network. This is a same-origin response. --> +<link href="fetch-request-css-cross-origin-mime-check-same.css" rel="stylesheet" type="text/css"> + +<!-- Service worker responds with a new Response() synthetic response. --> +<link href="synthetic.css" rel="stylesheet" type="text/css"> diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-worker.js b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-worker.js new file mode 100644 index 00000000000..a71e91216c1 --- /dev/null +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-worker.js @@ -0,0 +1,65 @@ +importScripts('/common/get-host-info.sub.js'); +importScripts('test-helpers.sub.js'); + +const HOST_INFO = get_host_info(); +const REMOTE_ORIGIN = HOST_INFO.HTTPS_REMOTE_ORIGIN; +const BASE_PATH = base_path(); +const CSS_FILE = 'fetch-request-css-cross-origin-mime-check-cross.css'; +const HTML_FILE = 'fetch-request-css-cross-origin-mime-check-cross.html'; + +function add_pipe_header(url_str, header) { + if (url_str.indexOf('?pipe=') == -1) { + url_str += '?pipe='; + } else { + url_str += '|'; + } + url_str += `header${header}`; + return url_str; +} + +self.addEventListener('fetch', function(event) { + const url = new URL(event.request.url); + + const use_mime = + (url.searchParams.get('mime') != 'no'); + const mime_header = '(Content-Type, text/css)'; + + const use_cors = + (url.searchParams.has('cors')); + const cors_header = '(Access-Control-Allow-Origin, *)'; + + const file = url.pathname.substring(url.pathname.lastIndexOf('/') + 1); + + // Respond with a cross-origin CSS resource, using CORS if desired. + if (file == 'cross-origin-css.css') { + let fetch_url = REMOTE_ORIGIN + BASE_PATH + CSS_FILE; + if (use_mime) + fetch_url = add_pipe_header(fetch_url, mime_header); + if (use_cors) + fetch_url = add_pipe_header(fetch_url, cors_header); + const mode = use_cors ? 'cors' : 'no-cors'; + event.respondWith(fetch(fetch_url, {'mode': mode})); + return; + } + + // Respond with a cross-origin CSS resource with an HTML name. This is only + // used in the MIME sniffing test, so MIME is never added. + if (file == 'cross-origin-html.css') { + const fetch_url = REMOTE_ORIGIN + BASE_PATH + HTML_FILE; + event.respondWith(fetch(fetch_url, {mode: 'no-cors'})); + return; + } + + // Respond with synthetic CSS. + if (file == 'synthetic.css') { + let headers = {}; + if (use_mime) { + headers['Content-Type'] = 'text/css'; + } + + event.respondWith(new Response("#synthetic { color: blue; }", {headers})); + return; + } + + // Otherwise, fallback to network. + }); diff --git a/tests/wpt/web-platform-tests/tools/html5lib/.gitignore b/tests/wpt/web-platform-tests/tools/html5lib/.gitignore deleted file mode 100644 index 73d97fec073..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -# Because we never want compiled Python -__pycache__/ -*.pyc - -# Ignore stuff produced by distutils -/build/ -/dist/ -/MANIFEST - -# Generated by parse.py -p -stats.prof - -# From cover (esp. in combination with nose) -.coverage - -# Because tox's data is inherently local -/.tox/ - -# We have no interest in built Sphinx files -/doc/_build diff --git a/tests/wpt/web-platform-tests/tools/html5lib/.travis.yml b/tests/wpt/web-platform-tests/tools/html5lib/.travis.yml deleted file mode 100644 index dd3130019e7..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/.travis.yml +++ /dev/null @@ -1,37 +0,0 @@ -language: python -python: - - "2.6" - - "2.7" - - "3.2" - - "3.3" - - "3.4" - - "pypy" - -env: - - USE_OPTIONAL=true - - USE_OPTIONAL=false - -matrix: - exclude: - - python: "2.7" - env: USE_OPTIONAL=false - - python: "3.4" - env: USE_OPTIONAL=false - include: - - python: "2.7" - env: USE_OPTIONAL=false FLAKE=true - - python: "3.4" - env: USE_OPTIONAL=false FLAKE=true - -before_install: - - git submodule update --init --recursive - -install: - - bash requirements-install.sh - -script: - - nosetests - - bash flake8-run.sh - -after_script: - - python debug-info.py diff --git a/tests/wpt/web-platform-tests/tools/html5lib/CHANGES.rst b/tests/wpt/web-platform-tests/tools/html5lib/CHANGES.rst deleted file mode 100644 index 1431b3c9b8f..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/CHANGES.rst +++ /dev/null @@ -1,171 +0,0 @@ -Change Log ----------- - -0.9999 -~~~~~~ - -Released on XXX, 2014 - -* XXX - - -0.999 -~~~~~ - -Released on December 23, 2013 - -* Fix #127: add work-around for CPython issue #20007: .read(0) on - http.client.HTTPResponse drops the rest of the content. - -* Fix #115: lxml treewalker can now deal with fragments containing, at - their root level, text nodes with non-ASCII characters on Python 2. - - -0.99 -~~~~ - -Released on September 10, 2013 - -* No library changes from 1.0b3; released as 0.99 as pip has changed - behaviour from 1.4 to avoid installing pre-release versions per - PEP 440. - - -1.0b3 -~~~~~ - -Released on July 24, 2013 - -* Removed ``RecursiveTreeWalker`` from ``treewalkers._base``. Any - implementation using it should be moved to - ``NonRecursiveTreeWalker``, as everything bundled with html5lib has - for years. - -* Fix #67 so that ``BufferedStream`` to correctly returns a bytes - object, thereby fixing any case where html5lib is passed a - non-seekable RawIOBase-like object. - - -1.0b2 -~~~~~ - -Released on June 27, 2013 - -* Removed reordering of attributes within the serializer. There is now - an ``alphabetical_attributes`` option which preserves the previous - behaviour through a new filter. This allows attribute order to be - preserved through html5lib if the tree builder preserves order. - -* Removed ``dom2sax`` from DOM treebuilders. It has been replaced by - ``treeadapters.sax.to_sax`` which is generic and supports any - treewalker; it also resolves all known bugs with ``dom2sax``. - -* Fix treewalker assertions on hitting bytes strings on - Python 2. Previous to 1.0b1, treewalkers coped with mixed - bytes/unicode data on Python 2; this reintroduces this prior - behaviour on Python 2. Behaviour is unchanged on Python 3. - - -1.0b1 -~~~~~ - -Released on May 17, 2013 - -* Implementation updated to implement the `HTML specification - <http://www.whatwg.org/specs/web-apps/current-work/>`_ as of 5th May - 2013 (`SVN <http://svn.whatwg.org/webapps/>`_ revision r7867). - -* Python 3.2+ supported in a single codebase using the ``six`` library. - -* Removed support for Python 2.5 and older. - -* Removed the deprecated Beautiful Soup 3 treebuilder. - ``beautifulsoup4`` can use ``html5lib`` as a parser instead. Note that - since it doesn't support namespaces, foreign content like SVG and - MathML is parsed incorrectly. - -* Removed ``simpletree`` from the package. The default tree builder is - now ``etree`` (using the ``xml.etree.cElementTree`` implementation if - available, and ``xml.etree.ElementTree`` otherwise). - -* Removed the ``XHTMLSerializer`` as it never actually guaranteed its - output was well-formed XML, and hence provided little of use. - -* Removed default DOM treebuilder, so ``html5lib.treebuilders.dom`` is no - longer supported. ``html5lib.treebuilders.getTreeBuilder("dom")`` will - return the default DOM treebuilder, which uses ``xml.dom.minidom``. - -* Optional heuristic character encoding detection now based on - ``charade`` for Python 2.6 - 3.3 compatibility. - -* Optional ``Genshi`` treewalker support fixed. - -* Many bugfixes, including: - - * #33: null in attribute value breaks XML AttValue; - - * #4: nested, indirect descendant, <button> causes infinite loop; - - * `Google Code 215 - <http://code.google.com/p/html5lib/issues/detail?id=215>`_: Properly - detect seekable streams; - - * `Google Code 206 - <http://code.google.com/p/html5lib/issues/detail?id=206>`_: add - support for <video preload=...>, <audio preload=...>; - - * `Google Code 205 - <http://code.google.com/p/html5lib/issues/detail?id=205>`_: add - support for <video poster=...>; - - * `Google Code 202 - <http://code.google.com/p/html5lib/issues/detail?id=202>`_: Unicode - file breaks InputStream. - -* Source code is now mostly PEP 8 compliant. - -* Test harness has been improved and now depends on ``nose``. - -* Documentation updated and moved to http://html5lib.readthedocs.org/. - - -0.95 -~~~~ - -Released on February 11, 2012 - - -0.90 -~~~~ - -Released on January 17, 2010 - - -0.11.1 -~~~~~~ - -Released on June 12, 2008 - - -0.11 -~~~~ - -Released on June 10, 2008 - - -0.10 -~~~~ - -Released on October 7, 2007 - - -0.9 -~~~ - -Released on March 11, 2007 - - -0.2 -~~~ - -Released on January 8, 2007 diff --git a/tests/wpt/web-platform-tests/tools/html5lib/doc/html5lib.rst b/tests/wpt/web-platform-tests/tools/html5lib/doc/html5lib.rst deleted file mode 100644 index d4ed12b4646..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/doc/html5lib.rst +++ /dev/null @@ -1,77 +0,0 @@ -html5lib Package -================ - -:mod:`html5lib` Package ------------------------ - -.. automodule:: html5lib.__init__ - :members: - :undoc-members: - :show-inheritance: - -:mod:`constants` Module ------------------------ - -.. automodule:: html5lib.constants - :members: - :undoc-members: - :show-inheritance: - -:mod:`html5parser` Module -------------------------- - -.. automodule:: html5lib.html5parser - :members: - :undoc-members: - :show-inheritance: - -:mod:`ihatexml` Module ----------------------- - -.. automodule:: html5lib.ihatexml - :members: - :undoc-members: - :show-inheritance: - -:mod:`inputstream` Module -------------------------- - -.. automodule:: html5lib.inputstream - :members: - :undoc-members: - :show-inheritance: - -:mod:`sanitizer` Module ------------------------ - -.. automodule:: html5lib.sanitizer - :members: - :undoc-members: - :show-inheritance: - -:mod:`tokenizer` Module ------------------------ - -.. automodule:: html5lib.tokenizer - :members: - :undoc-members: - :show-inheritance: - -:mod:`utils` Module -------------------- - -.. automodule:: html5lib.utils - :members: - :undoc-members: - :show-inheritance: - -Subpackages ------------ - -.. toctree:: - - html5lib.filters - html5lib.serializer - html5lib.treebuilders - html5lib.treewalkers - diff --git a/tests/wpt/web-platform-tests/tools/html5lib/doc/html5lib.serializer.rst b/tests/wpt/web-platform-tests/tools/html5lib/doc/html5lib.serializer.rst deleted file mode 100644 index fa9547421b1..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/doc/html5lib.serializer.rst +++ /dev/null @@ -1,19 +0,0 @@ -serializer Package -================== - -:mod:`serializer` Package -------------------------- - -.. automodule:: html5lib.serializer - :members: - :undoc-members: - :show-inheritance: - -:mod:`htmlserializer` Module ----------------------------- - -.. automodule:: html5lib.serializer.htmlserializer - :members: - :undoc-members: - :show-inheritance: - diff --git a/tests/wpt/web-platform-tests/tools/html5lib/doc/html5lib.treewalkers.rst b/tests/wpt/web-platform-tests/tools/html5lib/doc/html5lib.treewalkers.rst deleted file mode 100644 index 80595e2d7d0..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/doc/html5lib.treewalkers.rst +++ /dev/null @@ -1,59 +0,0 @@ -treewalkers Package -=================== - -:mod:`treewalkers` Package --------------------------- - -.. automodule:: html5lib.treewalkers - :members: - :undoc-members: - :show-inheritance: - -:mod:`_base` Module -------------------- - -.. automodule:: html5lib.treewalkers._base - :members: - :undoc-members: - :show-inheritance: - -:mod:`dom` Module ------------------ - -.. automodule:: html5lib.treewalkers.dom - :members: - :undoc-members: - :show-inheritance: - -:mod:`etree` Module -------------------- - -.. automodule:: html5lib.treewalkers.etree - :members: - :undoc-members: - :show-inheritance: - -:mod:`genshistream` Module --------------------------- - -.. automodule:: html5lib.treewalkers.genshistream - :members: - :undoc-members: - :show-inheritance: - -:mod:`lxmletree` Module ------------------------ - -.. automodule:: html5lib.treewalkers.lxmletree - :members: - :undoc-members: - :show-inheritance: - -:mod:`pulldom` Module ---------------------- - -.. automodule:: html5lib.treewalkers.pulldom - :members: - :undoc-members: - :show-inheritance: - diff --git a/tests/wpt/web-platform-tests/tools/html5lib/flake8-run.sh b/tests/wpt/web-platform-tests/tools/html5lib/flake8-run.sh deleted file mode 100755 index d1a587d3506..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/flake8-run.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash -e - -if [[ ! -x $(which flake8) ]]; then - echo "fatal: flake8 not found on $PATH. Exiting." - exit 1 -fi - -if [[ $TRAVIS != "true" || $FLAKE == "true" ]]; then - find html5lib/ -name '*.py' -and -not -name 'constants.py' -print0 | xargs -0 flake8 --ignore=E501 - flake1=$? - flake8 --max-line-length=99 --ignore=E126 html5lib/constants.py - flake2=$? - exit $[$flake1 || $flake2] -fi diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/__init__.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/__init__.py deleted file mode 100644 index a67a652b999..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -""" -HTML parsing library based on the WHATWG "HTML5" -specification. The parser is designed to be compatible with existing -HTML found in the wild and implements well-defined error recovery that -is largely compatible with modern desktop web browsers. - -Example usage: - -import html5lib -f = open("my_document.html") -tree = html5lib.parse(f) -""" - -from __future__ import absolute_import, division, unicode_literals - -from .html5parser import HTMLParser, parse, parseFragment -from .treebuilders import getTreeBuilder -from .treewalkers import getTreeWalker -from .serializer import serialize - -__all__ = ["HTMLParser", "parse", "parseFragment", "getTreeBuilder", - "getTreeWalker", "serialize"] -__version__ = "0.9999-dev" diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/alphabeticalattributes.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/alphabeticalattributes.py deleted file mode 100644 index fed6996c1d9..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/alphabeticalattributes.py +++ /dev/null @@ -1,20 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -from . import _base - -try: - from collections import OrderedDict -except ImportError: - from ordereddict import OrderedDict - - -class Filter(_base.Filter): - def __iter__(self): - for token in _base.Filter.__iter__(self): - if token["type"] in ("StartTag", "EmptyTag"): - attrs = OrderedDict() - for name, value in sorted(token["data"].items(), - key=lambda x: x[0]): - attrs[name] = value - token["data"] = attrs - yield token diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/lint.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/lint.py deleted file mode 100644 index 7cc99a4ba7c..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/lint.py +++ /dev/null @@ -1,93 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -from gettext import gettext -_ = gettext - -from . import _base -from ..constants import cdataElements, rcdataElements, voidElements - -from ..constants import spaceCharacters -spaceCharacters = "".join(spaceCharacters) - - -class LintError(Exception): - pass - - -class Filter(_base.Filter): - def __iter__(self): - open_elements = [] - contentModelFlag = "PCDATA" - for token in _base.Filter.__iter__(self): - type = token["type"] - if type in ("StartTag", "EmptyTag"): - name = token["name"] - if contentModelFlag != "PCDATA": - raise LintError(_("StartTag not in PCDATA content model flag: %(tag)s") % {"tag": name}) - if not isinstance(name, str): - raise LintError(_("Tag name is not a string: %(tag)r") % {"tag": name}) - if not name: - raise LintError(_("Empty tag name")) - if type == "StartTag" and name in voidElements: - raise LintError(_("Void element reported as StartTag token: %(tag)s") % {"tag": name}) - elif type == "EmptyTag" and name not in voidElements: - raise LintError(_("Non-void element reported as EmptyTag token: %(tag)s") % {"tag": token["name"]}) - if type == "StartTag": - open_elements.append(name) - for name, value in token["data"]: - if not isinstance(name, str): - raise LintError(_("Attribute name is not a string: %(name)r") % {"name": name}) - if not name: - raise LintError(_("Empty attribute name")) - if not isinstance(value, str): - raise LintError(_("Attribute value is not a string: %(value)r") % {"value": value}) - if name in cdataElements: - contentModelFlag = "CDATA" - elif name in rcdataElements: - contentModelFlag = "RCDATA" - elif name == "plaintext": - contentModelFlag = "PLAINTEXT" - - elif type == "EndTag": - name = token["name"] - if not isinstance(name, str): - raise LintError(_("Tag name is not a string: %(tag)r") % {"tag": name}) - if not name: - raise LintError(_("Empty tag name")) - if name in voidElements: - raise LintError(_("Void element reported as EndTag token: %(tag)s") % {"tag": name}) - start_name = open_elements.pop() - if start_name != name: - raise LintError(_("EndTag (%(end)s) does not match StartTag (%(start)s)") % {"end": name, "start": start_name}) - contentModelFlag = "PCDATA" - - elif type == "Comment": - if contentModelFlag != "PCDATA": - raise LintError(_("Comment not in PCDATA content model flag")) - - elif type in ("Characters", "SpaceCharacters"): - data = token["data"] - if not isinstance(data, str): - raise LintError(_("Attribute name is not a string: %(name)r") % {"name": data}) - if not data: - raise LintError(_("%(type)s token with empty data") % {"type": type}) - if type == "SpaceCharacters": - data = data.strip(spaceCharacters) - if data: - raise LintError(_("Non-space character(s) found in SpaceCharacters token: %(token)r") % {"token": data}) - - elif type == "Doctype": - name = token["name"] - if contentModelFlag != "PCDATA": - raise LintError(_("Doctype not in PCDATA content model flag: %(name)s") % {"name": name}) - if not isinstance(name, str): - raise LintError(_("Tag name is not a string: %(tag)r") % {"tag": name}) - # XXX: what to do with token["data"] ? - - elif type in ("ParseError", "SerializeError"): - pass - - else: - raise LintError(_("Unknown token type: %(type)s") % {"type": type}) - - yield token diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/sanitizer.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/sanitizer.py deleted file mode 100644 index b206b54e7a7..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/sanitizer.py +++ /dev/null @@ -1,12 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -from . import _base -from ..sanitizer import HTMLSanitizerMixin - - -class Filter(_base.Filter, HTMLSanitizerMixin): - def __iter__(self): - for token in _base.Filter.__iter__(self): - token = self.sanitize_token(token) - if token: - yield token diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/sanitizer.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/sanitizer.py deleted file mode 100644 index 469d9b40c96..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/sanitizer.py +++ /dev/null @@ -1,271 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -import re -from xml.sax.saxutils import escape, unescape - -from .tokenizer import HTMLTokenizer -from .constants import tokenTypes - - -class HTMLSanitizerMixin(object): - """ sanitization of XHTML+MathML+SVG and of inline style attributes.""" - - acceptable_elements = ['a', 'abbr', 'acronym', 'address', 'area', - 'article', 'aside', 'audio', 'b', 'big', 'blockquote', 'br', 'button', - 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', - 'command', 'datagrid', 'datalist', 'dd', 'del', 'details', 'dfn', - 'dialog', 'dir', 'div', 'dl', 'dt', 'em', 'event-source', 'fieldset', - 'figcaption', 'figure', 'footer', 'font', 'form', 'header', 'h1', - 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'i', 'img', 'input', 'ins', - 'keygen', 'kbd', 'label', 'legend', 'li', 'm', 'map', 'menu', 'meter', - 'multicol', 'nav', 'nextid', 'ol', 'output', 'optgroup', 'option', - 'p', 'pre', 'progress', 'q', 's', 'samp', 'section', 'select', - 'small', 'sound', 'source', 'spacer', 'span', 'strike', 'strong', - 'sub', 'sup', 'table', 'tbody', 'td', 'textarea', 'time', 'tfoot', - 'th', 'thead', 'tr', 'tt', 'u', 'ul', 'var', 'video'] - - mathml_elements = ['maction', 'math', 'merror', 'mfrac', 'mi', - 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', - 'mprescripts', 'mroot', 'mrow', 'mspace', 'msqrt', 'mstyle', 'msub', - 'msubsup', 'msup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', - 'munderover', 'none'] - - svg_elements = ['a', 'animate', 'animateColor', 'animateMotion', - 'animateTransform', 'clipPath', 'circle', 'defs', 'desc', 'ellipse', - 'font-face', 'font-face-name', 'font-face-src', 'g', 'glyph', 'hkern', - 'linearGradient', 'line', 'marker', 'metadata', 'missing-glyph', - 'mpath', 'path', 'polygon', 'polyline', 'radialGradient', 'rect', - 'set', 'stop', 'svg', 'switch', 'text', 'title', 'tspan', 'use'] - - acceptable_attributes = ['abbr', 'accept', 'accept-charset', 'accesskey', - 'action', 'align', 'alt', 'autocomplete', 'autofocus', 'axis', - 'background', 'balance', 'bgcolor', 'bgproperties', 'border', - 'bordercolor', 'bordercolordark', 'bordercolorlight', 'bottompadding', - 'cellpadding', 'cellspacing', 'ch', 'challenge', 'char', 'charoff', - 'choff', 'charset', 'checked', 'cite', 'class', 'clear', 'color', - 'cols', 'colspan', 'compact', 'contenteditable', 'controls', 'coords', - 'data', 'datafld', 'datapagesize', 'datasrc', 'datetime', 'default', - 'delay', 'dir', 'disabled', 'draggable', 'dynsrc', 'enctype', 'end', - 'face', 'for', 'form', 'frame', 'galleryimg', 'gutter', 'headers', - 'height', 'hidefocus', 'hidden', 'high', 'href', 'hreflang', 'hspace', - 'icon', 'id', 'inputmode', 'ismap', 'keytype', 'label', 'leftspacing', - 'lang', 'list', 'longdesc', 'loop', 'loopcount', 'loopend', - 'loopstart', 'low', 'lowsrc', 'max', 'maxlength', 'media', 'method', - 'min', 'multiple', 'name', 'nohref', 'noshade', 'nowrap', 'open', - 'optimum', 'pattern', 'ping', 'point-size', 'poster', 'pqg', 'preload', - 'prompt', 'radiogroup', 'readonly', 'rel', 'repeat-max', 'repeat-min', - 'replace', 'required', 'rev', 'rightspacing', 'rows', 'rowspan', - 'rules', 'scope', 'selected', 'shape', 'size', 'span', 'src', 'start', - 'step', 'style', 'summary', 'suppress', 'tabindex', 'target', - 'template', 'title', 'toppadding', 'type', 'unselectable', 'usemap', - 'urn', 'valign', 'value', 'variable', 'volume', 'vspace', 'vrml', - 'width', 'wrap', 'xml:lang'] - - mathml_attributes = ['actiontype', 'align', 'columnalign', 'columnalign', - 'columnalign', 'columnlines', 'columnspacing', 'columnspan', 'depth', - 'display', 'displaystyle', 'equalcolumns', 'equalrows', 'fence', - 'fontstyle', 'fontweight', 'frame', 'height', 'linethickness', 'lspace', - 'mathbackground', 'mathcolor', 'mathvariant', 'mathvariant', 'maxsize', - 'minsize', 'other', 'rowalign', 'rowalign', 'rowalign', 'rowlines', - 'rowspacing', 'rowspan', 'rspace', 'scriptlevel', 'selection', - 'separator', 'stretchy', 'width', 'width', 'xlink:href', 'xlink:show', - 'xlink:type', 'xmlns', 'xmlns:xlink'] - - svg_attributes = ['accent-height', 'accumulate', 'additive', 'alphabetic', - 'arabic-form', 'ascent', 'attributeName', 'attributeType', - 'baseProfile', 'bbox', 'begin', 'by', 'calcMode', 'cap-height', - 'class', 'clip-path', 'color', 'color-rendering', 'content', 'cx', - 'cy', 'd', 'dx', 'dy', 'descent', 'display', 'dur', 'end', 'fill', - 'fill-opacity', 'fill-rule', 'font-family', 'font-size', - 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'from', - 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'gradientUnits', 'hanging', - 'height', 'horiz-adv-x', 'horiz-origin-x', 'id', 'ideographic', 'k', - 'keyPoints', 'keySplines', 'keyTimes', 'lang', 'marker-end', - 'marker-mid', 'marker-start', 'markerHeight', 'markerUnits', - 'markerWidth', 'mathematical', 'max', 'min', 'name', 'offset', - 'opacity', 'orient', 'origin', 'overline-position', - 'overline-thickness', 'panose-1', 'path', 'pathLength', 'points', - 'preserveAspectRatio', 'r', 'refX', 'refY', 'repeatCount', - 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'restart', - 'rotate', 'rx', 'ry', 'slope', 'stemh', 'stemv', 'stop-color', - 'stop-opacity', 'strikethrough-position', 'strikethrough-thickness', - 'stroke', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', - 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', - 'stroke-width', 'systemLanguage', 'target', 'text-anchor', 'to', - 'transform', 'type', 'u1', 'u2', 'underline-position', - 'underline-thickness', 'unicode', 'unicode-range', 'units-per-em', - 'values', 'version', 'viewBox', 'visibility', 'width', 'widths', 'x', - 'x-height', 'x1', 'x2', 'xlink:actuate', 'xlink:arcrole', - 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', - 'xml:base', 'xml:lang', 'xml:space', 'xmlns', 'xmlns:xlink', 'y', - 'y1', 'y2', 'zoomAndPan'] - - attr_val_is_uri = ['href', 'src', 'cite', 'action', 'longdesc', 'poster', - 'xlink:href', 'xml:base'] - - svg_attr_val_allows_ref = ['clip-path', 'color-profile', 'cursor', 'fill', - 'filter', 'marker', 'marker-start', 'marker-mid', 'marker-end', - 'mask', 'stroke'] - - svg_allow_local_href = ['altGlyph', 'animate', 'animateColor', - 'animateMotion', 'animateTransform', 'cursor', 'feImage', 'filter', - 'linearGradient', 'pattern', 'radialGradient', 'textpath', 'tref', - 'set', 'use'] - - acceptable_css_properties = ['azimuth', 'background-color', - 'border-bottom-color', 'border-collapse', 'border-color', - 'border-left-color', 'border-right-color', 'border-top-color', 'clear', - 'color', 'cursor', 'direction', 'display', 'elevation', 'float', 'font', - 'font-family', 'font-size', 'font-style', 'font-variant', 'font-weight', - 'height', 'letter-spacing', 'line-height', 'overflow', 'pause', - 'pause-after', 'pause-before', 'pitch', 'pitch-range', 'richness', - 'speak', 'speak-header', 'speak-numeral', 'speak-punctuation', - 'speech-rate', 'stress', 'text-align', 'text-decoration', 'text-indent', - 'unicode-bidi', 'vertical-align', 'voice-family', 'volume', - 'white-space', 'width'] - - acceptable_css_keywords = ['auto', 'aqua', 'black', 'block', 'blue', - 'bold', 'both', 'bottom', 'brown', 'center', 'collapse', 'dashed', - 'dotted', 'fuchsia', 'gray', 'green', '!important', 'italic', 'left', - 'lime', 'maroon', 'medium', 'none', 'navy', 'normal', 'nowrap', 'olive', - 'pointer', 'purple', 'red', 'right', 'solid', 'silver', 'teal', 'top', - 'transparent', 'underline', 'white', 'yellow'] - - acceptable_svg_properties = ['fill', 'fill-opacity', 'fill-rule', - 'stroke', 'stroke-width', 'stroke-linecap', 'stroke-linejoin', - 'stroke-opacity'] - - acceptable_protocols = ['ed2k', 'ftp', 'http', 'https', 'irc', - 'mailto', 'news', 'gopher', 'nntp', 'telnet', 'webcal', - 'xmpp', 'callto', 'feed', 'urn', 'aim', 'rsync', 'tag', - 'ssh', 'sftp', 'rtsp', 'afs'] - - # subclasses may define their own versions of these constants - allowed_elements = acceptable_elements + mathml_elements + svg_elements - allowed_attributes = acceptable_attributes + mathml_attributes + svg_attributes - allowed_css_properties = acceptable_css_properties - allowed_css_keywords = acceptable_css_keywords - allowed_svg_properties = acceptable_svg_properties - allowed_protocols = acceptable_protocols - - # Sanitize the +html+, escaping all elements not in ALLOWED_ELEMENTS, and - # stripping out all # attributes not in ALLOWED_ATTRIBUTES. Style - # attributes are parsed, and a restricted set, # specified by - # ALLOWED_CSS_PROPERTIES and ALLOWED_CSS_KEYWORDS, are allowed through. - # attributes in ATTR_VAL_IS_URI are scanned, and only URI schemes specified - # in ALLOWED_PROTOCOLS are allowed. - # - # sanitize_html('<script> do_nasty_stuff() </script>') - # => <script> do_nasty_stuff() </script> - # sanitize_html('<a href="javascript: sucker();">Click here for $100</a>') - # => <a>Click here for $100</a> - def sanitize_token(self, token): - - # accommodate filters which use token_type differently - token_type = token["type"] - if token_type in list(tokenTypes.keys()): - token_type = tokenTypes[token_type] - - if token_type in (tokenTypes["StartTag"], tokenTypes["EndTag"], - tokenTypes["EmptyTag"]): - if token["name"] in self.allowed_elements: - return self.allowed_token(token, token_type) - else: - return self.disallowed_token(token, token_type) - elif token_type == tokenTypes["Comment"]: - pass - else: - return token - - def allowed_token(self, token, token_type): - if "data" in token: - attrs = dict([(name, val) for name, val in - token["data"][::-1] - if name in self.allowed_attributes]) - for attr in self.attr_val_is_uri: - if attr not in attrs: - continue - val_unescaped = re.sub("[`\000-\040\177-\240\s]+", '', - unescape(attrs[attr])).lower() - # remove replacement characters from unescaped characters - val_unescaped = val_unescaped.replace("\ufffd", "") - if (re.match("^[a-z0-9][-+.a-z0-9]*:", val_unescaped) and - (val_unescaped.split(':')[0] not in - self.allowed_protocols)): - del attrs[attr] - for attr in self.svg_attr_val_allows_ref: - if attr in attrs: - attrs[attr] = re.sub(r'url\s*\(\s*[^#\s][^)]+?\)', - ' ', - unescape(attrs[attr])) - if (token["name"] in self.svg_allow_local_href and - 'xlink:href' in attrs and re.search('^\s*[^#\s].*', - attrs['xlink:href'])): - del attrs['xlink:href'] - if 'style' in attrs: - attrs['style'] = self.sanitize_css(attrs['style']) - token["data"] = [[name, val] for name, val in list(attrs.items())] - return token - - def disallowed_token(self, token, token_type): - if token_type == tokenTypes["EndTag"]: - token["data"] = "</%s>" % token["name"] - elif token["data"]: - attrs = ''.join([' %s="%s"' % (k, escape(v)) for k, v in token["data"]]) - token["data"] = "<%s%s>" % (token["name"], attrs) - else: - token["data"] = "<%s>" % token["name"] - if token.get("selfClosing"): - token["data"] = token["data"][:-1] + "/>" - - if token["type"] in list(tokenTypes.keys()): - token["type"] = "Characters" - else: - token["type"] = tokenTypes["Characters"] - - del token["name"] - return token - - def sanitize_css(self, style): - # disallow urls - style = re.compile('url\s*\(\s*[^\s)]+?\s*\)\s*').sub(' ', style) - - # gauntlet - if not re.match("""^([:,;#%.\sa-zA-Z0-9!]|\w-\w|'[\s\w]+'|"[\s\w]+"|\([\d,\s]+\))*$""", style): - return '' - if not re.match("^\s*([-\w]+\s*:[^:;]*(;\s*|$))*$", style): - return '' - - clean = [] - for prop, value in re.findall("([-\w]+)\s*:\s*([^:;]*)", style): - if not value: - continue - if prop.lower() in self.allowed_css_properties: - clean.append(prop + ': ' + value + ';') - elif prop.split('-')[0].lower() in ['background', 'border', 'margin', - 'padding']: - for keyword in value.split(): - if keyword not in self.acceptable_css_keywords and \ - not re.match("^(#[0-9a-f]+|rgb\(\d+%?,\d*%?,?\d*%?\)?|\d{0,2}\.?\d{0,2}(cm|em|ex|in|mm|pc|pt|px|%|,|\))?)$", keyword): - break - else: - clean.append(prop + ': ' + value + ';') - elif prop.lower() in self.allowed_svg_properties: - clean.append(prop + ': ' + value + ';') - - return ' '.join(clean) - - -class HTMLSanitizer(HTMLTokenizer, HTMLSanitizerMixin): - def __init__(self, stream, encoding=None, parseMeta=True, useChardet=True, - lowercaseElementName=False, lowercaseAttrName=False, parser=None): - # Change case matching defaults as we only output lowercase html anyway - # This solution doesn't seem ideal... - HTMLTokenizer.__init__(self, stream, encoding, parseMeta, useChardet, - lowercaseElementName, lowercaseAttrName, parser=parser) - - def __iter__(self): - for token in HTMLTokenizer.__iter__(self): - token = self.sanitize_token(token) - if token: - yield token diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/serializer/__init__.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/serializer/__init__.py deleted file mode 100644 index 8380839a6d3..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/serializer/__init__.py +++ /dev/null @@ -1,16 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -from .. import treewalkers - -from .htmlserializer import HTMLSerializer - - -def serialize(input, tree="etree", format="html", encoding=None, - **serializer_opts): - # XXX: Should we cache this? - walker = treewalkers.getTreeWalker(tree) - if format == "html": - s = HTMLSerializer(**serializer_opts) - else: - raise ValueError("type must be html") - return s.render(walker(input), encoding) diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/serializer/htmlserializer.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/serializer/htmlserializer.py deleted file mode 100644 index 4a891ff56c4..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/serializer/htmlserializer.py +++ /dev/null @@ -1,320 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals -from six import text_type - -import gettext -_ = gettext.gettext - -try: - from functools import reduce -except ImportError: - pass - -from ..constants import voidElements, booleanAttributes, spaceCharacters -from ..constants import rcdataElements, entities, xmlEntities -from .. import utils -from xml.sax.saxutils import escape - -spaceCharacters = "".join(spaceCharacters) - -try: - from codecs import register_error, xmlcharrefreplace_errors -except ImportError: - unicode_encode_errors = "strict" -else: - unicode_encode_errors = "htmlentityreplace" - - encode_entity_map = {} - is_ucs4 = len("\U0010FFFF") == 1 - for k, v in list(entities.items()): - # skip multi-character entities - if ((is_ucs4 and len(v) > 1) or - (not is_ucs4 and len(v) > 2)): - continue - if v != "&": - if len(v) == 2: - v = utils.surrogatePairToCodepoint(v) - else: - v = ord(v) - if v not in encode_entity_map or k.islower(): - # prefer < over < and similarly for &, >, etc. - encode_entity_map[v] = k - - def htmlentityreplace_errors(exc): - if isinstance(exc, (UnicodeEncodeError, UnicodeTranslateError)): - res = [] - codepoints = [] - skip = False - for i, c in enumerate(exc.object[exc.start:exc.end]): - if skip: - skip = False - continue - index = i + exc.start - if utils.isSurrogatePair(exc.object[index:min([exc.end, index + 2])]): - codepoint = utils.surrogatePairToCodepoint(exc.object[index:index + 2]) - skip = True - else: - codepoint = ord(c) - codepoints.append(codepoint) - for cp in codepoints: - e = encode_entity_map.get(cp) - if e: - res.append("&") - res.append(e) - if not e.endswith(";"): - res.append(";") - else: - res.append("&#x%s;" % (hex(cp)[2:])) - return ("".join(res), exc.end) - else: - return xmlcharrefreplace_errors(exc) - - register_error(unicode_encode_errors, htmlentityreplace_errors) - - del register_error - - -class HTMLSerializer(object): - - # attribute quoting options - quote_attr_values = False - quote_char = '"' - use_best_quote_char = True - - # tag syntax options - omit_optional_tags = True - minimize_boolean_attributes = True - use_trailing_solidus = False - space_before_trailing_solidus = True - - # escaping options - escape_lt_in_attrs = False - escape_rcdata = False - resolve_entities = True - - # miscellaneous options - alphabetical_attributes = False - inject_meta_charset = True - strip_whitespace = False - sanitize = False - - options = ("quote_attr_values", "quote_char", "use_best_quote_char", - "omit_optional_tags", "minimize_boolean_attributes", - "use_trailing_solidus", "space_before_trailing_solidus", - "escape_lt_in_attrs", "escape_rcdata", "resolve_entities", - "alphabetical_attributes", "inject_meta_charset", - "strip_whitespace", "sanitize") - - def __init__(self, **kwargs): - """Initialize HTMLSerializer. - - Keyword options (default given first unless specified) include: - - inject_meta_charset=True|False - Whether it insert a meta element to define the character set of the - document. - quote_attr_values=True|False - Whether to quote attribute values that don't require quoting - per HTML5 parsing rules. - quote_char=u'"'|u"'" - Use given quote character for attribute quoting. Default is to - use double quote unless attribute value contains a double quote, - in which case single quotes are used instead. - escape_lt_in_attrs=False|True - Whether to escape < in attribute values. - escape_rcdata=False|True - Whether to escape characters that need to be escaped within normal - elements within rcdata elements such as style. - resolve_entities=True|False - Whether to resolve named character entities that appear in the - source tree. The XML predefined entities < > & " ' - are unaffected by this setting. - strip_whitespace=False|True - Whether to remove semantically meaningless whitespace. (This - compresses all whitespace to a single space except within pre.) - minimize_boolean_attributes=True|False - Shortens boolean attributes to give just the attribute value, - for example <input disabled="disabled"> becomes <input disabled>. - use_trailing_solidus=False|True - Includes a close-tag slash at the end of the start tag of void - elements (empty elements whose end tag is forbidden). E.g. <hr/>. - space_before_trailing_solidus=True|False - Places a space immediately before the closing slash in a tag - using a trailing solidus. E.g. <hr />. Requires use_trailing_solidus. - sanitize=False|True - Strip all unsafe or unknown constructs from output. - See `html5lib user documentation`_ - omit_optional_tags=True|False - Omit start/end tags that are optional. - alphabetical_attributes=False|True - Reorder attributes to be in alphabetical order. - - .. _html5lib user documentation: http://code.google.com/p/html5lib/wiki/UserDocumentation - """ - if 'quote_char' in kwargs: - self.use_best_quote_char = False - for attr in self.options: - setattr(self, attr, kwargs.get(attr, getattr(self, attr))) - self.errors = [] - self.strict = False - - def encode(self, string): - assert(isinstance(string, text_type)) - if self.encoding: - return string.encode(self.encoding, unicode_encode_errors) - else: - return string - - def encodeStrict(self, string): - assert(isinstance(string, text_type)) - if self.encoding: - return string.encode(self.encoding, "strict") - else: - return string - - def serialize(self, treewalker, encoding=None): - self.encoding = encoding - in_cdata = False - self.errors = [] - - if encoding and self.inject_meta_charset: - from ..filters.inject_meta_charset import Filter - treewalker = Filter(treewalker, encoding) - # WhitespaceFilter should be used before OptionalTagFilter - # for maximum efficiently of this latter filter - if self.strip_whitespace: - from ..filters.whitespace import Filter - treewalker = Filter(treewalker) - if self.sanitize: - from ..filters.sanitizer import Filter - treewalker = Filter(treewalker) - if self.omit_optional_tags: - from ..filters.optionaltags import Filter - treewalker = Filter(treewalker) - # Alphabetical attributes must be last, as other filters - # could add attributes and alter the order - if self.alphabetical_attributes: - from ..filters.alphabeticalattributes import Filter - treewalker = Filter(treewalker) - - for token in treewalker: - type = token["type"] - if type == "Doctype": - doctype = "<!DOCTYPE %s" % token["name"] - - if token["publicId"]: - doctype += ' PUBLIC "%s"' % token["publicId"] - elif token["systemId"]: - doctype += " SYSTEM" - if token["systemId"]: - if token["systemId"].find('"') >= 0: - if token["systemId"].find("'") >= 0: - self.serializeError(_("System identifer contains both single and double quote characters")) - quote_char = "'" - else: - quote_char = '"' - doctype += " %s%s%s" % (quote_char, token["systemId"], quote_char) - - doctype += ">" - yield self.encodeStrict(doctype) - - elif type in ("Characters", "SpaceCharacters"): - if type == "SpaceCharacters" or in_cdata: - if in_cdata and token["data"].find("</") >= 0: - self.serializeError(_("Unexpected </ in CDATA")) - yield self.encode(token["data"]) - else: - yield self.encode(escape(token["data"])) - - elif type in ("StartTag", "EmptyTag"): - name = token["name"] - yield self.encodeStrict("<%s" % name) - if name in rcdataElements and not self.escape_rcdata: - in_cdata = True - elif in_cdata: - self.serializeError(_("Unexpected child element of a CDATA element")) - for (attr_namespace, attr_name), attr_value in token["data"].items(): - # TODO: Add namespace support here - k = attr_name - v = attr_value - yield self.encodeStrict(' ') - - yield self.encodeStrict(k) - if not self.minimize_boolean_attributes or \ - (k not in booleanAttributes.get(name, tuple()) - and k not in booleanAttributes.get("", tuple())): - yield self.encodeStrict("=") - if self.quote_attr_values or not v: - quote_attr = True - else: - quote_attr = reduce(lambda x, y: x or (y in v), - spaceCharacters + ">\"'=", False) - v = v.replace("&", "&") - if self.escape_lt_in_attrs: - v = v.replace("<", "<") - if quote_attr: - quote_char = self.quote_char - if self.use_best_quote_char: - if "'" in v and '"' not in v: - quote_char = '"' - elif '"' in v and "'" not in v: - quote_char = "'" - if quote_char == "'": - v = v.replace("'", "'") - else: - v = v.replace('"', """) - yield self.encodeStrict(quote_char) - yield self.encode(v) - yield self.encodeStrict(quote_char) - else: - yield self.encode(v) - if name in voidElements and self.use_trailing_solidus: - if self.space_before_trailing_solidus: - yield self.encodeStrict(" /") - else: - yield self.encodeStrict("/") - yield self.encode(">") - - elif type == "EndTag": - name = token["name"] - if name in rcdataElements: - in_cdata = False - elif in_cdata: - self.serializeError(_("Unexpected child element of a CDATA element")) - yield self.encodeStrict("</%s>" % name) - - elif type == "Comment": - data = token["data"] - if data.find("--") >= 0: - self.serializeError(_("Comment contains --")) - yield self.encodeStrict("<!--%s-->" % token["data"]) - - elif type == "Entity": - name = token["name"] - key = name + ";" - if key not in entities: - self.serializeError(_("Entity %s not recognized" % name)) - if self.resolve_entities and key not in xmlEntities: - data = entities[key] - else: - data = "&%s;" % name - yield self.encodeStrict(data) - - else: - self.serializeError(token["data"]) - - def render(self, treewalker, encoding=None): - if encoding: - return b"".join(list(self.serialize(treewalker, encoding))) - else: - return "".join(list(self.serialize(treewalker))) - - def serializeError(self, data="XXX ERROR MESSAGE NEEDED"): - # XXX The idea is to make data mandatory. - self.errors.append(data) - if self.strict: - raise SerializeError - - -def SerializeError(Exception): - """Error in serialized tree""" - pass diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/README b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/README deleted file mode 100644 index c564b6836e4..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/README +++ /dev/null @@ -1 +0,0 @@ -Each testcase file can be run through nose (using ``nosetests``).
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/mockParser.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/mockParser.py deleted file mode 100644 index ef31527e82d..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/mockParser.py +++ /dev/null @@ -1,41 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -import sys -import os - -if __name__ == '__main__': - # Allow us to import from the src directory - os.chdir(os.path.split(os.path.abspath(__file__))[0]) - sys.path.insert(0, os.path.abspath(os.path.join(os.pardir, "src"))) - -from html5lib.tokenizer import HTMLTokenizer - - -class HTMLParser(object): - """ Fake parser to test tokenizer output """ - def parse(self, stream, output=True): - tokenizer = HTMLTokenizer(stream) - for token in tokenizer: - if output: - print(token) - -if __name__ == "__main__": - x = HTMLParser() - if len(sys.argv) > 1: - if len(sys.argv) > 2: - import hotshot - import hotshot.stats - prof = hotshot.Profile('stats.prof') - prof.runcall(x.parse, sys.argv[1], False) - prof.close() - stats = hotshot.stats.load('stats.prof') - stats.strip_dirs() - stats.sort_stats('time') - stats.print_stats() - else: - x.parse(sys.argv[1]) - else: - print("""Usage: python mockParser.py filename [stats] - If stats is specified the hotshots profiler will run and output the - stats instead. - """) diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/performance/concatenation.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/performance/concatenation.py deleted file mode 100644 index a1465036e52..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/performance/concatenation.py +++ /dev/null @@ -1,36 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - - -def f1(): - x = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ" - y = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ" - z = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ" - x += y + z - - -def f2(): - x = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ" - y = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ" - z = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ" - x = x + y + z - - -def f3(): - x = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ" - y = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ" - z = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ" - x = "".join((x, y, z)) - - -def f4(): - x = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ" - y = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ" - z = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ" - x = "%s%s%s" % (x, y, z) - -import timeit -for x in range(4): - statement = "f%s" % (x + 1) - t = timeit.Timer(statement, "from __main__ import " + statement) - r = t.repeat(3, 1000000) - print(r, min(r)) diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_encoding.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_encoding.py deleted file mode 100644 index d774ce0f600..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_encoding.py +++ /dev/null @@ -1,67 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -import os -import unittest - -try: - unittest.TestCase.assertEqual -except AttributeError: - unittest.TestCase.assertEqual = unittest.TestCase.assertEquals - -from .support import get_data_files, TestData, test_dir, errorMessage -from html5lib import HTMLParser, inputstream - - -class Html5EncodingTestCase(unittest.TestCase): - def test_codec_name_a(self): - self.assertEqual(inputstream.codecName("utf-8"), "utf-8") - - def test_codec_name_b(self): - self.assertEqual(inputstream.codecName("utf8"), "utf-8") - - def test_codec_name_c(self): - self.assertEqual(inputstream.codecName(" utf8 "), "utf-8") - - def test_codec_name_d(self): - self.assertEqual(inputstream.codecName("ISO_8859--1"), "windows-1252") - - -def runParserEncodingTest(data, encoding): - p = HTMLParser() - assert p.documentEncoding is None - p.parse(data, useChardet=False) - encoding = encoding.lower().decode("ascii") - - assert encoding == p.documentEncoding, errorMessage(data, encoding, p.documentEncoding) - - -def runPreScanEncodingTest(data, encoding): - stream = inputstream.HTMLBinaryInputStream(data, chardet=False) - encoding = encoding.lower().decode("ascii") - - # Very crude way to ignore irrelevant tests - if len(data) > stream.numBytesMeta: - return - - assert encoding == stream.charEncoding[0], errorMessage(data, encoding, stream.charEncoding[0]) - - -def test_encoding(): - for filename in get_data_files("encoding"): - tests = TestData(filename, b"data", encoding=None) - for idx, test in enumerate(tests): - yield (runParserEncodingTest, test[b'data'], test[b'encoding']) - yield (runPreScanEncodingTest, test[b'data'], test[b'encoding']) - -try: - try: - import charade # flake8: noqa - except ImportError: - import chardet # flake8: noqa -except ImportError: - print("charade/chardet not found, skipping chardet tests") -else: - def test_chardet(): - with open(os.path.join(test_dir, "encoding" , "chardet", "test_big5.txt"), "rb") as fp: - encoding = inputstream.HTMLInputStream(fp.read()).charEncoding - assert encoding[0].lower() == "big5" diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_parser.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_parser.py deleted file mode 100644 index 230cdb42d59..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_parser.py +++ /dev/null @@ -1,96 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -import os -import sys -import traceback -import warnings -import re - -warnings.simplefilter("error") - -from .support import get_data_files -from .support import TestData, convert, convertExpected, treeTypes -from html5lib import html5parser, constants - -# Run the parse error checks -checkParseErrors = False - -# XXX - There should just be one function here but for some reason the testcase -# format differs from the treedump format by a single space character - - -def convertTreeDump(data): - return "\n".join(convert(3)(data).split("\n")[1:]) - -namespaceExpected = re.compile(r"^(\s*)<(\S+)>", re.M).sub - - -def runParserTest(innerHTML, input, expected, errors, treeClass, - namespaceHTMLElements): - with warnings.catch_warnings(record=True) as caughtWarnings: - warnings.simplefilter("always") - p = html5parser.HTMLParser(tree=treeClass, - namespaceHTMLElements=namespaceHTMLElements) - - try: - if innerHTML: - document = p.parseFragment(input, innerHTML) - else: - document = p.parse(input) - except: - errorMsg = "\n".join(["\n\nInput:", input, "\nExpected:", expected, - "\nTraceback:", traceback.format_exc()]) - assert False, errorMsg - - otherWarnings = [x for x in caughtWarnings - if not issubclass(x.category, constants.DataLossWarning)] - assert len(otherWarnings) == 0, [(x.category, x.message) for x in otherWarnings] - if len(caughtWarnings): - return - - output = convertTreeDump(p.tree.testSerializer(document)) - - expected = convertExpected(expected) - if namespaceHTMLElements: - expected = namespaceExpected(r"\1<html \2>", expected) - - errorMsg = "\n".join(["\n\nInput:", input, "\nExpected:", expected, - "\nReceived:", output]) - assert expected == output, errorMsg - - errStr = [] - for (line, col), errorcode, datavars in p.errors: - assert isinstance(datavars, dict), "%s, %s" % (errorcode, repr(datavars)) - errStr.append("Line: %i Col: %i %s" % (line, col, - constants.E[errorcode] % datavars)) - - errorMsg2 = "\n".join(["\n\nInput:", input, - "\nExpected errors (" + str(len(errors)) + "):\n" + "\n".join(errors), - "\nActual errors (" + str(len(p.errors)) + "):\n" + "\n".join(errStr)]) - if checkParseErrors: - assert len(p.errors) == len(errors), errorMsg2 - - -def test_parser(): - sys.stderr.write('Testing tree builders ' + " ".join(list(treeTypes.keys())) + "\n") - files = get_data_files('tree-construction') - - for filename in files: - testName = os.path.basename(filename).replace(".dat", "") - if testName in ("template",): - continue - - tests = TestData(filename, "data") - - for index, test in enumerate(tests): - input, errors, innerHTML, expected = [test[key] for key in - ('data', 'errors', - 'document-fragment', - 'document')] - if errors: - errors = errors.split("\n") - - for treeName, treeCls in treeTypes.items(): - for namespaceHTMLElements in (True, False): - yield (runParserTest, innerHTML, input, expected, errors, treeCls, - namespaceHTMLElements) diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_parser2.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_parser2.py deleted file mode 100644 index 20bbdf3179c..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_parser2.py +++ /dev/null @@ -1,64 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -import io - -from . import support # flake8: noqa -from html5lib import html5parser -from html5lib.constants import namespaces -from html5lib import treebuilders - -import unittest - -# tests that aren't autogenerated from text files - - -class MoreParserTests(unittest.TestCase): - - def setUp(self): - self.dom_tree = treebuilders.getTreeBuilder("dom") - - def test_assertDoctypeCloneable(self): - parser = html5parser.HTMLParser(tree=self.dom_tree) - doc = parser.parse('<!DOCTYPE HTML>') - self.assertTrue(doc.cloneNode(True)) - - def test_line_counter(self): - # http://groups.google.com/group/html5lib-discuss/browse_frm/thread/f4f00e4a2f26d5c0 - parser = html5parser.HTMLParser(tree=self.dom_tree) - parser.parse("<pre>\nx\n>\n</pre>") - - def test_namespace_html_elements_0_dom(self): - parser = html5parser.HTMLParser(tree=self.dom_tree, namespaceHTMLElements=True) - doc = parser.parse("<html></html>") - self.assertTrue(doc.childNodes[0].namespaceURI == namespaces["html"]) - - def test_namespace_html_elements_1_dom(self): - parser = html5parser.HTMLParser(tree=self.dom_tree, namespaceHTMLElements=False) - doc = parser.parse("<html></html>") - self.assertTrue(doc.childNodes[0].namespaceURI is None) - - def test_namespace_html_elements_0_etree(self): - parser = html5parser.HTMLParser(namespaceHTMLElements=True) - doc = parser.parse("<html></html>") - self.assertTrue(list(doc)[0].tag == "{%s}html" % (namespaces["html"],)) - - def test_namespace_html_elements_1_etree(self): - parser = html5parser.HTMLParser(namespaceHTMLElements=False) - doc = parser.parse("<html></html>") - self.assertTrue(list(doc)[0].tag == "html") - - def test_unicode_file(self): - parser = html5parser.HTMLParser() - parser.parse(io.StringIO("a")) - - -def buildTestSuite(): - return unittest.defaultTestLoader.loadTestsFromName(__name__) - - -def main(): - buildTestSuite() - unittest.main() - -if __name__ == '__main__': - main() diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_sanitizer.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_sanitizer.py deleted file mode 100644 index 1cc687dfcad..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_sanitizer.py +++ /dev/null @@ -1,105 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -try: - import json -except ImportError: - import simplejson as json - -from html5lib import html5parser, sanitizer, constants, treebuilders - - -def toxmlFactory(): - tree = treebuilders.getTreeBuilder("etree") - - def toxml(element): - # encode/decode roundtrip required for Python 2.6 compatibility - result_bytes = tree.implementation.tostring(element, encoding="utf-8") - return result_bytes.decode("utf-8") - - return toxml - - -def runSanitizerTest(name, expected, input, toxml=None): - if toxml is None: - toxml = toxmlFactory() - expected = ''.join([toxml(token) for token in html5parser.HTMLParser(). - parseFragment(expected)]) - expected = json.loads(json.dumps(expected)) - assert expected == sanitize_html(input) - - -def sanitize_html(stream, toxml=None): - if toxml is None: - toxml = toxmlFactory() - return ''.join([toxml(token) for token in - html5parser.HTMLParser(tokenizer=sanitizer.HTMLSanitizer). - parseFragment(stream)]) - - -def test_should_handle_astral_plane_characters(): - assert '<html:p xmlns:html="http://www.w3.org/1999/xhtml">\U0001d4b5 \U0001d538</html:p>' == sanitize_html("<p>𝒵 𝔸</p>") - - -def test_sanitizer(): - toxml = toxmlFactory() - for tag_name in sanitizer.HTMLSanitizer.allowed_elements: - if tag_name in ['caption', 'col', 'colgroup', 'optgroup', 'option', 'table', 'tbody', 'td', 'tfoot', 'th', 'thead', 'tr']: - continue # TODO - if tag_name != tag_name.lower(): - continue # TODO - if tag_name == 'image': - yield (runSanitizerTest, "test_should_allow_%s_tag" % tag_name, - "<img title=\"1\"/>foo <bad>bar</bad> baz", - "<%s title='1'>foo <bad>bar</bad> baz</%s>" % (tag_name, tag_name), - toxml) - elif tag_name == 'br': - yield (runSanitizerTest, "test_should_allow_%s_tag" % tag_name, - "<br title=\"1\"/>foo <bad>bar</bad> baz<br/>", - "<%s title='1'>foo <bad>bar</bad> baz</%s>" % (tag_name, tag_name), - toxml) - elif tag_name in constants.voidElements: - yield (runSanitizerTest, "test_should_allow_%s_tag" % tag_name, - "<%s title=\"1\"/>foo <bad>bar</bad> baz" % tag_name, - "<%s title='1'>foo <bad>bar</bad> baz</%s>" % (tag_name, tag_name), - toxml) - else: - yield (runSanitizerTest, "test_should_allow_%s_tag" % tag_name, - "<%s title=\"1\">foo <bad>bar</bad> baz</%s>" % (tag_name, tag_name), - "<%s title='1'>foo <bad>bar</bad> baz</%s>" % (tag_name, tag_name), - toxml) - - for tag_name in sanitizer.HTMLSanitizer.allowed_elements: - tag_name = tag_name.upper() - yield (runSanitizerTest, "test_should_forbid_%s_tag" % tag_name, - "<%s title=\"1\">foo <bad>bar</bad> baz</%s>" % (tag_name, tag_name), - "<%s title='1'>foo <bad>bar</bad> baz</%s>" % (tag_name, tag_name), - toxml) - - for attribute_name in sanitizer.HTMLSanitizer.allowed_attributes: - if attribute_name != attribute_name.lower(): - continue # TODO - if attribute_name == 'style': - continue - yield (runSanitizerTest, "test_should_allow_%s_attribute" % attribute_name, - "<p %s=\"foo\">foo <bad>bar</bad> baz</p>" % attribute_name, - "<p %s='foo'>foo <bad>bar</bad> baz</p>" % attribute_name, - toxml) - - for attribute_name in sanitizer.HTMLSanitizer.allowed_attributes: - attribute_name = attribute_name.upper() - yield (runSanitizerTest, "test_should_forbid_%s_attribute" % attribute_name, - "<p>foo <bad>bar</bad> baz</p>", - "<p %s='display: none;'>foo <bad>bar</bad> baz</p>" % attribute_name, - toxml) - - for protocol in sanitizer.HTMLSanitizer.allowed_protocols: - yield (runSanitizerTest, "test_should_allow_%s_uris" % protocol, - "<a href=\"%s\">foo</a>" % protocol, - """<a href="%s">foo</a>""" % protocol, - toxml) - - for protocol in sanitizer.HTMLSanitizer.allowed_protocols: - yield (runSanitizerTest, "test_should_allow_uppercase_%s_uris" % protocol, - "<a href=\"%s\">foo</a>" % protocol, - """<a href="%s">foo</a>""" % protocol, - toxml) diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_serializer.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_serializer.py deleted file mode 100644 index 3c37feff70b..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_serializer.py +++ /dev/null @@ -1,178 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -import json -import unittest - -from .support import get_data_files - -try: - unittest.TestCase.assertEqual -except AttributeError: - unittest.TestCase.assertEqual = unittest.TestCase.assertEquals - -import html5lib -from html5lib import constants -from html5lib.serializer import HTMLSerializer, serialize -from html5lib.treewalkers._base import TreeWalker - -optionals_loaded = [] - -try: - from lxml import etree - optionals_loaded.append("lxml") -except ImportError: - pass - -default_namespace = constants.namespaces["html"] - - -class JsonWalker(TreeWalker): - def __iter__(self): - for token in self.tree: - type = token[0] - if type == "StartTag": - if len(token) == 4: - namespace, name, attrib = token[1:4] - else: - namespace = default_namespace - name, attrib = token[1:3] - yield self.startTag(namespace, name, self._convertAttrib(attrib)) - elif type == "EndTag": - if len(token) == 3: - namespace, name = token[1:3] - else: - namespace = default_namespace - name = token[1] - yield self.endTag(namespace, name) - elif type == "EmptyTag": - if len(token) == 4: - namespace, name, attrib = token[1:] - else: - namespace = default_namespace - name, attrib = token[1:] - for token in self.emptyTag(namespace, name, self._convertAttrib(attrib)): - yield token - elif type == "Comment": - yield self.comment(token[1]) - elif type in ("Characters", "SpaceCharacters"): - for token in self.text(token[1]): - yield token - elif type == "Doctype": - if len(token) == 4: - yield self.doctype(token[1], token[2], token[3]) - elif len(token) == 3: - yield self.doctype(token[1], token[2]) - else: - yield self.doctype(token[1]) - else: - raise ValueError("Unknown token type: " + type) - - def _convertAttrib(self, attribs): - """html5lib tree-walkers use a dict of (namespace, name): value for - attributes, but JSON cannot represent this. Convert from the format - in the serializer tests (a list of dicts with "namespace", "name", - and "value" as keys) to html5lib's tree-walker format.""" - attrs = {} - for attrib in attribs: - name = (attrib["namespace"], attrib["name"]) - assert(name not in attrs) - attrs[name] = attrib["value"] - return attrs - - -def serialize_html(input, options): - options = dict([(str(k), v) for k, v in options.items()]) - stream = JsonWalker(input) - serializer = HTMLSerializer(alphabetical_attributes=True, **options) - return serializer.render(stream, options.get("encoding", None)) - - -def runSerializerTest(input, expected, options): - encoding = options.get("encoding", None) - - if encoding: - encode = lambda x: x.encode(encoding) - expected = list(map(encode, expected)) - - result = serialize_html(input, options) - if len(expected) == 1: - assert expected[0] == result, "Expected:\n%s\nActual:\n%s\nOptions:\n%s" % (expected[0], result, str(options)) - elif result not in expected: - assert False, "Expected: %s, Received: %s" % (expected, result) - - -class EncodingTestCase(unittest.TestCase): - def throwsWithLatin1(self, input): - self.assertRaises(UnicodeEncodeError, serialize_html, input, {"encoding": "iso-8859-1"}) - - def testDoctypeName(self): - self.throwsWithLatin1([["Doctype", "\u0101"]]) - - def testDoctypePublicId(self): - self.throwsWithLatin1([["Doctype", "potato", "\u0101"]]) - - def testDoctypeSystemId(self): - self.throwsWithLatin1([["Doctype", "potato", "potato", "\u0101"]]) - - def testCdataCharacters(self): - runSerializerTest([["StartTag", "http://www.w3.org/1999/xhtml", "style", {}], ["Characters", "\u0101"]], - ["<style>ā"], {"encoding": "iso-8859-1"}) - - def testCharacters(self): - runSerializerTest([["Characters", "\u0101"]], - ["ā"], {"encoding": "iso-8859-1"}) - - def testStartTagName(self): - self.throwsWithLatin1([["StartTag", "http://www.w3.org/1999/xhtml", "\u0101", []]]) - - def testEmptyTagName(self): - self.throwsWithLatin1([["EmptyTag", "http://www.w3.org/1999/xhtml", "\u0101", []]]) - - def testAttributeName(self): - self.throwsWithLatin1([["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": None, "name": "\u0101", "value": "potato"}]]]) - - def testAttributeValue(self): - runSerializerTest([["StartTag", "http://www.w3.org/1999/xhtml", "span", - [{"namespace": None, "name": "potato", "value": "\u0101"}]]], - ["<span potato=ā>"], {"encoding": "iso-8859-1"}) - - def testEndTagName(self): - self.throwsWithLatin1([["EndTag", "http://www.w3.org/1999/xhtml", "\u0101"]]) - - def testComment(self): - self.throwsWithLatin1([["Comment", "\u0101"]]) - - -if "lxml" in optionals_loaded: - class LxmlTestCase(unittest.TestCase): - def setUp(self): - self.parser = etree.XMLParser(resolve_entities=False) - self.treewalker = html5lib.getTreeWalker("lxml") - self.serializer = HTMLSerializer() - - def testEntityReplacement(self): - doc = """<!DOCTYPE html SYSTEM "about:legacy-compat"><html>β</html>""" - tree = etree.fromstring(doc, parser=self.parser).getroottree() - result = serialize(tree, tree="lxml", omit_optional_tags=False) - self.assertEqual("""<!DOCTYPE html SYSTEM "about:legacy-compat"><html>\u03B2</html>""", result) - - def testEntityXML(self): - doc = """<!DOCTYPE html SYSTEM "about:legacy-compat"><html>></html>""" - tree = etree.fromstring(doc, parser=self.parser).getroottree() - result = serialize(tree, tree="lxml", omit_optional_tags=False) - self.assertEqual("""<!DOCTYPE html SYSTEM "about:legacy-compat"><html>></html>""", result) - - def testEntityNoResolve(self): - doc = """<!DOCTYPE html SYSTEM "about:legacy-compat"><html>β</html>""" - tree = etree.fromstring(doc, parser=self.parser).getroottree() - result = serialize(tree, tree="lxml", omit_optional_tags=False, - resolve_entities=False) - self.assertEqual("""<!DOCTYPE html SYSTEM "about:legacy-compat"><html>β</html>""", result) - - -def test_serializer(): - for filename in get_data_files('serializer', '*.test'): - with open(filename) as fp: - tests = json.load(fp) - for index, test in enumerate(tests['tests']): - yield runSerializerTest, test["input"], test["expected"], test.get("options", {}) diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_stream.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_stream.py deleted file mode 100644 index 2a876c1dbfd..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_stream.py +++ /dev/null @@ -1,183 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -from . import support # flake8: noqa -import unittest -import codecs -from io import BytesIO - -from six.moves import http_client - -from html5lib.inputstream import (BufferedStream, HTMLInputStream, - HTMLUnicodeInputStream, HTMLBinaryInputStream) - -class BufferedStreamTest(unittest.TestCase): - def test_basic(self): - s = b"abc" - fp = BufferedStream(BytesIO(s)) - read = fp.read(10) - assert read == s - - def test_read_length(self): - fp = BufferedStream(BytesIO(b"abcdef")) - read1 = fp.read(1) - assert read1 == b"a" - read2 = fp.read(2) - assert read2 == b"bc" - read3 = fp.read(3) - assert read3 == b"def" - read4 = fp.read(4) - assert read4 == b"" - - def test_tell(self): - fp = BufferedStream(BytesIO(b"abcdef")) - read1 = fp.read(1) - assert fp.tell() == 1 - read2 = fp.read(2) - assert fp.tell() == 3 - read3 = fp.read(3) - assert fp.tell() == 6 - read4 = fp.read(4) - assert fp.tell() == 6 - - def test_seek(self): - fp = BufferedStream(BytesIO(b"abcdef")) - read1 = fp.read(1) - assert read1 == b"a" - fp.seek(0) - read2 = fp.read(1) - assert read2 == b"a" - read3 = fp.read(2) - assert read3 == b"bc" - fp.seek(2) - read4 = fp.read(2) - assert read4 == b"cd" - fp.seek(4) - read5 = fp.read(2) - assert read5 == b"ef" - - def test_seek_tell(self): - fp = BufferedStream(BytesIO(b"abcdef")) - read1 = fp.read(1) - assert fp.tell() == 1 - fp.seek(0) - read2 = fp.read(1) - assert fp.tell() == 1 - read3 = fp.read(2) - assert fp.tell() == 3 - fp.seek(2) - read4 = fp.read(2) - assert fp.tell() == 4 - fp.seek(4) - read5 = fp.read(2) - assert fp.tell() == 6 - - -class HTMLUnicodeInputStreamShortChunk(HTMLUnicodeInputStream): - _defaultChunkSize = 2 - - -class HTMLBinaryInputStreamShortChunk(HTMLBinaryInputStream): - _defaultChunkSize = 2 - - -class HTMLInputStreamTest(unittest.TestCase): - - def test_char_ascii(self): - stream = HTMLInputStream(b"'", encoding='ascii') - self.assertEqual(stream.charEncoding[0], 'ascii') - self.assertEqual(stream.char(), "'") - - def test_char_utf8(self): - stream = HTMLInputStream('\u2018'.encode('utf-8'), encoding='utf-8') - self.assertEqual(stream.charEncoding[0], 'utf-8') - self.assertEqual(stream.char(), '\u2018') - - def test_char_win1252(self): - stream = HTMLInputStream("\xa9\xf1\u2019".encode('windows-1252')) - self.assertEqual(stream.charEncoding[0], 'windows-1252') - self.assertEqual(stream.char(), "\xa9") - self.assertEqual(stream.char(), "\xf1") - self.assertEqual(stream.char(), "\u2019") - - def test_bom(self): - stream = HTMLInputStream(codecs.BOM_UTF8 + b"'") - self.assertEqual(stream.charEncoding[0], 'utf-8') - self.assertEqual(stream.char(), "'") - - def test_utf_16(self): - stream = HTMLInputStream((' ' * 1025).encode('utf-16')) - self.assertTrue(stream.charEncoding[0] in ['utf-16-le', 'utf-16-be'], stream.charEncoding) - self.assertEqual(len(stream.charsUntil(' ', True)), 1025) - - def test_newlines(self): - stream = HTMLBinaryInputStreamShortChunk(codecs.BOM_UTF8 + b"a\nbb\r\nccc\rddddxe") - self.assertEqual(stream.position(), (1, 0)) - self.assertEqual(stream.charsUntil('c'), "a\nbb\n") - self.assertEqual(stream.position(), (3, 0)) - self.assertEqual(stream.charsUntil('x'), "ccc\ndddd") - self.assertEqual(stream.position(), (4, 4)) - self.assertEqual(stream.charsUntil('e'), "x") - self.assertEqual(stream.position(), (4, 5)) - - def test_newlines2(self): - size = HTMLUnicodeInputStream._defaultChunkSize - stream = HTMLInputStream("\r" * size + "\n") - self.assertEqual(stream.charsUntil('x'), "\n" * size) - - def test_position(self): - stream = HTMLBinaryInputStreamShortChunk(codecs.BOM_UTF8 + b"a\nbb\nccc\nddde\nf\ngh") - self.assertEqual(stream.position(), (1, 0)) - self.assertEqual(stream.charsUntil('c'), "a\nbb\n") - self.assertEqual(stream.position(), (3, 0)) - stream.unget("\n") - self.assertEqual(stream.position(), (2, 2)) - self.assertEqual(stream.charsUntil('c'), "\n") - self.assertEqual(stream.position(), (3, 0)) - stream.unget("\n") - self.assertEqual(stream.position(), (2, 2)) - self.assertEqual(stream.char(), "\n") - self.assertEqual(stream.position(), (3, 0)) - self.assertEqual(stream.charsUntil('e'), "ccc\nddd") - self.assertEqual(stream.position(), (4, 3)) - self.assertEqual(stream.charsUntil('h'), "e\nf\ng") - self.assertEqual(stream.position(), (6, 1)) - - def test_position2(self): - stream = HTMLUnicodeInputStreamShortChunk("abc\nd") - self.assertEqual(stream.position(), (1, 0)) - self.assertEqual(stream.char(), "a") - self.assertEqual(stream.position(), (1, 1)) - self.assertEqual(stream.char(), "b") - self.assertEqual(stream.position(), (1, 2)) - self.assertEqual(stream.char(), "c") - self.assertEqual(stream.position(), (1, 3)) - self.assertEqual(stream.char(), "\n") - self.assertEqual(stream.position(), (2, 0)) - self.assertEqual(stream.char(), "d") - self.assertEqual(stream.position(), (2, 1)) - - def test_python_issue_20007(self): - """ - Make sure we have a work-around for Python bug #20007 - http://bugs.python.org/issue20007 - """ - class FakeSocket(object): - def makefile(self, _mode, _bufsize=None): - return BytesIO(b"HTTP/1.1 200 Ok\r\n\r\nText") - - source = http_client.HTTPResponse(FakeSocket()) - source.begin() - stream = HTMLInputStream(source) - self.assertEqual(stream.charsUntil(" "), "Text") - - -def buildTestSuite(): - return unittest.defaultTestLoader.loadTestsFromName(__name__) - - -def main(): - buildTestSuite() - unittest.main() - -if __name__ == '__main__': - main() diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_treewalkers.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_treewalkers.py deleted file mode 100644 index b7756035c26..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_treewalkers.py +++ /dev/null @@ -1,353 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -import os -import sys -import unittest -import warnings -from difflib import unified_diff - -try: - unittest.TestCase.assertEqual -except AttributeError: - unittest.TestCase.assertEqual = unittest.TestCase.assertEquals - -from .support import get_data_files, TestData, convertExpected - -from html5lib import html5parser, treewalkers, treebuilders, constants - - -def PullDOMAdapter(node): - from xml.dom import Node - from xml.dom.pulldom import START_ELEMENT, END_ELEMENT, COMMENT, CHARACTERS - - if node.nodeType in (Node.DOCUMENT_NODE, Node.DOCUMENT_FRAGMENT_NODE): - for childNode in node.childNodes: - for event in PullDOMAdapter(childNode): - yield event - - elif node.nodeType == Node.DOCUMENT_TYPE_NODE: - raise NotImplementedError("DOCTYPE nodes are not supported by PullDOM") - - elif node.nodeType == Node.COMMENT_NODE: - yield COMMENT, node - - elif node.nodeType in (Node.TEXT_NODE, Node.CDATA_SECTION_NODE): - yield CHARACTERS, node - - elif node.nodeType == Node.ELEMENT_NODE: - yield START_ELEMENT, node - for childNode in node.childNodes: - for event in PullDOMAdapter(childNode): - yield event - yield END_ELEMENT, node - - else: - raise NotImplementedError("Node type not supported: " + str(node.nodeType)) - -treeTypes = { - "DOM": {"builder": treebuilders.getTreeBuilder("dom"), - "walker": treewalkers.getTreeWalker("dom")}, - "PullDOM": {"builder": treebuilders.getTreeBuilder("dom"), - "adapter": PullDOMAdapter, - "walker": treewalkers.getTreeWalker("pulldom")}, -} - -# Try whatever etree implementations are available from a list that are -#"supposed" to work -try: - import xml.etree.ElementTree as ElementTree -except ImportError: - pass -else: - treeTypes['ElementTree'] = \ - {"builder": treebuilders.getTreeBuilder("etree", ElementTree), - "walker": treewalkers.getTreeWalker("etree", ElementTree)} - -try: - import xml.etree.cElementTree as ElementTree -except ImportError: - pass -else: - treeTypes['cElementTree'] = \ - {"builder": treebuilders.getTreeBuilder("etree", ElementTree), - "walker": treewalkers.getTreeWalker("etree", ElementTree)} - - -try: - import lxml.etree as ElementTree # flake8: noqa -except ImportError: - pass -else: - treeTypes['lxml_native'] = \ - {"builder": treebuilders.getTreeBuilder("lxml"), - "walker": treewalkers.getTreeWalker("lxml")} - - -try: - from genshi.core import QName, Attrs - from genshi.core import START, END, TEXT, COMMENT, DOCTYPE -except ImportError: - pass -else: - def GenshiAdapter(tree): - text = None - for token in treewalkers.getTreeWalker("dom")(tree): - type = token["type"] - if type in ("Characters", "SpaceCharacters"): - if text is None: - text = token["data"] - else: - text += token["data"] - elif text is not None: - yield TEXT, text, (None, -1, -1) - text = None - - if type in ("StartTag", "EmptyTag"): - if token["namespace"]: - name = "{%s}%s" % (token["namespace"], token["name"]) - else: - name = token["name"] - attrs = Attrs([(QName("{%s}%s" % attr if attr[0] is not None else attr[1]), value) - for attr, value in token["data"].items()]) - yield (START, (QName(name), attrs), (None, -1, -1)) - if type == "EmptyTag": - type = "EndTag" - - if type == "EndTag": - if token["namespace"]: - name = "{%s}%s" % (token["namespace"], token["name"]) - else: - name = token["name"] - - yield END, QName(name), (None, -1, -1) - - elif type == "Comment": - yield COMMENT, token["data"], (None, -1, -1) - - elif type == "Doctype": - yield DOCTYPE, (token["name"], token["publicId"], - token["systemId"]), (None, -1, -1) - - else: - pass # FIXME: What to do? - - if text is not None: - yield TEXT, text, (None, -1, -1) - - treeTypes["genshi"] = \ - {"builder": treebuilders.getTreeBuilder("dom"), - "adapter": GenshiAdapter, - "walker": treewalkers.getTreeWalker("genshi")} - - -def concatenateCharacterTokens(tokens): - charactersToken = None - for token in tokens: - type = token["type"] - if type in ("Characters", "SpaceCharacters"): - if charactersToken is None: - charactersToken = {"type": "Characters", "data": token["data"]} - else: - charactersToken["data"] += token["data"] - else: - if charactersToken is not None: - yield charactersToken - charactersToken = None - yield token - if charactersToken is not None: - yield charactersToken - - -def convertTokens(tokens): - output = [] - indent = 0 - for token in concatenateCharacterTokens(tokens): - type = token["type"] - if type in ("StartTag", "EmptyTag"): - if (token["namespace"] and - token["namespace"] != constants.namespaces["html"]): - if token["namespace"] in constants.prefixes: - name = constants.prefixes[token["namespace"]] - else: - name = token["namespace"] - name += " " + token["name"] - else: - name = token["name"] - output.append("%s<%s>" % (" " * indent, name)) - indent += 2 - attrs = token["data"] - if attrs: - # TODO: Remove this if statement, attrs should always exist - for (namespace, name), value in sorted(attrs.items()): - if namespace: - if namespace in constants.prefixes: - outputname = constants.prefixes[namespace] - else: - outputname = namespace - outputname += " " + name - else: - outputname = name - output.append("%s%s=\"%s\"" % (" " * indent, outputname, value)) - if type == "EmptyTag": - indent -= 2 - elif type == "EndTag": - indent -= 2 - elif type == "Comment": - output.append("%s<!-- %s -->" % (" " * indent, token["data"])) - elif type == "Doctype": - if token["name"]: - if token["publicId"]: - output.append("""%s<!DOCTYPE %s "%s" "%s">""" % - (" " * indent, token["name"], - token["publicId"], - token["systemId"] and token["systemId"] or "")) - elif token["systemId"]: - output.append("""%s<!DOCTYPE %s "" "%s">""" % - (" " * indent, token["name"], - token["systemId"])) - else: - output.append("%s<!DOCTYPE %s>" % (" " * indent, - token["name"])) - else: - output.append("%s<!DOCTYPE >" % (" " * indent,)) - elif type in ("Characters", "SpaceCharacters"): - output.append("%s\"%s\"" % (" " * indent, token["data"])) - else: - pass # TODO: what to do with errors? - return "\n".join(output) - -import re -attrlist = re.compile(r"^(\s+)\w+=.*(\n\1\w+=.*)+", re.M) - - -def sortattrs(x): - lines = x.group(0).split("\n") - lines.sort() - return "\n".join(lines) - - -class TokenTestCase(unittest.TestCase): - def test_all_tokens(self): - expected = [ - {'data': {}, 'type': 'StartTag', 'namespace': 'http://www.w3.org/1999/xhtml', 'name': 'html'}, - {'data': {}, 'type': 'StartTag', 'namespace': 'http://www.w3.org/1999/xhtml', 'name': 'head'}, - {'data': {}, 'type': 'EndTag', 'namespace': 'http://www.w3.org/1999/xhtml', 'name': 'head'}, - {'data': {}, 'type': 'StartTag', 'namespace': 'http://www.w3.org/1999/xhtml', 'name': 'body'}, - {'data': 'a', 'type': 'Characters'}, - {'data': {}, 'type': 'StartTag', 'namespace': 'http://www.w3.org/1999/xhtml', 'name': 'div'}, - {'data': 'b', 'type': 'Characters'}, - {'data': {}, 'type': 'EndTag', 'namespace': 'http://www.w3.org/1999/xhtml', 'name': 'div'}, - {'data': 'c', 'type': 'Characters'}, - {'data': {}, 'type': 'EndTag', 'namespace': 'http://www.w3.org/1999/xhtml', 'name': 'body'}, - {'data': {}, 'type': 'EndTag', 'namespace': 'http://www.w3.org/1999/xhtml', 'name': 'html'} - ] - for treeName, treeCls in treeTypes.items(): - p = html5parser.HTMLParser(tree=treeCls["builder"]) - document = p.parse("<html><head></head><body>a<div>b</div>c</body></html>") - document = treeCls.get("adapter", lambda x: x)(document) - output = treeCls["walker"](document) - for expectedToken, outputToken in zip(expected, output): - self.assertEqual(expectedToken, outputToken) - - -def runTreewalkerTest(innerHTML, input, expected, errors, treeClass): - warnings.resetwarnings() - warnings.simplefilter("error") - try: - p = html5parser.HTMLParser(tree=treeClass["builder"]) - if innerHTML: - document = p.parseFragment(input, innerHTML) - else: - document = p.parse(input) - except constants.DataLossWarning: - # Ignore testcases we know we don't pass - return - - document = treeClass.get("adapter", lambda x: x)(document) - try: - output = convertTokens(treeClass["walker"](document)) - output = attrlist.sub(sortattrs, output) - expected = attrlist.sub(sortattrs, convertExpected(expected)) - diff = "".join(unified_diff([line + "\n" for line in expected.splitlines()], - [line + "\n" for line in output.splitlines()], - "Expected", "Received")) - assert expected == output, "\n".join([ - "", "Input:", input, - "", "Expected:", expected, - "", "Received:", output, - "", "Diff:", diff, - ]) - except NotImplementedError: - pass # Amnesty for those that confess... - - -def test_treewalker(): - sys.stdout.write('Testing tree walkers ' + " ".join(list(treeTypes.keys())) + "\n") - - for treeName, treeCls in treeTypes.items(): - files = get_data_files('tree-construction') - for filename in files: - testName = os.path.basename(filename).replace(".dat", "") - if testName in ("template",): - continue - - tests = TestData(filename, "data") - - for index, test in enumerate(tests): - (input, errors, - innerHTML, expected) = [test[key] for key in ("data", "errors", - "document-fragment", - "document")] - errors = errors.split("\n") - yield runTreewalkerTest, innerHTML, input, expected, errors, treeCls - - -def set_attribute_on_first_child(docfrag, name, value, treeName): - """naively sets an attribute on the first child of the document - fragment passed in""" - setter = {'ElementTree': lambda d: d[0].set, - 'DOM': lambda d: d.firstChild.setAttribute} - setter['cElementTree'] = setter['ElementTree'] - try: - setter.get(treeName, setter['DOM'])(docfrag)(name, value) - except AttributeError: - setter['ElementTree'](docfrag)(name, value) - - -def runTreewalkerEditTest(intext, expected, attrs_to_add, tree): - """tests what happens when we add attributes to the intext""" - treeName, treeClass = tree - parser = html5parser.HTMLParser(tree=treeClass["builder"]) - document = parser.parseFragment(intext) - for nom, val in attrs_to_add: - set_attribute_on_first_child(document, nom, val, treeName) - - document = treeClass.get("adapter", lambda x: x)(document) - output = convertTokens(treeClass["walker"](document)) - output = attrlist.sub(sortattrs, output) - if not output in expected: - raise AssertionError("TreewalkerEditTest: %s\nExpected:\n%s\nReceived:\n%s" % (treeName, expected, output)) - - -def test_treewalker_six_mix(): - """Str/Unicode mix. If str attrs added to tree""" - - # On Python 2.x string literals are of type str. Unless, like this - # file, the programmer imports unicode_literals from __future__. - # In that case, string literals become objects of type unicode. - - # This test simulates a Py2 user, modifying attributes on a document - # fragment but not using the u'' syntax nor importing unicode_literals - sm_tests = [ - ('<a href="http://example.com">Example</a>', - [(str('class'), str('test123'))], - '<a>\n class="test123"\n href="http://example.com"\n "Example"'), - - ('<link href="http://example.com/cow">', - [(str('rel'), str('alternate'))], - '<link>\n href="http://example.com/cow"\n rel="alternate"\n "Example"') - ] - - for tree in treeTypes.items(): - for intext, attrs, expected in sm_tests: - yield runTreewalkerEditTest, intext, expected, attrs, tree diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_whitespace_filter.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_whitespace_filter.py deleted file mode 100644 index 9ed27fd6ac0..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_whitespace_filter.py +++ /dev/null @@ -1,133 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -import unittest - -from html5lib.filters.whitespace import Filter -from html5lib.constants import spaceCharacters -spaceCharacters = "".join(spaceCharacters) - -try: - unittest.TestCase.assertEqual -except AttributeError: - unittest.TestCase.assertEqual = unittest.TestCase.assertEquals - - -class TestCase(unittest.TestCase): - def runTest(self, input, expected): - output = list(Filter(input)) - errorMsg = "\n".join(["\n\nInput:", str(input), - "\nExpected:", str(expected), - "\nReceived:", str(output)]) - self.assertEqual(output, expected, errorMsg) - - def runTestUnmodifiedOutput(self, input): - self.runTest(input, input) - - def testPhrasingElements(self): - self.runTestUnmodifiedOutput( - [{"type": "Characters", "data": "This is a "}, - {"type": "StartTag", "name": "span", "data": []}, - {"type": "Characters", "data": "phrase"}, - {"type": "EndTag", "name": "span", "data": []}, - {"type": "SpaceCharacters", "data": " "}, - {"type": "Characters", "data": "with"}, - {"type": "SpaceCharacters", "data": " "}, - {"type": "StartTag", "name": "em", "data": []}, - {"type": "Characters", "data": "emphasised text"}, - {"type": "EndTag", "name": "em", "data": []}, - {"type": "Characters", "data": " and an "}, - {"type": "StartTag", "name": "img", "data": [["alt", "image"]]}, - {"type": "Characters", "data": "."}]) - - def testLeadingWhitespace(self): - self.runTest( - [{"type": "StartTag", "name": "p", "data": []}, - {"type": "SpaceCharacters", "data": spaceCharacters}, - {"type": "Characters", "data": "foo"}, - {"type": "EndTag", "name": "p", "data": []}], - [{"type": "StartTag", "name": "p", "data": []}, - {"type": "SpaceCharacters", "data": " "}, - {"type": "Characters", "data": "foo"}, - {"type": "EndTag", "name": "p", "data": []}]) - - def testLeadingWhitespaceAsCharacters(self): - self.runTest( - [{"type": "StartTag", "name": "p", "data": []}, - {"type": "Characters", "data": spaceCharacters + "foo"}, - {"type": "EndTag", "name": "p", "data": []}], - [{"type": "StartTag", "name": "p", "data": []}, - {"type": "Characters", "data": " foo"}, - {"type": "EndTag", "name": "p", "data": []}]) - - def testTrailingWhitespace(self): - self.runTest( - [{"type": "StartTag", "name": "p", "data": []}, - {"type": "Characters", "data": "foo"}, - {"type": "SpaceCharacters", "data": spaceCharacters}, - {"type": "EndTag", "name": "p", "data": []}], - [{"type": "StartTag", "name": "p", "data": []}, - {"type": "Characters", "data": "foo"}, - {"type": "SpaceCharacters", "data": " "}, - {"type": "EndTag", "name": "p", "data": []}]) - - def testTrailingWhitespaceAsCharacters(self): - self.runTest( - [{"type": "StartTag", "name": "p", "data": []}, - {"type": "Characters", "data": "foo" + spaceCharacters}, - {"type": "EndTag", "name": "p", "data": []}], - [{"type": "StartTag", "name": "p", "data": []}, - {"type": "Characters", "data": "foo "}, - {"type": "EndTag", "name": "p", "data": []}]) - - def testWhitespace(self): - self.runTest( - [{"type": "StartTag", "name": "p", "data": []}, - {"type": "Characters", "data": "foo" + spaceCharacters + "bar"}, - {"type": "EndTag", "name": "p", "data": []}], - [{"type": "StartTag", "name": "p", "data": []}, - {"type": "Characters", "data": "foo bar"}, - {"type": "EndTag", "name": "p", "data": []}]) - - def testLeadingWhitespaceInPre(self): - self.runTestUnmodifiedOutput( - [{"type": "StartTag", "name": "pre", "data": []}, - {"type": "SpaceCharacters", "data": spaceCharacters}, - {"type": "Characters", "data": "foo"}, - {"type": "EndTag", "name": "pre", "data": []}]) - - def testLeadingWhitespaceAsCharactersInPre(self): - self.runTestUnmodifiedOutput( - [{"type": "StartTag", "name": "pre", "data": []}, - {"type": "Characters", "data": spaceCharacters + "foo"}, - {"type": "EndTag", "name": "pre", "data": []}]) - - def testTrailingWhitespaceInPre(self): - self.runTestUnmodifiedOutput( - [{"type": "StartTag", "name": "pre", "data": []}, - {"type": "Characters", "data": "foo"}, - {"type": "SpaceCharacters", "data": spaceCharacters}, - {"type": "EndTag", "name": "pre", "data": []}]) - - def testTrailingWhitespaceAsCharactersInPre(self): - self.runTestUnmodifiedOutput( - [{"type": "StartTag", "name": "pre", "data": []}, - {"type": "Characters", "data": "foo" + spaceCharacters}, - {"type": "EndTag", "name": "pre", "data": []}]) - - def testWhitespaceInPre(self): - self.runTestUnmodifiedOutput( - [{"type": "StartTag", "name": "pre", "data": []}, - {"type": "Characters", "data": "foo" + spaceCharacters + "bar"}, - {"type": "EndTag", "name": "pre", "data": []}]) - - -def buildTestSuite(): - return unittest.defaultTestLoader.loadTestsFromName(__name__) - - -def main(): - buildTestSuite() - unittest.main() - -if __name__ == "__main__": - main() diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/AUTHORS.rst b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/AUTHORS.rst deleted file mode 100644 index 4a7de17ad45..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/AUTHORS.rst +++ /dev/null @@ -1,34 +0,0 @@ -Credits -======= - -The ``html5lib`` test data is maintained by: - -- James Graham -- Geoffrey Sneddon - - -Contributors ------------- - -- Adam Barth -- Andi Sidwell -- Anne van Kesteren -- David Flanagan -- Edward Z. Yang -- Geoffrey Sneddon -- Henri Sivonen -- Ian Hickson -- Jacques Distler -- James Graham -- Lachlan Hunt -- lantis63 -- Mark Pilgrim -- Mats Palmgren -- Ms2ger -- Nolan Waite -- Philip Taylor -- Rafael Weinstein -- Ryan King -- Sam Ruby -- Simon Pieters -- Thomas Broyer diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/LICENSE b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/LICENSE deleted file mode 100644 index 8812371b41c..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -Copyright (c) 2006-2013 James Graham, Geoffrey Sneddon, and -other contributors - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/encoding/chardet/test_big5.txt b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/encoding/chardet/test_big5.txt deleted file mode 100644 index 91074c98d21..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/encoding/chardet/test_big5.txt +++ /dev/null @@ -1,51 +0,0 @@ -ѤlmDwgn Ĥ@~|Q - -ѤlDg - -Ĥ@ - -DiDAD`DCWiWAD`WCLAWѦalQAWUC -G`LAH[䧮F`AH[uC̡APXӲWAPפ -ȡCȤSȡAC - -ĤG - -ѤUҪAcoQҪAoCGLۥ͡A -ۦAuۧΡAU۶ɡAn۩MAeHCOHtHBuL -vơAuvСCU@jӤAͦӤAӤA\ -ӥ~CҰߥ~AOHhC - -ĤT - -|AϥQQofAϥsQiAϥߤ -COHutHvvAߡA両AzӡAj䰩C`ϥLL -CϤҴ̤]CuLvAhLvC - -ĥ| - -uDvRAӥΤΤաCWAUvQUAѨɡAM -APСQ祿ΦsC^֤lHHҤC - -Ĥ - -ѦaAHU쪯QtHAHʩm쪯CѦaAS -GHӤ}AʦӷUXChƽaApuC - -Ĥ - -AOץȦɡCȦɤAOפѦaڡCYsAΤԡC - -ĤC - -Ѫa[CѦaҥHB[̡AH䤣ۥ͡AG[COHtH -ӨA~䨭ӨsCDHLpHGনpC - -ĤK - -WYCQUӤCBHҴcAGXDC~aAߵ -WAPAHAFvAƵAʵɡCҰߤAGLסC - -ĤE - -ӬդApwQӾUAiOCɺAuQIQ -źAۿSC\EhAѤDC diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/encoding/test-yahoo-jp.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/encoding/test-yahoo-jp.dat deleted file mode 100644 index 3c25ecb2b1b..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/encoding/test-yahoo-jp.dat +++ /dev/null @@ -1,10 +0,0 @@ -#data -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> -<!--京--> -<title>Yahoo! JAPAN</title> -<meta name="description" content="日本最大級のポータルサイト。検索、オークション、ニュース、メール、コミュニティ、ショッピング、など80以上のサービスを展開。あなたの生活をより豊かにする「ライフ・エンジン」を目指していきます。"> -<style type="text/css" media="all"> -#encoding -euc_jp diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/encoding/tests1.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/encoding/tests1.dat deleted file mode 100644 index 5b585e735f1..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/encoding/tests1.dat +++ /dev/null @@ -1,394 +0,0 @@ -#data -<!DOCTYPE HTML> -<!-- (control test - for the other tests to work, this should pass - you may have to set your defaults appropriately) --> -#encoding -Windows-1252 - -#data -<!DOCTYPE HTML> -<meta charset="ISO-8859-1"> -#encoding -Windows-1252 - -#data -<!DOCTYPE HTML> -<meta charset="iso8859-2"> -#encoding -iso8859-2 - -#data -<!DOCTYPE HTML> -<meta charset='iso8859-2'> -#encoding -iso8859-2 - -#data -<!DOCTYPE HTML> -<meta charset=iso8859-2> -#encoding -iso8859-2 - -#data -<!DOCTYPE HTML> -<meta -charset=iso8859-2> -#encoding -iso8859-2 - -#data -<!DOCTYPE HTML> -<metacharset=iso8859-2> -#encoding -Windows-1252 - -#data -<!DOCTYPE HTML> -<meta http-equiv="Content-Type" content="text/html; charset=iso8859-2"> -<!-- XXX this is a tough one, not sure how to do this one, unless we explictly do content= processing --> -#encoding -iso8859-2 - -#data -<!DOCTYPE HTML> -<meta content="text/html; charset=iso8859-2" http-equiv="Content-Type"> -<!-- XXX this is a tough one, not sure how to do this one, unless we explictly do content= processing --> -#encoding -iso8859-2 - -#data -<!DOCTYPE HTML> -<meta http-equiv="Content-Type" content=text/html; charset=iso8859-2> -#encoding -iso8859-2 - -#data -<!DOCTYPE HTML> -<meta http-equiv="Content-Type content="text/html; charset=iso8859-2"> -#encoding -iso8859-2 - -#data -<!DOCTYPE HTML> -<meta http-equiv="Content-Type " content="text/html; charset=iso8859-2"> -#encoding -Windows-1252 - -#data -<!DOCTYPE HTML> -<meta content="text/html; charset=iso8859-2" http-equiv="Content-Type "> -#encoding -Windows-1252 - -#data -<!DOCTYPE HTML> -<meta http-equiv="Content-Type>" content="text/html; charset=iso8859-2"> -#encoding -Windows-1252 - -#data -<!DOCTYPE HTML> -<meta content="text/html; charset=iso8859-2" http-equiv="Content-Type>"> -#encoding -Windows-1252 - -#data -<!DOCTYPE HTML> -<meta http-equiv="Content-Style-Type" content="text/html; charset=iso8859-2"> -#encoding -Windows-1252 - -#data -<!DOCTYPE HTML> -<meta content="text/html; charset=iso8859-2" http-equiv="Content-Style-Type"> -#encoding -Windows-1252 - -#data -<!DOCTYPE HTML> -<meta name="Content-Style-Type" content="text/html; charset=iso8859-2"> -#encoding -Windows-1252 - -#data -<!DOCTYPE HTML> -<meta content="text/html; charset=iso8859-2" name="Content-Style-Type"> -#encoding -Windows-1252 - -#data -<!DOCTYPE HTML> -<meta content="text/html; charset=iso8859-2"> -#encoding -Windows-1252 - -#data -<!DOCTYPE HTML> -<meta content=" text/html; charset = iso8859-2 "> -#encoding -Windows-1252 - -#data -<!DOCTYPE HTML> -<meta content=" -text/html; charset=iso8859-2 -" http-equiv="Content-Type"> -#encoding -iso8859-2 - -#data -<!DOCTYPE HTML> -<meta charset=" -iso8859-2 -"> -#encoding -iso8859-2 - -#data -<!DOCTYPE HTML> -<meta charset= -iso8859-2 -> -#encoding -iso8859-2 - -#data -<!DOCTYPE HTML> -<meta charset="iso8859-2> -<p>"</p> -#encoding -Windows-1252 - -#data -<!DOCTYPE HTML> -<meta charset=iso8859-2"> -<p>"</p> -#encoding -iso8859-2 - -#data -<!DOCTYPE HTML> -<meta " charset=iso8859-2> -<p>"</p> -#encoding -iso8859-2 - -#data -<!DOCTYPE HTML> -<meta test" charset=iso8859-2> -<p>"</p> -#encoding -iso8859-2 - -#data -<!DOCTYPE HTML> -<meta test=" charset=iso8859-2> -<p>"</p> -#encoding -Windows-1252 - -#data -<!DOCTYPE HTML> -<meta test="' charset=iso8859-2> -<p>"'</p> -#encoding -Windows-1252 - -#data -<!DOCTYPE HTML> -<meta test='" charset=iso8859-2> -<p>'"</p> -#encoding -Windows-1252 - -#data -<!DOCTYPE HTML> -<meta test="" charset=iso8859-2> -#encoding -iso8859-2 - -#data -<!DOCTYPE HTML> -<meta test=x" charset=iso8859-2> -<p>"</p> -#encoding -iso8859-2 - -#data -<!DOCTYPE HTML> -<head></head><p title="x> -<meta test=x" charset=iso8859-2> -<p>"</p> -#encoding -Windows-1252 - -#data -<!DOCTYPE HTML> -<head></head><p title="x> -<meta test=x charset=iso8859-2> -<p>"</p> -#encoding -Windows-1252 - -#data -<!DOCTYPE HTML> -<head></head><p title="x> -<meta charset=iso8859-2> -<p>"</p> -#encoding -Windows-1252 - -#data -<!DOCTYPE HTML> -<head></head><p title="x>"> -<meta charset=iso8859-2> -<p>"</p> -#encoding -iso8859-2 - -#data -<!DOCTYPE HTML> -<meta charset="ISO-8859-1"> -<meta charset="iso8859-2"> -#encoding -Windows-1252 - -#data -<!DOCTYPE HTML> -<meta charset="iso8859-2"> -<meta charset="ISO-8859-1"> -#encoding -iso8859-2 - -#data -<!DOCTYPE HTML> -<!--<meta charset="ISO-8859-1">--> -<meta charset="iso8859-2"> -#encoding -iso8859-2 - -#data -<!DOCTYPE HTML> -<!--<meta charset="iso8859-2">--> -<meta charset="ISO-8859-1"> -#encoding -Windows-1252 - -#data -<!DOCTYPE HTML> -<!-- Starts with UTF-8 BOM --> -#encoding -UTF-8 - -#data -<!DOCTYPE HTML> -<meta charset="ISO-8859-1"> -<!-- Starts with UTF-8 BOM --> -#encoding -UTF-8 - -#data -<!-- 511 characters xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx--> -<meta charset="iso8859-2"> -#encoding -iso8859-2 - -#data -<!-- 512 characters xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx--> -<meta charset="iso8859-2"> -#encoding -iso8859-2 - -#data -<!-- 1024 characters xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx--> -<meta charset="iso8859-2"> -#encoding -iso8859-2 - -#data -<!-- 1025 characters xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz--> -<meta charset="iso8859-2"> -#encoding -iso8859-2 - -#data -<!-- 2048 characters xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx--> -<meta charset="iso8859-2"> -#encoding -iso8859-2 - -#data -<!-- 2049 characters xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz--> -<meta charset="iso8859-2"> -#encoding -iso8859-2 - -#data -<!-- 4096 characters xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx--> -<meta charset="iso8859-2"> -#encoding -iso8859-2 - -#data -<!-- 4097 characters xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz--> -<meta charset="iso8859-2"> -#encoding -iso8859-2 - -#data -<!-- 8192 characters xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx--> -<meta charset="iso8859-2"> -#encoding -iso8859-2 - -#data -<!-- 8193 characters xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz--> -<meta charset="iso8859-2"> -#encoding -iso8859-2 - -#data -<!-- multi-script test --> -<script>alert('step 1 of 3 ("")')</script> -<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> -<script>alert('step 2 of 3 ("")')</script> -<meta charset="iso8859-2"> -<script>alert('step 3 of 3 ("")')</script> -#encoding -iso8859-2 - -#data -<!DOCTYPE HTML> -<script>document.write('<meta charset="ISO-8859-' + '2">')</script> -#encoding -iso8859-2 - -#data -<!DOCTYPE HTML> -<script>document.write('<meta charset="iso8859-2">')</script> -#encoding -iso8859-2 - -#data -<!DOCTYPE HTML> -<script type="text/plain"><meta charset="iso8859-2"></script> -#encoding -iso8859-2 - -#data -<!DOCTYPE HTML> -<style type="text/plain"><meta charset="iso8859-2"></style> -#encoding -iso8859-2 - -#data -<!DOCTYPE HTML> -<p><meta charset="iso8859-2"></p> -#encoding -iso8859-2 - -#data -<!DOCTYPE HTML> -<meta charset="bogus"> -<meta charset="iso8859-2"> -#encoding -iso8859-2 diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/encoding/tests2.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/encoding/tests2.dat deleted file mode 100644 index eee44984d6b..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/encoding/tests2.dat +++ /dev/null @@ -1,115 +0,0 @@ -#data -<meta -#encoding -windows-1252 - -#data -< -#encoding -windows-1252 - -#data -<! -#encoding -windows-1252 - -#data -<meta charset = " -#encoding -windows-1252 - -#data -<meta charset=euc_jp -#encoding -windows-1252 - -#data -<meta <meta charset='euc_jp'> -#encoding -euc_jp - -#data -<meta charset = 'euc_jp'> -#encoding -euc_jp - -#data -<!-- --> -<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -#encoding -utf-8 - -#data -<!-- --> -<meta http-equiv="Content-Type" content="text/html; charset=utf -#encoding -windows-1252 - -#data -<meta http-equiv="Content-Type<meta charset="utf-8"> -#encoding -windows-1252 - -#data -<meta http-equiv="Content-Type" content="text/html; charset='utf-8'"> -#encoding -utf-8 - -#data -<meta http-equiv="Content-Type" content="text/html; charset='utf-8"> -#encoding -windows-1252 - -#data -<meta -#encoding -windows-1252 - -#data -<meta charset = -#encoding -windows-1252 - -#data -<meta charset= utf-8 -> -#encoding -utf-8 - -#data -<meta content = "text/html; -#encoding -windows-1252 - -#data -<meta charset="UTF-16"> -#encoding -utf-8 - -#data -<meta charset="UTF-16LE"> -#encoding -utf-8 - -#data -<meta charset="UTF-16BE"> -#encoding -utf-8 - -#data -<html a=ñ> -<meta charset="utf-8"> -#encoding -utf-8 - -#data -<html ñ> -<meta charset="utf-8"> -#encoding -utf-8 - -#data -<html>ñ -<meta charset="utf-8"> -#encoding -utf-8 diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/core.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/core.test deleted file mode 100644 index c0b4222d2d9..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/core.test +++ /dev/null @@ -1,125 +0,0 @@ -{"tests": [
-
-{"description": "proper attribute value escaping",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "test \"with\" ""}]]],
- "expected": ["<span title='test \"with\" &quot;'>"]
-},
-
-{"description": "proper attribute value non-quoting",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo"}]]],
- "expected": ["<span title=foo>"],
- "xhtml": ["<span title=\"foo\">"]
-},
-
-{"description": "proper attribute value non-quoting (with <)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo<bar"}]]],
- "expected": ["<span title=foo<bar>"],
- "xhtml": ["<span title=\"foo<bar\">"]
-},
-
-{"description": "proper attribute value quoting (with =)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo=bar"}]]],
- "expected": ["<span title=\"foo=bar\">"]
-},
-
-{"description": "proper attribute value quoting (with >)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo>bar"}]]],
- "expected": ["<span title=\"foo>bar\">"]
-},
-
-{"description": "proper attribute value quoting (with \")",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo\"bar"}]]],
- "expected": ["<span title='foo\"bar'>"]
-},
-
-{"description": "proper attribute value quoting (with ')",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo'bar"}]]],
- "expected": ["<span title=\"foo'bar\">"]
-},
-
-{"description": "proper attribute value quoting (with both \" and ')",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo'bar\"baz"}]]],
- "expected": ["<span title=\"foo'bar"baz\">"]
-},
-
-{"description": "proper attribute value quoting (with space)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo bar"}]]],
- "expected": ["<span title=\"foo bar\">"]
-},
-
-{"description": "proper attribute value quoting (with tab)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo\tbar"}]]],
- "expected": ["<span title=\"foo\tbar\">"]
-},
-
-{"description": "proper attribute value quoting (with LF)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo\nbar"}]]],
- "expected": ["<span title=\"foo\nbar\">"]
-},
-
-{"description": "proper attribute value quoting (with CR)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo\rbar"}]]],
- "expected": ["<span title=\"foo\rbar\">"]
-},
-
-{"description": "proper attribute value non-quoting (with linetab)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo\u000Bbar"}]]],
- "expected": ["<span title=foo\u000Bbar>"],
- "xhtml": ["<span title=\"foo\u000Bbar\">"]
-},
-
-{"description": "proper attribute value quoting (with form feed)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo\u000Cbar"}]]],
- "expected": ["<span title=\"foo\u000Cbar\">"]
-},
-
-{"description": "void element (as EmptyTag token)",
- "input": [["EmptyTag", "img", {}]],
- "expected": ["<img>"],
- "xhtml": ["<img />"]
-},
-
-{"description": "void element (as StartTag token)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "img", {}]],
- "expected": ["<img>"],
- "xhtml": ["<img />"]
-},
-
-{"description": "doctype in error",
- "input": [["Doctype", "foo"]],
- "expected": ["<!DOCTYPE foo>"]
-},
-
-{"description": "character data",
- "options": {"encoding":"utf-8"},
- "input": [["Characters", "a<b>c&d"]],
- "expected": ["a<b>c&d"]
-},
-
-{"description": "rcdata",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "script", {}], ["Characters", "a<b>c&d"]],
- "expected": ["<script>a<b>c&d"],
- "xhtml": ["<script>a<b>c&d"]
-},
-
-{"description": "doctype",
- "input": [["Doctype", "HTML"]],
- "expected": ["<!DOCTYPE HTML>"]
-},
-
-{"description": "HTML 4.01 DOCTYPE",
- "input": [["Doctype", "HTML", "-//W3C//DTD HTML 4.01//EN", "http://www.w3.org/TR/html4/strict.dtd"]],
- "expected": ["<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">"]
-},
-
-{"description": "HTML 4.01 DOCTYPE without system identifer",
- "input": [["Doctype", "HTML", "-//W3C//DTD HTML 4.01//EN"]],
- "expected": ["<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">"]
-},
-
-{"description": "IBM DOCTYPE without public identifer",
- "input": [["Doctype", "html", "", "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd"]],
- "expected": ["<!DOCTYPE html SYSTEM \"http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd\">"]
-}
-
-]}
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/injectmeta.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/injectmeta.test deleted file mode 100644 index feaaa44f839..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/injectmeta.test +++ /dev/null @@ -1,66 +0,0 @@ -{"tests": [
-
-{"description": "no encoding",
- "options": {"inject_meta_charset": true},
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["EndTag", "http://www.w3.org/1999/xhtml", "head"]],
- "expected": [""],
- "xhtml": ["<head></head>"]
-},
-
-{"description": "empytag head",
- "options": {"inject_meta_charset": true, "encoding":"utf-8"},
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["EndTag", "http://www.w3.org/1999/xhtml", "head"]],
- "expected": ["<meta charset=utf-8>"],
- "xhtml": ["<head><meta charset=\"utf-8\" /></head>"]
-},
-
-{"description": "head w/title",
- "options": {"inject_meta_charset": true, "encoding":"utf-8"},
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["StartTag", "http://www.w3.org/1999/xhtml","title",{}], ["Characters", "foo"],["EndTag", "http://www.w3.org/1999/xhtml", "title"], ["EndTag", "http://www.w3.org/1999/xhtml", "head"]],
- "expected": ["<meta charset=utf-8><title>foo</title>"],
- "xhtml": ["<head><meta charset=\"utf-8\" /><title>foo</title></head>"]
-},
-
-{"description": "head w/meta-charset",
- "options": {"inject_meta_charset": true, "encoding":"utf-8"},
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["EmptyTag","meta",[{"namespace": null, "name": "charset", "value": "ascii"}]], ["EndTag", "http://www.w3.org/1999/xhtml", "head"]],
- "expected": ["<meta charset=utf-8>"],
- "xhtml": ["<head><meta charset=\"utf-8\" /></head>"]
-},
-
-{"description": "head w/ two meta-charset",
- "options": {"inject_meta_charset": true, "encoding":"utf-8"},
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["EmptyTag","meta",[{"namespace": null, "name": "charset", "value": "ascii"}]], ["EmptyTag","meta",[{"namespace": null, "name": "charset", "value": "ascii"}]], ["EndTag", "http://www.w3.org/1999/xhtml", "head"]],
- "expected": ["<meta charset=utf-8><meta charset=utf-8>", "<head><meta charset=utf-8><meta charset=ascii>"],
- "xhtml": ["<head><meta charset=\"utf-8\" /><meta charset=\"utf-8\" /></head>", "<head><meta charset=\"utf-8\" /><meta charset=\"ascii\" /></head>"]
-},
-
-{"description": "head w/robots",
- "options": {"inject_meta_charset": true, "encoding":"utf-8"},
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["EmptyTag","meta",[{"namespace": null, "name": "name", "value": "robots"},{"namespace": null, "name": "content", "value": "noindex"}]], ["EndTag", "http://www.w3.org/1999/xhtml", "head"]],
- "expected": ["<meta charset=utf-8><meta content=noindex name=robots>"],
- "xhtml": ["<head><meta charset=\"utf-8\" /><meta content=\"noindex\" name=\"robots\" /></head>"]
-},
-
-{"description": "head w/robots & charset",
- "options": {"inject_meta_charset": true, "encoding":"utf-8"},
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["EmptyTag","meta",[{"namespace": null, "name": "name", "value": "robots"},{"namespace": null, "name": "content", "value": "noindex"}]], ["EmptyTag","meta",[{"namespace": null, "name": "charset", "value": "ascii"}]], ["EndTag", "http://www.w3.org/1999/xhtml", "head"]],
- "expected": ["<meta content=noindex name=robots><meta charset=utf-8>"],
- "xhtml": ["<head><meta content=\"noindex\" name=\"robots\" /><meta charset=\"utf-8\" /></head>"]
-},
-
-{"description": "head w/ charset in http-equiv content-type",
- "options": {"inject_meta_charset": true, "encoding":"utf-8"},
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["EmptyTag","meta",[{"namespace": null, "name": "http-equiv", "value": "content-type"}, {"namespace": null, "name": "content", "value": "text/html; charset=ascii"}]], ["EndTag", "http://www.w3.org/1999/xhtml", "head"]],
- "expected": ["<meta content=\"text/html; charset=utf-8\" http-equiv=content-type>"],
- "xhtml": ["<head><meta content=\"text/html; charset=utf-8\" http-equiv=\"content-type\" /></head>"]
-},
-
-{"description": "head w/robots & charset in http-equiv content-type",
- "options": {"inject_meta_charset": true, "encoding":"utf-8"},
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["EmptyTag","meta",[{"namespace": null, "name": "name", "value": "robots"},{"namespace": null, "name": "content", "value": "noindex"}]], ["EmptyTag","meta",[{"namespace": null, "name": "http-equiv", "value": "content-type"}, {"namespace": null, "name": "content", "value": "text/html; charset=ascii"}]], ["EndTag", "http://www.w3.org/1999/xhtml", "head"]],
- "expected": ["<meta content=noindex name=robots><meta content=\"text/html; charset=utf-8\" http-equiv=content-type>"],
- "xhtml": ["<head><meta content=\"noindex\" name=\"robots\" /><meta content=\"text/html; charset=utf-8\" http-equiv=\"content-type\" /></head>"]
-}
-
-]}
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/optionaltags.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/optionaltags.test deleted file mode 100644 index 80a5edf8968..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/optionaltags.test +++ /dev/null @@ -1,965 +0,0 @@ -{"tests": [
-
-{"description": "html start-tag followed by text, with attributes",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "html", [{"namespace": null, "name": "lang", "value": "en"}]], ["Characters", "foo"]],
- "expected": ["<html lang=en>foo"]
-},
-
-
-
-{"description": "html start-tag followed by comment",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "html", {}], ["Comment", "foo"]],
- "expected": ["<html><!--foo-->"]
-},
-
-{"description": "html start-tag followed by space character",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "html", {}], ["Characters", " foo"]],
- "expected": ["<html> foo"]
-},
-
-{"description": "html start-tag followed by text",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "html", {}], ["Characters", "foo"]],
- "expected": ["foo"]
-},
-
-{"description": "html start-tag followed by start-tag",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "html", {}], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["<foo>"]
-},
-
-{"description": "html start-tag followed by end-tag",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "html", {}], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["</foo>"]
-},
-
-{"description": "html start-tag at EOF (shouldn't ever happen?!)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "html", {}]],
- "expected": [""]
-},
-
-
-
-{"description": "html end-tag followed by comment",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "html"], ["Comment", "foo"]],
- "expected": ["</html><!--foo-->"]
-},
-
-{"description": "html end-tag followed by space character",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "html"], ["Characters", " foo"]],
- "expected": ["</html> foo"]
-},
-
-{"description": "html end-tag followed by text",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "html"], ["Characters", "foo"]],
- "expected": ["foo"]
-},
-
-{"description": "html end-tag followed by start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "html"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["<foo>"]
-},
-
-{"description": "html end-tag followed by end-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "html"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["</foo>"]
-},
-
-{"description": "html end-tag at EOF",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "html"]],
- "expected": [""]
-},
-
-
-
-
-{"description": "head start-tag followed by comment",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["Comment", "foo"]],
- "expected": ["<head><!--foo-->"]
-},
-
-{"description": "head start-tag followed by space character",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["Characters", " foo"]],
- "expected": ["<head> foo"]
-},
-
-{"description": "head start-tag followed by text",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["Characters", "foo"]],
- "expected": ["<head>foo"]
-},
-
-{"description": "head start-tag followed by start-tag",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["<foo>"]
-},
-
-{"description": "head start-tag followed by end-tag (shouldn't ever happen?!)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["<head></foo>", "</foo>"]
-},
-
-{"description": "empty head element",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["EndTag", "http://www.w3.org/1999/xhtml", "head"]],
- "expected": [""]
-},
-
-{"description": "head start-tag followed by empty-tag",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["EmptyTag", "foo", {}]],
- "expected": ["<foo>"]
-},
-
-{"description": "head start-tag at EOF (shouldn't ever happen?!)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}]],
- "expected": ["<head>", ""]
-},
-
-
-
-{"description": "head end-tag followed by comment",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "head"], ["Comment", "foo"]],
- "expected": ["</head><!--foo-->"]
-},
-
-{"description": "head end-tag followed by space character",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "head"], ["Characters", " foo"]],
- "expected": ["</head> foo"]
-},
-
-{"description": "head end-tag followed by text",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "head"], ["Characters", "foo"]],
- "expected": ["foo"]
-},
-
-{"description": "head end-tag followed by start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "head"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["<foo>"]
-},
-
-{"description": "head end-tag followed by end-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "head"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["</foo>"]
-},
-
-{"description": "head end-tag at EOF",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "head"]],
- "expected": [""]
-},
-
-
-
-
-{"description": "body start-tag followed by comment",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "body", {}], ["Comment", "foo"]],
- "expected": ["<body><!--foo-->"]
-},
-
-{"description": "body start-tag followed by space character",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "body", {}], ["Characters", " foo"]],
- "expected": ["<body> foo"]
-},
-
-{"description": "body start-tag followed by text",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "body", {}], ["Characters", "foo"]],
- "expected": ["foo"]
-},
-
-{"description": "body start-tag followed by start-tag",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "body", {}], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["<foo>"]
-},
-
-{"description": "body start-tag followed by end-tag",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "body", {}], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["</foo>"]
-},
-
-{"description": "body start-tag at EOF (shouldn't ever happen?!)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "body", {}]],
- "expected": [""]
-},
-
-
-
-{"description": "body end-tag followed by comment",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "body"], ["Comment", "foo"]],
- "expected": ["</body><!--foo-->"]
-},
-
-{"description": "body end-tag followed by space character",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "body"], ["Characters", " foo"]],
- "expected": ["</body> foo"]
-},
-
-{"description": "body end-tag followed by text",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "body"], ["Characters", "foo"]],
- "expected": ["foo"]
-},
-
-{"description": "body end-tag followed by start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "body"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["<foo>"]
-},
-
-{"description": "body end-tag followed by end-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "body"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["</foo>"]
-},
-
-{"description": "body end-tag at EOF",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "body"]],
- "expected": [""]
-},
-
-
-
-
-{"description": "li end-tag followed by comment",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "li"], ["Comment", "foo"]],
- "expected": ["</li><!--foo-->"]
-},
-
-{"description": "li end-tag followed by space character",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "li"], ["Characters", " foo"]],
- "expected": ["</li> foo"]
-},
-
-{"description": "li end-tag followed by text",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "li"], ["Characters", "foo"]],
- "expected": ["</li>foo"]
-},
-
-{"description": "li end-tag followed by start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "li"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["</li><foo>"]
-},
-
-{"description": "li end-tag followed by li start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "li"], ["StartTag", "http://www.w3.org/1999/xhtml", "li", {}]],
- "expected": ["<li>"]
-},
-
-{"description": "li end-tag followed by end-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "li"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["</foo>"]
-},
-
-{"description": "li end-tag at EOF",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "li"]],
- "expected": [""]
-},
-
-
-
-
-{"description": "dt end-tag followed by comment",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dt"], ["Comment", "foo"]],
- "expected": ["</dt><!--foo-->"]
-},
-
-{"description": "dt end-tag followed by space character",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dt"], ["Characters", " foo"]],
- "expected": ["</dt> foo"]
-},
-
-{"description": "dt end-tag followed by text",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dt"], ["Characters", "foo"]],
- "expected": ["</dt>foo"]
-},
-
-{"description": "dt end-tag followed by start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dt"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["</dt><foo>"]
-},
-
-{"description": "dt end-tag followed by dt start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dt"], ["StartTag", "http://www.w3.org/1999/xhtml", "dt", {}]],
- "expected": ["<dt>"]
-},
-
-{"description": "dt end-tag followed by dd start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dt"], ["StartTag", "http://www.w3.org/1999/xhtml", "dd", {}]],
- "expected": ["<dd>"]
-},
-
-{"description": "dt end-tag followed by end-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dt"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["</dt></foo>"]
-},
-
-{"description": "dt end-tag at EOF",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dt"]],
- "expected": ["</dt>"]
-},
-
-
-
-
-{"description": "dd end-tag followed by comment",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dd"], ["Comment", "foo"]],
- "expected": ["</dd><!--foo-->"]
-},
-
-{"description": "dd end-tag followed by space character",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dd"], ["Characters", " foo"]],
- "expected": ["</dd> foo"]
-},
-
-{"description": "dd end-tag followed by text",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dd"], ["Characters", "foo"]],
- "expected": ["</dd>foo"]
-},
-
-{"description": "dd end-tag followed by start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dd"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["</dd><foo>"]
-},
-
-{"description": "dd end-tag followed by dd start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dd"], ["StartTag", "http://www.w3.org/1999/xhtml", "dd", {}]],
- "expected": ["<dd>"]
-},
-
-{"description": "dd end-tag followed by dt start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dd"], ["StartTag", "http://www.w3.org/1999/xhtml", "dt", {}]],
- "expected": ["<dt>"]
-},
-
-{"description": "dd end-tag followed by end-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dd"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["</foo>"]
-},
-
-{"description": "dd end-tag at EOF",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dd"]],
- "expected": [""]
-},
-
-
-
-
-{"description": "p end-tag followed by comment",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["Comment", "foo"]],
- "expected": ["</p><!--foo-->"]
-},
-
-{"description": "p end-tag followed by space character",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["Characters", " foo"]],
- "expected": ["</p> foo"]
-},
-
-{"description": "p end-tag followed by text",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["Characters", "foo"]],
- "expected": ["</p>foo"]
-},
-
-{"description": "p end-tag followed by start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["</p><foo>"]
-},
-
-{"description": "p end-tag followed by address start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "address", {}]],
- "expected": ["<address>"]
-},
-
-{"description": "p end-tag followed by article start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "article", {}]],
- "expected": ["<article>"]
-},
-
-{"description": "p end-tag followed by aside start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "aside", {}]],
- "expected": ["<aside>"]
-},
-
-{"description": "p end-tag followed by blockquote start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "blockquote", {}]],
- "expected": ["<blockquote>"]
-},
-
-{"description": "p end-tag followed by datagrid start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "datagrid", {}]],
- "expected": ["<datagrid>"]
-},
-
-{"description": "p end-tag followed by dialog start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "dialog", {}]],
- "expected": ["<dialog>"]
-},
-
-{"description": "p end-tag followed by dir start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "dir", {}]],
- "expected": ["<dir>"]
-},
-
-{"description": "p end-tag followed by div start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "div", {}]],
- "expected": ["<div>"]
-},
-
-{"description": "p end-tag followed by dl start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "dl", {}]],
- "expected": ["<dl>"]
-},
-
-{"description": "p end-tag followed by fieldset start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "fieldset", {}]],
- "expected": ["<fieldset>"]
-},
-
-{"description": "p end-tag followed by footer start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "footer", {}]],
- "expected": ["<footer>"]
-},
-
-{"description": "p end-tag followed by form start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "form", {}]],
- "expected": ["<form>"]
-},
-
-{"description": "p end-tag followed by h1 start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "h1", {}]],
- "expected": ["<h1>"]
-},
-
-{"description": "p end-tag followed by h2 start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "h2", {}]],
- "expected": ["<h2>"]
-},
-
-{"description": "p end-tag followed by h3 start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "h3", {}]],
- "expected": ["<h3>"]
-},
-
-{"description": "p end-tag followed by h4 start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "h4", {}]],
- "expected": ["<h4>"]
-},
-
-{"description": "p end-tag followed by h5 start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "h5", {}]],
- "expected": ["<h5>"]
-},
-
-{"description": "p end-tag followed by h6 start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "h6", {}]],
- "expected": ["<h6>"]
-},
-
-{"description": "p end-tag followed by header start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "header", {}]],
- "expected": ["<header>"]
-},
-
-{"description": "p end-tag followed by hr empty-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["EmptyTag", "hr", {}]],
- "expected": ["<hr>"]
-},
-
-{"description": "p end-tag followed by menu start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "menu", {}]],
- "expected": ["<menu>"]
-},
-
-{"description": "p end-tag followed by nav start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "nav", {}]],
- "expected": ["<nav>"]
-},
-
-{"description": "p end-tag followed by ol start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "ol", {}]],
- "expected": ["<ol>"]
-},
-
-{"description": "p end-tag followed by p start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "p", {}]],
- "expected": ["<p>"]
-},
-
-{"description": "p end-tag followed by pre start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "pre", {}]],
- "expected": ["<pre>"]
-},
-
-{"description": "p end-tag followed by section start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "section", {}]],
- "expected": ["<section>"]
-},
-
-{"description": "p end-tag followed by table start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "table", {}]],
- "expected": ["<table>"]
-},
-
-{"description": "p end-tag followed by ul start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "ul", {}]],
- "expected": ["<ul>"]
-},
-
-{"description": "p end-tag followed by end-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["</foo>"]
-},
-
-{"description": "p end-tag at EOF",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"]],
- "expected": [""]
-},
-
-
-
-
-{"description": "optgroup end-tag followed by comment",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "optgroup"], ["Comment", "foo"]],
- "expected": ["</optgroup><!--foo-->"]
-},
-
-{"description": "optgroup end-tag followed by space character",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "optgroup"], ["Characters", " foo"]],
- "expected": ["</optgroup> foo"]
-},
-
-{"description": "optgroup end-tag followed by text",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "optgroup"], ["Characters", "foo"]],
- "expected": ["</optgroup>foo"]
-},
-
-{"description": "optgroup end-tag followed by start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "optgroup"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["</optgroup><foo>"]
-},
-
-{"description": "optgroup end-tag followed by optgroup start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "optgroup"], ["StartTag", "http://www.w3.org/1999/xhtml", "optgroup", {}]],
- "expected": ["<optgroup>"]
-},
-
-{"description": "optgroup end-tag followed by end-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "optgroup"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["</foo>"]
-},
-
-{"description": "optgroup end-tag at EOF",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "optgroup"]],
- "expected": [""]
-},
-
-
-
-
-{"description": "option end-tag followed by comment",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "option"], ["Comment", "foo"]],
- "expected": ["</option><!--foo-->"]
-},
-
-{"description": "option end-tag followed by space character",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "option"], ["Characters", " foo"]],
- "expected": ["</option> foo"]
-},
-
-{"description": "option end-tag followed by text",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "option"], ["Characters", "foo"]],
- "expected": ["</option>foo"]
-},
-
-{"description": "option end-tag followed by optgroup start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "option"], ["StartTag", "http://www.w3.org/1999/xhtml", "optgroup", {}]],
- "expected": ["<optgroup>"]
-},
-
-{"description": "option end-tag followed by start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "option"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["</option><foo>"]
-},
-
-{"description": "option end-tag followed by option start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "option"], ["StartTag", "http://www.w3.org/1999/xhtml", "option", {}]],
- "expected": ["<option>"]
-},
-
-{"description": "option end-tag followed by end-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "option"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["</foo>"]
-},
-
-{"description": "option end-tag at EOF",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "option"]],
- "expected": [""]
-},
-
-
-
-
-{"description": "colgroup start-tag followed by comment",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "colgroup", {}], ["Comment", "foo"]],
- "expected": ["<colgroup><!--foo-->"]
-},
-
-{"description": "colgroup start-tag followed by space character",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "colgroup", {}], ["Characters", " foo"]],
- "expected": ["<colgroup> foo"]
-},
-
-{"description": "colgroup start-tag followed by text",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "colgroup", {}], ["Characters", "foo"]],
- "expected": ["<colgroup>foo"]
-},
-
-{"description": "colgroup start-tag followed by start-tag",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "colgroup", {}], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["<colgroup><foo>"]
-},
-
-{"description": "first colgroup in a table with a col child",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "table", {}], ["StartTag", "http://www.w3.org/1999/xhtml", "colgroup", {}], ["EmptyTag", "col", {}]],
- "expected": ["<table><col>"]
-},
-
-{"description": "colgroup with a col child, following another colgroup",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "colgroup"], ["StartTag", "http://www.w3.org/1999/xhtml", "colgroup", {}], ["StartTag", "http://www.w3.org/1999/xhtml", "col", {}]],
- "expected": ["</colgroup><col>", "<colgroup><col>"]
-},
-
-{"description": "colgroup start-tag followed by end-tag",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "colgroup", {}], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["<colgroup></foo>"]
-},
-
-{"description": "colgroup start-tag at EOF",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "colgroup", {}]],
- "expected": ["<colgroup>"]
-},
-
-
-
-{"description": "colgroup end-tag followed by comment",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "colgroup"], ["Comment", "foo"]],
- "expected": ["</colgroup><!--foo-->"]
-},
-
-{"description": "colgroup end-tag followed by space character",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "colgroup"], ["Characters", " foo"]],
- "expected": ["</colgroup> foo"]
-},
-
-{"description": "colgroup end-tag followed by text",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "colgroup"], ["Characters", "foo"]],
- "expected": ["foo"]
-},
-
-{"description": "colgroup end-tag followed by start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "colgroup"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["<foo>"]
-},
-
-{"description": "colgroup end-tag followed by end-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "colgroup"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["</foo>"]
-},
-
-{"description": "colgroup end-tag at EOF",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "colgroup"]],
- "expected": [""]
-},
-
-
-
-
-{"description": "thead end-tag followed by comment",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "thead"], ["Comment", "foo"]],
- "expected": ["</thead><!--foo-->"]
-},
-
-{"description": "thead end-tag followed by space character",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "thead"], ["Characters", " foo"]],
- "expected": ["</thead> foo"]
-},
-
-{"description": "thead end-tag followed by text",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "thead"], ["Characters", "foo"]],
- "expected": ["</thead>foo"]
-},
-
-{"description": "thead end-tag followed by start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "thead"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["</thead><foo>"]
-},
-
-{"description": "thead end-tag followed by tbody start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "thead"], ["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}]],
- "expected": ["<tbody>"]
-},
-
-{"description": "thead end-tag followed by tfoot start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "thead"], ["StartTag", "http://www.w3.org/1999/xhtml", "tfoot", {}]],
- "expected": ["<tfoot>"]
-},
-
-{"description": "thead end-tag followed by end-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "thead"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["</thead></foo>"]
-},
-
-{"description": "thead end-tag at EOF",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "thead"]],
- "expected": ["</thead>"]
-},
-
-
-
-
-{"description": "tbody start-tag followed by comment",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}], ["Comment", "foo"]],
- "expected": ["<tbody><!--foo-->"]
-},
-
-{"description": "tbody start-tag followed by space character",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}], ["Characters", " foo"]],
- "expected": ["<tbody> foo"]
-},
-
-{"description": "tbody start-tag followed by text",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}], ["Characters", "foo"]],
- "expected": ["<tbody>foo"]
-},
-
-{"description": "tbody start-tag followed by start-tag",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["<tbody><foo>"]
-},
-
-{"description": "first tbody in a table with a tr child",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "table", {}], ["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}], ["StartTag", "http://www.w3.org/1999/xhtml", "tr", {}]],
- "expected": ["<table><tr>"]
-},
-
-{"description": "tbody with a tr child, following another tbody",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tbody"], ["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}], ["StartTag", "http://www.w3.org/1999/xhtml", "tr", {}]],
- "expected": ["<tbody><tr>", "</tbody><tr>"]
-},
-
-{"description": "tbody with a tr child, following a thead",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "thead"], ["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}], ["StartTag", "http://www.w3.org/1999/xhtml", "tr", {}]],
- "expected": ["<tbody><tr>", "</thead><tr>"]
-},
-
-{"description": "tbody with a tr child, following a tfoot",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tfoot"], ["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}], ["StartTag", "http://www.w3.org/1999/xhtml", "tr", {}]],
- "expected": ["<tbody><tr>", "</tfoot><tr>"]
-},
-
-{"description": "tbody start-tag followed by end-tag",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["<tbody></foo>"]
-},
-
-{"description": "tbody start-tag at EOF",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}]],
- "expected": ["<tbody>"]
-},
-
-
-
-{"description": "tbody end-tag followed by comment",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tbody"], ["Comment", "foo"]],
- "expected": ["</tbody><!--foo-->"]
-},
-
-{"description": "tbody end-tag followed by space character",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tbody"], ["Characters", " foo"]],
- "expected": ["</tbody> foo"]
-},
-
-{"description": "tbody end-tag followed by text",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tbody"], ["Characters", "foo"]],
- "expected": ["</tbody>foo"]
-},
-
-{"description": "tbody end-tag followed by start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tbody"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["</tbody><foo>"]
-},
-
-{"description": "tbody end-tag followed by tbody start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tbody"], ["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}]],
- "expected": ["<tbody>", "</tbody>"]
-},
-
-{"description": "tbody end-tag followed by tfoot start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tbody"], ["StartTag", "http://www.w3.org/1999/xhtml", "tfoot", {}]],
- "expected": ["<tfoot>"]
-},
-
-{"description": "tbody end-tag followed by end-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tbody"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["</foo>"]
-},
-
-{"description": "tbody end-tag at EOF",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tbody"]],
- "expected": [""]
-},
-
-
-
-
-{"description": "tfoot end-tag followed by comment",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tfoot"], ["Comment", "foo"]],
- "expected": ["</tfoot><!--foo-->"]
-},
-
-{"description": "tfoot end-tag followed by space character",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tfoot"], ["Characters", " foo"]],
- "expected": ["</tfoot> foo"]
-},
-
-{"description": "tfoot end-tag followed by text",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tfoot"], ["Characters", "foo"]],
- "expected": ["</tfoot>foo"]
-},
-
-{"description": "tfoot end-tag followed by start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tfoot"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["</tfoot><foo>"]
-},
-
-{"description": "tfoot end-tag followed by tbody start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tfoot"], ["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}]],
- "expected": ["<tbody>", "</tfoot>"]
-},
-
-{"description": "tfoot end-tag followed by end-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tfoot"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["</foo>"]
-},
-
-{"description": "tfoot end-tag at EOF",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tfoot"]],
- "expected": [""]
-},
-
-
-
-
-{"description": "tr end-tag followed by comment",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tr"], ["Comment", "foo"]],
- "expected": ["</tr><!--foo-->"]
-},
-
-{"description": "tr end-tag followed by space character",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tr"], ["Characters", " foo"]],
- "expected": ["</tr> foo"]
-},
-
-{"description": "tr end-tag followed by text",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tr"], ["Characters", "foo"]],
- "expected": ["</tr>foo"]
-},
-
-{"description": "tr end-tag followed by start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tr"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["</tr><foo>"]
-},
-
-{"description": "tr end-tag followed by tr start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tr"], ["StartTag", "http://www.w3.org/1999/xhtml", "tr", {}]],
- "expected": ["<tr>", "</tr>"]
-},
-
-{"description": "tr end-tag followed by end-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tr"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["</foo>"]
-},
-
-{"description": "tr end-tag at EOF",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tr"]],
- "expected": [""]
-},
-
-
-
-
-{"description": "td end-tag followed by comment",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "td"], ["Comment", "foo"]],
- "expected": ["</td><!--foo-->"]
-},
-
-{"description": "td end-tag followed by space character",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "td"], ["Characters", " foo"]],
- "expected": ["</td> foo"]
-},
-
-{"description": "td end-tag followed by text",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "td"], ["Characters", "foo"]],
- "expected": ["</td>foo"]
-},
-
-{"description": "td end-tag followed by start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "td"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["</td><foo>"]
-},
-
-{"description": "td end-tag followed by td start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "td"], ["StartTag", "http://www.w3.org/1999/xhtml", "td", {}]],
- "expected": ["<td>", "</td>"]
-},
-
-{"description": "td end-tag followed by th start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "td"], ["StartTag", "http://www.w3.org/1999/xhtml", "th", {}]],
- "expected": ["<th>", "</td>"]
-},
-
-{"description": "td end-tag followed by end-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "td"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["</foo>"]
-},
-
-{"description": "td end-tag at EOF",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "td"]],
- "expected": [""]
-},
-
-
-
-
-{"description": "th end-tag followed by comment",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "th"], ["Comment", "foo"]],
- "expected": ["</th><!--foo-->"]
-},
-
-{"description": "th end-tag followed by space character",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "th"], ["Characters", " foo"]],
- "expected": ["</th> foo"]
-},
-
-{"description": "th end-tag followed by text",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "th"], ["Characters", "foo"]],
- "expected": ["</th>foo"]
-},
-
-{"description": "th end-tag followed by start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "th"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
- "expected": ["</th><foo>"]
-},
-
-{"description": "th end-tag followed by th start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "th"], ["StartTag", "http://www.w3.org/1999/xhtml", "th", {}]],
- "expected": ["<th>", "</th>"]
-},
-
-{"description": "th end-tag followed by td start-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "th"], ["StartTag", "http://www.w3.org/1999/xhtml", "td", {}]],
- "expected": ["<td>", "</th>"]
-},
-
-{"description": "th end-tag followed by end-tag",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml", "th"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
- "expected": ["</foo>"]
-},
-
-{"description": "th end-tag at EOF",
- "input": [["EndTag", "http://www.w3.org/1999/xhtml" , "th"]],
- "expected": [""]
-}
-
-]}
diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/options.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/options.test deleted file mode 100644 index 6f342dd3f73..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/options.test +++ /dev/null @@ -1,60 +0,0 @@ -{"tests":[ - -{"description": "quote_char=\"'\"", - "options": {"quote_char": "'"}, - "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "test 'with' quote_char"}]]], - "expected": ["<span title='test 'with' quote_char'>"] -}, - -{"description": "quote_attr_values=true", - "options": {"quote_attr_values": true}, - "input": [["StartTag", "http://www.w3.org/1999/xhtml", "button", [{"namespace": null, "name": "disabled", "value" :"disabled"}]]], - "expected": ["<button disabled>"], - "xhtml": ["<button disabled=\"disabled\">"] -}, - -{"description": "quote_attr_values=true with irrelevant", - "options": {"quote_attr_values": true}, - "input": [["StartTag", "http://www.w3.org/1999/xhtml", "div", [{"namespace": null, "name": "irrelevant", "value" :"irrelevant"}]]], - "expected": ["<div irrelevant>"], - "xhtml": ["<div irrelevant=\"irrelevant\">"] -}, - -{"description": "use_trailing_solidus=true with void element", - "options": {"use_trailing_solidus": true}, - "input": [["EmptyTag", "img", {}]], - "expected": ["<img />"] -}, - -{"description": "use_trailing_solidus=true with non-void element", - "options": {"use_trailing_solidus": true}, - "input": [["StartTag", "http://www.w3.org/1999/xhtml", "div", {}]], - "expected": ["<div>"] -}, - -{"description": "minimize_boolean_attributes=false", - "options": {"minimize_boolean_attributes": false}, - "input": [["StartTag", "http://www.w3.org/1999/xhtml", "div", [{"namespace": null, "name": "irrelevant", "value" :"irrelevant"}]]], - "expected": ["<div irrelevant=irrelevant>"], - "xhtml": ["<div irrelevant=\"irrelevant\">"] -}, - -{"description": "minimize_boolean_attributes=false with empty value", - "options": {"minimize_boolean_attributes": false}, - "input": [["StartTag", "http://www.w3.org/1999/xhtml", "div", [{"namespace": null, "name": "irrelevant", "value" :""}]]], - "expected": ["<div irrelevant=\"\">"] -}, - -{"description": "escape less than signs in attribute values", - "options": {"escape_lt_in_attrs": true}, - "input": [["StartTag", "http://www.w3.org/1999/xhtml", "a", [{"namespace": null, "name": "title", "value": "a<b>c&d"}]]], - "expected": ["<a title=\"a<b>c&d\">"] -}, - -{"description": "rcdata", - "options": {"escape_rcdata": true}, - "input": [["StartTag", "http://www.w3.org/1999/xhtml", "script", {}], ["Characters", "a<b>c&d"]], - "expected": ["<script>a<b>c&d"] -} - -]} diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/whitespace.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/whitespace.test deleted file mode 100644 index e5d050d3bee..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/whitespace.test +++ /dev/null @@ -1,51 +0,0 @@ -{"tests": [
-
-{"description": "bare text with leading spaces",
- "options": {"strip_whitespace": true},
- "input": [["Characters", "\t\r\n\u000C foo"]],
- "expected": [" foo"]
-},
-
-{"description": "bare text with trailing spaces",
- "options": {"strip_whitespace": true},
- "input": [["Characters", "foo \t\r\n\u000C"]],
- "expected": ["foo "]
-},
-
-{"description": "bare text with inner spaces",
- "options": {"strip_whitespace": true},
- "input": [["Characters", "foo \t\r\n\u000C bar"]],
- "expected": ["foo bar"]
-},
-
-{"description": "text within <pre>",
- "options": {"strip_whitespace": true},
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "pre", {}], ["Characters", "\t\r\n\u000C foo \t\r\n\u000C bar \t\r\n\u000C"], ["EndTag", "http://www.w3.org/1999/xhtml", "pre"]],
- "expected": ["<pre>\t\r\n\u000C foo \t\r\n\u000C bar \t\r\n\u000C</pre>"]
-},
-
-{"description": "text within <pre>, with inner markup",
- "options": {"strip_whitespace": true},
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "pre", {}], ["Characters", "\t\r\n\u000C fo"], ["StartTag", "http://www.w3.org/1999/xhtml", "span", {}], ["Characters", "o \t\r\n\u000C b"], ["EndTag", "http://www.w3.org/1999/xhtml", "span"], ["Characters", "ar \t\r\n\u000C"], ["EndTag", "http://www.w3.org/1999/xhtml", "pre"]],
- "expected": ["<pre>\t\r\n\u000C fo<span>o \t\r\n\u000C b</span>ar \t\r\n\u000C</pre>"]
-},
-
-{"description": "text within <textarea>",
- "options": {"strip_whitespace": true},
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "textarea", {}], ["Characters", "\t\r\n\u000C foo \t\r\n\u000C bar \t\r\n\u000C"], ["EndTag", "http://www.w3.org/1999/xhtml", "textarea"]],
- "expected": ["<textarea>\t\r\n\u000C foo \t\r\n\u000C bar \t\r\n\u000C</textarea>"]
-},
-
-{"description": "text within <script>",
- "options": {"strip_whitespace": true},
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "script", {}], ["Characters", "\t\r\n\u000C foo \t\r\n\u000C bar \t\r\n\u000C"], ["EndTag", "http://www.w3.org/1999/xhtml", "script"]],
- "expected": ["<script>\t\r\n\u000C foo \t\r\n\u000C bar \t\r\n\u000C</script>"]
-},
-
-{"description": "text within <style>",
- "options": {"strip_whitespace": true},
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "style", {}], ["Characters", "\t\r\n\u000C foo \t\r\n\u000C bar \t\r\n\u000C"], ["EndTag", "http://www.w3.org/1999/xhtml", "style"]],
- "expected": ["<style>\t\r\n\u000C foo \t\r\n\u000C bar \t\r\n\u000C</style>"]
-}
-
-]}
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/sniffer/htmlOrFeed.json b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/sniffer/htmlOrFeed.json deleted file mode 100644 index c1506dbcdde..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/sniffer/htmlOrFeed.json +++ /dev/null @@ -1,43 +0,0 @@ -[ - {"type": "text/html", "input": ""}, - {"type": "text/html", "input": "<!---->"}, - {"type": "text/html", "input": "<!--asdfaslkjdf;laksjdf as;dkfjsd-->"}, - {"type": "text/html", "input": "<!"}, - {"type": "text/html", "input": "\t"}, - {"type": "text/html", "input": "<!>"}, - {"type": "text/html", "input": "<?"}, - {"type": "text/html", "input": "<??>"}, - {"type": "application/rss+xml", "input": "<rss"}, - {"type": "application/atom+xml", "input": "<feed"}, - {"type": "text/html", "input": "<html"}, - {"type": "text/html", "input": "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n<html><head>\n<title>302 Found</title>\n</head><body>\n<h1>Found</h1>\n<p>The document has moved <a href=\"http://feeds.feedburner.com/gofug\">here</a>.</p>\n</body></html>\n"}, - {"type": "text/html", "input": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\r\n<HTML><HEAD>\r\n <link rel=\"stylesheet\" type=\"text/css\" href=\"http://cache.blogads.com/289619328/feed.css\" /><link rel=\"stylesheet\" type=\"text/css\" href=\"http://cache.blogads.com/431602649/feed.css\" />\r\n<link rel=\"stylesheet\" type=\"text/css\" href=\"http://cache.blogads.com/382549546/feed.css\" />\r\n<link rel=\"stylesheet\" type=\"text/css\" href=\"http://cache.blogads.com/314618017/feed.css\" /><META http-equiv=\"expires\" content="}, - {"type": "text/html", "input": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\r\n<html>\r\n<head>\r\n<title>Xiaxue - Chicken pie blogger.</title><meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\"><style type=\"text/css\">\r\n<style type=\"text/css\">\r\n<!--\r\nbody {\r\n background-color: #FFF2F2;\r\n}\r\n.style1 {font-family: Georgia, \"Times New Roman\", Times, serif}\r\n.style2 {\r\n color: #8a567c;\r\n font-size: 14px;\r\n font-family: Georgia, \"Times New Roman\", Times, serif;\r\n}\r"}, - {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"><html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\r\n<head> \r\n<title>Google Operating System</title>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\r\n<meta name=\"Description\" content=\"Unofficial news and tips about Google. A blog that watches Google's latest developments and the attempts to move your operating system online.\" />\r\n<meta name=\"generator\" c"}, - {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"><html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\r\n<head>\r\n <title>Assimilated Press</title> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\r\n<meta name=\"MSSmartTagsPreventParsing\" content=\"true\" />\r\n<meta name=\"generator\" content=\"Blogger\" />\r\n<link rel=\"alternate\" type=\"application/atom+xml\" title=\"Assimilated Press - Atom\" href=\"http://assimila"}, - {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"><html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\r\n<head>\r\n <title>PostSecret</title>\r\n<META name=\"keywords\" Content=\"secrets, postcard, secret, postcards, postsecret, postsecrets,online confessional, post secret, post secrets, artomatic, post a secret\"><META name=\"discription\" Content=\"See a Secret...Share a Secret\"> <meta http-equiv=\"Content-Type\" content=\"te"}, - {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr'>\n <head>\n \n <meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>\n <meta content='true' name='MSSmartTagsPreventParsing'/>\n <meta content='blogger' name='generator'/>\n <link rel=\"alternate\" typ"}, - {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" dir=\"ltr\" lang=\"ja\">\n<head profile=\"http://gmpg.org/xfn/11\"> \n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" /> \n<title> CMS Lever</title><link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"http://s.wordpress.com/wp-content/themes/pub/twenty-eight/2813.css\"/>\n<link rel=\"alternate\" type=\"application/rss+xml\" title=\"RSS 2.0\" h"}, - {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" dir=\"ltr\" lang=\"en\"><head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n<title> Park Avenue Peerage</title>\t<meta name=\"generator\" content=\"WordPress.com\" />\t<!-- feeds -->\n\t<link rel=\"alternate\" type=\"application/rss+xml\" title=\"RSS 2.0\" href=\"http://parkavenuepeerage.wordpress.com/feed/\" />\t<link rel=\"pingback\" href="}, - {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" dir=\"ltr\" lang=\"ja\"><head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n<title> \u884c\u96f2\u6d41\u6c34 -like a floating clouds and running water-</title>\t<meta name=\"generator\" content=\"WordPress.com\" />\t<!-- feeds -->\n\t<link rel=\"alternate\" type=\"application/rss+xml\" title=\"RSS 2.0\" href=\"http://shw4.wordpress.com/feed/\" />\t<li"}, - {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"><html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n<meta name=\"generator\" content=\"http://www.typepad.com/\" />\n<title>Go Fug Yourself</title><link rel=\"stylesheet\" href=\"http://gofugyourself.typepad.com/go_fug_yourself/styles.css\" type=\"text/css\" />\n<link rel=\"alternate\" type=\"application/atom+xml\" title=\"Atom\" "}, - {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" dir=\"ltr\" lang=\"en\"><head profile=\"http://gmpg.org/xfn/11\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" /><title> Ladies…</title><meta name=\"generator\" content=\"WordPress.com\" /> <!-- leave this for stats --><link rel=\"stylesheet\" href=\"http://s.wordpress.com/wp-content/themes/default/style.css?1\" type=\"tex"}, - {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\r\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n<head>\r\n <title>The Sartorialist</title> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\r\n<meta name=\"MSSmartTagsPreventParsing\" content=\"true\" />\r\n<meta name=\"generator\" content=\"Blogger\" />\r\n<link rel=\"alternate\" type=\"application/atom+xml\" title=\"The Sartorialist - Atom\" href=\"http://thesartorialist.blogspot"}, - {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \n \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"><html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\" />\n<meta name=\"generator\" content=\"http://www.typepad.com/\" />\n<title>Creating Passionate Users</title><link rel=\"stylesheet\" href=\"http://headrush.typepad.com/creating_passionate_users/styles.css\" type=\"text/css\" />\n<link rel=\"alternate\" type"}, - {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n\t\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" id=\"sixapart-standard\">\n<head>\n\t<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n\t<meta name=\"generator\" content=\"http://www.typepad.com/\" />\n\t\n\t\n <meta name=\"keywords\" content=\"marketing, blog, seth, ideas, respect, permission\" />\n <meta name=\"description\" content=\"Seth Godin's riffs on marketing, respect, and the "}, - {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n\t\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" id=\"sixapart-standard\">\n<head>\n\t<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n\t<meta name=\"generator\" content=\"http://www.typepad.com/\" />\n\t\n\t\n \n <meta name=\"description\" content=\" Western Civilization hangs in the balance. This blog is part of the solution,the cure. Get your heads out of the sand and Fight the G"}, - {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" dir=\"ltr\" lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=pahrefhttpwwwfeedburnercomtarget_blankimgsrchttpwwwfeedburnercomfbimagespubpowered_by_fbgifaltPoweredbyFeedBurnerstyleborder0ap\" />\n<title> From Under the Rotunda</title>\n<link rel=\"stylesheet\" href=\"http://s.wordpress.com/wp-content/themes/pub/andreas04/style.css\" type=\"text/css\""}, - {"type": "application/atom+xml", "input": "<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href=\"http://www.blogger.com/styles/atom.css\" type=\"text/css\"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-10861780</id><updated>2007-07-27T12:38:50.888-07:00</updated><title type='text'>Official Google Blog</title><link rel='alternate' type='text/html' href='http://googleblog.blogspot.com/'/><link rel='next' type='application/atom+xml' href='http://googleblog.blogs"}, - {"type": "application/rss+xml", "input": "<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-10861780</atom:id><lastBuildDate>Fri, 27 Jul 2007 19:38:50 +0000</lastBuildDate><title>Official Google Blog</title><description/><link>http://googleblog.blogspot.com/</link><managingEditor>Eric Case</managingEditor><generator>Blogger</generator><openSearch:totalResults>729</openSearch:totalResults><openSearc"}, - {"type": "application/rss+xml", "input": "<?xml version=\"1.0\" encoding=\"pahrefhttpwwwfeedburnercomtarget_blankimgsrchttpwwwfeedburnercomfbimagespubpowered_by_fbgifaltPoweredbyFeedBurnerstyleborder0ap\"?>\n<!-- generator=\"wordpress/MU\" -->\n<rss version=\"2.0\"\n\txmlns:content=\"http://purl.org/rss/1.0/modules/content/\"\n\txmlns:wfw=\"http://wellformedweb.org/CommentAPI/\"\n\txmlns:dc=\"http://purl.org/dc/elements/1.1/\"\n\t><channel>\n\t<title>From Under the Rotunda</title>\n\t<link>http://dannybernardi.wordpress.com</link>\n\t<description>The Monographs of Danny Ber"}, - {"type": "application/rss+xml", "input": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!-- generator=\"wordpress/MU\" -->\n<rss version=\"2.0\"\n\txmlns:content=\"http://purl.org/rss/1.0/modules/content/\"\n\txmlns:wfw=\"http://wellformedweb.org/CommentAPI/\"\n\txmlns:dc=\"http://purl.org/dc/elements/1.1/\"\n\t><channel>\n\t<title>CMS Lever</title>\n\t<link>http://kanaguri.wordpress.com</link>\n\t<description>CMS\u306e\u6c17\u306b\u306a\u3063\u305f\u3053\u3068</description>\n\t<pubDate>Wed, 18 Jul 2007 21:26:22 +0000</pubDate>\n\t<generator>http://wordpress.org/?v=MU</generator>\n\t<language>ja</languag"}, - {"type": "application/atom+xml", "input": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<feed xmlns=\"http://www.w3.org/2005/Atom\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:thr=\"http://purl.org/syndication/thread/1.0\">\n <title>Atlas Shrugs</title>\n <link rel=\"self\" type=\"application/atom+xml\" href=\"http://atlasshrugs2000.typepad.com/atlas_shrugs/atom.xml\" />\n <link rel=\"alternate\" type=\"text/html\" href=\"http://atlasshrugs2000.typepad.com/atlas_shrugs/\" />\n <id>tag:typepad.com,2003:weblog-132946</id>\n <updated>2007-08-15T16:07:34-04"}, - {"type": "application/atom+xml", "input": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/atom10full.xsl\" type=\"text/xsl\" media=\"screen\"?><?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/itemcontent.css\" type=\"text/css\" media=\"screen\"?><feed xmlns=\"http://www.w3.org/2005/Atom\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:thr=\"http://purl.org/syndication/thread/1.0\" xmlns:feedburner=\"http://rssnamespace.org/feedburner/ext/1.0\">\r\n <title>Creating Passionate Users</title>\r\n "}, - {"type": "application/atom+xml", "input": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/atom10full.xsl\" type=\"text/xsl\" media=\"screen\"?><?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/itemcontent.css\" type=\"text/css\" media=\"screen\"?><feed xmlns=\"http://www.w3.org/2005/Atom\" xmlns:feedburner=\"http://rssnamespace.org/feedburner/ext/1.0\">\r\n <title>Seth's Blog</title>\r\n <link rel=\"alternate\" type=\"text/html\" href=\"http://sethgodin.typepad.com/seths_blog/\" />\r\n <link rel=\"s"}, - {"type": "application/atom+xml", "input": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/atom10full.xsl\" type=\"text/xsl\" media=\"screen\"?><?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/itemcontent.css\" type=\"text/css\" media=\"screen\"?><feed xmlns=\"http://www.w3.org/2005/Atom\" xmlns:openSearch=\"http://a9.com/-/spec/opensearchrss/1.0/\" xmlns:feedburner=\"http://rssnamespace.org/feedburner/ext/1.0\"><id>tag:blogger.com,1999:blog-32454861</id><updated>2007-07-31T21:44:09.867+02:00</upd"}, - {"type": "application/atom+xml", "input": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/atomfull.xsl\" type=\"text/xsl\" media=\"screen\"?><?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/itemcontent.css\" type=\"text/css\" media=\"screen\"?><feed xmlns=\"http://purl.org/atom/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:feedburner=\"http://rssnamespace.org/feedburner/ext/1.0\" version=\"0.3\">\r\n <title>Go Fug Yourself</title>\r\n <link rel=\"alternate\" type=\"text/html\" href=\"http://go"}, - {"type": "application/rss+xml", "input": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/rss2full.xsl\" type=\"text/xsl\" media=\"screen\"?><?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/itemcontent.css\" type=\"text/css\" media=\"screen\"?><rss xmlns:creativeCommons=\"http://backend.userland.com/creativeCommonsRssModule\" xmlns:feedburner=\"http://rssnamespace.org/feedburner/ext/1.0\" version=\"2.0\"><channel><title>Google Operating System</title><link>http://googlesystem.blogspot.com/</link>"}, - {"type": "application/rss+xml", "input": "<?xml version=\"1.0\" encoding=\"\"?>\n<!-- generator=\"wordpress/MU\" -->\n<rss version=\"2.0\"\n\txmlns:content=\"http://purl.org/rss/1.0/modules/content/\"\n\txmlns:wfw=\"http://wellformedweb.org/CommentAPI/\"\n\txmlns:dc=\"http://purl.org/dc/elements/1.1/\"\n\t><channel>\n\t<title>Nunublog</title>\n\t<link>http://nunubh.wordpress.com</link>\n\t<description>Just Newbie Blog!</description>\n\t<pubDate>Mon, 09 Jul 2007 18:54:09 +0000</pubDate>\n\t<generator>http://wordpress.org/?v=MU</generator>\n\t<language>id</language>\n\t\t\t<item>\n\t\t<ti"}, - {"type": "text/html", "input": "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\r\n<HEAD>\r\n<TITLE>Design*Sponge</TITLE><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\r\n<meta name=\"MSSmartTagsPreventParsing\" content=\"true\" />\r\n<meta name=\"generator\" content=\"Blogger\" />\r\n<link rel=\"alternate\" type=\"application/atom+xml\" title=\"Design*Sponge - Atom\" href=\"http://designsponge.blogspot.com/feeds/posts/default\" />\r\n<link rel=\"alternate\" type=\"application/rss+xml\" title=\"Design*Sponge - RSS\" href="}, - {"type": "text/html", "input": "<HTML>\n<HEAD>\n<TITLE>Moved Temporarily</TITLE>\n</HEAD>\n<BODY BGCOLOR=\"#FFFFFF\" TEXT=\"#000000\">\n<H1>Moved Temporarily</H1>\nThe document has moved <A HREF=\"http://feeds.feedburner.com/thesecretdiaryofstevejobs\">here</A>.\n</BODY>\n</HTML>\n"} -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/README.md b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/README.md deleted file mode 100644 index 4218c26bb0f..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/README.md +++ /dev/null @@ -1,104 +0,0 @@ -Tokenizer tests -=============== - -The test format is [JSON](http://www.json.org/). This has the advantage -that the syntax allows backward-compatible extensions to the tests and -the disadvantage that it is relatively verbose. - -Basic Structure ---------------- - - {"tests": [ - {"description": "Test description", - "input": "input_string", - "output": [expected_output_tokens], - "initialStates": [initial_states], - "lastStartTag": last_start_tag, - "ignoreErrorOrder": ignore_error_order - } - ]} - -Multiple tests per file are allowed simply by adding more objects to the -"tests" list. - -`description`, `input` and `output` are always present. The other values -are optional. - -### Test set-up - -`test.input` is a string containing the characters to pass to the -tokenizer. Specifically, it represents the characters of the **input -stream**, and so implementations are expected to perform the processing -described in the spec's **Preprocessing the input stream** section -before feeding the result to the tokenizer. - -If `test.doubleEscaped` is present and `true`, then `test.input` is not -quite as described above. Instead, it must first be subjected to another -round of unescaping (i.e., in addition to any unescaping involved in the -JSON import), and the result of *that* represents the characters of the -input stream. Currently, the only unescaping required by this option is -to convert each sequence of the form \\uHHHH (where H is a hex digit) -into the corresponding Unicode code point. (Note that this option also -affects the interpretation of `test.output`.) - -`test.initialStates` is a list of strings, each being the name of a -tokenizer state. The test should be run once for each string, using it -to set the tokenizer's initial state for that run. If -`test.initialStates` is omitted, it defaults to `["data state"]`. - -`test.lastStartTag` is a lowercase string that should be used as "the -tag name of the last start tag to have been emitted from this -tokenizer", referenced in the spec's definition of **appropriate end tag -token**. If it is omitted, it is treated as if "no start tag has been -emitted from this tokenizer". - -### Test results - -`test.output` is a list of tokens, ordered with the first produced by -the tokenizer the first (leftmost) in the list. The list must mach the -**complete** list of tokens that the tokenizer should produce. Valid -tokens are: - - ["DOCTYPE", name, public_id, system_id, correctness] - ["StartTag", name, {attributes}*, true*] - ["StartTag", name, {attributes}] - ["EndTag", name] - ["Comment", data] - ["Character", data] - "ParseError" - -`public_id` and `system_id` are either strings or `null`. `correctness` -is either `true` or `false`; `true` corresponds to the force-quirks flag -being false, and vice-versa. - -When the self-closing flag is set, the `StartTag` array has `true` as -its fourth entry. When the flag is not set, the array has only three -entries for backwards compatibility. - -All adjacent character tokens are coalesced into a single -`["Character", data]` token. - -If `test.doubleEscaped` is present and `true`, then every string within -`test.output` must be further unescaped (as described above) before -comparing with the tokenizer's output. - -`test.ignoreErrorOrder` is a boolean value indicating that the order of -`ParseError` tokens relative to other tokens in the output stream is -unimportant, and implementations should ignore such differences between -their output and `expected_output_tokens`. (This is used for errors -emitted by the input stream preprocessing stage, since it is useful to -test that code but it is undefined when the errors occur). If it is -omitted, it defaults to `false`. - -xmlViolation tests ------------------- - -`tokenizer/xmlViolation.test` differs from the above in a couple of -ways: - -- The name of the single member of the top-level JSON object is - "xmlViolationTests" instead of "tests". -- Each test's expected output assumes that implementation is applying - the tweaks given in the spec's "Coercing an HTML DOM into an - infoset" section. - diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/contentModelFlags.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/contentModelFlags.test deleted file mode 100644 index 89b8170c6bc..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/contentModelFlags.test +++ /dev/null @@ -1,81 +0,0 @@ -{"tests": [ - -{"description":"PLAINTEXT content model flag", -"initialStates":["PLAINTEXT state"], -"lastStartTag":"plaintext", -"input":"<head>&body;", -"output":[["Character", "<head>&body;"]]}, - -{"description":"End tag closing RCDATA or RAWTEXT", -"initialStates":["RCDATA state", "RAWTEXT state"], -"lastStartTag":"xmp", -"input":"foo</xmp>", -"output":[["Character", "foo"], ["EndTag", "xmp"]]}, - -{"description":"End tag closing RCDATA or RAWTEXT (case-insensitivity)", -"initialStates":["RCDATA state", "RAWTEXT state"], -"lastStartTag":"xmp", -"input":"foo</xMp>", -"output":[["Character", "foo"], ["EndTag", "xmp"]]}, - -{"description":"End tag closing RCDATA or RAWTEXT (ending with space)", -"initialStates":["RCDATA state", "RAWTEXT state"], -"lastStartTag":"xmp", -"input":"foo</xmp ", -"output":[["Character", "foo"], "ParseError"]}, - -{"description":"End tag closing RCDATA or RAWTEXT (ending with EOF)", -"initialStates":["RCDATA state", "RAWTEXT state"], -"lastStartTag":"xmp", -"input":"foo</xmp", -"output":[["Character", "foo</xmp"]]}, - -{"description":"End tag closing RCDATA or RAWTEXT (ending with slash)", -"initialStates":["RCDATA state", "RAWTEXT state"], -"lastStartTag":"xmp", -"input":"foo</xmp/", -"output":[["Character", "foo"], "ParseError"]}, - -{"description":"End tag not closing RCDATA or RAWTEXT (ending with left-angle-bracket)", -"initialStates":["RCDATA state", "RAWTEXT state"], -"lastStartTag":"xmp", -"input":"foo</xmp<", -"output":[["Character", "foo</xmp<"]]}, - -{"description":"End tag with incorrect name in RCDATA or RAWTEXT", -"initialStates":["RCDATA state", "RAWTEXT state"], -"lastStartTag":"xmp", -"input":"</foo>bar</xmp>", -"output":[["Character", "</foo>bar"], ["EndTag", "xmp"]]}, - -{"description":"Partial end tags leading straight into partial end tags", -"initialStates":["RCDATA state", "RAWTEXT state"], -"lastStartTag":"xmp", -"input":"</xmp</xmp</xmp>", -"output":[["Character", "</xmp</xmp"], ["EndTag", "xmp"]]}, - -{"description":"End tag with incorrect name in RCDATA or RAWTEXT (starting like correct name)", -"initialStates":["RCDATA state", "RAWTEXT state"], -"lastStartTag":"xmp", -"input":"</foo>bar</xmpaar>", -"output":[["Character", "</foo>bar</xmpaar>"]]}, - -{"description":"End tag closing RCDATA or RAWTEXT, switching back to PCDATA", -"initialStates":["RCDATA state", "RAWTEXT state"], -"lastStartTag":"xmp", -"input":"foo</xmp></baz>", -"output":[["Character", "foo"], ["EndTag", "xmp"], ["EndTag", "baz"]]}, - -{"description":"RAWTEXT w/ something looking like an entity", -"initialStates":["RAWTEXT state"], -"lastStartTag":"xmp", -"input":"&foo;", -"output":[["Character", "&foo;"]]}, - -{"description":"RCDATA w/ an entity", -"initialStates":["RCDATA state"], -"lastStartTag":"textarea", -"input":"<", -"output":[["Character", "<"]]} - -]} diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/domjs.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/domjs.test deleted file mode 100644 index 8f1e42f354f..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/domjs.test +++ /dev/null @@ -1,96 +0,0 @@ -{ - "tests": [ - { - "description":"CR in bogus comment state", - "input":"<?\u000d", - "output":["ParseError", ["Comment", "?\u000a"]] - }, - { - "description":"CRLF in bogus comment state", - "input":"<?\u000d\u000a", - "output":["ParseError", ["Comment", "?\u000a"]] - }, - { - "description":"CRLFLF in bogus comment state", - "input":"<?\u000d\u000a\u000a", - "output":["ParseError", ["Comment", "?\u000a\u000a"]] - }, - { - "description":"NUL in RCDATA and RAWTEXT", - "doubleEscaped":true, - "initialStates":["RCDATA state", "RAWTEXT state"], - "input":"\\u0000", - "output":["ParseError", ["Character", "\\uFFFD"]] - }, - { - "description":"leading U+FEFF must pass through", - "doubleEscaped":true, - "input":"\\uFEFFfoo\\uFEFFbar", - "output":[["Character", "\\uFEFFfoo\\uFEFFbar"]] - }, - { - "description":"Non BMP-charref in in RCDATA", - "initialStates":["RCDATA state"], - "input":"≂̸", - "output":[["Character", "\u2242\u0338"]] - }, - { - "description":"Bad charref in in RCDATA", - "initialStates":["RCDATA state"], - "input":"&NotEqualTild;", - "output":["ParseError", ["Character", "&NotEqualTild;"]] - }, - { - "description":"lowercase endtags in RCDATA and RAWTEXT", - "initialStates":["RCDATA state", "RAWTEXT state"], - "lastStartTag":"xmp", - "input":"</XMP>", - "output":[["EndTag","xmp"]] - }, - { - "description":"bad endtag in RCDATA and RAWTEXT", - "initialStates":["RCDATA state", "RAWTEXT state"], - "lastStartTag":"xmp", - "input":"</ XMP>", - "output":[["Character","</ XMP>"]] - }, - { - "description":"bad endtag in RCDATA and RAWTEXT", - "initialStates":["RCDATA state", "RAWTEXT state"], - "lastStartTag":"xmp", - "input":"</xm>", - "output":[["Character","</xm>"]] - }, - { - "description":"bad endtag in RCDATA and RAWTEXT", - "initialStates":["RCDATA state", "RAWTEXT state"], - "lastStartTag":"xmp", - "input":"</xm ", - "output":[["Character","</xm "]] - }, - { - "description":"bad endtag in RCDATA and RAWTEXT", - "initialStates":["RCDATA state", "RAWTEXT state"], - "lastStartTag":"xmp", - "input":"</xm/", - "output":[["Character","</xm/"]] - }, - { - "description":"Non BMP-charref in attribute", - "input":"<p id=\"≂̸\">", - "output":[["StartTag", "p", {"id":"\u2242\u0338"}]] - }, - { - "description":"--!NUL in comment ", - "doubleEscaped":true, - "input":"<!----!\\u0000-->", - "output":["ParseError", "ParseError", ["Comment", "--!\\uFFFD"]] - }, - { - "description":"space EOF after doctype ", - "input":"<!DOCTYPE html ", - "output":["ParseError", ["DOCTYPE", "html", null, null , false]] - } - - ] -} diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/entities.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/entities.test deleted file mode 100644 index 27b85a1cd0b..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/entities.test +++ /dev/null @@ -1,283 +0,0 @@ -{"tests": [ - -{"description": "Undefined named entity in attribute value ending in semicolon and whose name starts with a known entity name.", -"input":"<h a='¬i;'>", -"output": [["StartTag", "h", {"a": "¬i;"}]]}, - -{"description": "Entity name followed by the equals sign in an attribute value.", -"input":"<h a='&lang='>", -"output": [["StartTag", "h", {"a": "&lang="}]]}, - -{"description": "CR as numeric entity", -"input":"
", -"output": ["ParseError", ["Character", "\r"]]}, - -{"description": "CR as hexadecimal numeric entity", -"input":"
", -"output": ["ParseError", ["Character", "\r"]]}, - -{"description": "Windows-1252 EURO SIGN numeric entity.", -"input":"€", -"output": ["ParseError", ["Character", "\u20AC"]]}, - -{"description": "Windows-1252 REPLACEMENT CHAR numeric entity.", -"input":"", -"output": ["ParseError", ["Character", "\u0081"]]}, - -{"description": "Windows-1252 SINGLE LOW-9 QUOTATION MARK numeric entity.", -"input":"‚", -"output": ["ParseError", ["Character", "\u201A"]]}, - -{"description": "Windows-1252 LATIN SMALL LETTER F WITH HOOK numeric entity.", -"input":"ƒ", -"output": ["ParseError", ["Character", "\u0192"]]}, - -{"description": "Windows-1252 DOUBLE LOW-9 QUOTATION MARK numeric entity.", -"input":"„", -"output": ["ParseError", ["Character", "\u201E"]]}, - -{"description": "Windows-1252 HORIZONTAL ELLIPSIS numeric entity.", -"input":"…", -"output": ["ParseError", ["Character", "\u2026"]]}, - -{"description": "Windows-1252 DAGGER numeric entity.", -"input":"†", -"output": ["ParseError", ["Character", "\u2020"]]}, - -{"description": "Windows-1252 DOUBLE DAGGER numeric entity.", -"input":"‡", -"output": ["ParseError", ["Character", "\u2021"]]}, - -{"description": "Windows-1252 MODIFIER LETTER CIRCUMFLEX ACCENT numeric entity.", -"input":"ˆ", -"output": ["ParseError", ["Character", "\u02C6"]]}, - -{"description": "Windows-1252 PER MILLE SIGN numeric entity.", -"input":"‰", -"output": ["ParseError", ["Character", "\u2030"]]}, - -{"description": "Windows-1252 LATIN CAPITAL LETTER S WITH CARON numeric entity.", -"input":"Š", -"output": ["ParseError", ["Character", "\u0160"]]}, - -{"description": "Windows-1252 SINGLE LEFT-POINTING ANGLE QUOTATION MARK numeric entity.", -"input":"‹", -"output": ["ParseError", ["Character", "\u2039"]]}, - -{"description": "Windows-1252 LATIN CAPITAL LIGATURE OE numeric entity.", -"input":"Œ", -"output": ["ParseError", ["Character", "\u0152"]]}, - -{"description": "Windows-1252 REPLACEMENT CHAR numeric entity.", -"input":"", -"output": ["ParseError", ["Character", "\u008D"]]}, - -{"description": "Windows-1252 LATIN CAPITAL LETTER Z WITH CARON numeric entity.", -"input":"Ž", -"output": ["ParseError", ["Character", "\u017D"]]}, - -{"description": "Windows-1252 REPLACEMENT CHAR numeric entity.", -"input":"", -"output": ["ParseError", ["Character", "\u008F"]]}, - -{"description": "Windows-1252 REPLACEMENT CHAR numeric entity.", -"input":"", -"output": ["ParseError", ["Character", "\u0090"]]}, - -{"description": "Windows-1252 LEFT SINGLE QUOTATION MARK numeric entity.", -"input":"‘", -"output": ["ParseError", ["Character", "\u2018"]]}, - -{"description": "Windows-1252 RIGHT SINGLE QUOTATION MARK numeric entity.", -"input":"’", -"output": ["ParseError", ["Character", "\u2019"]]}, - -{"description": "Windows-1252 LEFT DOUBLE QUOTATION MARK numeric entity.", -"input":"“", -"output": ["ParseError", ["Character", "\u201C"]]}, - -{"description": "Windows-1252 RIGHT DOUBLE QUOTATION MARK numeric entity.", -"input":"”", -"output": ["ParseError", ["Character", "\u201D"]]}, - -{"description": "Windows-1252 BULLET numeric entity.", -"input":"•", -"output": ["ParseError", ["Character", "\u2022"]]}, - -{"description": "Windows-1252 EN DASH numeric entity.", -"input":"–", -"output": ["ParseError", ["Character", "\u2013"]]}, - -{"description": "Windows-1252 EM DASH numeric entity.", -"input":"—", -"output": ["ParseError", ["Character", "\u2014"]]}, - -{"description": "Windows-1252 SMALL TILDE numeric entity.", -"input":"˜", -"output": ["ParseError", ["Character", "\u02DC"]]}, - -{"description": "Windows-1252 TRADE MARK SIGN numeric entity.", -"input":"™", -"output": ["ParseError", ["Character", "\u2122"]]}, - -{"description": "Windows-1252 LATIN SMALL LETTER S WITH CARON numeric entity.", -"input":"š", -"output": ["ParseError", ["Character", "\u0161"]]}, - -{"description": "Windows-1252 SINGLE RIGHT-POINTING ANGLE QUOTATION MARK numeric entity.", -"input":"›", -"output": ["ParseError", ["Character", "\u203A"]]}, - -{"description": "Windows-1252 LATIN SMALL LIGATURE OE numeric entity.", -"input":"œ", -"output": ["ParseError", ["Character", "\u0153"]]}, - -{"description": "Windows-1252 REPLACEMENT CHAR numeric entity.", -"input":"", -"output": ["ParseError", ["Character", "\u009D"]]}, - -{"description": "Windows-1252 EURO SIGN hexadecimal numeric entity.", -"input":"€", -"output": ["ParseError", ["Character", "\u20AC"]]}, - -{"description": "Windows-1252 REPLACEMENT CHAR hexadecimal numeric entity.", -"input":"", -"output": ["ParseError", ["Character", "\u0081"]]}, - -{"description": "Windows-1252 SINGLE LOW-9 QUOTATION MARK hexadecimal numeric entity.", -"input":"‚", -"output": ["ParseError", ["Character", "\u201A"]]}, - -{"description": "Windows-1252 LATIN SMALL LETTER F WITH HOOK hexadecimal numeric entity.", -"input":"ƒ", -"output": ["ParseError", ["Character", "\u0192"]]}, - -{"description": "Windows-1252 DOUBLE LOW-9 QUOTATION MARK hexadecimal numeric entity.", -"input":"„", -"output": ["ParseError", ["Character", "\u201E"]]}, - -{"description": "Windows-1252 HORIZONTAL ELLIPSIS hexadecimal numeric entity.", -"input":"…", -"output": ["ParseError", ["Character", "\u2026"]]}, - -{"description": "Windows-1252 DAGGER hexadecimal numeric entity.", -"input":"†", -"output": ["ParseError", ["Character", "\u2020"]]}, - -{"description": "Windows-1252 DOUBLE DAGGER hexadecimal numeric entity.", -"input":"‡", -"output": ["ParseError", ["Character", "\u2021"]]}, - -{"description": "Windows-1252 MODIFIER LETTER CIRCUMFLEX ACCENT hexadecimal numeric entity.", -"input":"ˆ", -"output": ["ParseError", ["Character", "\u02C6"]]}, - -{"description": "Windows-1252 PER MILLE SIGN hexadecimal numeric entity.", -"input":"‰", -"output": ["ParseError", ["Character", "\u2030"]]}, - -{"description": "Windows-1252 LATIN CAPITAL LETTER S WITH CARON hexadecimal numeric entity.", -"input":"Š", -"output": ["ParseError", ["Character", "\u0160"]]}, - -{"description": "Windows-1252 SINGLE LEFT-POINTING ANGLE QUOTATION MARK hexadecimal numeric entity.", -"input":"‹", -"output": ["ParseError", ["Character", "\u2039"]]}, - -{"description": "Windows-1252 LATIN CAPITAL LIGATURE OE hexadecimal numeric entity.", -"input":"Œ", -"output": ["ParseError", ["Character", "\u0152"]]}, - -{"description": "Windows-1252 REPLACEMENT CHAR hexadecimal numeric entity.", -"input":"", -"output": ["ParseError", ["Character", "\u008D"]]}, - -{"description": "Windows-1252 LATIN CAPITAL LETTER Z WITH CARON hexadecimal numeric entity.", -"input":"Ž", -"output": ["ParseError", ["Character", "\u017D"]]}, - -{"description": "Windows-1252 REPLACEMENT CHAR hexadecimal numeric entity.", -"input":"", -"output": ["ParseError", ["Character", "\u008F"]]}, - -{"description": "Windows-1252 REPLACEMENT CHAR hexadecimal numeric entity.", -"input":"", -"output": ["ParseError", ["Character", "\u0090"]]}, - -{"description": "Windows-1252 LEFT SINGLE QUOTATION MARK hexadecimal numeric entity.", -"input":"‘", -"output": ["ParseError", ["Character", "\u2018"]]}, - -{"description": "Windows-1252 RIGHT SINGLE QUOTATION MARK hexadecimal numeric entity.", -"input":"’", -"output": ["ParseError", ["Character", "\u2019"]]}, - -{"description": "Windows-1252 LEFT DOUBLE QUOTATION MARK hexadecimal numeric entity.", -"input":"“", -"output": ["ParseError", ["Character", "\u201C"]]}, - -{"description": "Windows-1252 RIGHT DOUBLE QUOTATION MARK hexadecimal numeric entity.", -"input":"”", -"output": ["ParseError", ["Character", "\u201D"]]}, - -{"description": "Windows-1252 BULLET hexadecimal numeric entity.", -"input":"•", -"output": ["ParseError", ["Character", "\u2022"]]}, - -{"description": "Windows-1252 EN DASH hexadecimal numeric entity.", -"input":"–", -"output": ["ParseError", ["Character", "\u2013"]]}, - -{"description": "Windows-1252 EM DASH hexadecimal numeric entity.", -"input":"—", -"output": ["ParseError", ["Character", "\u2014"]]}, - -{"description": "Windows-1252 SMALL TILDE hexadecimal numeric entity.", -"input":"˜", -"output": ["ParseError", ["Character", "\u02DC"]]}, - -{"description": "Windows-1252 TRADE MARK SIGN hexadecimal numeric entity.", -"input":"™", -"output": ["ParseError", ["Character", "\u2122"]]}, - -{"description": "Windows-1252 LATIN SMALL LETTER S WITH CARON hexadecimal numeric entity.", -"input":"š", -"output": ["ParseError", ["Character", "\u0161"]]}, - -{"description": "Windows-1252 SINGLE RIGHT-POINTING ANGLE QUOTATION MARK hexadecimal numeric entity.", -"input":"›", -"output": ["ParseError", ["Character", "\u203A"]]}, - -{"description": "Windows-1252 LATIN SMALL LIGATURE OE hexadecimal numeric entity.", -"input":"œ", -"output": ["ParseError", ["Character", "\u0153"]]}, - -{"description": "Windows-1252 REPLACEMENT CHAR hexadecimal numeric entity.", -"input":"", -"output": ["ParseError", ["Character", "\u009D"]]}, - -{"description": "Windows-1252 LATIN SMALL LETTER Z WITH CARON hexadecimal numeric entity.", -"input":"ž", -"output": ["ParseError", ["Character", "\u017E"]]}, - -{"description": "Windows-1252 LATIN CAPITAL LETTER Y WITH DIAERESIS hexadecimal numeric entity.", -"input":"Ÿ", -"output": ["ParseError", ["Character", "\u0178"]]}, - -{"description": "Decimal numeric entity followed by hex character a.", -"input":"aa", -"output": ["ParseError", ["Character", "aa"]]}, - -{"description": "Decimal numeric entity followed by hex character A.", -"input":"aA", -"output": ["ParseError", ["Character", "aA"]]}, - -{"description": "Decimal numeric entity followed by hex character f.", -"input":"af", -"output": ["ParseError", ["Character", "af"]]}, - -{"description": "Decimal numeric entity followed by hex character A.", -"input":"aF", -"output": ["ParseError", ["Character", "aF"]]} - -]} diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/escapeFlag.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/escapeFlag.test deleted file mode 100644 index 18cb4309e05..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/escapeFlag.test +++ /dev/null @@ -1,33 +0,0 @@ -{"tests": [ - -{"description":"Commented close tag in RCDATA or RAWTEXT", -"initialStates":["RCDATA state", "RAWTEXT state"], -"lastStartTag":"xmp", -"input":"foo<!--</xmp>--></xmp>", -"output":[["Character", "foo<!--"], ["EndTag", "xmp"], ["Character", "-->"], ["EndTag", "xmp"]]}, - -{"description":"Bogus comment in RCDATA or RAWTEXT", -"initialStates":["RCDATA state", "RAWTEXT state"], -"lastStartTag":"xmp", -"input":"foo<!-->baz</xmp>", -"output":[["Character", "foo<!-->baz"], ["EndTag", "xmp"]]}, - -{"description":"End tag surrounded by bogus comment in RCDATA or RAWTEXT", -"initialStates":["RCDATA state", "RAWTEXT state"], -"lastStartTag":"xmp", -"input":"foo<!--></xmp><!-->baz</xmp>", -"output":[["Character", "foo<!-->"], ["EndTag", "xmp"], "ParseError", ["Comment", ""], ["Character", "baz"], ["EndTag", "xmp"]]}, - -{"description":"Commented entities in RCDATA", -"initialStates":["RCDATA state"], -"lastStartTag":"xmp", -"input":" & <!-- & --> & </xmp>", -"output":[["Character", " & <!-- & --> & "], ["EndTag", "xmp"]]}, - -{"description":"Incorrect comment ending sequences in RCDATA or RAWTEXT", -"initialStates":["RCDATA state", "RAWTEXT state"], -"lastStartTag":"xmp", -"input":"foo<!-- x --x>x-- >x--!>x--<></xmp>", -"output":[["Character", "foo<!-- x --x>x-- >x--!>x--<>"], ["EndTag", "xmp"]]} - -]} diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/namedEntities.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/namedEntities.test deleted file mode 100644 index 14db2ede0f1..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/namedEntities.test +++ /dev/null @@ -1,42210 +0,0 @@ -{ - "tests": [ - { - "input": "Æ", - "description": "Named entity: AElig without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00c6" - ] - ] - }, - { - "input": "Æ", - "description": "Named entity: AElig; with a semi-colon", - "output": [ - [ - "Character", - "\u00c6" - ] - ] - }, - { - "input": "&", - "description": "Named entity: AMP without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "&" - ] - ] - }, - { - "input": "&", - "description": "Named entity: AMP; with a semi-colon", - "output": [ - [ - "Character", - "&" - ] - ] - }, - { - "input": "Á", - "description": "Named entity: Aacute without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00c1" - ] - ] - }, - { - "input": "Á", - "description": "Named entity: Aacute; with a semi-colon", - "output": [ - [ - "Character", - "\u00c1" - ] - ] - }, - { - "input": "&Abreve", - "description": "Bad named entity: Abreve without a semi-colon", - "output": [ - [ - "Character", - "&Abreve" - ] - ] - }, - { - "input": "Ă", - "description": "Named entity: Abreve; with a semi-colon", - "output": [ - [ - "Character", - "\u0102" - ] - ] - }, - { - "input": "Â", - "description": "Named entity: Acirc without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00c2" - ] - ] - }, - { - "input": "Â", - "description": "Named entity: Acirc; with a semi-colon", - "output": [ - [ - "Character", - "\u00c2" - ] - ] - }, - { - "input": "&Acy", - "description": "Bad named entity: Acy without a semi-colon", - "output": [ - [ - "Character", - "&Acy" - ] - ] - }, - { - "input": "А", - "description": "Named entity: Acy; with a semi-colon", - "output": [ - [ - "Character", - "\u0410" - ] - ] - }, - { - "input": "&Afr", - "description": "Bad named entity: Afr without a semi-colon", - "output": [ - [ - "Character", - "&Afr" - ] - ] - }, - { - "input": "𝔄", - "description": "Named entity: Afr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd04" - ] - ] - }, - { - "input": "À", - "description": "Named entity: Agrave without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00c0" - ] - ] - }, - { - "input": "À", - "description": "Named entity: Agrave; with a semi-colon", - "output": [ - [ - "Character", - "\u00c0" - ] - ] - }, - { - "input": "&Alpha", - "description": "Bad named entity: Alpha without a semi-colon", - "output": [ - [ - "Character", - "&Alpha" - ] - ] - }, - { - "input": "Α", - "description": "Named entity: Alpha; with a semi-colon", - "output": [ - [ - "Character", - "\u0391" - ] - ] - }, - { - "input": "&Amacr", - "description": "Bad named entity: Amacr without a semi-colon", - "output": [ - [ - "Character", - "&Amacr" - ] - ] - }, - { - "input": "Ā", - "description": "Named entity: Amacr; with a semi-colon", - "output": [ - [ - "Character", - "\u0100" - ] - ] - }, - { - "input": "&And", - "description": "Bad named entity: And without a semi-colon", - "output": [ - [ - "Character", - "&And" - ] - ] - }, - { - "input": "⩓", - "description": "Named entity: And; with a semi-colon", - "output": [ - [ - "Character", - "\u2a53" - ] - ] - }, - { - "input": "&Aogon", - "description": "Bad named entity: Aogon without a semi-colon", - "output": [ - [ - "Character", - "&Aogon" - ] - ] - }, - { - "input": "Ą", - "description": "Named entity: Aogon; with a semi-colon", - "output": [ - [ - "Character", - "\u0104" - ] - ] - }, - { - "input": "&Aopf", - "description": "Bad named entity: Aopf without a semi-colon", - "output": [ - [ - "Character", - "&Aopf" - ] - ] - }, - { - "input": "𝔸", - "description": "Named entity: Aopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd38" - ] - ] - }, - { - "input": "&ApplyFunction", - "description": "Bad named entity: ApplyFunction without a semi-colon", - "output": [ - [ - "Character", - "&ApplyFunction" - ] - ] - }, - { - "input": "⁡", - "description": "Named entity: ApplyFunction; with a semi-colon", - "output": [ - [ - "Character", - "\u2061" - ] - ] - }, - { - "input": "Å", - "description": "Named entity: Aring without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00c5" - ] - ] - }, - { - "input": "Å", - "description": "Named entity: Aring; with a semi-colon", - "output": [ - [ - "Character", - "\u00c5" - ] - ] - }, - { - "input": "&Ascr", - "description": "Bad named entity: Ascr without a semi-colon", - "output": [ - [ - "Character", - "&Ascr" - ] - ] - }, - { - "input": "𝒜", - "description": "Named entity: Ascr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udc9c" - ] - ] - }, - { - "input": "&Assign", - "description": "Bad named entity: Assign without a semi-colon", - "output": [ - [ - "Character", - "&Assign" - ] - ] - }, - { - "input": "≔", - "description": "Named entity: Assign; with a semi-colon", - "output": [ - [ - "Character", - "\u2254" - ] - ] - }, - { - "input": "Ã", - "description": "Named entity: Atilde without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00c3" - ] - ] - }, - { - "input": "Ã", - "description": "Named entity: Atilde; with a semi-colon", - "output": [ - [ - "Character", - "\u00c3" - ] - ] - }, - { - "input": "Ä", - "description": "Named entity: Auml without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00c4" - ] - ] - }, - { - "input": "Ä", - "description": "Named entity: Auml; with a semi-colon", - "output": [ - [ - "Character", - "\u00c4" - ] - ] - }, - { - "input": "&Backslash", - "description": "Bad named entity: Backslash without a semi-colon", - "output": [ - [ - "Character", - "&Backslash" - ] - ] - }, - { - "input": "∖", - "description": "Named entity: Backslash; with a semi-colon", - "output": [ - [ - "Character", - "\u2216" - ] - ] - }, - { - "input": "&Barv", - "description": "Bad named entity: Barv without a semi-colon", - "output": [ - [ - "Character", - "&Barv" - ] - ] - }, - { - "input": "⫧", - "description": "Named entity: Barv; with a semi-colon", - "output": [ - [ - "Character", - "\u2ae7" - ] - ] - }, - { - "input": "&Barwed", - "description": "Bad named entity: Barwed without a semi-colon", - "output": [ - [ - "Character", - "&Barwed" - ] - ] - }, - { - "input": "⌆", - "description": "Named entity: Barwed; with a semi-colon", - "output": [ - [ - "Character", - "\u2306" - ] - ] - }, - { - "input": "&Bcy", - "description": "Bad named entity: Bcy without a semi-colon", - "output": [ - [ - "Character", - "&Bcy" - ] - ] - }, - { - "input": "Б", - "description": "Named entity: Bcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0411" - ] - ] - }, - { - "input": "&Because", - "description": "Bad named entity: Because without a semi-colon", - "output": [ - [ - "Character", - "&Because" - ] - ] - }, - { - "input": "∵", - "description": "Named entity: Because; with a semi-colon", - "output": [ - [ - "Character", - "\u2235" - ] - ] - }, - { - "input": "&Bernoullis", - "description": "Bad named entity: Bernoullis without a semi-colon", - "output": [ - [ - "Character", - "&Bernoullis" - ] - ] - }, - { - "input": "ℬ", - "description": "Named entity: Bernoullis; with a semi-colon", - "output": [ - [ - "Character", - "\u212c" - ] - ] - }, - { - "input": "&Beta", - "description": "Bad named entity: Beta without a semi-colon", - "output": [ - [ - "Character", - "&Beta" - ] - ] - }, - { - "input": "Β", - "description": "Named entity: Beta; with a semi-colon", - "output": [ - [ - "Character", - "\u0392" - ] - ] - }, - { - "input": "&Bfr", - "description": "Bad named entity: Bfr without a semi-colon", - "output": [ - [ - "Character", - "&Bfr" - ] - ] - }, - { - "input": "𝔅", - "description": "Named entity: Bfr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd05" - ] - ] - }, - { - "input": "&Bopf", - "description": "Bad named entity: Bopf without a semi-colon", - "output": [ - [ - "Character", - "&Bopf" - ] - ] - }, - { - "input": "𝔹", - "description": "Named entity: Bopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd39" - ] - ] - }, - { - "input": "&Breve", - "description": "Bad named entity: Breve without a semi-colon", - "output": [ - [ - "Character", - "&Breve" - ] - ] - }, - { - "input": "˘", - "description": "Named entity: Breve; with a semi-colon", - "output": [ - [ - "Character", - "\u02d8" - ] - ] - }, - { - "input": "&Bscr", - "description": "Bad named entity: Bscr without a semi-colon", - "output": [ - [ - "Character", - "&Bscr" - ] - ] - }, - { - "input": "ℬ", - "description": "Named entity: Bscr; with a semi-colon", - "output": [ - [ - "Character", - "\u212c" - ] - ] - }, - { - "input": "&Bumpeq", - "description": "Bad named entity: Bumpeq without a semi-colon", - "output": [ - [ - "Character", - "&Bumpeq" - ] - ] - }, - { - "input": "≎", - "description": "Named entity: Bumpeq; with a semi-colon", - "output": [ - [ - "Character", - "\u224e" - ] - ] - }, - { - "input": "&CHcy", - "description": "Bad named entity: CHcy without a semi-colon", - "output": [ - [ - "Character", - "&CHcy" - ] - ] - }, - { - "input": "Ч", - "description": "Named entity: CHcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0427" - ] - ] - }, - { - "input": "©", - "description": "Named entity: COPY without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00a9" - ] - ] - }, - { - "input": "©", - "description": "Named entity: COPY; with a semi-colon", - "output": [ - [ - "Character", - "\u00a9" - ] - ] - }, - { - "input": "&Cacute", - "description": "Bad named entity: Cacute without a semi-colon", - "output": [ - [ - "Character", - "&Cacute" - ] - ] - }, - { - "input": "Ć", - "description": "Named entity: Cacute; with a semi-colon", - "output": [ - [ - "Character", - "\u0106" - ] - ] - }, - { - "input": "&Cap", - "description": "Bad named entity: Cap without a semi-colon", - "output": [ - [ - "Character", - "&Cap" - ] - ] - }, - { - "input": "⋒", - "description": "Named entity: Cap; with a semi-colon", - "output": [ - [ - "Character", - "\u22d2" - ] - ] - }, - { - "input": "&CapitalDifferentialD", - "description": "Bad named entity: CapitalDifferentialD without a semi-colon", - "output": [ - [ - "Character", - "&CapitalDifferentialD" - ] - ] - }, - { - "input": "ⅅ", - "description": "Named entity: CapitalDifferentialD; with a semi-colon", - "output": [ - [ - "Character", - "\u2145" - ] - ] - }, - { - "input": "&Cayleys", - "description": "Bad named entity: Cayleys without a semi-colon", - "output": [ - [ - "Character", - "&Cayleys" - ] - ] - }, - { - "input": "ℭ", - "description": "Named entity: Cayleys; with a semi-colon", - "output": [ - [ - "Character", - "\u212d" - ] - ] - }, - { - "input": "&Ccaron", - "description": "Bad named entity: Ccaron without a semi-colon", - "output": [ - [ - "Character", - "&Ccaron" - ] - ] - }, - { - "input": "Č", - "description": "Named entity: Ccaron; with a semi-colon", - "output": [ - [ - "Character", - "\u010c" - ] - ] - }, - { - "input": "Ç", - "description": "Named entity: Ccedil without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00c7" - ] - ] - }, - { - "input": "Ç", - "description": "Named entity: Ccedil; with a semi-colon", - "output": [ - [ - "Character", - "\u00c7" - ] - ] - }, - { - "input": "&Ccirc", - "description": "Bad named entity: Ccirc without a semi-colon", - "output": [ - [ - "Character", - "&Ccirc" - ] - ] - }, - { - "input": "Ĉ", - "description": "Named entity: Ccirc; with a semi-colon", - "output": [ - [ - "Character", - "\u0108" - ] - ] - }, - { - "input": "&Cconint", - "description": "Bad named entity: Cconint without a semi-colon", - "output": [ - [ - "Character", - "&Cconint" - ] - ] - }, - { - "input": "∰", - "description": "Named entity: Cconint; with a semi-colon", - "output": [ - [ - "Character", - "\u2230" - ] - ] - }, - { - "input": "&Cdot", - "description": "Bad named entity: Cdot without a semi-colon", - "output": [ - [ - "Character", - "&Cdot" - ] - ] - }, - { - "input": "Ċ", - "description": "Named entity: Cdot; with a semi-colon", - "output": [ - [ - "Character", - "\u010a" - ] - ] - }, - { - "input": "&Cedilla", - "description": "Bad named entity: Cedilla without a semi-colon", - "output": [ - [ - "Character", - "&Cedilla" - ] - ] - }, - { - "input": "¸", - "description": "Named entity: Cedilla; with a semi-colon", - "output": [ - [ - "Character", - "\u00b8" - ] - ] - }, - { - "input": "&CenterDot", - "description": "Bad named entity: CenterDot without a semi-colon", - "output": [ - [ - "Character", - "&CenterDot" - ] - ] - }, - { - "input": "·", - "description": "Named entity: CenterDot; with a semi-colon", - "output": [ - [ - "Character", - "\u00b7" - ] - ] - }, - { - "input": "&Cfr", - "description": "Bad named entity: Cfr without a semi-colon", - "output": [ - [ - "Character", - "&Cfr" - ] - ] - }, - { - "input": "ℭ", - "description": "Named entity: Cfr; with a semi-colon", - "output": [ - [ - "Character", - "\u212d" - ] - ] - }, - { - "input": "&Chi", - "description": "Bad named entity: Chi without a semi-colon", - "output": [ - [ - "Character", - "&Chi" - ] - ] - }, - { - "input": "Χ", - "description": "Named entity: Chi; with a semi-colon", - "output": [ - [ - "Character", - "\u03a7" - ] - ] - }, - { - "input": "&CircleDot", - "description": "Bad named entity: CircleDot without a semi-colon", - "output": [ - [ - "Character", - "&CircleDot" - ] - ] - }, - { - "input": "⊙", - "description": "Named entity: CircleDot; with a semi-colon", - "output": [ - [ - "Character", - "\u2299" - ] - ] - }, - { - "input": "&CircleMinus", - "description": "Bad named entity: CircleMinus without a semi-colon", - "output": [ - [ - "Character", - "&CircleMinus" - ] - ] - }, - { - "input": "⊖", - "description": "Named entity: CircleMinus; with a semi-colon", - "output": [ - [ - "Character", - "\u2296" - ] - ] - }, - { - "input": "&CirclePlus", - "description": "Bad named entity: CirclePlus without a semi-colon", - "output": [ - [ - "Character", - "&CirclePlus" - ] - ] - }, - { - "input": "⊕", - "description": "Named entity: CirclePlus; with a semi-colon", - "output": [ - [ - "Character", - "\u2295" - ] - ] - }, - { - "input": "&CircleTimes", - "description": "Bad named entity: CircleTimes without a semi-colon", - "output": [ - [ - "Character", - "&CircleTimes" - ] - ] - }, - { - "input": "⊗", - "description": "Named entity: CircleTimes; with a semi-colon", - "output": [ - [ - "Character", - "\u2297" - ] - ] - }, - { - "input": "&ClockwiseContourIntegral", - "description": "Bad named entity: ClockwiseContourIntegral without a semi-colon", - "output": [ - [ - "Character", - "&ClockwiseContourIntegral" - ] - ] - }, - { - "input": "∲", - "description": "Named entity: ClockwiseContourIntegral; with a semi-colon", - "output": [ - [ - "Character", - "\u2232" - ] - ] - }, - { - "input": "&CloseCurlyDoubleQuote", - "description": "Bad named entity: CloseCurlyDoubleQuote without a semi-colon", - "output": [ - [ - "Character", - "&CloseCurlyDoubleQuote" - ] - ] - }, - { - "input": "”", - "description": "Named entity: CloseCurlyDoubleQuote; with a semi-colon", - "output": [ - [ - "Character", - "\u201d" - ] - ] - }, - { - "input": "&CloseCurlyQuote", - "description": "Bad named entity: CloseCurlyQuote without a semi-colon", - "output": [ - [ - "Character", - "&CloseCurlyQuote" - ] - ] - }, - { - "input": "’", - "description": "Named entity: CloseCurlyQuote; with a semi-colon", - "output": [ - [ - "Character", - "\u2019" - ] - ] - }, - { - "input": "&Colon", - "description": "Bad named entity: Colon without a semi-colon", - "output": [ - [ - "Character", - "&Colon" - ] - ] - }, - { - "input": "∷", - "description": "Named entity: Colon; with a semi-colon", - "output": [ - [ - "Character", - "\u2237" - ] - ] - }, - { - "input": "&Colone", - "description": "Bad named entity: Colone without a semi-colon", - "output": [ - [ - "Character", - "&Colone" - ] - ] - }, - { - "input": "⩴", - "description": "Named entity: Colone; with a semi-colon", - "output": [ - [ - "Character", - "\u2a74" - ] - ] - }, - { - "input": "&Congruent", - "description": "Bad named entity: Congruent without a semi-colon", - "output": [ - [ - "Character", - "&Congruent" - ] - ] - }, - { - "input": "≡", - "description": "Named entity: Congruent; with a semi-colon", - "output": [ - [ - "Character", - "\u2261" - ] - ] - }, - { - "input": "&Conint", - "description": "Bad named entity: Conint without a semi-colon", - "output": [ - [ - "Character", - "&Conint" - ] - ] - }, - { - "input": "∯", - "description": "Named entity: Conint; with a semi-colon", - "output": [ - [ - "Character", - "\u222f" - ] - ] - }, - { - "input": "&ContourIntegral", - "description": "Bad named entity: ContourIntegral without a semi-colon", - "output": [ - [ - "Character", - "&ContourIntegral" - ] - ] - }, - { - "input": "∮", - "description": "Named entity: ContourIntegral; with a semi-colon", - "output": [ - [ - "Character", - "\u222e" - ] - ] - }, - { - "input": "&Copf", - "description": "Bad named entity: Copf without a semi-colon", - "output": [ - [ - "Character", - "&Copf" - ] - ] - }, - { - "input": "ℂ", - "description": "Named entity: Copf; with a semi-colon", - "output": [ - [ - "Character", - "\u2102" - ] - ] - }, - { - "input": "&Coproduct", - "description": "Bad named entity: Coproduct without a semi-colon", - "output": [ - [ - "Character", - "&Coproduct" - ] - ] - }, - { - "input": "∐", - "description": "Named entity: Coproduct; with a semi-colon", - "output": [ - [ - "Character", - "\u2210" - ] - ] - }, - { - "input": "&CounterClockwiseContourIntegral", - "description": "Bad named entity: CounterClockwiseContourIntegral without a semi-colon", - "output": [ - [ - "Character", - "&CounterClockwiseContourIntegral" - ] - ] - }, - { - "input": "∳", - "description": "Named entity: CounterClockwiseContourIntegral; with a semi-colon", - "output": [ - [ - "Character", - "\u2233" - ] - ] - }, - { - "input": "&Cross", - "description": "Bad named entity: Cross without a semi-colon", - "output": [ - [ - "Character", - "&Cross" - ] - ] - }, - { - "input": "⨯", - "description": "Named entity: Cross; with a semi-colon", - "output": [ - [ - "Character", - "\u2a2f" - ] - ] - }, - { - "input": "&Cscr", - "description": "Bad named entity: Cscr without a semi-colon", - "output": [ - [ - "Character", - "&Cscr" - ] - ] - }, - { - "input": "𝒞", - "description": "Named entity: Cscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udc9e" - ] - ] - }, - { - "input": "&Cup", - "description": "Bad named entity: Cup without a semi-colon", - "output": [ - [ - "Character", - "&Cup" - ] - ] - }, - { - "input": "⋓", - "description": "Named entity: Cup; with a semi-colon", - "output": [ - [ - "Character", - "\u22d3" - ] - ] - }, - { - "input": "&CupCap", - "description": "Bad named entity: CupCap without a semi-colon", - "output": [ - [ - "Character", - "&CupCap" - ] - ] - }, - { - "input": "≍", - "description": "Named entity: CupCap; with a semi-colon", - "output": [ - [ - "Character", - "\u224d" - ] - ] - }, - { - "input": "&DD", - "description": "Bad named entity: DD without a semi-colon", - "output": [ - [ - "Character", - "&DD" - ] - ] - }, - { - "input": "ⅅ", - "description": "Named entity: DD; with a semi-colon", - "output": [ - [ - "Character", - "\u2145" - ] - ] - }, - { - "input": "&DDotrahd", - "description": "Bad named entity: DDotrahd without a semi-colon", - "output": [ - [ - "Character", - "&DDotrahd" - ] - ] - }, - { - "input": "⤑", - "description": "Named entity: DDotrahd; with a semi-colon", - "output": [ - [ - "Character", - "\u2911" - ] - ] - }, - { - "input": "&DJcy", - "description": "Bad named entity: DJcy without a semi-colon", - "output": [ - [ - "Character", - "&DJcy" - ] - ] - }, - { - "input": "Ђ", - "description": "Named entity: DJcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0402" - ] - ] - }, - { - "input": "&DScy", - "description": "Bad named entity: DScy without a semi-colon", - "output": [ - [ - "Character", - "&DScy" - ] - ] - }, - { - "input": "Ѕ", - "description": "Named entity: DScy; with a semi-colon", - "output": [ - [ - "Character", - "\u0405" - ] - ] - }, - { - "input": "&DZcy", - "description": "Bad named entity: DZcy without a semi-colon", - "output": [ - [ - "Character", - "&DZcy" - ] - ] - }, - { - "input": "Џ", - "description": "Named entity: DZcy; with a semi-colon", - "output": [ - [ - "Character", - "\u040f" - ] - ] - }, - { - "input": "&Dagger", - "description": "Bad named entity: Dagger without a semi-colon", - "output": [ - [ - "Character", - "&Dagger" - ] - ] - }, - { - "input": "‡", - "description": "Named entity: Dagger; with a semi-colon", - "output": [ - [ - "Character", - "\u2021" - ] - ] - }, - { - "input": "&Darr", - "description": "Bad named entity: Darr without a semi-colon", - "output": [ - [ - "Character", - "&Darr" - ] - ] - }, - { - "input": "↡", - "description": "Named entity: Darr; with a semi-colon", - "output": [ - [ - "Character", - "\u21a1" - ] - ] - }, - { - "input": "&Dashv", - "description": "Bad named entity: Dashv without a semi-colon", - "output": [ - [ - "Character", - "&Dashv" - ] - ] - }, - { - "input": "⫤", - "description": "Named entity: Dashv; with a semi-colon", - "output": [ - [ - "Character", - "\u2ae4" - ] - ] - }, - { - "input": "&Dcaron", - "description": "Bad named entity: Dcaron without a semi-colon", - "output": [ - [ - "Character", - "&Dcaron" - ] - ] - }, - { - "input": "Ď", - "description": "Named entity: Dcaron; with a semi-colon", - "output": [ - [ - "Character", - "\u010e" - ] - ] - }, - { - "input": "&Dcy", - "description": "Bad named entity: Dcy without a semi-colon", - "output": [ - [ - "Character", - "&Dcy" - ] - ] - }, - { - "input": "Д", - "description": "Named entity: Dcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0414" - ] - ] - }, - { - "input": "&Del", - "description": "Bad named entity: Del without a semi-colon", - "output": [ - [ - "Character", - "&Del" - ] - ] - }, - { - "input": "∇", - "description": "Named entity: Del; with a semi-colon", - "output": [ - [ - "Character", - "\u2207" - ] - ] - }, - { - "input": "&Delta", - "description": "Bad named entity: Delta without a semi-colon", - "output": [ - [ - "Character", - "&Delta" - ] - ] - }, - { - "input": "Δ", - "description": "Named entity: Delta; with a semi-colon", - "output": [ - [ - "Character", - "\u0394" - ] - ] - }, - { - "input": "&Dfr", - "description": "Bad named entity: Dfr without a semi-colon", - "output": [ - [ - "Character", - "&Dfr" - ] - ] - }, - { - "input": "𝔇", - "description": "Named entity: Dfr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd07" - ] - ] - }, - { - "input": "&DiacriticalAcute", - "description": "Bad named entity: DiacriticalAcute without a semi-colon", - "output": [ - [ - "Character", - "&DiacriticalAcute" - ] - ] - }, - { - "input": "´", - "description": "Named entity: DiacriticalAcute; with a semi-colon", - "output": [ - [ - "Character", - "\u00b4" - ] - ] - }, - { - "input": "&DiacriticalDot", - "description": "Bad named entity: DiacriticalDot without a semi-colon", - "output": [ - [ - "Character", - "&DiacriticalDot" - ] - ] - }, - { - "input": "˙", - "description": "Named entity: DiacriticalDot; with a semi-colon", - "output": [ - [ - "Character", - "\u02d9" - ] - ] - }, - { - "input": "&DiacriticalDoubleAcute", - "description": "Bad named entity: DiacriticalDoubleAcute without a semi-colon", - "output": [ - [ - "Character", - "&DiacriticalDoubleAcute" - ] - ] - }, - { - "input": "˝", - "description": "Named entity: DiacriticalDoubleAcute; with a semi-colon", - "output": [ - [ - "Character", - "\u02dd" - ] - ] - }, - { - "input": "&DiacriticalGrave", - "description": "Bad named entity: DiacriticalGrave without a semi-colon", - "output": [ - [ - "Character", - "&DiacriticalGrave" - ] - ] - }, - { - "input": "`", - "description": "Named entity: DiacriticalGrave; with a semi-colon", - "output": [ - [ - "Character", - "`" - ] - ] - }, - { - "input": "&DiacriticalTilde", - "description": "Bad named entity: DiacriticalTilde without a semi-colon", - "output": [ - [ - "Character", - "&DiacriticalTilde" - ] - ] - }, - { - "input": "˜", - "description": "Named entity: DiacriticalTilde; with a semi-colon", - "output": [ - [ - "Character", - "\u02dc" - ] - ] - }, - { - "input": "&Diamond", - "description": "Bad named entity: Diamond without a semi-colon", - "output": [ - [ - "Character", - "&Diamond" - ] - ] - }, - { - "input": "⋄", - "description": "Named entity: Diamond; with a semi-colon", - "output": [ - [ - "Character", - "\u22c4" - ] - ] - }, - { - "input": "&DifferentialD", - "description": "Bad named entity: DifferentialD without a semi-colon", - "output": [ - [ - "Character", - "&DifferentialD" - ] - ] - }, - { - "input": "ⅆ", - "description": "Named entity: DifferentialD; with a semi-colon", - "output": [ - [ - "Character", - "\u2146" - ] - ] - }, - { - "input": "&Dopf", - "description": "Bad named entity: Dopf without a semi-colon", - "output": [ - [ - "Character", - "&Dopf" - ] - ] - }, - { - "input": "𝔻", - "description": "Named entity: Dopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd3b" - ] - ] - }, - { - "input": "&Dot", - "description": "Bad named entity: Dot without a semi-colon", - "output": [ - [ - "Character", - "&Dot" - ] - ] - }, - { - "input": "¨", - "description": "Named entity: Dot; with a semi-colon", - "output": [ - [ - "Character", - "\u00a8" - ] - ] - }, - { - "input": "&DotDot", - "description": "Bad named entity: DotDot without a semi-colon", - "output": [ - [ - "Character", - "&DotDot" - ] - ] - }, - { - "input": "⃜", - "description": "Named entity: DotDot; with a semi-colon", - "output": [ - [ - "Character", - "\u20dc" - ] - ] - }, - { - "input": "&DotEqual", - "description": "Bad named entity: DotEqual without a semi-colon", - "output": [ - [ - "Character", - "&DotEqual" - ] - ] - }, - { - "input": "≐", - "description": "Named entity: DotEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u2250" - ] - ] - }, - { - "input": "&DoubleContourIntegral", - "description": "Bad named entity: DoubleContourIntegral without a semi-colon", - "output": [ - [ - "Character", - "&DoubleContourIntegral" - ] - ] - }, - { - "input": "∯", - "description": "Named entity: DoubleContourIntegral; with a semi-colon", - "output": [ - [ - "Character", - "\u222f" - ] - ] - }, - { - "input": "&DoubleDot", - "description": "Bad named entity: DoubleDot without a semi-colon", - "output": [ - [ - "Character", - "&DoubleDot" - ] - ] - }, - { - "input": "¨", - "description": "Named entity: DoubleDot; with a semi-colon", - "output": [ - [ - "Character", - "\u00a8" - ] - ] - }, - { - "input": "&DoubleDownArrow", - "description": "Bad named entity: DoubleDownArrow without a semi-colon", - "output": [ - [ - "Character", - "&DoubleDownArrow" - ] - ] - }, - { - "input": "⇓", - "description": "Named entity: DoubleDownArrow; with a semi-colon", - "output": [ - [ - "Character", - "\u21d3" - ] - ] - }, - { - "input": "&DoubleLeftArrow", - "description": "Bad named entity: DoubleLeftArrow without a semi-colon", - "output": [ - [ - "Character", - "&DoubleLeftArrow" - ] - ] - }, - { - "input": "⇐", - "description": "Named entity: DoubleLeftArrow; with a semi-colon", - "output": [ - [ - "Character", - "\u21d0" - ] - ] - }, - { - "input": "&DoubleLeftRightArrow", - "description": "Bad named entity: DoubleLeftRightArrow without a semi-colon", - "output": [ - [ - "Character", - "&DoubleLeftRightArrow" - ] - ] - }, - { - "input": "⇔", - "description": "Named entity: DoubleLeftRightArrow; with a semi-colon", - "output": [ - [ - "Character", - "\u21d4" - ] - ] - }, - { - "input": "&DoubleLeftTee", - "description": "Bad named entity: DoubleLeftTee without a semi-colon", - "output": [ - [ - "Character", - "&DoubleLeftTee" - ] - ] - }, - { - "input": "⫤", - "description": "Named entity: DoubleLeftTee; with a semi-colon", - "output": [ - [ - "Character", - "\u2ae4" - ] - ] - }, - { - "input": "&DoubleLongLeftArrow", - "description": "Bad named entity: DoubleLongLeftArrow without a semi-colon", - "output": [ - [ - "Character", - "&DoubleLongLeftArrow" - ] - ] - }, - { - "input": "⟸", - "description": "Named entity: DoubleLongLeftArrow; with a semi-colon", - "output": [ - [ - "Character", - "\u27f8" - ] - ] - }, - { - "input": "&DoubleLongLeftRightArrow", - "description": "Bad named entity: DoubleLongLeftRightArrow without a semi-colon", - "output": [ - [ - "Character", - "&DoubleLongLeftRightArrow" - ] - ] - }, - { - "input": "⟺", - "description": "Named entity: DoubleLongLeftRightArrow; with a semi-colon", - "output": [ - [ - "Character", - "\u27fa" - ] - ] - }, - { - "input": "&DoubleLongRightArrow", - "description": "Bad named entity: DoubleLongRightArrow without a semi-colon", - "output": [ - [ - "Character", - "&DoubleLongRightArrow" - ] - ] - }, - { - "input": "⟹", - "description": "Named entity: DoubleLongRightArrow; with a semi-colon", - "output": [ - [ - "Character", - "\u27f9" - ] - ] - }, - { - "input": "&DoubleRightArrow", - "description": "Bad named entity: DoubleRightArrow without a semi-colon", - "output": [ - [ - "Character", - "&DoubleRightArrow" - ] - ] - }, - { - "input": "⇒", - "description": "Named entity: DoubleRightArrow; with a semi-colon", - "output": [ - [ - "Character", - "\u21d2" - ] - ] - }, - { - "input": "&DoubleRightTee", - "description": "Bad named entity: DoubleRightTee without a semi-colon", - "output": [ - [ - "Character", - "&DoubleRightTee" - ] - ] - }, - { - "input": "⊨", - "description": "Named entity: DoubleRightTee; with a semi-colon", - "output": [ - [ - "Character", - "\u22a8" - ] - ] - }, - { - "input": "&DoubleUpArrow", - "description": "Bad named entity: DoubleUpArrow without a semi-colon", - "output": [ - [ - "Character", - "&DoubleUpArrow" - ] - ] - }, - { - "input": "⇑", - "description": "Named entity: DoubleUpArrow; with a semi-colon", - "output": [ - [ - "Character", - "\u21d1" - ] - ] - }, - { - "input": "&DoubleUpDownArrow", - "description": "Bad named entity: DoubleUpDownArrow without a semi-colon", - "output": [ - [ - "Character", - "&DoubleUpDownArrow" - ] - ] - }, - { - "input": "⇕", - "description": "Named entity: DoubleUpDownArrow; with a semi-colon", - "output": [ - [ - "Character", - "\u21d5" - ] - ] - }, - { - "input": "&DoubleVerticalBar", - "description": "Bad named entity: DoubleVerticalBar without a semi-colon", - "output": [ - [ - "Character", - "&DoubleVerticalBar" - ] - ] - }, - { - "input": "∥", - "description": "Named entity: DoubleVerticalBar; with a semi-colon", - "output": [ - [ - "Character", - "\u2225" - ] - ] - }, - { - "input": "&DownArrow", - "description": "Bad named entity: DownArrow without a semi-colon", - "output": [ - [ - "Character", - "&DownArrow" - ] - ] - }, - { - "input": "↓", - "description": "Named entity: DownArrow; with a semi-colon", - "output": [ - [ - "Character", - "\u2193" - ] - ] - }, - { - "input": "&DownArrowBar", - "description": "Bad named entity: DownArrowBar without a semi-colon", - "output": [ - [ - "Character", - "&DownArrowBar" - ] - ] - }, - { - "input": "⤓", - "description": "Named entity: DownArrowBar; with a semi-colon", - "output": [ - [ - "Character", - "\u2913" - ] - ] - }, - { - "input": "&DownArrowUpArrow", - "description": "Bad named entity: DownArrowUpArrow without a semi-colon", - "output": [ - [ - "Character", - "&DownArrowUpArrow" - ] - ] - }, - { - "input": "⇵", - "description": "Named entity: DownArrowUpArrow; with a semi-colon", - "output": [ - [ - "Character", - "\u21f5" - ] - ] - }, - { - "input": "&DownBreve", - "description": "Bad named entity: DownBreve without a semi-colon", - "output": [ - [ - "Character", - "&DownBreve" - ] - ] - }, - { - "input": "̑", - "description": "Named entity: DownBreve; with a semi-colon", - "output": [ - [ - "Character", - "\u0311" - ] - ] - }, - { - "input": "&DownLeftRightVector", - "description": "Bad named entity: DownLeftRightVector without a semi-colon", - "output": [ - [ - "Character", - "&DownLeftRightVector" - ] - ] - }, - { - "input": "⥐", - "description": "Named entity: DownLeftRightVector; with a semi-colon", - "output": [ - [ - "Character", - "\u2950" - ] - ] - }, - { - "input": "&DownLeftTeeVector", - "description": "Bad named entity: DownLeftTeeVector without a semi-colon", - "output": [ - [ - "Character", - "&DownLeftTeeVector" - ] - ] - }, - { - "input": "⥞", - "description": "Named entity: DownLeftTeeVector; with a semi-colon", - "output": [ - [ - "Character", - "\u295e" - ] - ] - }, - { - "input": "&DownLeftVector", - "description": "Bad named entity: DownLeftVector without a semi-colon", - "output": [ - [ - "Character", - "&DownLeftVector" - ] - ] - }, - { - "input": "↽", - "description": "Named entity: DownLeftVector; with a semi-colon", - "output": [ - [ - "Character", - "\u21bd" - ] - ] - }, - { - "input": "&DownLeftVectorBar", - "description": "Bad named entity: DownLeftVectorBar without a semi-colon", - "output": [ - [ - "Character", - "&DownLeftVectorBar" - ] - ] - }, - { - "input": "⥖", - "description": "Named entity: DownLeftVectorBar; with a semi-colon", - "output": [ - [ - "Character", - "\u2956" - ] - ] - }, - { - "input": "&DownRightTeeVector", - "description": "Bad named entity: DownRightTeeVector without a semi-colon", - "output": [ - [ - "Character", - "&DownRightTeeVector" - ] - ] - }, - { - "input": "⥟", - "description": "Named entity: DownRightTeeVector; with a semi-colon", - "output": [ - [ - "Character", - "\u295f" - ] - ] - }, - { - "input": "&DownRightVector", - "description": "Bad named entity: DownRightVector without a semi-colon", - "output": [ - [ - "Character", - "&DownRightVector" - ] - ] - }, - { - "input": "⇁", - "description": "Named entity: DownRightVector; with a semi-colon", - "output": [ - [ - "Character", - "\u21c1" - ] - ] - }, - { - "input": "&DownRightVectorBar", - "description": "Bad named entity: DownRightVectorBar without a semi-colon", - "output": [ - [ - "Character", - "&DownRightVectorBar" - ] - ] - }, - { - "input": "⥗", - "description": "Named entity: DownRightVectorBar; with a semi-colon", - "output": [ - [ - "Character", - "\u2957" - ] - ] - }, - { - "input": "&DownTee", - "description": "Bad named entity: DownTee without a semi-colon", - "output": [ - [ - "Character", - "&DownTee" - ] - ] - }, - { - "input": "⊤", - "description": "Named entity: DownTee; with a semi-colon", - "output": [ - [ - "Character", - "\u22a4" - ] - ] - }, - { - "input": "&DownTeeArrow", - "description": "Bad named entity: DownTeeArrow without a semi-colon", - "output": [ - [ - "Character", - "&DownTeeArrow" - ] - ] - }, - { - "input": "↧", - "description": "Named entity: DownTeeArrow; with a semi-colon", - "output": [ - [ - "Character", - "\u21a7" - ] - ] - }, - { - "input": "&Downarrow", - "description": "Bad named entity: Downarrow without a semi-colon", - "output": [ - [ - "Character", - "&Downarrow" - ] - ] - }, - { - "input": "⇓", - "description": "Named entity: Downarrow; with a semi-colon", - "output": [ - [ - "Character", - "\u21d3" - ] - ] - }, - { - "input": "&Dscr", - "description": "Bad named entity: Dscr without a semi-colon", - "output": [ - [ - "Character", - "&Dscr" - ] - ] - }, - { - "input": "𝒟", - "description": "Named entity: Dscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udc9f" - ] - ] - }, - { - "input": "&Dstrok", - "description": "Bad named entity: Dstrok without a semi-colon", - "output": [ - [ - "Character", - "&Dstrok" - ] - ] - }, - { - "input": "Đ", - "description": "Named entity: Dstrok; with a semi-colon", - "output": [ - [ - "Character", - "\u0110" - ] - ] - }, - { - "input": "&ENG", - "description": "Bad named entity: ENG without a semi-colon", - "output": [ - [ - "Character", - "&ENG" - ] - ] - }, - { - "input": "Ŋ", - "description": "Named entity: ENG; with a semi-colon", - "output": [ - [ - "Character", - "\u014a" - ] - ] - }, - { - "input": "Ð", - "description": "Named entity: ETH without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00d0" - ] - ] - }, - { - "input": "Ð", - "description": "Named entity: ETH; with a semi-colon", - "output": [ - [ - "Character", - "\u00d0" - ] - ] - }, - { - "input": "É", - "description": "Named entity: Eacute without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00c9" - ] - ] - }, - { - "input": "É", - "description": "Named entity: Eacute; with a semi-colon", - "output": [ - [ - "Character", - "\u00c9" - ] - ] - }, - { - "input": "&Ecaron", - "description": "Bad named entity: Ecaron without a semi-colon", - "output": [ - [ - "Character", - "&Ecaron" - ] - ] - }, - { - "input": "Ě", - "description": "Named entity: Ecaron; with a semi-colon", - "output": [ - [ - "Character", - "\u011a" - ] - ] - }, - { - "input": "Ê", - "description": "Named entity: Ecirc without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00ca" - ] - ] - }, - { - "input": "Ê", - "description": "Named entity: Ecirc; with a semi-colon", - "output": [ - [ - "Character", - "\u00ca" - ] - ] - }, - { - "input": "&Ecy", - "description": "Bad named entity: Ecy without a semi-colon", - "output": [ - [ - "Character", - "&Ecy" - ] - ] - }, - { - "input": "Э", - "description": "Named entity: Ecy; with a semi-colon", - "output": [ - [ - "Character", - "\u042d" - ] - ] - }, - { - "input": "&Edot", - "description": "Bad named entity: Edot without a semi-colon", - "output": [ - [ - "Character", - "&Edot" - ] - ] - }, - { - "input": "Ė", - "description": "Named entity: Edot; with a semi-colon", - "output": [ - [ - "Character", - "\u0116" - ] - ] - }, - { - "input": "&Efr", - "description": "Bad named entity: Efr without a semi-colon", - "output": [ - [ - "Character", - "&Efr" - ] - ] - }, - { - "input": "𝔈", - "description": "Named entity: Efr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd08" - ] - ] - }, - { - "input": "È", - "description": "Named entity: Egrave without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00c8" - ] - ] - }, - { - "input": "È", - "description": "Named entity: Egrave; with a semi-colon", - "output": [ - [ - "Character", - "\u00c8" - ] - ] - }, - { - "input": "&Element", - "description": "Bad named entity: Element without a semi-colon", - "output": [ - [ - "Character", - "&Element" - ] - ] - }, - { - "input": "∈", - "description": "Named entity: Element; with a semi-colon", - "output": [ - [ - "Character", - "\u2208" - ] - ] - }, - { - "input": "&Emacr", - "description": "Bad named entity: Emacr without a semi-colon", - "output": [ - [ - "Character", - "&Emacr" - ] - ] - }, - { - "input": "Ē", - "description": "Named entity: Emacr; with a semi-colon", - "output": [ - [ - "Character", - "\u0112" - ] - ] - }, - { - "input": "&EmptySmallSquare", - "description": "Bad named entity: EmptySmallSquare without a semi-colon", - "output": [ - [ - "Character", - "&EmptySmallSquare" - ] - ] - }, - { - "input": "◻", - "description": "Named entity: EmptySmallSquare; with a semi-colon", - "output": [ - [ - "Character", - "\u25fb" - ] - ] - }, - { - "input": "&EmptyVerySmallSquare", - "description": "Bad named entity: EmptyVerySmallSquare without a semi-colon", - "output": [ - [ - "Character", - "&EmptyVerySmallSquare" - ] - ] - }, - { - "input": "▫", - "description": "Named entity: EmptyVerySmallSquare; with a semi-colon", - "output": [ - [ - "Character", - "\u25ab" - ] - ] - }, - { - "input": "&Eogon", - "description": "Bad named entity: Eogon without a semi-colon", - "output": [ - [ - "Character", - "&Eogon" - ] - ] - }, - { - "input": "Ę", - "description": "Named entity: Eogon; with a semi-colon", - "output": [ - [ - "Character", - "\u0118" - ] - ] - }, - { - "input": "&Eopf", - "description": "Bad named entity: Eopf without a semi-colon", - "output": [ - [ - "Character", - "&Eopf" - ] - ] - }, - { - "input": "𝔼", - "description": "Named entity: Eopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd3c" - ] - ] - }, - { - "input": "&Epsilon", - "description": "Bad named entity: Epsilon without a semi-colon", - "output": [ - [ - "Character", - "&Epsilon" - ] - ] - }, - { - "input": "Ε", - "description": "Named entity: Epsilon; with a semi-colon", - "output": [ - [ - "Character", - "\u0395" - ] - ] - }, - { - "input": "&Equal", - "description": "Bad named entity: Equal without a semi-colon", - "output": [ - [ - "Character", - "&Equal" - ] - ] - }, - { - "input": "⩵", - "description": "Named entity: Equal; with a semi-colon", - "output": [ - [ - "Character", - "\u2a75" - ] - ] - }, - { - "input": "&EqualTilde", - "description": "Bad named entity: EqualTilde without a semi-colon", - "output": [ - [ - "Character", - "&EqualTilde" - ] - ] - }, - { - "input": "≂", - "description": "Named entity: EqualTilde; with a semi-colon", - "output": [ - [ - "Character", - "\u2242" - ] - ] - }, - { - "input": "&Equilibrium", - "description": "Bad named entity: Equilibrium without a semi-colon", - "output": [ - [ - "Character", - "&Equilibrium" - ] - ] - }, - { - "input": "⇌", - "description": "Named entity: Equilibrium; with a semi-colon", - "output": [ - [ - "Character", - "\u21cc" - ] - ] - }, - { - "input": "&Escr", - "description": "Bad named entity: Escr without a semi-colon", - "output": [ - [ - "Character", - "&Escr" - ] - ] - }, - { - "input": "ℰ", - "description": "Named entity: Escr; with a semi-colon", - "output": [ - [ - "Character", - "\u2130" - ] - ] - }, - { - "input": "&Esim", - "description": "Bad named entity: Esim without a semi-colon", - "output": [ - [ - "Character", - "&Esim" - ] - ] - }, - { - "input": "⩳", - "description": "Named entity: Esim; with a semi-colon", - "output": [ - [ - "Character", - "\u2a73" - ] - ] - }, - { - "input": "&Eta", - "description": "Bad named entity: Eta without a semi-colon", - "output": [ - [ - "Character", - "&Eta" - ] - ] - }, - { - "input": "Η", - "description": "Named entity: Eta; with a semi-colon", - "output": [ - [ - "Character", - "\u0397" - ] - ] - }, - { - "input": "Ë", - "description": "Named entity: Euml without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00cb" - ] - ] - }, - { - "input": "Ë", - "description": "Named entity: Euml; with a semi-colon", - "output": [ - [ - "Character", - "\u00cb" - ] - ] - }, - { - "input": "&Exists", - "description": "Bad named entity: Exists without a semi-colon", - "output": [ - [ - "Character", - "&Exists" - ] - ] - }, - { - "input": "∃", - "description": "Named entity: Exists; with a semi-colon", - "output": [ - [ - "Character", - "\u2203" - ] - ] - }, - { - "input": "&ExponentialE", - "description": "Bad named entity: ExponentialE without a semi-colon", - "output": [ - [ - "Character", - "&ExponentialE" - ] - ] - }, - { - "input": "ⅇ", - "description": "Named entity: ExponentialE; with a semi-colon", - "output": [ - [ - "Character", - "\u2147" - ] - ] - }, - { - "input": "&Fcy", - "description": "Bad named entity: Fcy without a semi-colon", - "output": [ - [ - "Character", - "&Fcy" - ] - ] - }, - { - "input": "Ф", - "description": "Named entity: Fcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0424" - ] - ] - }, - { - "input": "&Ffr", - "description": "Bad named entity: Ffr without a semi-colon", - "output": [ - [ - "Character", - "&Ffr" - ] - ] - }, - { - "input": "𝔉", - "description": "Named entity: Ffr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd09" - ] - ] - }, - { - "input": "&FilledSmallSquare", - "description": "Bad named entity: FilledSmallSquare without a semi-colon", - "output": [ - [ - "Character", - "&FilledSmallSquare" - ] - ] - }, - { - "input": "◼", - "description": "Named entity: FilledSmallSquare; with a semi-colon", - "output": [ - [ - "Character", - "\u25fc" - ] - ] - }, - { - "input": "&FilledVerySmallSquare", - "description": "Bad named entity: FilledVerySmallSquare without a semi-colon", - "output": [ - [ - "Character", - "&FilledVerySmallSquare" - ] - ] - }, - { - "input": "▪", - "description": "Named entity: FilledVerySmallSquare; with a semi-colon", - "output": [ - [ - "Character", - "\u25aa" - ] - ] - }, - { - "input": "&Fopf", - "description": "Bad named entity: Fopf without a semi-colon", - "output": [ - [ - "Character", - "&Fopf" - ] - ] - }, - { - "input": "𝔽", - "description": "Named entity: Fopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd3d" - ] - ] - }, - { - "input": "&ForAll", - "description": "Bad named entity: ForAll without a semi-colon", - "output": [ - [ - "Character", - "&ForAll" - ] - ] - }, - { - "input": "∀", - "description": "Named entity: ForAll; with a semi-colon", - "output": [ - [ - "Character", - "\u2200" - ] - ] - }, - { - "input": "&Fouriertrf", - "description": "Bad named entity: Fouriertrf without a semi-colon", - "output": [ - [ - "Character", - "&Fouriertrf" - ] - ] - }, - { - "input": "ℱ", - "description": "Named entity: Fouriertrf; with a semi-colon", - "output": [ - [ - "Character", - "\u2131" - ] - ] - }, - { - "input": "&Fscr", - "description": "Bad named entity: Fscr without a semi-colon", - "output": [ - [ - "Character", - "&Fscr" - ] - ] - }, - { - "input": "ℱ", - "description": "Named entity: Fscr; with a semi-colon", - "output": [ - [ - "Character", - "\u2131" - ] - ] - }, - { - "input": "&GJcy", - "description": "Bad named entity: GJcy without a semi-colon", - "output": [ - [ - "Character", - "&GJcy" - ] - ] - }, - { - "input": "Ѓ", - "description": "Named entity: GJcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0403" - ] - ] - }, - { - "input": ">", - "description": "Named entity: GT without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - ">" - ] - ] - }, - { - "input": ">", - "description": "Named entity: GT; with a semi-colon", - "output": [ - [ - "Character", - ">" - ] - ] - }, - { - "input": "&Gamma", - "description": "Bad named entity: Gamma without a semi-colon", - "output": [ - [ - "Character", - "&Gamma" - ] - ] - }, - { - "input": "Γ", - "description": "Named entity: Gamma; with a semi-colon", - "output": [ - [ - "Character", - "\u0393" - ] - ] - }, - { - "input": "&Gammad", - "description": "Bad named entity: Gammad without a semi-colon", - "output": [ - [ - "Character", - "&Gammad" - ] - ] - }, - { - "input": "Ϝ", - "description": "Named entity: Gammad; with a semi-colon", - "output": [ - [ - "Character", - "\u03dc" - ] - ] - }, - { - "input": "&Gbreve", - "description": "Bad named entity: Gbreve without a semi-colon", - "output": [ - [ - "Character", - "&Gbreve" - ] - ] - }, - { - "input": "Ğ", - "description": "Named entity: Gbreve; with a semi-colon", - "output": [ - [ - "Character", - "\u011e" - ] - ] - }, - { - "input": "&Gcedil", - "description": "Bad named entity: Gcedil without a semi-colon", - "output": [ - [ - "Character", - "&Gcedil" - ] - ] - }, - { - "input": "Ģ", - "description": "Named entity: Gcedil; with a semi-colon", - "output": [ - [ - "Character", - "\u0122" - ] - ] - }, - { - "input": "&Gcirc", - "description": "Bad named entity: Gcirc without a semi-colon", - "output": [ - [ - "Character", - "&Gcirc" - ] - ] - }, - { - "input": "Ĝ", - "description": "Named entity: Gcirc; with a semi-colon", - "output": [ - [ - "Character", - "\u011c" - ] - ] - }, - { - "input": "&Gcy", - "description": "Bad named entity: Gcy without a semi-colon", - "output": [ - [ - "Character", - "&Gcy" - ] - ] - }, - { - "input": "Г", - "description": "Named entity: Gcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0413" - ] - ] - }, - { - "input": "&Gdot", - "description": "Bad named entity: Gdot without a semi-colon", - "output": [ - [ - "Character", - "&Gdot" - ] - ] - }, - { - "input": "Ġ", - "description": "Named entity: Gdot; with a semi-colon", - "output": [ - [ - "Character", - "\u0120" - ] - ] - }, - { - "input": "&Gfr", - "description": "Bad named entity: Gfr without a semi-colon", - "output": [ - [ - "Character", - "&Gfr" - ] - ] - }, - { - "input": "𝔊", - "description": "Named entity: Gfr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd0a" - ] - ] - }, - { - "input": "&Gg", - "description": "Bad named entity: Gg without a semi-colon", - "output": [ - [ - "Character", - "&Gg" - ] - ] - }, - { - "input": "⋙", - "description": "Named entity: Gg; with a semi-colon", - "output": [ - [ - "Character", - "\u22d9" - ] - ] - }, - { - "input": "&Gopf", - "description": "Bad named entity: Gopf without a semi-colon", - "output": [ - [ - "Character", - "&Gopf" - ] - ] - }, - { - "input": "𝔾", - "description": "Named entity: Gopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd3e" - ] - ] - }, - { - "input": "&GreaterEqual", - "description": "Bad named entity: GreaterEqual without a semi-colon", - "output": [ - [ - "Character", - "&GreaterEqual" - ] - ] - }, - { - "input": "≥", - "description": "Named entity: GreaterEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u2265" - ] - ] - }, - { - "input": "&GreaterEqualLess", - "description": "Bad named entity: GreaterEqualLess without a semi-colon", - "output": [ - [ - "Character", - "&GreaterEqualLess" - ] - ] - }, - { - "input": "⋛", - "description": "Named entity: GreaterEqualLess; with a semi-colon", - "output": [ - [ - "Character", - "\u22db" - ] - ] - }, - { - "input": "&GreaterFullEqual", - "description": "Bad named entity: GreaterFullEqual without a semi-colon", - "output": [ - [ - "Character", - "&GreaterFullEqual" - ] - ] - }, - { - "input": "≧", - "description": "Named entity: GreaterFullEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u2267" - ] - ] - }, - { - "input": "&GreaterGreater", - "description": "Bad named entity: GreaterGreater without a semi-colon", - "output": [ - [ - "Character", - "&GreaterGreater" - ] - ] - }, - { - "input": "⪢", - "description": "Named entity: GreaterGreater; with a semi-colon", - "output": [ - [ - "Character", - "\u2aa2" - ] - ] - }, - { - "input": "&GreaterLess", - "description": "Bad named entity: GreaterLess without a semi-colon", - "output": [ - [ - "Character", - "&GreaterLess" - ] - ] - }, - { - "input": "≷", - "description": "Named entity: GreaterLess; with a semi-colon", - "output": [ - [ - "Character", - "\u2277" - ] - ] - }, - { - "input": "&GreaterSlantEqual", - "description": "Bad named entity: GreaterSlantEqual without a semi-colon", - "output": [ - [ - "Character", - "&GreaterSlantEqual" - ] - ] - }, - { - "input": "⩾", - "description": "Named entity: GreaterSlantEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u2a7e" - ] - ] - }, - { - "input": "&GreaterTilde", - "description": "Bad named entity: GreaterTilde without a semi-colon", - "output": [ - [ - "Character", - "&GreaterTilde" - ] - ] - }, - { - "input": "≳", - "description": "Named entity: GreaterTilde; with a semi-colon", - "output": [ - [ - "Character", - "\u2273" - ] - ] - }, - { - "input": "&Gscr", - "description": "Bad named entity: Gscr without a semi-colon", - "output": [ - [ - "Character", - "&Gscr" - ] - ] - }, - { - "input": "𝒢", - "description": "Named entity: Gscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udca2" - ] - ] - }, - { - "input": "&Gt", - "description": "Bad named entity: Gt without a semi-colon", - "output": [ - [ - "Character", - "&Gt" - ] - ] - }, - { - "input": "≫", - "description": "Named entity: Gt; with a semi-colon", - "output": [ - [ - "Character", - "\u226b" - ] - ] - }, - { - "input": "&HARDcy", - "description": "Bad named entity: HARDcy without a semi-colon", - "output": [ - [ - "Character", - "&HARDcy" - ] - ] - }, - { - "input": "Ъ", - "description": "Named entity: HARDcy; with a semi-colon", - "output": [ - [ - "Character", - "\u042a" - ] - ] - }, - { - "input": "&Hacek", - "description": "Bad named entity: Hacek without a semi-colon", - "output": [ - [ - "Character", - "&Hacek" - ] - ] - }, - { - "input": "ˇ", - "description": "Named entity: Hacek; with a semi-colon", - "output": [ - [ - "Character", - "\u02c7" - ] - ] - }, - { - "input": "&Hat", - "description": "Bad named entity: Hat without a semi-colon", - "output": [ - [ - "Character", - "&Hat" - ] - ] - }, - { - "input": "^", - "description": "Named entity: Hat; with a semi-colon", - "output": [ - [ - "Character", - "^" - ] - ] - }, - { - "input": "&Hcirc", - "description": "Bad named entity: Hcirc without a semi-colon", - "output": [ - [ - "Character", - "&Hcirc" - ] - ] - }, - { - "input": "Ĥ", - "description": "Named entity: Hcirc; with a semi-colon", - "output": [ - [ - "Character", - "\u0124" - ] - ] - }, - { - "input": "&Hfr", - "description": "Bad named entity: Hfr without a semi-colon", - "output": [ - [ - "Character", - "&Hfr" - ] - ] - }, - { - "input": "ℌ", - "description": "Named entity: Hfr; with a semi-colon", - "output": [ - [ - "Character", - "\u210c" - ] - ] - }, - { - "input": "&HilbertSpace", - "description": "Bad named entity: HilbertSpace without a semi-colon", - "output": [ - [ - "Character", - "&HilbertSpace" - ] - ] - }, - { - "input": "ℋ", - "description": "Named entity: HilbertSpace; with a semi-colon", - "output": [ - [ - "Character", - "\u210b" - ] - ] - }, - { - "input": "&Hopf", - "description": "Bad named entity: Hopf without a semi-colon", - "output": [ - [ - "Character", - "&Hopf" - ] - ] - }, - { - "input": "ℍ", - "description": "Named entity: Hopf; with a semi-colon", - "output": [ - [ - "Character", - "\u210d" - ] - ] - }, - { - "input": "&HorizontalLine", - "description": "Bad named entity: HorizontalLine without a semi-colon", - "output": [ - [ - "Character", - "&HorizontalLine" - ] - ] - }, - { - "input": "─", - "description": "Named entity: HorizontalLine; with a semi-colon", - "output": [ - [ - "Character", - "\u2500" - ] - ] - }, - { - "input": "&Hscr", - "description": "Bad named entity: Hscr without a semi-colon", - "output": [ - [ - "Character", - "&Hscr" - ] - ] - }, - { - "input": "ℋ", - "description": "Named entity: Hscr; with a semi-colon", - "output": [ - [ - "Character", - "\u210b" - ] - ] - }, - { - "input": "&Hstrok", - "description": "Bad named entity: Hstrok without a semi-colon", - "output": [ - [ - "Character", - "&Hstrok" - ] - ] - }, - { - "input": "Ħ", - "description": "Named entity: Hstrok; with a semi-colon", - "output": [ - [ - "Character", - "\u0126" - ] - ] - }, - { - "input": "&HumpDownHump", - "description": "Bad named entity: HumpDownHump without a semi-colon", - "output": [ - [ - "Character", - "&HumpDownHump" - ] - ] - }, - { - "input": "≎", - "description": "Named entity: HumpDownHump; with a semi-colon", - "output": [ - [ - "Character", - "\u224e" - ] - ] - }, - { - "input": "&HumpEqual", - "description": "Bad named entity: HumpEqual without a semi-colon", - "output": [ - [ - "Character", - "&HumpEqual" - ] - ] - }, - { - "input": "≏", - "description": "Named entity: HumpEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u224f" - ] - ] - }, - { - "input": "&IEcy", - "description": "Bad named entity: IEcy without a semi-colon", - "output": [ - [ - "Character", - "&IEcy" - ] - ] - }, - { - "input": "Е", - "description": "Named entity: IEcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0415" - ] - ] - }, - { - "input": "&IJlig", - "description": "Bad named entity: IJlig without a semi-colon", - "output": [ - [ - "Character", - "&IJlig" - ] - ] - }, - { - "input": "IJ", - "description": "Named entity: IJlig; with a semi-colon", - "output": [ - [ - "Character", - "\u0132" - ] - ] - }, - { - "input": "&IOcy", - "description": "Bad named entity: IOcy without a semi-colon", - "output": [ - [ - "Character", - "&IOcy" - ] - ] - }, - { - "input": "Ё", - "description": "Named entity: IOcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0401" - ] - ] - }, - { - "input": "Í", - "description": "Named entity: Iacute without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00cd" - ] - ] - }, - { - "input": "Í", - "description": "Named entity: Iacute; with a semi-colon", - "output": [ - [ - "Character", - "\u00cd" - ] - ] - }, - { - "input": "Î", - "description": "Named entity: Icirc without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00ce" - ] - ] - }, - { - "input": "Î", - "description": "Named entity: Icirc; with a semi-colon", - "output": [ - [ - "Character", - "\u00ce" - ] - ] - }, - { - "input": "&Icy", - "description": "Bad named entity: Icy without a semi-colon", - "output": [ - [ - "Character", - "&Icy" - ] - ] - }, - { - "input": "И", - "description": "Named entity: Icy; with a semi-colon", - "output": [ - [ - "Character", - "\u0418" - ] - ] - }, - { - "input": "&Idot", - "description": "Bad named entity: Idot without a semi-colon", - "output": [ - [ - "Character", - "&Idot" - ] - ] - }, - { - "input": "İ", - "description": "Named entity: Idot; with a semi-colon", - "output": [ - [ - "Character", - "\u0130" - ] - ] - }, - { - "input": "&Ifr", - "description": "Bad named entity: Ifr without a semi-colon", - "output": [ - [ - "Character", - "&Ifr" - ] - ] - }, - { - "input": "ℑ", - "description": "Named entity: Ifr; with a semi-colon", - "output": [ - [ - "Character", - "\u2111" - ] - ] - }, - { - "input": "Ì", - "description": "Named entity: Igrave without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00cc" - ] - ] - }, - { - "input": "Ì", - "description": "Named entity: Igrave; with a semi-colon", - "output": [ - [ - "Character", - "\u00cc" - ] - ] - }, - { - "input": "&Im", - "description": "Bad named entity: Im without a semi-colon", - "output": [ - [ - "Character", - "&Im" - ] - ] - }, - { - "input": "ℑ", - "description": "Named entity: Im; with a semi-colon", - "output": [ - [ - "Character", - "\u2111" - ] - ] - }, - { - "input": "&Imacr", - "description": "Bad named entity: Imacr without a semi-colon", - "output": [ - [ - "Character", - "&Imacr" - ] - ] - }, - { - "input": "Ī", - "description": "Named entity: Imacr; with a semi-colon", - "output": [ - [ - "Character", - "\u012a" - ] - ] - }, - { - "input": "&ImaginaryI", - "description": "Bad named entity: ImaginaryI without a semi-colon", - "output": [ - [ - "Character", - "&ImaginaryI" - ] - ] - }, - { - "input": "ⅈ", - "description": "Named entity: ImaginaryI; with a semi-colon", - "output": [ - [ - "Character", - "\u2148" - ] - ] - }, - { - "input": "&Implies", - "description": "Bad named entity: Implies without a semi-colon", - "output": [ - [ - "Character", - "&Implies" - ] - ] - }, - { - "input": "⇒", - "description": "Named entity: Implies; with a semi-colon", - "output": [ - [ - "Character", - "\u21d2" - ] - ] - }, - { - "input": "&Int", - "description": "Bad named entity: Int without a semi-colon", - "output": [ - [ - "Character", - "&Int" - ] - ] - }, - { - "input": "∬", - "description": "Named entity: Int; with a semi-colon", - "output": [ - [ - "Character", - "\u222c" - ] - ] - }, - { - "input": "&Integral", - "description": "Bad named entity: Integral without a semi-colon", - "output": [ - [ - "Character", - "&Integral" - ] - ] - }, - { - "input": "∫", - "description": "Named entity: Integral; with a semi-colon", - "output": [ - [ - "Character", - "\u222b" - ] - ] - }, - { - "input": "&Intersection", - "description": "Bad named entity: Intersection without a semi-colon", - "output": [ - [ - "Character", - "&Intersection" - ] - ] - }, - { - "input": "⋂", - "description": "Named entity: Intersection; with a semi-colon", - "output": [ - [ - "Character", - "\u22c2" - ] - ] - }, - { - "input": "&InvisibleComma", - "description": "Bad named entity: InvisibleComma without a semi-colon", - "output": [ - [ - "Character", - "&InvisibleComma" - ] - ] - }, - { - "input": "⁣", - "description": "Named entity: InvisibleComma; with a semi-colon", - "output": [ - [ - "Character", - "\u2063" - ] - ] - }, - { - "input": "&InvisibleTimes", - "description": "Bad named entity: InvisibleTimes without a semi-colon", - "output": [ - [ - "Character", - "&InvisibleTimes" - ] - ] - }, - { - "input": "⁢", - "description": "Named entity: InvisibleTimes; with a semi-colon", - "output": [ - [ - "Character", - "\u2062" - ] - ] - }, - { - "input": "&Iogon", - "description": "Bad named entity: Iogon without a semi-colon", - "output": [ - [ - "Character", - "&Iogon" - ] - ] - }, - { - "input": "Į", - "description": "Named entity: Iogon; with a semi-colon", - "output": [ - [ - "Character", - "\u012e" - ] - ] - }, - { - "input": "&Iopf", - "description": "Bad named entity: Iopf without a semi-colon", - "output": [ - [ - "Character", - "&Iopf" - ] - ] - }, - { - "input": "𝕀", - "description": "Named entity: Iopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd40" - ] - ] - }, - { - "input": "&Iota", - "description": "Bad named entity: Iota without a semi-colon", - "output": [ - [ - "Character", - "&Iota" - ] - ] - }, - { - "input": "Ι", - "description": "Named entity: Iota; with a semi-colon", - "output": [ - [ - "Character", - "\u0399" - ] - ] - }, - { - "input": "&Iscr", - "description": "Bad named entity: Iscr without a semi-colon", - "output": [ - [ - "Character", - "&Iscr" - ] - ] - }, - { - "input": "ℐ", - "description": "Named entity: Iscr; with a semi-colon", - "output": [ - [ - "Character", - "\u2110" - ] - ] - }, - { - "input": "&Itilde", - "description": "Bad named entity: Itilde without a semi-colon", - "output": [ - [ - "Character", - "&Itilde" - ] - ] - }, - { - "input": "Ĩ", - "description": "Named entity: Itilde; with a semi-colon", - "output": [ - [ - "Character", - "\u0128" - ] - ] - }, - { - "input": "&Iukcy", - "description": "Bad named entity: Iukcy without a semi-colon", - "output": [ - [ - "Character", - "&Iukcy" - ] - ] - }, - { - "input": "І", - "description": "Named entity: Iukcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0406" - ] - ] - }, - { - "input": "Ï", - "description": "Named entity: Iuml without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00cf" - ] - ] - }, - { - "input": "Ï", - "description": "Named entity: Iuml; with a semi-colon", - "output": [ - [ - "Character", - "\u00cf" - ] - ] - }, - { - "input": "&Jcirc", - "description": "Bad named entity: Jcirc without a semi-colon", - "output": [ - [ - "Character", - "&Jcirc" - ] - ] - }, - { - "input": "Ĵ", - "description": "Named entity: Jcirc; with a semi-colon", - "output": [ - [ - "Character", - "\u0134" - ] - ] - }, - { - "input": "&Jcy", - "description": "Bad named entity: Jcy without a semi-colon", - "output": [ - [ - "Character", - "&Jcy" - ] - ] - }, - { - "input": "Й", - "description": "Named entity: Jcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0419" - ] - ] - }, - { - "input": "&Jfr", - "description": "Bad named entity: Jfr without a semi-colon", - "output": [ - [ - "Character", - "&Jfr" - ] - ] - }, - { - "input": "𝔍", - "description": "Named entity: Jfr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd0d" - ] - ] - }, - { - "input": "&Jopf", - "description": "Bad named entity: Jopf without a semi-colon", - "output": [ - [ - "Character", - "&Jopf" - ] - ] - }, - { - "input": "𝕁", - "description": "Named entity: Jopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd41" - ] - ] - }, - { - "input": "&Jscr", - "description": "Bad named entity: Jscr without a semi-colon", - "output": [ - [ - "Character", - "&Jscr" - ] - ] - }, - { - "input": "𝒥", - "description": "Named entity: Jscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udca5" - ] - ] - }, - { - "input": "&Jsercy", - "description": "Bad named entity: Jsercy without a semi-colon", - "output": [ - [ - "Character", - "&Jsercy" - ] - ] - }, - { - "input": "Ј", - "description": "Named entity: Jsercy; with a semi-colon", - "output": [ - [ - "Character", - "\u0408" - ] - ] - }, - { - "input": "&Jukcy", - "description": "Bad named entity: Jukcy without a semi-colon", - "output": [ - [ - "Character", - "&Jukcy" - ] - ] - }, - { - "input": "Є", - "description": "Named entity: Jukcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0404" - ] - ] - }, - { - "input": "&KHcy", - "description": "Bad named entity: KHcy without a semi-colon", - "output": [ - [ - "Character", - "&KHcy" - ] - ] - }, - { - "input": "Х", - "description": "Named entity: KHcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0425" - ] - ] - }, - { - "input": "&KJcy", - "description": "Bad named entity: KJcy without a semi-colon", - "output": [ - [ - "Character", - "&KJcy" - ] - ] - }, - { - "input": "Ќ", - "description": "Named entity: KJcy; with a semi-colon", - "output": [ - [ - "Character", - "\u040c" - ] - ] - }, - { - "input": "&Kappa", - "description": "Bad named entity: Kappa without a semi-colon", - "output": [ - [ - "Character", - "&Kappa" - ] - ] - }, - { - "input": "Κ", - "description": "Named entity: Kappa; with a semi-colon", - "output": [ - [ - "Character", - "\u039a" - ] - ] - }, - { - "input": "&Kcedil", - "description": "Bad named entity: Kcedil without a semi-colon", - "output": [ - [ - "Character", - "&Kcedil" - ] - ] - }, - { - "input": "Ķ", - "description": "Named entity: Kcedil; with a semi-colon", - "output": [ - [ - "Character", - "\u0136" - ] - ] - }, - { - "input": "&Kcy", - "description": "Bad named entity: Kcy without a semi-colon", - "output": [ - [ - "Character", - "&Kcy" - ] - ] - }, - { - "input": "К", - "description": "Named entity: Kcy; with a semi-colon", - "output": [ - [ - "Character", - "\u041a" - ] - ] - }, - { - "input": "&Kfr", - "description": "Bad named entity: Kfr without a semi-colon", - "output": [ - [ - "Character", - "&Kfr" - ] - ] - }, - { - "input": "𝔎", - "description": "Named entity: Kfr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd0e" - ] - ] - }, - { - "input": "&Kopf", - "description": "Bad named entity: Kopf without a semi-colon", - "output": [ - [ - "Character", - "&Kopf" - ] - ] - }, - { - "input": "𝕂", - "description": "Named entity: Kopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd42" - ] - ] - }, - { - "input": "&Kscr", - "description": "Bad named entity: Kscr without a semi-colon", - "output": [ - [ - "Character", - "&Kscr" - ] - ] - }, - { - "input": "𝒦", - "description": "Named entity: Kscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udca6" - ] - ] - }, - { - "input": "&LJcy", - "description": "Bad named entity: LJcy without a semi-colon", - "output": [ - [ - "Character", - "&LJcy" - ] - ] - }, - { - "input": "Љ", - "description": "Named entity: LJcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0409" - ] - ] - }, - { - "input": "<", - "description": "Named entity: LT without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "<" - ] - ] - }, - { - "input": "<", - "description": "Named entity: LT; with a semi-colon", - "output": [ - [ - "Character", - "<" - ] - ] - }, - { - "input": "&Lacute", - "description": "Bad named entity: Lacute without a semi-colon", - "output": [ - [ - "Character", - "&Lacute" - ] - ] - }, - { - "input": "Ĺ", - "description": "Named entity: Lacute; with a semi-colon", - "output": [ - [ - "Character", - "\u0139" - ] - ] - }, - { - "input": "&Lambda", - "description": "Bad named entity: Lambda without a semi-colon", - "output": [ - [ - "Character", - "&Lambda" - ] - ] - }, - { - "input": "Λ", - "description": "Named entity: Lambda; with a semi-colon", - "output": [ - [ - "Character", - "\u039b" - ] - ] - }, - { - "input": "&Lang", - "description": "Bad named entity: Lang without a semi-colon", - "output": [ - [ - "Character", - "&Lang" - ] - ] - }, - { - "input": "⟪", - "description": "Named entity: Lang; with a semi-colon", - "output": [ - [ - "Character", - "\u27ea" - ] - ] - }, - { - "input": "&Laplacetrf", - "description": "Bad named entity: Laplacetrf without a semi-colon", - "output": [ - [ - "Character", - "&Laplacetrf" - ] - ] - }, - { - "input": "ℒ", - "description": "Named entity: Laplacetrf; with a semi-colon", - "output": [ - [ - "Character", - "\u2112" - ] - ] - }, - { - "input": "&Larr", - "description": "Bad named entity: Larr without a semi-colon", - "output": [ - [ - "Character", - "&Larr" - ] - ] - }, - { - "input": "↞", - "description": "Named entity: Larr; with a semi-colon", - "output": [ - [ - "Character", - "\u219e" - ] - ] - }, - { - "input": "&Lcaron", - "description": "Bad named entity: Lcaron without a semi-colon", - "output": [ - [ - "Character", - "&Lcaron" - ] - ] - }, - { - "input": "Ľ", - "description": "Named entity: Lcaron; with a semi-colon", - "output": [ - [ - "Character", - "\u013d" - ] - ] - }, - { - "input": "&Lcedil", - "description": "Bad named entity: Lcedil without a semi-colon", - "output": [ - [ - "Character", - "&Lcedil" - ] - ] - }, - { - "input": "Ļ", - "description": "Named entity: Lcedil; with a semi-colon", - "output": [ - [ - "Character", - "\u013b" - ] - ] - }, - { - "input": "&Lcy", - "description": "Bad named entity: Lcy without a semi-colon", - "output": [ - [ - "Character", - "&Lcy" - ] - ] - }, - { - "input": "Л", - "description": "Named entity: Lcy; with a semi-colon", - "output": [ - [ - "Character", - "\u041b" - ] - ] - }, - { - "input": "&LeftAngleBracket", - "description": "Bad named entity: LeftAngleBracket without a semi-colon", - "output": [ - [ - "Character", - "&LeftAngleBracket" - ] - ] - }, - { - "input": "⟨", - "description": "Named entity: LeftAngleBracket; with a semi-colon", - "output": [ - [ - "Character", - "\u27e8" - ] - ] - }, - { - "input": "&LeftArrow", - "description": "Bad named entity: LeftArrow without a semi-colon", - "output": [ - [ - "Character", - "&LeftArrow" - ] - ] - }, - { - "input": "←", - "description": "Named entity: LeftArrow; with a semi-colon", - "output": [ - [ - "Character", - "\u2190" - ] - ] - }, - { - "input": "&LeftArrowBar", - "description": "Bad named entity: LeftArrowBar without a semi-colon", - "output": [ - [ - "Character", - "&LeftArrowBar" - ] - ] - }, - { - "input": "⇤", - "description": "Named entity: LeftArrowBar; with a semi-colon", - "output": [ - [ - "Character", - "\u21e4" - ] - ] - }, - { - "input": "&LeftArrowRightArrow", - "description": "Bad named entity: LeftArrowRightArrow without a semi-colon", - "output": [ - [ - "Character", - "&LeftArrowRightArrow" - ] - ] - }, - { - "input": "⇆", - "description": "Named entity: LeftArrowRightArrow; with a semi-colon", - "output": [ - [ - "Character", - "\u21c6" - ] - ] - }, - { - "input": "&LeftCeiling", - "description": "Bad named entity: LeftCeiling without a semi-colon", - "output": [ - [ - "Character", - "&LeftCeiling" - ] - ] - }, - { - "input": "⌈", - "description": "Named entity: LeftCeiling; with a semi-colon", - "output": [ - [ - "Character", - "\u2308" - ] - ] - }, - { - "input": "&LeftDoubleBracket", - "description": "Bad named entity: LeftDoubleBracket without a semi-colon", - "output": [ - [ - "Character", - "&LeftDoubleBracket" - ] - ] - }, - { - "input": "⟦", - "description": "Named entity: LeftDoubleBracket; with a semi-colon", - "output": [ - [ - "Character", - "\u27e6" - ] - ] - }, - { - "input": "&LeftDownTeeVector", - "description": "Bad named entity: LeftDownTeeVector without a semi-colon", - "output": [ - [ - "Character", - "&LeftDownTeeVector" - ] - ] - }, - { - "input": "⥡", - "description": "Named entity: LeftDownTeeVector; with a semi-colon", - "output": [ - [ - "Character", - "\u2961" - ] - ] - }, - { - "input": "&LeftDownVector", - "description": "Bad named entity: LeftDownVector without a semi-colon", - "output": [ - [ - "Character", - "&LeftDownVector" - ] - ] - }, - { - "input": "⇃", - "description": "Named entity: LeftDownVector; with a semi-colon", - "output": [ - [ - "Character", - "\u21c3" - ] - ] - }, - { - "input": "&LeftDownVectorBar", - "description": "Bad named entity: LeftDownVectorBar without a semi-colon", - "output": [ - [ - "Character", - "&LeftDownVectorBar" - ] - ] - }, - { - "input": "⥙", - "description": "Named entity: LeftDownVectorBar; with a semi-colon", - "output": [ - [ - "Character", - "\u2959" - ] - ] - }, - { - "input": "&LeftFloor", - "description": "Bad named entity: LeftFloor without a semi-colon", - "output": [ - [ - "Character", - "&LeftFloor" - ] - ] - }, - { - "input": "⌊", - "description": "Named entity: LeftFloor; with a semi-colon", - "output": [ - [ - "Character", - "\u230a" - ] - ] - }, - { - "input": "&LeftRightArrow", - "description": "Bad named entity: LeftRightArrow without a semi-colon", - "output": [ - [ - "Character", - "&LeftRightArrow" - ] - ] - }, - { - "input": "↔", - "description": "Named entity: LeftRightArrow; with a semi-colon", - "output": [ - [ - "Character", - "\u2194" - ] - ] - }, - { - "input": "&LeftRightVector", - "description": "Bad named entity: LeftRightVector without a semi-colon", - "output": [ - [ - "Character", - "&LeftRightVector" - ] - ] - }, - { - "input": "⥎", - "description": "Named entity: LeftRightVector; with a semi-colon", - "output": [ - [ - "Character", - "\u294e" - ] - ] - }, - { - "input": "&LeftTee", - "description": "Bad named entity: LeftTee without a semi-colon", - "output": [ - [ - "Character", - "&LeftTee" - ] - ] - }, - { - "input": "⊣", - "description": "Named entity: LeftTee; with a semi-colon", - "output": [ - [ - "Character", - "\u22a3" - ] - ] - }, - { - "input": "&LeftTeeArrow", - "description": "Bad named entity: LeftTeeArrow without a semi-colon", - "output": [ - [ - "Character", - "&LeftTeeArrow" - ] - ] - }, - { - "input": "↤", - "description": "Named entity: LeftTeeArrow; with a semi-colon", - "output": [ - [ - "Character", - "\u21a4" - ] - ] - }, - { - "input": "&LeftTeeVector", - "description": "Bad named entity: LeftTeeVector without a semi-colon", - "output": [ - [ - "Character", - "&LeftTeeVector" - ] - ] - }, - { - "input": "⥚", - "description": "Named entity: LeftTeeVector; with a semi-colon", - "output": [ - [ - "Character", - "\u295a" - ] - ] - }, - { - "input": "&LeftTriangle", - "description": "Bad named entity: LeftTriangle without a semi-colon", - "output": [ - [ - "Character", - "&LeftTriangle" - ] - ] - }, - { - "input": "⊲", - "description": "Named entity: LeftTriangle; with a semi-colon", - "output": [ - [ - "Character", - "\u22b2" - ] - ] - }, - { - "input": "&LeftTriangleBar", - "description": "Bad named entity: LeftTriangleBar without a semi-colon", - "output": [ - [ - "Character", - "&LeftTriangleBar" - ] - ] - }, - { - "input": "⧏", - "description": "Named entity: LeftTriangleBar; with a semi-colon", - "output": [ - [ - "Character", - "\u29cf" - ] - ] - }, - { - "input": "&LeftTriangleEqual", - "description": "Bad named entity: LeftTriangleEqual without a semi-colon", - "output": [ - [ - "Character", - "&LeftTriangleEqual" - ] - ] - }, - { - "input": "⊴", - "description": "Named entity: LeftTriangleEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u22b4" - ] - ] - }, - { - "input": "&LeftUpDownVector", - "description": "Bad named entity: LeftUpDownVector without a semi-colon", - "output": [ - [ - "Character", - "&LeftUpDownVector" - ] - ] - }, - { - "input": "⥑", - "description": "Named entity: LeftUpDownVector; with a semi-colon", - "output": [ - [ - "Character", - "\u2951" - ] - ] - }, - { - "input": "&LeftUpTeeVector", - "description": "Bad named entity: LeftUpTeeVector without a semi-colon", - "output": [ - [ - "Character", - "&LeftUpTeeVector" - ] - ] - }, - { - "input": "⥠", - "description": "Named entity: LeftUpTeeVector; with a semi-colon", - "output": [ - [ - "Character", - "\u2960" - ] - ] - }, - { - "input": "&LeftUpVector", - "description": "Bad named entity: LeftUpVector without a semi-colon", - "output": [ - [ - "Character", - "&LeftUpVector" - ] - ] - }, - { - "input": "↿", - "description": "Named entity: LeftUpVector; with a semi-colon", - "output": [ - [ - "Character", - "\u21bf" - ] - ] - }, - { - "input": "&LeftUpVectorBar", - "description": "Bad named entity: LeftUpVectorBar without a semi-colon", - "output": [ - [ - "Character", - "&LeftUpVectorBar" - ] - ] - }, - { - "input": "⥘", - "description": "Named entity: LeftUpVectorBar; with a semi-colon", - "output": [ - [ - "Character", - "\u2958" - ] - ] - }, - { - "input": "&LeftVector", - "description": "Bad named entity: LeftVector without a semi-colon", - "output": [ - [ - "Character", - "&LeftVector" - ] - ] - }, - { - "input": "↼", - "description": "Named entity: LeftVector; with a semi-colon", - "output": [ - [ - "Character", - "\u21bc" - ] - ] - }, - { - "input": "&LeftVectorBar", - "description": "Bad named entity: LeftVectorBar without a semi-colon", - "output": [ - [ - "Character", - "&LeftVectorBar" - ] - ] - }, - { - "input": "⥒", - "description": "Named entity: LeftVectorBar; with a semi-colon", - "output": [ - [ - "Character", - "\u2952" - ] - ] - }, - { - "input": "&Leftarrow", - "description": "Bad named entity: Leftarrow without a semi-colon", - "output": [ - [ - "Character", - "&Leftarrow" - ] - ] - }, - { - "input": "⇐", - "description": "Named entity: Leftarrow; with a semi-colon", - "output": [ - [ - "Character", - "\u21d0" - ] - ] - }, - { - "input": "&Leftrightarrow", - "description": "Bad named entity: Leftrightarrow without a semi-colon", - "output": [ - [ - "Character", - "&Leftrightarrow" - ] - ] - }, - { - "input": "⇔", - "description": "Named entity: Leftrightarrow; with a semi-colon", - "output": [ - [ - "Character", - "\u21d4" - ] - ] - }, - { - "input": "&LessEqualGreater", - "description": "Bad named entity: LessEqualGreater without a semi-colon", - "output": [ - [ - "Character", - "&LessEqualGreater" - ] - ] - }, - { - "input": "⋚", - "description": "Named entity: LessEqualGreater; with a semi-colon", - "output": [ - [ - "Character", - "\u22da" - ] - ] - }, - { - "input": "&LessFullEqual", - "description": "Bad named entity: LessFullEqual without a semi-colon", - "output": [ - [ - "Character", - "&LessFullEqual" - ] - ] - }, - { - "input": "≦", - "description": "Named entity: LessFullEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u2266" - ] - ] - }, - { - "input": "&LessGreater", - "description": "Bad named entity: LessGreater without a semi-colon", - "output": [ - [ - "Character", - "&LessGreater" - ] - ] - }, - { - "input": "≶", - "description": "Named entity: LessGreater; with a semi-colon", - "output": [ - [ - "Character", - "\u2276" - ] - ] - }, - { - "input": "&LessLess", - "description": "Bad named entity: LessLess without a semi-colon", - "output": [ - [ - "Character", - "&LessLess" - ] - ] - }, - { - "input": "⪡", - "description": "Named entity: LessLess; with a semi-colon", - "output": [ - [ - "Character", - "\u2aa1" - ] - ] - }, - { - "input": "&LessSlantEqual", - "description": "Bad named entity: LessSlantEqual without a semi-colon", - "output": [ - [ - "Character", - "&LessSlantEqual" - ] - ] - }, - { - "input": "⩽", - "description": "Named entity: LessSlantEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u2a7d" - ] - ] - }, - { - "input": "&LessTilde", - "description": "Bad named entity: LessTilde without a semi-colon", - "output": [ - [ - "Character", - "&LessTilde" - ] - ] - }, - { - "input": "≲", - "description": "Named entity: LessTilde; with a semi-colon", - "output": [ - [ - "Character", - "\u2272" - ] - ] - }, - { - "input": "&Lfr", - "description": "Bad named entity: Lfr without a semi-colon", - "output": [ - [ - "Character", - "&Lfr" - ] - ] - }, - { - "input": "𝔏", - "description": "Named entity: Lfr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd0f" - ] - ] - }, - { - "input": "&Ll", - "description": "Bad named entity: Ll without a semi-colon", - "output": [ - [ - "Character", - "&Ll" - ] - ] - }, - { - "input": "⋘", - "description": "Named entity: Ll; with a semi-colon", - "output": [ - [ - "Character", - "\u22d8" - ] - ] - }, - { - "input": "&Lleftarrow", - "description": "Bad named entity: Lleftarrow without a semi-colon", - "output": [ - [ - "Character", - "&Lleftarrow" - ] - ] - }, - { - "input": "⇚", - "description": "Named entity: Lleftarrow; with a semi-colon", - "output": [ - [ - "Character", - "\u21da" - ] - ] - }, - { - "input": "&Lmidot", - "description": "Bad named entity: Lmidot without a semi-colon", - "output": [ - [ - "Character", - "&Lmidot" - ] - ] - }, - { - "input": "Ŀ", - "description": "Named entity: Lmidot; with a semi-colon", - "output": [ - [ - "Character", - "\u013f" - ] - ] - }, - { - "input": "&LongLeftArrow", - "description": "Bad named entity: LongLeftArrow without a semi-colon", - "output": [ - [ - "Character", - "&LongLeftArrow" - ] - ] - }, - { - "input": "⟵", - "description": "Named entity: LongLeftArrow; with a semi-colon", - "output": [ - [ - "Character", - "\u27f5" - ] - ] - }, - { - "input": "&LongLeftRightArrow", - "description": "Bad named entity: LongLeftRightArrow without a semi-colon", - "output": [ - [ - "Character", - "&LongLeftRightArrow" - ] - ] - }, - { - "input": "⟷", - "description": "Named entity: LongLeftRightArrow; with a semi-colon", - "output": [ - [ - "Character", - "\u27f7" - ] - ] - }, - { - "input": "&LongRightArrow", - "description": "Bad named entity: LongRightArrow without a semi-colon", - "output": [ - [ - "Character", - "&LongRightArrow" - ] - ] - }, - { - "input": "⟶", - "description": "Named entity: LongRightArrow; with a semi-colon", - "output": [ - [ - "Character", - "\u27f6" - ] - ] - }, - { - "input": "&Longleftarrow", - "description": "Bad named entity: Longleftarrow without a semi-colon", - "output": [ - [ - "Character", - "&Longleftarrow" - ] - ] - }, - { - "input": "⟸", - "description": "Named entity: Longleftarrow; with a semi-colon", - "output": [ - [ - "Character", - "\u27f8" - ] - ] - }, - { - "input": "&Longleftrightarrow", - "description": "Bad named entity: Longleftrightarrow without a semi-colon", - "output": [ - [ - "Character", - "&Longleftrightarrow" - ] - ] - }, - { - "input": "⟺", - "description": "Named entity: Longleftrightarrow; with a semi-colon", - "output": [ - [ - "Character", - "\u27fa" - ] - ] - }, - { - "input": "&Longrightarrow", - "description": "Bad named entity: Longrightarrow without a semi-colon", - "output": [ - [ - "Character", - "&Longrightarrow" - ] - ] - }, - { - "input": "⟹", - "description": "Named entity: Longrightarrow; with a semi-colon", - "output": [ - [ - "Character", - "\u27f9" - ] - ] - }, - { - "input": "&Lopf", - "description": "Bad named entity: Lopf without a semi-colon", - "output": [ - [ - "Character", - "&Lopf" - ] - ] - }, - { - "input": "𝕃", - "description": "Named entity: Lopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd43" - ] - ] - }, - { - "input": "&LowerLeftArrow", - "description": "Bad named entity: LowerLeftArrow without a semi-colon", - "output": [ - [ - "Character", - "&LowerLeftArrow" - ] - ] - }, - { - "input": "↙", - "description": "Named entity: LowerLeftArrow; with a semi-colon", - "output": [ - [ - "Character", - "\u2199" - ] - ] - }, - { - "input": "&LowerRightArrow", - "description": "Bad named entity: LowerRightArrow without a semi-colon", - "output": [ - [ - "Character", - "&LowerRightArrow" - ] - ] - }, - { - "input": "↘", - "description": "Named entity: LowerRightArrow; with a semi-colon", - "output": [ - [ - "Character", - "\u2198" - ] - ] - }, - { - "input": "&Lscr", - "description": "Bad named entity: Lscr without a semi-colon", - "output": [ - [ - "Character", - "&Lscr" - ] - ] - }, - { - "input": "ℒ", - "description": "Named entity: Lscr; with a semi-colon", - "output": [ - [ - "Character", - "\u2112" - ] - ] - }, - { - "input": "&Lsh", - "description": "Bad named entity: Lsh without a semi-colon", - "output": [ - [ - "Character", - "&Lsh" - ] - ] - }, - { - "input": "↰", - "description": "Named entity: Lsh; with a semi-colon", - "output": [ - [ - "Character", - "\u21b0" - ] - ] - }, - { - "input": "&Lstrok", - "description": "Bad named entity: Lstrok without a semi-colon", - "output": [ - [ - "Character", - "&Lstrok" - ] - ] - }, - { - "input": "Ł", - "description": "Named entity: Lstrok; with a semi-colon", - "output": [ - [ - "Character", - "\u0141" - ] - ] - }, - { - "input": "&Lt", - "description": "Bad named entity: Lt without a semi-colon", - "output": [ - [ - "Character", - "&Lt" - ] - ] - }, - { - "input": "≪", - "description": "Named entity: Lt; with a semi-colon", - "output": [ - [ - "Character", - "\u226a" - ] - ] - }, - { - "input": "&Map", - "description": "Bad named entity: Map without a semi-colon", - "output": [ - [ - "Character", - "&Map" - ] - ] - }, - { - "input": "⤅", - "description": "Named entity: Map; with a semi-colon", - "output": [ - [ - "Character", - "\u2905" - ] - ] - }, - { - "input": "&Mcy", - "description": "Bad named entity: Mcy without a semi-colon", - "output": [ - [ - "Character", - "&Mcy" - ] - ] - }, - { - "input": "М", - "description": "Named entity: Mcy; with a semi-colon", - "output": [ - [ - "Character", - "\u041c" - ] - ] - }, - { - "input": "&MediumSpace", - "description": "Bad named entity: MediumSpace without a semi-colon", - "output": [ - [ - "Character", - "&MediumSpace" - ] - ] - }, - { - "input": " ", - "description": "Named entity: MediumSpace; with a semi-colon", - "output": [ - [ - "Character", - "\u205f" - ] - ] - }, - { - "input": "&Mellintrf", - "description": "Bad named entity: Mellintrf without a semi-colon", - "output": [ - [ - "Character", - "&Mellintrf" - ] - ] - }, - { - "input": "ℳ", - "description": "Named entity: Mellintrf; with a semi-colon", - "output": [ - [ - "Character", - "\u2133" - ] - ] - }, - { - "input": "&Mfr", - "description": "Bad named entity: Mfr without a semi-colon", - "output": [ - [ - "Character", - "&Mfr" - ] - ] - }, - { - "input": "𝔐", - "description": "Named entity: Mfr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd10" - ] - ] - }, - { - "input": "&MinusPlus", - "description": "Bad named entity: MinusPlus without a semi-colon", - "output": [ - [ - "Character", - "&MinusPlus" - ] - ] - }, - { - "input": "∓", - "description": "Named entity: MinusPlus; with a semi-colon", - "output": [ - [ - "Character", - "\u2213" - ] - ] - }, - { - "input": "&Mopf", - "description": "Bad named entity: Mopf without a semi-colon", - "output": [ - [ - "Character", - "&Mopf" - ] - ] - }, - { - "input": "𝕄", - "description": "Named entity: Mopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd44" - ] - ] - }, - { - "input": "&Mscr", - "description": "Bad named entity: Mscr without a semi-colon", - "output": [ - [ - "Character", - "&Mscr" - ] - ] - }, - { - "input": "ℳ", - "description": "Named entity: Mscr; with a semi-colon", - "output": [ - [ - "Character", - "\u2133" - ] - ] - }, - { - "input": "&Mu", - "description": "Bad named entity: Mu without a semi-colon", - "output": [ - [ - "Character", - "&Mu" - ] - ] - }, - { - "input": "Μ", - "description": "Named entity: Mu; with a semi-colon", - "output": [ - [ - "Character", - "\u039c" - ] - ] - }, - { - "input": "&NJcy", - "description": "Bad named entity: NJcy without a semi-colon", - "output": [ - [ - "Character", - "&NJcy" - ] - ] - }, - { - "input": "Њ", - "description": "Named entity: NJcy; with a semi-colon", - "output": [ - [ - "Character", - "\u040a" - ] - ] - }, - { - "input": "&Nacute", - "description": "Bad named entity: Nacute without a semi-colon", - "output": [ - [ - "Character", - "&Nacute" - ] - ] - }, - { - "input": "Ń", - "description": "Named entity: Nacute; with a semi-colon", - "output": [ - [ - "Character", - "\u0143" - ] - ] - }, - { - "input": "&Ncaron", - "description": "Bad named entity: Ncaron without a semi-colon", - "output": [ - [ - "Character", - "&Ncaron" - ] - ] - }, - { - "input": "Ň", - "description": "Named entity: Ncaron; with a semi-colon", - "output": [ - [ - "Character", - "\u0147" - ] - ] - }, - { - "input": "&Ncedil", - "description": "Bad named entity: Ncedil without a semi-colon", - "output": [ - [ - "Character", - "&Ncedil" - ] - ] - }, - { - "input": "Ņ", - "description": "Named entity: Ncedil; with a semi-colon", - "output": [ - [ - "Character", - "\u0145" - ] - ] - }, - { - "input": "&Ncy", - "description": "Bad named entity: Ncy without a semi-colon", - "output": [ - [ - "Character", - "&Ncy" - ] - ] - }, - { - "input": "Н", - "description": "Named entity: Ncy; with a semi-colon", - "output": [ - [ - "Character", - "\u041d" - ] - ] - }, - { - "input": "&NegativeMediumSpace", - "description": "Bad named entity: NegativeMediumSpace without a semi-colon", - "output": [ - [ - "Character", - "&NegativeMediumSpace" - ] - ] - }, - { - "input": "​", - "description": "Named entity: NegativeMediumSpace; with a semi-colon", - "output": [ - [ - "Character", - "\u200b" - ] - ] - }, - { - "input": "&NegativeThickSpace", - "description": "Bad named entity: NegativeThickSpace without a semi-colon", - "output": [ - [ - "Character", - "&NegativeThickSpace" - ] - ] - }, - { - "input": "​", - "description": "Named entity: NegativeThickSpace; with a semi-colon", - "output": [ - [ - "Character", - "\u200b" - ] - ] - }, - { - "input": "&NegativeThinSpace", - "description": "Bad named entity: NegativeThinSpace without a semi-colon", - "output": [ - [ - "Character", - "&NegativeThinSpace" - ] - ] - }, - { - "input": "​", - "description": "Named entity: NegativeThinSpace; with a semi-colon", - "output": [ - [ - "Character", - "\u200b" - ] - ] - }, - { - "input": "&NegativeVeryThinSpace", - "description": "Bad named entity: NegativeVeryThinSpace without a semi-colon", - "output": [ - [ - "Character", - "&NegativeVeryThinSpace" - ] - ] - }, - { - "input": "​", - "description": "Named entity: NegativeVeryThinSpace; with a semi-colon", - "output": [ - [ - "Character", - "\u200b" - ] - ] - }, - { - "input": "&NestedGreaterGreater", - "description": "Bad named entity: NestedGreaterGreater without a semi-colon", - "output": [ - [ - "Character", - "&NestedGreaterGreater" - ] - ] - }, - { - "input": "≫", - "description": "Named entity: NestedGreaterGreater; with a semi-colon", - "output": [ - [ - "Character", - "\u226b" - ] - ] - }, - { - "input": "&NestedLessLess", - "description": "Bad named entity: NestedLessLess without a semi-colon", - "output": [ - [ - "Character", - "&NestedLessLess" - ] - ] - }, - { - "input": "≪", - "description": "Named entity: NestedLessLess; with a semi-colon", - "output": [ - [ - "Character", - "\u226a" - ] - ] - }, - { - "input": "&NewLine", - "description": "Bad named entity: NewLine without a semi-colon", - "output": [ - [ - "Character", - "&NewLine" - ] - ] - }, - { - "input": "
", - "description": "Named entity: NewLine; with a semi-colon", - "output": [ - [ - "Character", - "\n" - ] - ] - }, - { - "input": "&Nfr", - "description": "Bad named entity: Nfr without a semi-colon", - "output": [ - [ - "Character", - "&Nfr" - ] - ] - }, - { - "input": "𝔑", - "description": "Named entity: Nfr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd11" - ] - ] - }, - { - "input": "&NoBreak", - "description": "Bad named entity: NoBreak without a semi-colon", - "output": [ - [ - "Character", - "&NoBreak" - ] - ] - }, - { - "input": "⁠", - "description": "Named entity: NoBreak; with a semi-colon", - "output": [ - [ - "Character", - "\u2060" - ] - ] - }, - { - "input": "&NonBreakingSpace", - "description": "Bad named entity: NonBreakingSpace without a semi-colon", - "output": [ - [ - "Character", - "&NonBreakingSpace" - ] - ] - }, - { - "input": " ", - "description": "Named entity: NonBreakingSpace; with a semi-colon", - "output": [ - [ - "Character", - "\u00a0" - ] - ] - }, - { - "input": "&Nopf", - "description": "Bad named entity: Nopf without a semi-colon", - "output": [ - [ - "Character", - "&Nopf" - ] - ] - }, - { - "input": "ℕ", - "description": "Named entity: Nopf; with a semi-colon", - "output": [ - [ - "Character", - "\u2115" - ] - ] - }, - { - "input": "&Not", - "description": "Bad named entity: Not without a semi-colon", - "output": [ - [ - "Character", - "&Not" - ] - ] - }, - { - "input": "⫬", - "description": "Named entity: Not; with a semi-colon", - "output": [ - [ - "Character", - "\u2aec" - ] - ] - }, - { - "input": "&NotCongruent", - "description": "Bad named entity: NotCongruent without a semi-colon", - "output": [ - [ - "Character", - "&NotCongruent" - ] - ] - }, - { - "input": "≢", - "description": "Named entity: NotCongruent; with a semi-colon", - "output": [ - [ - "Character", - "\u2262" - ] - ] - }, - { - "input": "&NotCupCap", - "description": "Bad named entity: NotCupCap without a semi-colon", - "output": [ - [ - "Character", - "&NotCupCap" - ] - ] - }, - { - "input": "≭", - "description": "Named entity: NotCupCap; with a semi-colon", - "output": [ - [ - "Character", - "\u226d" - ] - ] - }, - { - "input": "&NotDoubleVerticalBar", - "description": "Bad named entity: NotDoubleVerticalBar without a semi-colon", - "output": [ - [ - "Character", - "&NotDoubleVerticalBar" - ] - ] - }, - { - "input": "∦", - "description": "Named entity: NotDoubleVerticalBar; with a semi-colon", - "output": [ - [ - "Character", - "\u2226" - ] - ] - }, - { - "input": "&NotElement", - "description": "Bad named entity: NotElement without a semi-colon", - "output": [ - [ - "Character", - "&NotElement" - ] - ] - }, - { - "input": "∉", - "description": "Named entity: NotElement; with a semi-colon", - "output": [ - [ - "Character", - "\u2209" - ] - ] - }, - { - "input": "&NotEqual", - "description": "Bad named entity: NotEqual without a semi-colon", - "output": [ - [ - "Character", - "&NotEqual" - ] - ] - }, - { - "input": "≠", - "description": "Named entity: NotEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u2260" - ] - ] - }, - { - "input": "&NotEqualTilde", - "description": "Bad named entity: NotEqualTilde without a semi-colon", - "output": [ - [ - "Character", - "&NotEqualTilde" - ] - ] - }, - { - "input": "≂̸", - "description": "Named entity: NotEqualTilde; with a semi-colon", - "output": [ - [ - "Character", - "\u2242\u0338" - ] - ] - }, - { - "input": "&NotExists", - "description": "Bad named entity: NotExists without a semi-colon", - "output": [ - [ - "Character", - "&NotExists" - ] - ] - }, - { - "input": "∄", - "description": "Named entity: NotExists; with a semi-colon", - "output": [ - [ - "Character", - "\u2204" - ] - ] - }, - { - "input": "&NotGreater", - "description": "Bad named entity: NotGreater without a semi-colon", - "output": [ - [ - "Character", - "&NotGreater" - ] - ] - }, - { - "input": "≯", - "description": "Named entity: NotGreater; with a semi-colon", - "output": [ - [ - "Character", - "\u226f" - ] - ] - }, - { - "input": "&NotGreaterEqual", - "description": "Bad named entity: NotGreaterEqual without a semi-colon", - "output": [ - [ - "Character", - "&NotGreaterEqual" - ] - ] - }, - { - "input": "≱", - "description": "Named entity: NotGreaterEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u2271" - ] - ] - }, - { - "input": "&NotGreaterFullEqual", - "description": "Bad named entity: NotGreaterFullEqual without a semi-colon", - "output": [ - [ - "Character", - "&NotGreaterFullEqual" - ] - ] - }, - { - "input": "≧̸", - "description": "Named entity: NotGreaterFullEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u2267\u0338" - ] - ] - }, - { - "input": "&NotGreaterGreater", - "description": "Bad named entity: NotGreaterGreater without a semi-colon", - "output": [ - [ - "Character", - "&NotGreaterGreater" - ] - ] - }, - { - "input": "≫̸", - "description": "Named entity: NotGreaterGreater; with a semi-colon", - "output": [ - [ - "Character", - "\u226b\u0338" - ] - ] - }, - { - "input": "&NotGreaterLess", - "description": "Bad named entity: NotGreaterLess without a semi-colon", - "output": [ - [ - "Character", - "&NotGreaterLess" - ] - ] - }, - { - "input": "≹", - "description": "Named entity: NotGreaterLess; with a semi-colon", - "output": [ - [ - "Character", - "\u2279" - ] - ] - }, - { - "input": "&NotGreaterSlantEqual", - "description": "Bad named entity: NotGreaterSlantEqual without a semi-colon", - "output": [ - [ - "Character", - "&NotGreaterSlantEqual" - ] - ] - }, - { - "input": "⩾̸", - "description": "Named entity: NotGreaterSlantEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u2a7e\u0338" - ] - ] - }, - { - "input": "&NotGreaterTilde", - "description": "Bad named entity: NotGreaterTilde without a semi-colon", - "output": [ - [ - "Character", - "&NotGreaterTilde" - ] - ] - }, - { - "input": "≵", - "description": "Named entity: NotGreaterTilde; with a semi-colon", - "output": [ - [ - "Character", - "\u2275" - ] - ] - }, - { - "input": "&NotHumpDownHump", - "description": "Bad named entity: NotHumpDownHump without a semi-colon", - "output": [ - [ - "Character", - "&NotHumpDownHump" - ] - ] - }, - { - "input": "≎̸", - "description": "Named entity: NotHumpDownHump; with a semi-colon", - "output": [ - [ - "Character", - "\u224e\u0338" - ] - ] - }, - { - "input": "&NotHumpEqual", - "description": "Bad named entity: NotHumpEqual without a semi-colon", - "output": [ - [ - "Character", - "&NotHumpEqual" - ] - ] - }, - { - "input": "≏̸", - "description": "Named entity: NotHumpEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u224f\u0338" - ] - ] - }, - { - "input": "&NotLeftTriangle", - "description": "Bad named entity: NotLeftTriangle without a semi-colon", - "output": [ - [ - "Character", - "&NotLeftTriangle" - ] - ] - }, - { - "input": "⋪", - "description": "Named entity: NotLeftTriangle; with a semi-colon", - "output": [ - [ - "Character", - "\u22ea" - ] - ] - }, - { - "input": "&NotLeftTriangleBar", - "description": "Bad named entity: NotLeftTriangleBar without a semi-colon", - "output": [ - [ - "Character", - "&NotLeftTriangleBar" - ] - ] - }, - { - "input": "⧏̸", - "description": "Named entity: NotLeftTriangleBar; with a semi-colon", - "output": [ - [ - "Character", - "\u29cf\u0338" - ] - ] - }, - { - "input": "&NotLeftTriangleEqual", - "description": "Bad named entity: NotLeftTriangleEqual without a semi-colon", - "output": [ - [ - "Character", - "&NotLeftTriangleEqual" - ] - ] - }, - { - "input": "⋬", - "description": "Named entity: NotLeftTriangleEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u22ec" - ] - ] - }, - { - "input": "&NotLess", - "description": "Bad named entity: NotLess without a semi-colon", - "output": [ - [ - "Character", - "&NotLess" - ] - ] - }, - { - "input": "≮", - "description": "Named entity: NotLess; with a semi-colon", - "output": [ - [ - "Character", - "\u226e" - ] - ] - }, - { - "input": "&NotLessEqual", - "description": "Bad named entity: NotLessEqual without a semi-colon", - "output": [ - [ - "Character", - "&NotLessEqual" - ] - ] - }, - { - "input": "≰", - "description": "Named entity: NotLessEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u2270" - ] - ] - }, - { - "input": "&NotLessGreater", - "description": "Bad named entity: NotLessGreater without a semi-colon", - "output": [ - [ - "Character", - "&NotLessGreater" - ] - ] - }, - { - "input": "≸", - "description": "Named entity: NotLessGreater; with a semi-colon", - "output": [ - [ - "Character", - "\u2278" - ] - ] - }, - { - "input": "&NotLessLess", - "description": "Bad named entity: NotLessLess without a semi-colon", - "output": [ - [ - "Character", - "&NotLessLess" - ] - ] - }, - { - "input": "≪̸", - "description": "Named entity: NotLessLess; with a semi-colon", - "output": [ - [ - "Character", - "\u226a\u0338" - ] - ] - }, - { - "input": "&NotLessSlantEqual", - "description": "Bad named entity: NotLessSlantEqual without a semi-colon", - "output": [ - [ - "Character", - "&NotLessSlantEqual" - ] - ] - }, - { - "input": "⩽̸", - "description": "Named entity: NotLessSlantEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u2a7d\u0338" - ] - ] - }, - { - "input": "&NotLessTilde", - "description": "Bad named entity: NotLessTilde without a semi-colon", - "output": [ - [ - "Character", - "&NotLessTilde" - ] - ] - }, - { - "input": "≴", - "description": "Named entity: NotLessTilde; with a semi-colon", - "output": [ - [ - "Character", - "\u2274" - ] - ] - }, - { - "input": "&NotNestedGreaterGreater", - "description": "Bad named entity: NotNestedGreaterGreater without a semi-colon", - "output": [ - [ - "Character", - "&NotNestedGreaterGreater" - ] - ] - }, - { - "input": "⪢̸", - "description": "Named entity: NotNestedGreaterGreater; with a semi-colon", - "output": [ - [ - "Character", - "\u2aa2\u0338" - ] - ] - }, - { - "input": "&NotNestedLessLess", - "description": "Bad named entity: NotNestedLessLess without a semi-colon", - "output": [ - [ - "Character", - "&NotNestedLessLess" - ] - ] - }, - { - "input": "⪡̸", - "description": "Named entity: NotNestedLessLess; with a semi-colon", - "output": [ - [ - "Character", - "\u2aa1\u0338" - ] - ] - }, - { - "input": "&NotPrecedes", - "description": "Bad named entity: NotPrecedes without a semi-colon", - "output": [ - [ - "Character", - "&NotPrecedes" - ] - ] - }, - { - "input": "⊀", - "description": "Named entity: NotPrecedes; with a semi-colon", - "output": [ - [ - "Character", - "\u2280" - ] - ] - }, - { - "input": "&NotPrecedesEqual", - "description": "Bad named entity: NotPrecedesEqual without a semi-colon", - "output": [ - [ - "Character", - "&NotPrecedesEqual" - ] - ] - }, - { - "input": "⪯̸", - "description": "Named entity: NotPrecedesEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u2aaf\u0338" - ] - ] - }, - { - "input": "&NotPrecedesSlantEqual", - "description": "Bad named entity: NotPrecedesSlantEqual without a semi-colon", - "output": [ - [ - "Character", - "&NotPrecedesSlantEqual" - ] - ] - }, - { - "input": "⋠", - "description": "Named entity: NotPrecedesSlantEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u22e0" - ] - ] - }, - { - "input": "&NotReverseElement", - "description": "Bad named entity: NotReverseElement without a semi-colon", - "output": [ - [ - "Character", - "&NotReverseElement" - ] - ] - }, - { - "input": "∌", - "description": "Named entity: NotReverseElement; with a semi-colon", - "output": [ - [ - "Character", - "\u220c" - ] - ] - }, - { - "input": "&NotRightTriangle", - "description": "Bad named entity: NotRightTriangle without a semi-colon", - "output": [ - [ - "Character", - "&NotRightTriangle" - ] - ] - }, - { - "input": "⋫", - "description": "Named entity: NotRightTriangle; with a semi-colon", - "output": [ - [ - "Character", - "\u22eb" - ] - ] - }, - { - "input": "&NotRightTriangleBar", - "description": "Bad named entity: NotRightTriangleBar without a semi-colon", - "output": [ - [ - "Character", - "&NotRightTriangleBar" - ] - ] - }, - { - "input": "⧐̸", - "description": "Named entity: NotRightTriangleBar; with a semi-colon", - "output": [ - [ - "Character", - "\u29d0\u0338" - ] - ] - }, - { - "input": "&NotRightTriangleEqual", - "description": "Bad named entity: NotRightTriangleEqual without a semi-colon", - "output": [ - [ - "Character", - "&NotRightTriangleEqual" - ] - ] - }, - { - "input": "⋭", - "description": "Named entity: NotRightTriangleEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u22ed" - ] - ] - }, - { - "input": "&NotSquareSubset", - "description": "Bad named entity: NotSquareSubset without a semi-colon", - "output": [ - [ - "Character", - "&NotSquareSubset" - ] - ] - }, - { - "input": "⊏̸", - "description": "Named entity: NotSquareSubset; with a semi-colon", - "output": [ - [ - "Character", - "\u228f\u0338" - ] - ] - }, - { - "input": "&NotSquareSubsetEqual", - "description": "Bad named entity: NotSquareSubsetEqual without a semi-colon", - "output": [ - [ - "Character", - "&NotSquareSubsetEqual" - ] - ] - }, - { - "input": "⋢", - "description": "Named entity: NotSquareSubsetEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u22e2" - ] - ] - }, - { - "input": "&NotSquareSuperset", - "description": "Bad named entity: NotSquareSuperset without a semi-colon", - "output": [ - [ - "Character", - "&NotSquareSuperset" - ] - ] - }, - { - "input": "⊐̸", - "description": "Named entity: NotSquareSuperset; with a semi-colon", - "output": [ - [ - "Character", - "\u2290\u0338" - ] - ] - }, - { - "input": "&NotSquareSupersetEqual", - "description": "Bad named entity: NotSquareSupersetEqual without a semi-colon", - "output": [ - [ - "Character", - "&NotSquareSupersetEqual" - ] - ] - }, - { - "input": "⋣", - "description": "Named entity: NotSquareSupersetEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u22e3" - ] - ] - }, - { - "input": "&NotSubset", - "description": "Bad named entity: NotSubset without a semi-colon", - "output": [ - [ - "Character", - "&NotSubset" - ] - ] - }, - { - "input": "⊂⃒", - "description": "Named entity: NotSubset; with a semi-colon", - "output": [ - [ - "Character", - "\u2282\u20d2" - ] - ] - }, - { - "input": "&NotSubsetEqual", - "description": "Bad named entity: NotSubsetEqual without a semi-colon", - "output": [ - [ - "Character", - "&NotSubsetEqual" - ] - ] - }, - { - "input": "⊈", - "description": "Named entity: NotSubsetEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u2288" - ] - ] - }, - { - "input": "&NotSucceeds", - "description": "Bad named entity: NotSucceeds without a semi-colon", - "output": [ - [ - "Character", - "&NotSucceeds" - ] - ] - }, - { - "input": "⊁", - "description": "Named entity: NotSucceeds; with a semi-colon", - "output": [ - [ - "Character", - "\u2281" - ] - ] - }, - { - "input": "&NotSucceedsEqual", - "description": "Bad named entity: NotSucceedsEqual without a semi-colon", - "output": [ - [ - "Character", - "&NotSucceedsEqual" - ] - ] - }, - { - "input": "⪰̸", - "description": "Named entity: NotSucceedsEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u2ab0\u0338" - ] - ] - }, - { - "input": "&NotSucceedsSlantEqual", - "description": "Bad named entity: NotSucceedsSlantEqual without a semi-colon", - "output": [ - [ - "Character", - "&NotSucceedsSlantEqual" - ] - ] - }, - { - "input": "⋡", - "description": "Named entity: NotSucceedsSlantEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u22e1" - ] - ] - }, - { - "input": "&NotSucceedsTilde", - "description": "Bad named entity: NotSucceedsTilde without a semi-colon", - "output": [ - [ - "Character", - "&NotSucceedsTilde" - ] - ] - }, - { - "input": "≿̸", - "description": "Named entity: NotSucceedsTilde; with a semi-colon", - "output": [ - [ - "Character", - "\u227f\u0338" - ] - ] - }, - { - "input": "&NotSuperset", - "description": "Bad named entity: NotSuperset without a semi-colon", - "output": [ - [ - "Character", - "&NotSuperset" - ] - ] - }, - { - "input": "⊃⃒", - "description": "Named entity: NotSuperset; with a semi-colon", - "output": [ - [ - "Character", - "\u2283\u20d2" - ] - ] - }, - { - "input": "&NotSupersetEqual", - "description": "Bad named entity: NotSupersetEqual without a semi-colon", - "output": [ - [ - "Character", - "&NotSupersetEqual" - ] - ] - }, - { - "input": "⊉", - "description": "Named entity: NotSupersetEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u2289" - ] - ] - }, - { - "input": "&NotTilde", - "description": "Bad named entity: NotTilde without a semi-colon", - "output": [ - [ - "Character", - "&NotTilde" - ] - ] - }, - { - "input": "≁", - "description": "Named entity: NotTilde; with a semi-colon", - "output": [ - [ - "Character", - "\u2241" - ] - ] - }, - { - "input": "&NotTildeEqual", - "description": "Bad named entity: NotTildeEqual without a semi-colon", - "output": [ - [ - "Character", - "&NotTildeEqual" - ] - ] - }, - { - "input": "≄", - "description": "Named entity: NotTildeEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u2244" - ] - ] - }, - { - "input": "&NotTildeFullEqual", - "description": "Bad named entity: NotTildeFullEqual without a semi-colon", - "output": [ - [ - "Character", - "&NotTildeFullEqual" - ] - ] - }, - { - "input": "≇", - "description": "Named entity: NotTildeFullEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u2247" - ] - ] - }, - { - "input": "&NotTildeTilde", - "description": "Bad named entity: NotTildeTilde without a semi-colon", - "output": [ - [ - "Character", - "&NotTildeTilde" - ] - ] - }, - { - "input": "≉", - "description": "Named entity: NotTildeTilde; with a semi-colon", - "output": [ - [ - "Character", - "\u2249" - ] - ] - }, - { - "input": "&NotVerticalBar", - "description": "Bad named entity: NotVerticalBar without a semi-colon", - "output": [ - [ - "Character", - "&NotVerticalBar" - ] - ] - }, - { - "input": "∤", - "description": "Named entity: NotVerticalBar; with a semi-colon", - "output": [ - [ - "Character", - "\u2224" - ] - ] - }, - { - "input": "&Nscr", - "description": "Bad named entity: Nscr without a semi-colon", - "output": [ - [ - "Character", - "&Nscr" - ] - ] - }, - { - "input": "𝒩", - "description": "Named entity: Nscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udca9" - ] - ] - }, - { - "input": "Ñ", - "description": "Named entity: Ntilde without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00d1" - ] - ] - }, - { - "input": "Ñ", - "description": "Named entity: Ntilde; with a semi-colon", - "output": [ - [ - "Character", - "\u00d1" - ] - ] - }, - { - "input": "&Nu", - "description": "Bad named entity: Nu without a semi-colon", - "output": [ - [ - "Character", - "&Nu" - ] - ] - }, - { - "input": "Ν", - "description": "Named entity: Nu; with a semi-colon", - "output": [ - [ - "Character", - "\u039d" - ] - ] - }, - { - "input": "&OElig", - "description": "Bad named entity: OElig without a semi-colon", - "output": [ - [ - "Character", - "&OElig" - ] - ] - }, - { - "input": "Œ", - "description": "Named entity: OElig; with a semi-colon", - "output": [ - [ - "Character", - "\u0152" - ] - ] - }, - { - "input": "Ó", - "description": "Named entity: Oacute without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00d3" - ] - ] - }, - { - "input": "Ó", - "description": "Named entity: Oacute; with a semi-colon", - "output": [ - [ - "Character", - "\u00d3" - ] - ] - }, - { - "input": "Ô", - "description": "Named entity: Ocirc without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00d4" - ] - ] - }, - { - "input": "Ô", - "description": "Named entity: Ocirc; with a semi-colon", - "output": [ - [ - "Character", - "\u00d4" - ] - ] - }, - { - "input": "&Ocy", - "description": "Bad named entity: Ocy without a semi-colon", - "output": [ - [ - "Character", - "&Ocy" - ] - ] - }, - { - "input": "О", - "description": "Named entity: Ocy; with a semi-colon", - "output": [ - [ - "Character", - "\u041e" - ] - ] - }, - { - "input": "&Odblac", - "description": "Bad named entity: Odblac without a semi-colon", - "output": [ - [ - "Character", - "&Odblac" - ] - ] - }, - { - "input": "Ő", - "description": "Named entity: Odblac; with a semi-colon", - "output": [ - [ - "Character", - "\u0150" - ] - ] - }, - { - "input": "&Ofr", - "description": "Bad named entity: Ofr without a semi-colon", - "output": [ - [ - "Character", - "&Ofr" - ] - ] - }, - { - "input": "𝔒", - "description": "Named entity: Ofr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd12" - ] - ] - }, - { - "input": "Ò", - "description": "Named entity: Ograve without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00d2" - ] - ] - }, - { - "input": "Ò", - "description": "Named entity: Ograve; with a semi-colon", - "output": [ - [ - "Character", - "\u00d2" - ] - ] - }, - { - "input": "&Omacr", - "description": "Bad named entity: Omacr without a semi-colon", - "output": [ - [ - "Character", - "&Omacr" - ] - ] - }, - { - "input": "Ō", - "description": "Named entity: Omacr; with a semi-colon", - "output": [ - [ - "Character", - "\u014c" - ] - ] - }, - { - "input": "&Omega", - "description": "Bad named entity: Omega without a semi-colon", - "output": [ - [ - "Character", - "&Omega" - ] - ] - }, - { - "input": "Ω", - "description": "Named entity: Omega; with a semi-colon", - "output": [ - [ - "Character", - "\u03a9" - ] - ] - }, - { - "input": "&Omicron", - "description": "Bad named entity: Omicron without a semi-colon", - "output": [ - [ - "Character", - "&Omicron" - ] - ] - }, - { - "input": "Ο", - "description": "Named entity: Omicron; with a semi-colon", - "output": [ - [ - "Character", - "\u039f" - ] - ] - }, - { - "input": "&Oopf", - "description": "Bad named entity: Oopf without a semi-colon", - "output": [ - [ - "Character", - "&Oopf" - ] - ] - }, - { - "input": "𝕆", - "description": "Named entity: Oopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd46" - ] - ] - }, - { - "input": "&OpenCurlyDoubleQuote", - "description": "Bad named entity: OpenCurlyDoubleQuote without a semi-colon", - "output": [ - [ - "Character", - "&OpenCurlyDoubleQuote" - ] - ] - }, - { - "input": "“", - "description": "Named entity: OpenCurlyDoubleQuote; with a semi-colon", - "output": [ - [ - "Character", - "\u201c" - ] - ] - }, - { - "input": "&OpenCurlyQuote", - "description": "Bad named entity: OpenCurlyQuote without a semi-colon", - "output": [ - [ - "Character", - "&OpenCurlyQuote" - ] - ] - }, - { - "input": "‘", - "description": "Named entity: OpenCurlyQuote; with a semi-colon", - "output": [ - [ - "Character", - "\u2018" - ] - ] - }, - { - "input": "&Or", - "description": "Bad named entity: Or without a semi-colon", - "output": [ - [ - "Character", - "&Or" - ] - ] - }, - { - "input": "⩔", - "description": "Named entity: Or; with a semi-colon", - "output": [ - [ - "Character", - "\u2a54" - ] - ] - }, - { - "input": "&Oscr", - "description": "Bad named entity: Oscr without a semi-colon", - "output": [ - [ - "Character", - "&Oscr" - ] - ] - }, - { - "input": "𝒪", - "description": "Named entity: Oscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udcaa" - ] - ] - }, - { - "input": "Ø", - "description": "Named entity: Oslash without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00d8" - ] - ] - }, - { - "input": "Ø", - "description": "Named entity: Oslash; with a semi-colon", - "output": [ - [ - "Character", - "\u00d8" - ] - ] - }, - { - "input": "Õ", - "description": "Named entity: Otilde without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00d5" - ] - ] - }, - { - "input": "Õ", - "description": "Named entity: Otilde; with a semi-colon", - "output": [ - [ - "Character", - "\u00d5" - ] - ] - }, - { - "input": "&Otimes", - "description": "Bad named entity: Otimes without a semi-colon", - "output": [ - [ - "Character", - "&Otimes" - ] - ] - }, - { - "input": "⨷", - "description": "Named entity: Otimes; with a semi-colon", - "output": [ - [ - "Character", - "\u2a37" - ] - ] - }, - { - "input": "Ö", - "description": "Named entity: Ouml without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00d6" - ] - ] - }, - { - "input": "Ö", - "description": "Named entity: Ouml; with a semi-colon", - "output": [ - [ - "Character", - "\u00d6" - ] - ] - }, - { - "input": "&OverBar", - "description": "Bad named entity: OverBar without a semi-colon", - "output": [ - [ - "Character", - "&OverBar" - ] - ] - }, - { - "input": "‾", - "description": "Named entity: OverBar; with a semi-colon", - "output": [ - [ - "Character", - "\u203e" - ] - ] - }, - { - "input": "&OverBrace", - "description": "Bad named entity: OverBrace without a semi-colon", - "output": [ - [ - "Character", - "&OverBrace" - ] - ] - }, - { - "input": "⏞", - "description": "Named entity: OverBrace; with a semi-colon", - "output": [ - [ - "Character", - "\u23de" - ] - ] - }, - { - "input": "&OverBracket", - "description": "Bad named entity: OverBracket without a semi-colon", - "output": [ - [ - "Character", - "&OverBracket" - ] - ] - }, - { - "input": "⎴", - "description": "Named entity: OverBracket; with a semi-colon", - "output": [ - [ - "Character", - "\u23b4" - ] - ] - }, - { - "input": "&OverParenthesis", - "description": "Bad named entity: OverParenthesis without a semi-colon", - "output": [ - [ - "Character", - "&OverParenthesis" - ] - ] - }, - { - "input": "⏜", - "description": "Named entity: OverParenthesis; with a semi-colon", - "output": [ - [ - "Character", - "\u23dc" - ] - ] - }, - { - "input": "&PartialD", - "description": "Bad named entity: PartialD without a semi-colon", - "output": [ - [ - "Character", - "&PartialD" - ] - ] - }, - { - "input": "∂", - "description": "Named entity: PartialD; with a semi-colon", - "output": [ - [ - "Character", - "\u2202" - ] - ] - }, - { - "input": "&Pcy", - "description": "Bad named entity: Pcy without a semi-colon", - "output": [ - [ - "Character", - "&Pcy" - ] - ] - }, - { - "input": "П", - "description": "Named entity: Pcy; with a semi-colon", - "output": [ - [ - "Character", - "\u041f" - ] - ] - }, - { - "input": "&Pfr", - "description": "Bad named entity: Pfr without a semi-colon", - "output": [ - [ - "Character", - "&Pfr" - ] - ] - }, - { - "input": "𝔓", - "description": "Named entity: Pfr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd13" - ] - ] - }, - { - "input": "&Phi", - "description": "Bad named entity: Phi without a semi-colon", - "output": [ - [ - "Character", - "&Phi" - ] - ] - }, - { - "input": "Φ", - "description": "Named entity: Phi; with a semi-colon", - "output": [ - [ - "Character", - "\u03a6" - ] - ] - }, - { - "input": "&Pi", - "description": "Bad named entity: Pi without a semi-colon", - "output": [ - [ - "Character", - "&Pi" - ] - ] - }, - { - "input": "Π", - "description": "Named entity: Pi; with a semi-colon", - "output": [ - [ - "Character", - "\u03a0" - ] - ] - }, - { - "input": "&PlusMinus", - "description": "Bad named entity: PlusMinus without a semi-colon", - "output": [ - [ - "Character", - "&PlusMinus" - ] - ] - }, - { - "input": "±", - "description": "Named entity: PlusMinus; with a semi-colon", - "output": [ - [ - "Character", - "\u00b1" - ] - ] - }, - { - "input": "&Poincareplane", - "description": "Bad named entity: Poincareplane without a semi-colon", - "output": [ - [ - "Character", - "&Poincareplane" - ] - ] - }, - { - "input": "ℌ", - "description": "Named entity: Poincareplane; with a semi-colon", - "output": [ - [ - "Character", - "\u210c" - ] - ] - }, - { - "input": "&Popf", - "description": "Bad named entity: Popf without a semi-colon", - "output": [ - [ - "Character", - "&Popf" - ] - ] - }, - { - "input": "ℙ", - "description": "Named entity: Popf; with a semi-colon", - "output": [ - [ - "Character", - "\u2119" - ] - ] - }, - { - "input": "&Pr", - "description": "Bad named entity: Pr without a semi-colon", - "output": [ - [ - "Character", - "&Pr" - ] - ] - }, - { - "input": "⪻", - "description": "Named entity: Pr; with a semi-colon", - "output": [ - [ - "Character", - "\u2abb" - ] - ] - }, - { - "input": "&Precedes", - "description": "Bad named entity: Precedes without a semi-colon", - "output": [ - [ - "Character", - "&Precedes" - ] - ] - }, - { - "input": "≺", - "description": "Named entity: Precedes; with a semi-colon", - "output": [ - [ - "Character", - "\u227a" - ] - ] - }, - { - "input": "&PrecedesEqual", - "description": "Bad named entity: PrecedesEqual without a semi-colon", - "output": [ - [ - "Character", - "&PrecedesEqual" - ] - ] - }, - { - "input": "⪯", - "description": "Named entity: PrecedesEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u2aaf" - ] - ] - }, - { - "input": "&PrecedesSlantEqual", - "description": "Bad named entity: PrecedesSlantEqual without a semi-colon", - "output": [ - [ - "Character", - "&PrecedesSlantEqual" - ] - ] - }, - { - "input": "≼", - "description": "Named entity: PrecedesSlantEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u227c" - ] - ] - }, - { - "input": "&PrecedesTilde", - "description": "Bad named entity: PrecedesTilde without a semi-colon", - "output": [ - [ - "Character", - "&PrecedesTilde" - ] - ] - }, - { - "input": "≾", - "description": "Named entity: PrecedesTilde; with a semi-colon", - "output": [ - [ - "Character", - "\u227e" - ] - ] - }, - { - "input": "&Prime", - "description": "Bad named entity: Prime without a semi-colon", - "output": [ - [ - "Character", - "&Prime" - ] - ] - }, - { - "input": "″", - "description": "Named entity: Prime; with a semi-colon", - "output": [ - [ - "Character", - "\u2033" - ] - ] - }, - { - "input": "&Product", - "description": "Bad named entity: Product without a semi-colon", - "output": [ - [ - "Character", - "&Product" - ] - ] - }, - { - "input": "∏", - "description": "Named entity: Product; with a semi-colon", - "output": [ - [ - "Character", - "\u220f" - ] - ] - }, - { - "input": "&Proportion", - "description": "Bad named entity: Proportion without a semi-colon", - "output": [ - [ - "Character", - "&Proportion" - ] - ] - }, - { - "input": "∷", - "description": "Named entity: Proportion; with a semi-colon", - "output": [ - [ - "Character", - "\u2237" - ] - ] - }, - { - "input": "&Proportional", - "description": "Bad named entity: Proportional without a semi-colon", - "output": [ - [ - "Character", - "&Proportional" - ] - ] - }, - { - "input": "∝", - "description": "Named entity: Proportional; with a semi-colon", - "output": [ - [ - "Character", - "\u221d" - ] - ] - }, - { - "input": "&Pscr", - "description": "Bad named entity: Pscr without a semi-colon", - "output": [ - [ - "Character", - "&Pscr" - ] - ] - }, - { - "input": "𝒫", - "description": "Named entity: Pscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udcab" - ] - ] - }, - { - "input": "&Psi", - "description": "Bad named entity: Psi without a semi-colon", - "output": [ - [ - "Character", - "&Psi" - ] - ] - }, - { - "input": "Ψ", - "description": "Named entity: Psi; with a semi-colon", - "output": [ - [ - "Character", - "\u03a8" - ] - ] - }, - { - "input": """, - "description": "Named entity: QUOT without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\"" - ] - ] - }, - { - "input": """, - "description": "Named entity: QUOT; with a semi-colon", - "output": [ - [ - "Character", - "\"" - ] - ] - }, - { - "input": "&Qfr", - "description": "Bad named entity: Qfr without a semi-colon", - "output": [ - [ - "Character", - "&Qfr" - ] - ] - }, - { - "input": "𝔔", - "description": "Named entity: Qfr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd14" - ] - ] - }, - { - "input": "&Qopf", - "description": "Bad named entity: Qopf without a semi-colon", - "output": [ - [ - "Character", - "&Qopf" - ] - ] - }, - { - "input": "ℚ", - "description": "Named entity: Qopf; with a semi-colon", - "output": [ - [ - "Character", - "\u211a" - ] - ] - }, - { - "input": "&Qscr", - "description": "Bad named entity: Qscr without a semi-colon", - "output": [ - [ - "Character", - "&Qscr" - ] - ] - }, - { - "input": "𝒬", - "description": "Named entity: Qscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udcac" - ] - ] - }, - { - "input": "&RBarr", - "description": "Bad named entity: RBarr without a semi-colon", - "output": [ - [ - "Character", - "&RBarr" - ] - ] - }, - { - "input": "⤐", - "description": "Named entity: RBarr; with a semi-colon", - "output": [ - [ - "Character", - "\u2910" - ] - ] - }, - { - "input": "®", - "description": "Named entity: REG without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00ae" - ] - ] - }, - { - "input": "®", - "description": "Named entity: REG; with a semi-colon", - "output": [ - [ - "Character", - "\u00ae" - ] - ] - }, - { - "input": "&Racute", - "description": "Bad named entity: Racute without a semi-colon", - "output": [ - [ - "Character", - "&Racute" - ] - ] - }, - { - "input": "Ŕ", - "description": "Named entity: Racute; with a semi-colon", - "output": [ - [ - "Character", - "\u0154" - ] - ] - }, - { - "input": "&Rang", - "description": "Bad named entity: Rang without a semi-colon", - "output": [ - [ - "Character", - "&Rang" - ] - ] - }, - { - "input": "⟫", - "description": "Named entity: Rang; with a semi-colon", - "output": [ - [ - "Character", - "\u27eb" - ] - ] - }, - { - "input": "&Rarr", - "description": "Bad named entity: Rarr without a semi-colon", - "output": [ - [ - "Character", - "&Rarr" - ] - ] - }, - { - "input": "↠", - "description": "Named entity: Rarr; with a semi-colon", - "output": [ - [ - "Character", - "\u21a0" - ] - ] - }, - { - "input": "&Rarrtl", - "description": "Bad named entity: Rarrtl without a semi-colon", - "output": [ - [ - "Character", - "&Rarrtl" - ] - ] - }, - { - "input": "⤖", - "description": "Named entity: Rarrtl; with a semi-colon", - "output": [ - [ - "Character", - "\u2916" - ] - ] - }, - { - "input": "&Rcaron", - "description": "Bad named entity: Rcaron without a semi-colon", - "output": [ - [ - "Character", - "&Rcaron" - ] - ] - }, - { - "input": "Ř", - "description": "Named entity: Rcaron; with a semi-colon", - "output": [ - [ - "Character", - "\u0158" - ] - ] - }, - { - "input": "&Rcedil", - "description": "Bad named entity: Rcedil without a semi-colon", - "output": [ - [ - "Character", - "&Rcedil" - ] - ] - }, - { - "input": "Ŗ", - "description": "Named entity: Rcedil; with a semi-colon", - "output": [ - [ - "Character", - "\u0156" - ] - ] - }, - { - "input": "&Rcy", - "description": "Bad named entity: Rcy without a semi-colon", - "output": [ - [ - "Character", - "&Rcy" - ] - ] - }, - { - "input": "Р", - "description": "Named entity: Rcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0420" - ] - ] - }, - { - "input": "&Re", - "description": "Bad named entity: Re without a semi-colon", - "output": [ - [ - "Character", - "&Re" - ] - ] - }, - { - "input": "ℜ", - "description": "Named entity: Re; with a semi-colon", - "output": [ - [ - "Character", - "\u211c" - ] - ] - }, - { - "input": "&ReverseElement", - "description": "Bad named entity: ReverseElement without a semi-colon", - "output": [ - [ - "Character", - "&ReverseElement" - ] - ] - }, - { - "input": "∋", - "description": "Named entity: ReverseElement; with a semi-colon", - "output": [ - [ - "Character", - "\u220b" - ] - ] - }, - { - "input": "&ReverseEquilibrium", - "description": "Bad named entity: ReverseEquilibrium without a semi-colon", - "output": [ - [ - "Character", - "&ReverseEquilibrium" - ] - ] - }, - { - "input": "⇋", - "description": "Named entity: ReverseEquilibrium; with a semi-colon", - "output": [ - [ - "Character", - "\u21cb" - ] - ] - }, - { - "input": "&ReverseUpEquilibrium", - "description": "Bad named entity: ReverseUpEquilibrium without a semi-colon", - "output": [ - [ - "Character", - "&ReverseUpEquilibrium" - ] - ] - }, - { - "input": "⥯", - "description": "Named entity: ReverseUpEquilibrium; with a semi-colon", - "output": [ - [ - "Character", - "\u296f" - ] - ] - }, - { - "input": "&Rfr", - "description": "Bad named entity: Rfr without a semi-colon", - "output": [ - [ - "Character", - "&Rfr" - ] - ] - }, - { - "input": "ℜ", - "description": "Named entity: Rfr; with a semi-colon", - "output": [ - [ - "Character", - "\u211c" - ] - ] - }, - { - "input": "&Rho", - "description": "Bad named entity: Rho without a semi-colon", - "output": [ - [ - "Character", - "&Rho" - ] - ] - }, - { - "input": "Ρ", - "description": "Named entity: Rho; with a semi-colon", - "output": [ - [ - "Character", - "\u03a1" - ] - ] - }, - { - "input": "&RightAngleBracket", - "description": "Bad named entity: RightAngleBracket without a semi-colon", - "output": [ - [ - "Character", - "&RightAngleBracket" - ] - ] - }, - { - "input": "⟩", - "description": "Named entity: RightAngleBracket; with a semi-colon", - "output": [ - [ - "Character", - "\u27e9" - ] - ] - }, - { - "input": "&RightArrow", - "description": "Bad named entity: RightArrow without a semi-colon", - "output": [ - [ - "Character", - "&RightArrow" - ] - ] - }, - { - "input": "→", - "description": "Named entity: RightArrow; with a semi-colon", - "output": [ - [ - "Character", - "\u2192" - ] - ] - }, - { - "input": "&RightArrowBar", - "description": "Bad named entity: RightArrowBar without a semi-colon", - "output": [ - [ - "Character", - "&RightArrowBar" - ] - ] - }, - { - "input": "⇥", - "description": "Named entity: RightArrowBar; with a semi-colon", - "output": [ - [ - "Character", - "\u21e5" - ] - ] - }, - { - "input": "&RightArrowLeftArrow", - "description": "Bad named entity: RightArrowLeftArrow without a semi-colon", - "output": [ - [ - "Character", - "&RightArrowLeftArrow" - ] - ] - }, - { - "input": "⇄", - "description": "Named entity: RightArrowLeftArrow; with a semi-colon", - "output": [ - [ - "Character", - "\u21c4" - ] - ] - }, - { - "input": "&RightCeiling", - "description": "Bad named entity: RightCeiling without a semi-colon", - "output": [ - [ - "Character", - "&RightCeiling" - ] - ] - }, - { - "input": "⌉", - "description": "Named entity: RightCeiling; with a semi-colon", - "output": [ - [ - "Character", - "\u2309" - ] - ] - }, - { - "input": "&RightDoubleBracket", - "description": "Bad named entity: RightDoubleBracket without a semi-colon", - "output": [ - [ - "Character", - "&RightDoubleBracket" - ] - ] - }, - { - "input": "⟧", - "description": "Named entity: RightDoubleBracket; with a semi-colon", - "output": [ - [ - "Character", - "\u27e7" - ] - ] - }, - { - "input": "&RightDownTeeVector", - "description": "Bad named entity: RightDownTeeVector without a semi-colon", - "output": [ - [ - "Character", - "&RightDownTeeVector" - ] - ] - }, - { - "input": "⥝", - "description": "Named entity: RightDownTeeVector; with a semi-colon", - "output": [ - [ - "Character", - "\u295d" - ] - ] - }, - { - "input": "&RightDownVector", - "description": "Bad named entity: RightDownVector without a semi-colon", - "output": [ - [ - "Character", - "&RightDownVector" - ] - ] - }, - { - "input": "⇂", - "description": "Named entity: RightDownVector; with a semi-colon", - "output": [ - [ - "Character", - "\u21c2" - ] - ] - }, - { - "input": "&RightDownVectorBar", - "description": "Bad named entity: RightDownVectorBar without a semi-colon", - "output": [ - [ - "Character", - "&RightDownVectorBar" - ] - ] - }, - { - "input": "⥕", - "description": "Named entity: RightDownVectorBar; with a semi-colon", - "output": [ - [ - "Character", - "\u2955" - ] - ] - }, - { - "input": "&RightFloor", - "description": "Bad named entity: RightFloor without a semi-colon", - "output": [ - [ - "Character", - "&RightFloor" - ] - ] - }, - { - "input": "⌋", - "description": "Named entity: RightFloor; with a semi-colon", - "output": [ - [ - "Character", - "\u230b" - ] - ] - }, - { - "input": "&RightTee", - "description": "Bad named entity: RightTee without a semi-colon", - "output": [ - [ - "Character", - "&RightTee" - ] - ] - }, - { - "input": "⊢", - "description": "Named entity: RightTee; with a semi-colon", - "output": [ - [ - "Character", - "\u22a2" - ] - ] - }, - { - "input": "&RightTeeArrow", - "description": "Bad named entity: RightTeeArrow without a semi-colon", - "output": [ - [ - "Character", - "&RightTeeArrow" - ] - ] - }, - { - "input": "↦", - "description": "Named entity: RightTeeArrow; with a semi-colon", - "output": [ - [ - "Character", - "\u21a6" - ] - ] - }, - { - "input": "&RightTeeVector", - "description": "Bad named entity: RightTeeVector without a semi-colon", - "output": [ - [ - "Character", - "&RightTeeVector" - ] - ] - }, - { - "input": "⥛", - "description": "Named entity: RightTeeVector; with a semi-colon", - "output": [ - [ - "Character", - "\u295b" - ] - ] - }, - { - "input": "&RightTriangle", - "description": "Bad named entity: RightTriangle without a semi-colon", - "output": [ - [ - "Character", - "&RightTriangle" - ] - ] - }, - { - "input": "⊳", - "description": "Named entity: RightTriangle; with a semi-colon", - "output": [ - [ - "Character", - "\u22b3" - ] - ] - }, - { - "input": "&RightTriangleBar", - "description": "Bad named entity: RightTriangleBar without a semi-colon", - "output": [ - [ - "Character", - "&RightTriangleBar" - ] - ] - }, - { - "input": "⧐", - "description": "Named entity: RightTriangleBar; with a semi-colon", - "output": [ - [ - "Character", - "\u29d0" - ] - ] - }, - { - "input": "&RightTriangleEqual", - "description": "Bad named entity: RightTriangleEqual without a semi-colon", - "output": [ - [ - "Character", - "&RightTriangleEqual" - ] - ] - }, - { - "input": "⊵", - "description": "Named entity: RightTriangleEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u22b5" - ] - ] - }, - { - "input": "&RightUpDownVector", - "description": "Bad named entity: RightUpDownVector without a semi-colon", - "output": [ - [ - "Character", - "&RightUpDownVector" - ] - ] - }, - { - "input": "⥏", - "description": "Named entity: RightUpDownVector; with a semi-colon", - "output": [ - [ - "Character", - "\u294f" - ] - ] - }, - { - "input": "&RightUpTeeVector", - "description": "Bad named entity: RightUpTeeVector without a semi-colon", - "output": [ - [ - "Character", - "&RightUpTeeVector" - ] - ] - }, - { - "input": "⥜", - "description": "Named entity: RightUpTeeVector; with a semi-colon", - "output": [ - [ - "Character", - "\u295c" - ] - ] - }, - { - "input": "&RightUpVector", - "description": "Bad named entity: RightUpVector without a semi-colon", - "output": [ - [ - "Character", - "&RightUpVector" - ] - ] - }, - { - "input": "↾", - "description": "Named entity: RightUpVector; with a semi-colon", - "output": [ - [ - "Character", - "\u21be" - ] - ] - }, - { - "input": "&RightUpVectorBar", - "description": "Bad named entity: RightUpVectorBar without a semi-colon", - "output": [ - [ - "Character", - "&RightUpVectorBar" - ] - ] - }, - { - "input": "⥔", - "description": "Named entity: RightUpVectorBar; with a semi-colon", - "output": [ - [ - "Character", - "\u2954" - ] - ] - }, - { - "input": "&RightVector", - "description": "Bad named entity: RightVector without a semi-colon", - "output": [ - [ - "Character", - "&RightVector" - ] - ] - }, - { - "input": "⇀", - "description": "Named entity: RightVector; with a semi-colon", - "output": [ - [ - "Character", - "\u21c0" - ] - ] - }, - { - "input": "&RightVectorBar", - "description": "Bad named entity: RightVectorBar without a semi-colon", - "output": [ - [ - "Character", - "&RightVectorBar" - ] - ] - }, - { - "input": "⥓", - "description": "Named entity: RightVectorBar; with a semi-colon", - "output": [ - [ - "Character", - "\u2953" - ] - ] - }, - { - "input": "&Rightarrow", - "description": "Bad named entity: Rightarrow without a semi-colon", - "output": [ - [ - "Character", - "&Rightarrow" - ] - ] - }, - { - "input": "⇒", - "description": "Named entity: Rightarrow; with a semi-colon", - "output": [ - [ - "Character", - "\u21d2" - ] - ] - }, - { - "input": "&Ropf", - "description": "Bad named entity: Ropf without a semi-colon", - "output": [ - [ - "Character", - "&Ropf" - ] - ] - }, - { - "input": "ℝ", - "description": "Named entity: Ropf; with a semi-colon", - "output": [ - [ - "Character", - "\u211d" - ] - ] - }, - { - "input": "&RoundImplies", - "description": "Bad named entity: RoundImplies without a semi-colon", - "output": [ - [ - "Character", - "&RoundImplies" - ] - ] - }, - { - "input": "⥰", - "description": "Named entity: RoundImplies; with a semi-colon", - "output": [ - [ - "Character", - "\u2970" - ] - ] - }, - { - "input": "&Rrightarrow", - "description": "Bad named entity: Rrightarrow without a semi-colon", - "output": [ - [ - "Character", - "&Rrightarrow" - ] - ] - }, - { - "input": "⇛", - "description": "Named entity: Rrightarrow; with a semi-colon", - "output": [ - [ - "Character", - "\u21db" - ] - ] - }, - { - "input": "&Rscr", - "description": "Bad named entity: Rscr without a semi-colon", - "output": [ - [ - "Character", - "&Rscr" - ] - ] - }, - { - "input": "ℛ", - "description": "Named entity: Rscr; with a semi-colon", - "output": [ - [ - "Character", - "\u211b" - ] - ] - }, - { - "input": "&Rsh", - "description": "Bad named entity: Rsh without a semi-colon", - "output": [ - [ - "Character", - "&Rsh" - ] - ] - }, - { - "input": "↱", - "description": "Named entity: Rsh; with a semi-colon", - "output": [ - [ - "Character", - "\u21b1" - ] - ] - }, - { - "input": "&RuleDelayed", - "description": "Bad named entity: RuleDelayed without a semi-colon", - "output": [ - [ - "Character", - "&RuleDelayed" - ] - ] - }, - { - "input": "⧴", - "description": "Named entity: RuleDelayed; with a semi-colon", - "output": [ - [ - "Character", - "\u29f4" - ] - ] - }, - { - "input": "&SHCHcy", - "description": "Bad named entity: SHCHcy without a semi-colon", - "output": [ - [ - "Character", - "&SHCHcy" - ] - ] - }, - { - "input": "Щ", - "description": "Named entity: SHCHcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0429" - ] - ] - }, - { - "input": "&SHcy", - "description": "Bad named entity: SHcy without a semi-colon", - "output": [ - [ - "Character", - "&SHcy" - ] - ] - }, - { - "input": "Ш", - "description": "Named entity: SHcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0428" - ] - ] - }, - { - "input": "&SOFTcy", - "description": "Bad named entity: SOFTcy without a semi-colon", - "output": [ - [ - "Character", - "&SOFTcy" - ] - ] - }, - { - "input": "Ь", - "description": "Named entity: SOFTcy; with a semi-colon", - "output": [ - [ - "Character", - "\u042c" - ] - ] - }, - { - "input": "&Sacute", - "description": "Bad named entity: Sacute without a semi-colon", - "output": [ - [ - "Character", - "&Sacute" - ] - ] - }, - { - "input": "Ś", - "description": "Named entity: Sacute; with a semi-colon", - "output": [ - [ - "Character", - "\u015a" - ] - ] - }, - { - "input": "&Sc", - "description": "Bad named entity: Sc without a semi-colon", - "output": [ - [ - "Character", - "&Sc" - ] - ] - }, - { - "input": "⪼", - "description": "Named entity: Sc; with a semi-colon", - "output": [ - [ - "Character", - "\u2abc" - ] - ] - }, - { - "input": "&Scaron", - "description": "Bad named entity: Scaron without a semi-colon", - "output": [ - [ - "Character", - "&Scaron" - ] - ] - }, - { - "input": "Š", - "description": "Named entity: Scaron; with a semi-colon", - "output": [ - [ - "Character", - "\u0160" - ] - ] - }, - { - "input": "&Scedil", - "description": "Bad named entity: Scedil without a semi-colon", - "output": [ - [ - "Character", - "&Scedil" - ] - ] - }, - { - "input": "Ş", - "description": "Named entity: Scedil; with a semi-colon", - "output": [ - [ - "Character", - "\u015e" - ] - ] - }, - { - "input": "&Scirc", - "description": "Bad named entity: Scirc without a semi-colon", - "output": [ - [ - "Character", - "&Scirc" - ] - ] - }, - { - "input": "Ŝ", - "description": "Named entity: Scirc; with a semi-colon", - "output": [ - [ - "Character", - "\u015c" - ] - ] - }, - { - "input": "&Scy", - "description": "Bad named entity: Scy without a semi-colon", - "output": [ - [ - "Character", - "&Scy" - ] - ] - }, - { - "input": "С", - "description": "Named entity: Scy; with a semi-colon", - "output": [ - [ - "Character", - "\u0421" - ] - ] - }, - { - "input": "&Sfr", - "description": "Bad named entity: Sfr without a semi-colon", - "output": [ - [ - "Character", - "&Sfr" - ] - ] - }, - { - "input": "𝔖", - "description": "Named entity: Sfr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd16" - ] - ] - }, - { - "input": "&ShortDownArrow", - "description": "Bad named entity: ShortDownArrow without a semi-colon", - "output": [ - [ - "Character", - "&ShortDownArrow" - ] - ] - }, - { - "input": "↓", - "description": "Named entity: ShortDownArrow; with a semi-colon", - "output": [ - [ - "Character", - "\u2193" - ] - ] - }, - { - "input": "&ShortLeftArrow", - "description": "Bad named entity: ShortLeftArrow without a semi-colon", - "output": [ - [ - "Character", - "&ShortLeftArrow" - ] - ] - }, - { - "input": "←", - "description": "Named entity: ShortLeftArrow; with a semi-colon", - "output": [ - [ - "Character", - "\u2190" - ] - ] - }, - { - "input": "&ShortRightArrow", - "description": "Bad named entity: ShortRightArrow without a semi-colon", - "output": [ - [ - "Character", - "&ShortRightArrow" - ] - ] - }, - { - "input": "→", - "description": "Named entity: ShortRightArrow; with a semi-colon", - "output": [ - [ - "Character", - "\u2192" - ] - ] - }, - { - "input": "&ShortUpArrow", - "description": "Bad named entity: ShortUpArrow without a semi-colon", - "output": [ - [ - "Character", - "&ShortUpArrow" - ] - ] - }, - { - "input": "↑", - "description": "Named entity: ShortUpArrow; with a semi-colon", - "output": [ - [ - "Character", - "\u2191" - ] - ] - }, - { - "input": "&Sigma", - "description": "Bad named entity: Sigma without a semi-colon", - "output": [ - [ - "Character", - "&Sigma" - ] - ] - }, - { - "input": "Σ", - "description": "Named entity: Sigma; with a semi-colon", - "output": [ - [ - "Character", - "\u03a3" - ] - ] - }, - { - "input": "&SmallCircle", - "description": "Bad named entity: SmallCircle without a semi-colon", - "output": [ - [ - "Character", - "&SmallCircle" - ] - ] - }, - { - "input": "∘", - "description": "Named entity: SmallCircle; with a semi-colon", - "output": [ - [ - "Character", - "\u2218" - ] - ] - }, - { - "input": "&Sopf", - "description": "Bad named entity: Sopf without a semi-colon", - "output": [ - [ - "Character", - "&Sopf" - ] - ] - }, - { - "input": "𝕊", - "description": "Named entity: Sopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd4a" - ] - ] - }, - { - "input": "&Sqrt", - "description": "Bad named entity: Sqrt without a semi-colon", - "output": [ - [ - "Character", - "&Sqrt" - ] - ] - }, - { - "input": "√", - "description": "Named entity: Sqrt; with a semi-colon", - "output": [ - [ - "Character", - "\u221a" - ] - ] - }, - { - "input": "&Square", - "description": "Bad named entity: Square without a semi-colon", - "output": [ - [ - "Character", - "&Square" - ] - ] - }, - { - "input": "□", - "description": "Named entity: Square; with a semi-colon", - "output": [ - [ - "Character", - "\u25a1" - ] - ] - }, - { - "input": "&SquareIntersection", - "description": "Bad named entity: SquareIntersection without a semi-colon", - "output": [ - [ - "Character", - "&SquareIntersection" - ] - ] - }, - { - "input": "⊓", - "description": "Named entity: SquareIntersection; with a semi-colon", - "output": [ - [ - "Character", - "\u2293" - ] - ] - }, - { - "input": "&SquareSubset", - "description": "Bad named entity: SquareSubset without a semi-colon", - "output": [ - [ - "Character", - "&SquareSubset" - ] - ] - }, - { - "input": "⊏", - "description": "Named entity: SquareSubset; with a semi-colon", - "output": [ - [ - "Character", - "\u228f" - ] - ] - }, - { - "input": "&SquareSubsetEqual", - "description": "Bad named entity: SquareSubsetEqual without a semi-colon", - "output": [ - [ - "Character", - "&SquareSubsetEqual" - ] - ] - }, - { - "input": "⊑", - "description": "Named entity: SquareSubsetEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u2291" - ] - ] - }, - { - "input": "&SquareSuperset", - "description": "Bad named entity: SquareSuperset without a semi-colon", - "output": [ - [ - "Character", - "&SquareSuperset" - ] - ] - }, - { - "input": "⊐", - "description": "Named entity: SquareSuperset; with a semi-colon", - "output": [ - [ - "Character", - "\u2290" - ] - ] - }, - { - "input": "&SquareSupersetEqual", - "description": "Bad named entity: SquareSupersetEqual without a semi-colon", - "output": [ - [ - "Character", - "&SquareSupersetEqual" - ] - ] - }, - { - "input": "⊒", - "description": "Named entity: SquareSupersetEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u2292" - ] - ] - }, - { - "input": "&SquareUnion", - "description": "Bad named entity: SquareUnion without a semi-colon", - "output": [ - [ - "Character", - "&SquareUnion" - ] - ] - }, - { - "input": "⊔", - "description": "Named entity: SquareUnion; with a semi-colon", - "output": [ - [ - "Character", - "\u2294" - ] - ] - }, - { - "input": "&Sscr", - "description": "Bad named entity: Sscr without a semi-colon", - "output": [ - [ - "Character", - "&Sscr" - ] - ] - }, - { - "input": "𝒮", - "description": "Named entity: Sscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udcae" - ] - ] - }, - { - "input": "&Star", - "description": "Bad named entity: Star without a semi-colon", - "output": [ - [ - "Character", - "&Star" - ] - ] - }, - { - "input": "⋆", - "description": "Named entity: Star; with a semi-colon", - "output": [ - [ - "Character", - "\u22c6" - ] - ] - }, - { - "input": "&Sub", - "description": "Bad named entity: Sub without a semi-colon", - "output": [ - [ - "Character", - "&Sub" - ] - ] - }, - { - "input": "⋐", - "description": "Named entity: Sub; with a semi-colon", - "output": [ - [ - "Character", - "\u22d0" - ] - ] - }, - { - "input": "&Subset", - "description": "Bad named entity: Subset without a semi-colon", - "output": [ - [ - "Character", - "&Subset" - ] - ] - }, - { - "input": "⋐", - "description": "Named entity: Subset; with a semi-colon", - "output": [ - [ - "Character", - "\u22d0" - ] - ] - }, - { - "input": "&SubsetEqual", - "description": "Bad named entity: SubsetEqual without a semi-colon", - "output": [ - [ - "Character", - "&SubsetEqual" - ] - ] - }, - { - "input": "⊆", - "description": "Named entity: SubsetEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u2286" - ] - ] - }, - { - "input": "&Succeeds", - "description": "Bad named entity: Succeeds without a semi-colon", - "output": [ - [ - "Character", - "&Succeeds" - ] - ] - }, - { - "input": "≻", - "description": "Named entity: Succeeds; with a semi-colon", - "output": [ - [ - "Character", - "\u227b" - ] - ] - }, - { - "input": "&SucceedsEqual", - "description": "Bad named entity: SucceedsEqual without a semi-colon", - "output": [ - [ - "Character", - "&SucceedsEqual" - ] - ] - }, - { - "input": "⪰", - "description": "Named entity: SucceedsEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u2ab0" - ] - ] - }, - { - "input": "&SucceedsSlantEqual", - "description": "Bad named entity: SucceedsSlantEqual without a semi-colon", - "output": [ - [ - "Character", - "&SucceedsSlantEqual" - ] - ] - }, - { - "input": "≽", - "description": "Named entity: SucceedsSlantEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u227d" - ] - ] - }, - { - "input": "&SucceedsTilde", - "description": "Bad named entity: SucceedsTilde without a semi-colon", - "output": [ - [ - "Character", - "&SucceedsTilde" - ] - ] - }, - { - "input": "≿", - "description": "Named entity: SucceedsTilde; with a semi-colon", - "output": [ - [ - "Character", - "\u227f" - ] - ] - }, - { - "input": "&SuchThat", - "description": "Bad named entity: SuchThat without a semi-colon", - "output": [ - [ - "Character", - "&SuchThat" - ] - ] - }, - { - "input": "∋", - "description": "Named entity: SuchThat; with a semi-colon", - "output": [ - [ - "Character", - "\u220b" - ] - ] - }, - { - "input": "&Sum", - "description": "Bad named entity: Sum without a semi-colon", - "output": [ - [ - "Character", - "&Sum" - ] - ] - }, - { - "input": "∑", - "description": "Named entity: Sum; with a semi-colon", - "output": [ - [ - "Character", - "\u2211" - ] - ] - }, - { - "input": "&Sup", - "description": "Bad named entity: Sup without a semi-colon", - "output": [ - [ - "Character", - "&Sup" - ] - ] - }, - { - "input": "⋑", - "description": "Named entity: Sup; with a semi-colon", - "output": [ - [ - "Character", - "\u22d1" - ] - ] - }, - { - "input": "&Superset", - "description": "Bad named entity: Superset without a semi-colon", - "output": [ - [ - "Character", - "&Superset" - ] - ] - }, - { - "input": "⊃", - "description": "Named entity: Superset; with a semi-colon", - "output": [ - [ - "Character", - "\u2283" - ] - ] - }, - { - "input": "&SupersetEqual", - "description": "Bad named entity: SupersetEqual without a semi-colon", - "output": [ - [ - "Character", - "&SupersetEqual" - ] - ] - }, - { - "input": "⊇", - "description": "Named entity: SupersetEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u2287" - ] - ] - }, - { - "input": "&Supset", - "description": "Bad named entity: Supset without a semi-colon", - "output": [ - [ - "Character", - "&Supset" - ] - ] - }, - { - "input": "⋑", - "description": "Named entity: Supset; with a semi-colon", - "output": [ - [ - "Character", - "\u22d1" - ] - ] - }, - { - "input": "Þ", - "description": "Named entity: THORN without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00de" - ] - ] - }, - { - "input": "Þ", - "description": "Named entity: THORN; with a semi-colon", - "output": [ - [ - "Character", - "\u00de" - ] - ] - }, - { - "input": "&TRADE", - "description": "Bad named entity: TRADE without a semi-colon", - "output": [ - [ - "Character", - "&TRADE" - ] - ] - }, - { - "input": "™", - "description": "Named entity: TRADE; with a semi-colon", - "output": [ - [ - "Character", - "\u2122" - ] - ] - }, - { - "input": "&TSHcy", - "description": "Bad named entity: TSHcy without a semi-colon", - "output": [ - [ - "Character", - "&TSHcy" - ] - ] - }, - { - "input": "Ћ", - "description": "Named entity: TSHcy; with a semi-colon", - "output": [ - [ - "Character", - "\u040b" - ] - ] - }, - { - "input": "&TScy", - "description": "Bad named entity: TScy without a semi-colon", - "output": [ - [ - "Character", - "&TScy" - ] - ] - }, - { - "input": "Ц", - "description": "Named entity: TScy; with a semi-colon", - "output": [ - [ - "Character", - "\u0426" - ] - ] - }, - { - "input": "&Tab", - "description": "Bad named entity: Tab without a semi-colon", - "output": [ - [ - "Character", - "&Tab" - ] - ] - }, - { - "input": "	", - "description": "Named entity: Tab; with a semi-colon", - "output": [ - [ - "Character", - "\t" - ] - ] - }, - { - "input": "&Tau", - "description": "Bad named entity: Tau without a semi-colon", - "output": [ - [ - "Character", - "&Tau" - ] - ] - }, - { - "input": "Τ", - "description": "Named entity: Tau; with a semi-colon", - "output": [ - [ - "Character", - "\u03a4" - ] - ] - }, - { - "input": "&Tcaron", - "description": "Bad named entity: Tcaron without a semi-colon", - "output": [ - [ - "Character", - "&Tcaron" - ] - ] - }, - { - "input": "Ť", - "description": "Named entity: Tcaron; with a semi-colon", - "output": [ - [ - "Character", - "\u0164" - ] - ] - }, - { - "input": "&Tcedil", - "description": "Bad named entity: Tcedil without a semi-colon", - "output": [ - [ - "Character", - "&Tcedil" - ] - ] - }, - { - "input": "Ţ", - "description": "Named entity: Tcedil; with a semi-colon", - "output": [ - [ - "Character", - "\u0162" - ] - ] - }, - { - "input": "&Tcy", - "description": "Bad named entity: Tcy without a semi-colon", - "output": [ - [ - "Character", - "&Tcy" - ] - ] - }, - { - "input": "Т", - "description": "Named entity: Tcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0422" - ] - ] - }, - { - "input": "&Tfr", - "description": "Bad named entity: Tfr without a semi-colon", - "output": [ - [ - "Character", - "&Tfr" - ] - ] - }, - { - "input": "𝔗", - "description": "Named entity: Tfr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd17" - ] - ] - }, - { - "input": "&Therefore", - "description": "Bad named entity: Therefore without a semi-colon", - "output": [ - [ - "Character", - "&Therefore" - ] - ] - }, - { - "input": "∴", - "description": "Named entity: Therefore; with a semi-colon", - "output": [ - [ - "Character", - "\u2234" - ] - ] - }, - { - "input": "&Theta", - "description": "Bad named entity: Theta without a semi-colon", - "output": [ - [ - "Character", - "&Theta" - ] - ] - }, - { - "input": "Θ", - "description": "Named entity: Theta; with a semi-colon", - "output": [ - [ - "Character", - "\u0398" - ] - ] - }, - { - "input": "&ThickSpace", - "description": "Bad named entity: ThickSpace without a semi-colon", - "output": [ - [ - "Character", - "&ThickSpace" - ] - ] - }, - { - "input": "  ", - "description": "Named entity: ThickSpace; with a semi-colon", - "output": [ - [ - "Character", - "\u205f\u200a" - ] - ] - }, - { - "input": "&ThinSpace", - "description": "Bad named entity: ThinSpace without a semi-colon", - "output": [ - [ - "Character", - "&ThinSpace" - ] - ] - }, - { - "input": " ", - "description": "Named entity: ThinSpace; with a semi-colon", - "output": [ - [ - "Character", - "\u2009" - ] - ] - }, - { - "input": "&Tilde", - "description": "Bad named entity: Tilde without a semi-colon", - "output": [ - [ - "Character", - "&Tilde" - ] - ] - }, - { - "input": "∼", - "description": "Named entity: Tilde; with a semi-colon", - "output": [ - [ - "Character", - "\u223c" - ] - ] - }, - { - "input": "&TildeEqual", - "description": "Bad named entity: TildeEqual without a semi-colon", - "output": [ - [ - "Character", - "&TildeEqual" - ] - ] - }, - { - "input": "≃", - "description": "Named entity: TildeEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u2243" - ] - ] - }, - { - "input": "&TildeFullEqual", - "description": "Bad named entity: TildeFullEqual without a semi-colon", - "output": [ - [ - "Character", - "&TildeFullEqual" - ] - ] - }, - { - "input": "≅", - "description": "Named entity: TildeFullEqual; with a semi-colon", - "output": [ - [ - "Character", - "\u2245" - ] - ] - }, - { - "input": "&TildeTilde", - "description": "Bad named entity: TildeTilde without a semi-colon", - "output": [ - [ - "Character", - "&TildeTilde" - ] - ] - }, - { - "input": "≈", - "description": "Named entity: TildeTilde; with a semi-colon", - "output": [ - [ - "Character", - "\u2248" - ] - ] - }, - { - "input": "&Topf", - "description": "Bad named entity: Topf without a semi-colon", - "output": [ - [ - "Character", - "&Topf" - ] - ] - }, - { - "input": "𝕋", - "description": "Named entity: Topf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd4b" - ] - ] - }, - { - "input": "&TripleDot", - "description": "Bad named entity: TripleDot without a semi-colon", - "output": [ - [ - "Character", - "&TripleDot" - ] - ] - }, - { - "input": "⃛", - "description": "Named entity: TripleDot; with a semi-colon", - "output": [ - [ - "Character", - "\u20db" - ] - ] - }, - { - "input": "&Tscr", - "description": "Bad named entity: Tscr without a semi-colon", - "output": [ - [ - "Character", - "&Tscr" - ] - ] - }, - { - "input": "𝒯", - "description": "Named entity: Tscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udcaf" - ] - ] - }, - { - "input": "&Tstrok", - "description": "Bad named entity: Tstrok without a semi-colon", - "output": [ - [ - "Character", - "&Tstrok" - ] - ] - }, - { - "input": "Ŧ", - "description": "Named entity: Tstrok; with a semi-colon", - "output": [ - [ - "Character", - "\u0166" - ] - ] - }, - { - "input": "Ú", - "description": "Named entity: Uacute without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00da" - ] - ] - }, - { - "input": "Ú", - "description": "Named entity: Uacute; with a semi-colon", - "output": [ - [ - "Character", - "\u00da" - ] - ] - }, - { - "input": "&Uarr", - "description": "Bad named entity: Uarr without a semi-colon", - "output": [ - [ - "Character", - "&Uarr" - ] - ] - }, - { - "input": "↟", - "description": "Named entity: Uarr; with a semi-colon", - "output": [ - [ - "Character", - "\u219f" - ] - ] - }, - { - "input": "&Uarrocir", - "description": "Bad named entity: Uarrocir without a semi-colon", - "output": [ - [ - "Character", - "&Uarrocir" - ] - ] - }, - { - "input": "⥉", - "description": "Named entity: Uarrocir; with a semi-colon", - "output": [ - [ - "Character", - "\u2949" - ] - ] - }, - { - "input": "&Ubrcy", - "description": "Bad named entity: Ubrcy without a semi-colon", - "output": [ - [ - "Character", - "&Ubrcy" - ] - ] - }, - { - "input": "Ў", - "description": "Named entity: Ubrcy; with a semi-colon", - "output": [ - [ - "Character", - "\u040e" - ] - ] - }, - { - "input": "&Ubreve", - "description": "Bad named entity: Ubreve without a semi-colon", - "output": [ - [ - "Character", - "&Ubreve" - ] - ] - }, - { - "input": "Ŭ", - "description": "Named entity: Ubreve; with a semi-colon", - "output": [ - [ - "Character", - "\u016c" - ] - ] - }, - { - "input": "Û", - "description": "Named entity: Ucirc without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00db" - ] - ] - }, - { - "input": "Û", - "description": "Named entity: Ucirc; with a semi-colon", - "output": [ - [ - "Character", - "\u00db" - ] - ] - }, - { - "input": "&Ucy", - "description": "Bad named entity: Ucy without a semi-colon", - "output": [ - [ - "Character", - "&Ucy" - ] - ] - }, - { - "input": "У", - "description": "Named entity: Ucy; with a semi-colon", - "output": [ - [ - "Character", - "\u0423" - ] - ] - }, - { - "input": "&Udblac", - "description": "Bad named entity: Udblac without a semi-colon", - "output": [ - [ - "Character", - "&Udblac" - ] - ] - }, - { - "input": "Ű", - "description": "Named entity: Udblac; with a semi-colon", - "output": [ - [ - "Character", - "\u0170" - ] - ] - }, - { - "input": "&Ufr", - "description": "Bad named entity: Ufr without a semi-colon", - "output": [ - [ - "Character", - "&Ufr" - ] - ] - }, - { - "input": "𝔘", - "description": "Named entity: Ufr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd18" - ] - ] - }, - { - "input": "Ù", - "description": "Named entity: Ugrave without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00d9" - ] - ] - }, - { - "input": "Ù", - "description": "Named entity: Ugrave; with a semi-colon", - "output": [ - [ - "Character", - "\u00d9" - ] - ] - }, - { - "input": "&Umacr", - "description": "Bad named entity: Umacr without a semi-colon", - "output": [ - [ - "Character", - "&Umacr" - ] - ] - }, - { - "input": "Ū", - "description": "Named entity: Umacr; with a semi-colon", - "output": [ - [ - "Character", - "\u016a" - ] - ] - }, - { - "input": "&UnderBar", - "description": "Bad named entity: UnderBar without a semi-colon", - "output": [ - [ - "Character", - "&UnderBar" - ] - ] - }, - { - "input": "_", - "description": "Named entity: UnderBar; with a semi-colon", - "output": [ - [ - "Character", - "_" - ] - ] - }, - { - "input": "&UnderBrace", - "description": "Bad named entity: UnderBrace without a semi-colon", - "output": [ - [ - "Character", - "&UnderBrace" - ] - ] - }, - { - "input": "⏟", - "description": "Named entity: UnderBrace; with a semi-colon", - "output": [ - [ - "Character", - "\u23df" - ] - ] - }, - { - "input": "&UnderBracket", - "description": "Bad named entity: UnderBracket without a semi-colon", - "output": [ - [ - "Character", - "&UnderBracket" - ] - ] - }, - { - "input": "⎵", - "description": "Named entity: UnderBracket; with a semi-colon", - "output": [ - [ - "Character", - "\u23b5" - ] - ] - }, - { - "input": "&UnderParenthesis", - "description": "Bad named entity: UnderParenthesis without a semi-colon", - "output": [ - [ - "Character", - "&UnderParenthesis" - ] - ] - }, - { - "input": "⏝", - "description": "Named entity: UnderParenthesis; with a semi-colon", - "output": [ - [ - "Character", - "\u23dd" - ] - ] - }, - { - "input": "&Union", - "description": "Bad named entity: Union without a semi-colon", - "output": [ - [ - "Character", - "&Union" - ] - ] - }, - { - "input": "⋃", - "description": "Named entity: Union; with a semi-colon", - "output": [ - [ - "Character", - "\u22c3" - ] - ] - }, - { - "input": "&UnionPlus", - "description": "Bad named entity: UnionPlus without a semi-colon", - "output": [ - [ - "Character", - "&UnionPlus" - ] - ] - }, - { - "input": "⊎", - "description": "Named entity: UnionPlus; with a semi-colon", - "output": [ - [ - "Character", - "\u228e" - ] - ] - }, - { - "input": "&Uogon", - "description": "Bad named entity: Uogon without a semi-colon", - "output": [ - [ - "Character", - "&Uogon" - ] - ] - }, - { - "input": "Ų", - "description": "Named entity: Uogon; with a semi-colon", - "output": [ - [ - "Character", - "\u0172" - ] - ] - }, - { - "input": "&Uopf", - "description": "Bad named entity: Uopf without a semi-colon", - "output": [ - [ - "Character", - "&Uopf" - ] - ] - }, - { - "input": "𝕌", - "description": "Named entity: Uopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd4c" - ] - ] - }, - { - "input": "&UpArrow", - "description": "Bad named entity: UpArrow without a semi-colon", - "output": [ - [ - "Character", - "&UpArrow" - ] - ] - }, - { - "input": "↑", - "description": "Named entity: UpArrow; with a semi-colon", - "output": [ - [ - "Character", - "\u2191" - ] - ] - }, - { - "input": "&UpArrowBar", - "description": "Bad named entity: UpArrowBar without a semi-colon", - "output": [ - [ - "Character", - "&UpArrowBar" - ] - ] - }, - { - "input": "⤒", - "description": "Named entity: UpArrowBar; with a semi-colon", - "output": [ - [ - "Character", - "\u2912" - ] - ] - }, - { - "input": "&UpArrowDownArrow", - "description": "Bad named entity: UpArrowDownArrow without a semi-colon", - "output": [ - [ - "Character", - "&UpArrowDownArrow" - ] - ] - }, - { - "input": "⇅", - "description": "Named entity: UpArrowDownArrow; with a semi-colon", - "output": [ - [ - "Character", - "\u21c5" - ] - ] - }, - { - "input": "&UpDownArrow", - "description": "Bad named entity: UpDownArrow without a semi-colon", - "output": [ - [ - "Character", - "&UpDownArrow" - ] - ] - }, - { - "input": "↕", - "description": "Named entity: UpDownArrow; with a semi-colon", - "output": [ - [ - "Character", - "\u2195" - ] - ] - }, - { - "input": "&UpEquilibrium", - "description": "Bad named entity: UpEquilibrium without a semi-colon", - "output": [ - [ - "Character", - "&UpEquilibrium" - ] - ] - }, - { - "input": "⥮", - "description": "Named entity: UpEquilibrium; with a semi-colon", - "output": [ - [ - "Character", - "\u296e" - ] - ] - }, - { - "input": "&UpTee", - "description": "Bad named entity: UpTee without a semi-colon", - "output": [ - [ - "Character", - "&UpTee" - ] - ] - }, - { - "input": "⊥", - "description": "Named entity: UpTee; with a semi-colon", - "output": [ - [ - "Character", - "\u22a5" - ] - ] - }, - { - "input": "&UpTeeArrow", - "description": "Bad named entity: UpTeeArrow without a semi-colon", - "output": [ - [ - "Character", - "&UpTeeArrow" - ] - ] - }, - { - "input": "↥", - "description": "Named entity: UpTeeArrow; with a semi-colon", - "output": [ - [ - "Character", - "\u21a5" - ] - ] - }, - { - "input": "&Uparrow", - "description": "Bad named entity: Uparrow without a semi-colon", - "output": [ - [ - "Character", - "&Uparrow" - ] - ] - }, - { - "input": "⇑", - "description": "Named entity: Uparrow; with a semi-colon", - "output": [ - [ - "Character", - "\u21d1" - ] - ] - }, - { - "input": "&Updownarrow", - "description": "Bad named entity: Updownarrow without a semi-colon", - "output": [ - [ - "Character", - "&Updownarrow" - ] - ] - }, - { - "input": "⇕", - "description": "Named entity: Updownarrow; with a semi-colon", - "output": [ - [ - "Character", - "\u21d5" - ] - ] - }, - { - "input": "&UpperLeftArrow", - "description": "Bad named entity: UpperLeftArrow without a semi-colon", - "output": [ - [ - "Character", - "&UpperLeftArrow" - ] - ] - }, - { - "input": "↖", - "description": "Named entity: UpperLeftArrow; with a semi-colon", - "output": [ - [ - "Character", - "\u2196" - ] - ] - }, - { - "input": "&UpperRightArrow", - "description": "Bad named entity: UpperRightArrow without a semi-colon", - "output": [ - [ - "Character", - "&UpperRightArrow" - ] - ] - }, - { - "input": "↗", - "description": "Named entity: UpperRightArrow; with a semi-colon", - "output": [ - [ - "Character", - "\u2197" - ] - ] - }, - { - "input": "&Upsi", - "description": "Bad named entity: Upsi without a semi-colon", - "output": [ - [ - "Character", - "&Upsi" - ] - ] - }, - { - "input": "ϒ", - "description": "Named entity: Upsi; with a semi-colon", - "output": [ - [ - "Character", - "\u03d2" - ] - ] - }, - { - "input": "&Upsilon", - "description": "Bad named entity: Upsilon without a semi-colon", - "output": [ - [ - "Character", - "&Upsilon" - ] - ] - }, - { - "input": "Υ", - "description": "Named entity: Upsilon; with a semi-colon", - "output": [ - [ - "Character", - "\u03a5" - ] - ] - }, - { - "input": "&Uring", - "description": "Bad named entity: Uring without a semi-colon", - "output": [ - [ - "Character", - "&Uring" - ] - ] - }, - { - "input": "Ů", - "description": "Named entity: Uring; with a semi-colon", - "output": [ - [ - "Character", - "\u016e" - ] - ] - }, - { - "input": "&Uscr", - "description": "Bad named entity: Uscr without a semi-colon", - "output": [ - [ - "Character", - "&Uscr" - ] - ] - }, - { - "input": "𝒰", - "description": "Named entity: Uscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udcb0" - ] - ] - }, - { - "input": "&Utilde", - "description": "Bad named entity: Utilde without a semi-colon", - "output": [ - [ - "Character", - "&Utilde" - ] - ] - }, - { - "input": "Ũ", - "description": "Named entity: Utilde; with a semi-colon", - "output": [ - [ - "Character", - "\u0168" - ] - ] - }, - { - "input": "Ü", - "description": "Named entity: Uuml without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00dc" - ] - ] - }, - { - "input": "Ü", - "description": "Named entity: Uuml; with a semi-colon", - "output": [ - [ - "Character", - "\u00dc" - ] - ] - }, - { - "input": "&VDash", - "description": "Bad named entity: VDash without a semi-colon", - "output": [ - [ - "Character", - "&VDash" - ] - ] - }, - { - "input": "⊫", - "description": "Named entity: VDash; with a semi-colon", - "output": [ - [ - "Character", - "\u22ab" - ] - ] - }, - { - "input": "&Vbar", - "description": "Bad named entity: Vbar without a semi-colon", - "output": [ - [ - "Character", - "&Vbar" - ] - ] - }, - { - "input": "⫫", - "description": "Named entity: Vbar; with a semi-colon", - "output": [ - [ - "Character", - "\u2aeb" - ] - ] - }, - { - "input": "&Vcy", - "description": "Bad named entity: Vcy without a semi-colon", - "output": [ - [ - "Character", - "&Vcy" - ] - ] - }, - { - "input": "В", - "description": "Named entity: Vcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0412" - ] - ] - }, - { - "input": "&Vdash", - "description": "Bad named entity: Vdash without a semi-colon", - "output": [ - [ - "Character", - "&Vdash" - ] - ] - }, - { - "input": "⊩", - "description": "Named entity: Vdash; with a semi-colon", - "output": [ - [ - "Character", - "\u22a9" - ] - ] - }, - { - "input": "&Vdashl", - "description": "Bad named entity: Vdashl without a semi-colon", - "output": [ - [ - "Character", - "&Vdashl" - ] - ] - }, - { - "input": "⫦", - "description": "Named entity: Vdashl; with a semi-colon", - "output": [ - [ - "Character", - "\u2ae6" - ] - ] - }, - { - "input": "&Vee", - "description": "Bad named entity: Vee without a semi-colon", - "output": [ - [ - "Character", - "&Vee" - ] - ] - }, - { - "input": "⋁", - "description": "Named entity: Vee; with a semi-colon", - "output": [ - [ - "Character", - "\u22c1" - ] - ] - }, - { - "input": "&Verbar", - "description": "Bad named entity: Verbar without a semi-colon", - "output": [ - [ - "Character", - "&Verbar" - ] - ] - }, - { - "input": "‖", - "description": "Named entity: Verbar; with a semi-colon", - "output": [ - [ - "Character", - "\u2016" - ] - ] - }, - { - "input": "&Vert", - "description": "Bad named entity: Vert without a semi-colon", - "output": [ - [ - "Character", - "&Vert" - ] - ] - }, - { - "input": "‖", - "description": "Named entity: Vert; with a semi-colon", - "output": [ - [ - "Character", - "\u2016" - ] - ] - }, - { - "input": "&VerticalBar", - "description": "Bad named entity: VerticalBar without a semi-colon", - "output": [ - [ - "Character", - "&VerticalBar" - ] - ] - }, - { - "input": "∣", - "description": "Named entity: VerticalBar; with a semi-colon", - "output": [ - [ - "Character", - "\u2223" - ] - ] - }, - { - "input": "&VerticalLine", - "description": "Bad named entity: VerticalLine without a semi-colon", - "output": [ - [ - "Character", - "&VerticalLine" - ] - ] - }, - { - "input": "|", - "description": "Named entity: VerticalLine; with a semi-colon", - "output": [ - [ - "Character", - "|" - ] - ] - }, - { - "input": "&VerticalSeparator", - "description": "Bad named entity: VerticalSeparator without a semi-colon", - "output": [ - [ - "Character", - "&VerticalSeparator" - ] - ] - }, - { - "input": "❘", - "description": "Named entity: VerticalSeparator; with a semi-colon", - "output": [ - [ - "Character", - "\u2758" - ] - ] - }, - { - "input": "&VerticalTilde", - "description": "Bad named entity: VerticalTilde without a semi-colon", - "output": [ - [ - "Character", - "&VerticalTilde" - ] - ] - }, - { - "input": "≀", - "description": "Named entity: VerticalTilde; with a semi-colon", - "output": [ - [ - "Character", - "\u2240" - ] - ] - }, - { - "input": "&VeryThinSpace", - "description": "Bad named entity: VeryThinSpace without a semi-colon", - "output": [ - [ - "Character", - "&VeryThinSpace" - ] - ] - }, - { - "input": " ", - "description": "Named entity: VeryThinSpace; with a semi-colon", - "output": [ - [ - "Character", - "\u200a" - ] - ] - }, - { - "input": "&Vfr", - "description": "Bad named entity: Vfr without a semi-colon", - "output": [ - [ - "Character", - "&Vfr" - ] - ] - }, - { - "input": "𝔙", - "description": "Named entity: Vfr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd19" - ] - ] - }, - { - "input": "&Vopf", - "description": "Bad named entity: Vopf without a semi-colon", - "output": [ - [ - "Character", - "&Vopf" - ] - ] - }, - { - "input": "𝕍", - "description": "Named entity: Vopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd4d" - ] - ] - }, - { - "input": "&Vscr", - "description": "Bad named entity: Vscr without a semi-colon", - "output": [ - [ - "Character", - "&Vscr" - ] - ] - }, - { - "input": "𝒱", - "description": "Named entity: Vscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udcb1" - ] - ] - }, - { - "input": "&Vvdash", - "description": "Bad named entity: Vvdash without a semi-colon", - "output": [ - [ - "Character", - "&Vvdash" - ] - ] - }, - { - "input": "⊪", - "description": "Named entity: Vvdash; with a semi-colon", - "output": [ - [ - "Character", - "\u22aa" - ] - ] - }, - { - "input": "&Wcirc", - "description": "Bad named entity: Wcirc without a semi-colon", - "output": [ - [ - "Character", - "&Wcirc" - ] - ] - }, - { - "input": "Ŵ", - "description": "Named entity: Wcirc; with a semi-colon", - "output": [ - [ - "Character", - "\u0174" - ] - ] - }, - { - "input": "&Wedge", - "description": "Bad named entity: Wedge without a semi-colon", - "output": [ - [ - "Character", - "&Wedge" - ] - ] - }, - { - "input": "⋀", - "description": "Named entity: Wedge; with a semi-colon", - "output": [ - [ - "Character", - "\u22c0" - ] - ] - }, - { - "input": "&Wfr", - "description": "Bad named entity: Wfr without a semi-colon", - "output": [ - [ - "Character", - "&Wfr" - ] - ] - }, - { - "input": "𝔚", - "description": "Named entity: Wfr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd1a" - ] - ] - }, - { - "input": "&Wopf", - "description": "Bad named entity: Wopf without a semi-colon", - "output": [ - [ - "Character", - "&Wopf" - ] - ] - }, - { - "input": "𝕎", - "description": "Named entity: Wopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd4e" - ] - ] - }, - { - "input": "&Wscr", - "description": "Bad named entity: Wscr without a semi-colon", - "output": [ - [ - "Character", - "&Wscr" - ] - ] - }, - { - "input": "𝒲", - "description": "Named entity: Wscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udcb2" - ] - ] - }, - { - "input": "&Xfr", - "description": "Bad named entity: Xfr without a semi-colon", - "output": [ - [ - "Character", - "&Xfr" - ] - ] - }, - { - "input": "𝔛", - "description": "Named entity: Xfr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd1b" - ] - ] - }, - { - "input": "&Xi", - "description": "Bad named entity: Xi without a semi-colon", - "output": [ - [ - "Character", - "&Xi" - ] - ] - }, - { - "input": "Ξ", - "description": "Named entity: Xi; with a semi-colon", - "output": [ - [ - "Character", - "\u039e" - ] - ] - }, - { - "input": "&Xopf", - "description": "Bad named entity: Xopf without a semi-colon", - "output": [ - [ - "Character", - "&Xopf" - ] - ] - }, - { - "input": "𝕏", - "description": "Named entity: Xopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd4f" - ] - ] - }, - { - "input": "&Xscr", - "description": "Bad named entity: Xscr without a semi-colon", - "output": [ - [ - "Character", - "&Xscr" - ] - ] - }, - { - "input": "𝒳", - "description": "Named entity: Xscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udcb3" - ] - ] - }, - { - "input": "&YAcy", - "description": "Bad named entity: YAcy without a semi-colon", - "output": [ - [ - "Character", - "&YAcy" - ] - ] - }, - { - "input": "Я", - "description": "Named entity: YAcy; with a semi-colon", - "output": [ - [ - "Character", - "\u042f" - ] - ] - }, - { - "input": "&YIcy", - "description": "Bad named entity: YIcy without a semi-colon", - "output": [ - [ - "Character", - "&YIcy" - ] - ] - }, - { - "input": "Ї", - "description": "Named entity: YIcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0407" - ] - ] - }, - { - "input": "&YUcy", - "description": "Bad named entity: YUcy without a semi-colon", - "output": [ - [ - "Character", - "&YUcy" - ] - ] - }, - { - "input": "Ю", - "description": "Named entity: YUcy; with a semi-colon", - "output": [ - [ - "Character", - "\u042e" - ] - ] - }, - { - "input": "Ý", - "description": "Named entity: Yacute without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00dd" - ] - ] - }, - { - "input": "Ý", - "description": "Named entity: Yacute; with a semi-colon", - "output": [ - [ - "Character", - "\u00dd" - ] - ] - }, - { - "input": "&Ycirc", - "description": "Bad named entity: Ycirc without a semi-colon", - "output": [ - [ - "Character", - "&Ycirc" - ] - ] - }, - { - "input": "Ŷ", - "description": "Named entity: Ycirc; with a semi-colon", - "output": [ - [ - "Character", - "\u0176" - ] - ] - }, - { - "input": "&Ycy", - "description": "Bad named entity: Ycy without a semi-colon", - "output": [ - [ - "Character", - "&Ycy" - ] - ] - }, - { - "input": "Ы", - "description": "Named entity: Ycy; with a semi-colon", - "output": [ - [ - "Character", - "\u042b" - ] - ] - }, - { - "input": "&Yfr", - "description": "Bad named entity: Yfr without a semi-colon", - "output": [ - [ - "Character", - "&Yfr" - ] - ] - }, - { - "input": "𝔜", - "description": "Named entity: Yfr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd1c" - ] - ] - }, - { - "input": "&Yopf", - "description": "Bad named entity: Yopf without a semi-colon", - "output": [ - [ - "Character", - "&Yopf" - ] - ] - }, - { - "input": "𝕐", - "description": "Named entity: Yopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd50" - ] - ] - }, - { - "input": "&Yscr", - "description": "Bad named entity: Yscr without a semi-colon", - "output": [ - [ - "Character", - "&Yscr" - ] - ] - }, - { - "input": "𝒴", - "description": "Named entity: Yscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udcb4" - ] - ] - }, - { - "input": "&Yuml", - "description": "Bad named entity: Yuml without a semi-colon", - "output": [ - [ - "Character", - "&Yuml" - ] - ] - }, - { - "input": "Ÿ", - "description": "Named entity: Yuml; with a semi-colon", - "output": [ - [ - "Character", - "\u0178" - ] - ] - }, - { - "input": "&ZHcy", - "description": "Bad named entity: ZHcy without a semi-colon", - "output": [ - [ - "Character", - "&ZHcy" - ] - ] - }, - { - "input": "Ж", - "description": "Named entity: ZHcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0416" - ] - ] - }, - { - "input": "&Zacute", - "description": "Bad named entity: Zacute without a semi-colon", - "output": [ - [ - "Character", - "&Zacute" - ] - ] - }, - { - "input": "Ź", - "description": "Named entity: Zacute; with a semi-colon", - "output": [ - [ - "Character", - "\u0179" - ] - ] - }, - { - "input": "&Zcaron", - "description": "Bad named entity: Zcaron without a semi-colon", - "output": [ - [ - "Character", - "&Zcaron" - ] - ] - }, - { - "input": "Ž", - "description": "Named entity: Zcaron; with a semi-colon", - "output": [ - [ - "Character", - "\u017d" - ] - ] - }, - { - "input": "&Zcy", - "description": "Bad named entity: Zcy without a semi-colon", - "output": [ - [ - "Character", - "&Zcy" - ] - ] - }, - { - "input": "З", - "description": "Named entity: Zcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0417" - ] - ] - }, - { - "input": "&Zdot", - "description": "Bad named entity: Zdot without a semi-colon", - "output": [ - [ - "Character", - "&Zdot" - ] - ] - }, - { - "input": "Ż", - "description": "Named entity: Zdot; with a semi-colon", - "output": [ - [ - "Character", - "\u017b" - ] - ] - }, - { - "input": "&ZeroWidthSpace", - "description": "Bad named entity: ZeroWidthSpace without a semi-colon", - "output": [ - [ - "Character", - "&ZeroWidthSpace" - ] - ] - }, - { - "input": "​", - "description": "Named entity: ZeroWidthSpace; with a semi-colon", - "output": [ - [ - "Character", - "\u200b" - ] - ] - }, - { - "input": "&Zeta", - "description": "Bad named entity: Zeta without a semi-colon", - "output": [ - [ - "Character", - "&Zeta" - ] - ] - }, - { - "input": "Ζ", - "description": "Named entity: Zeta; with a semi-colon", - "output": [ - [ - "Character", - "\u0396" - ] - ] - }, - { - "input": "&Zfr", - "description": "Bad named entity: Zfr without a semi-colon", - "output": [ - [ - "Character", - "&Zfr" - ] - ] - }, - { - "input": "ℨ", - "description": "Named entity: Zfr; with a semi-colon", - "output": [ - [ - "Character", - "\u2128" - ] - ] - }, - { - "input": "&Zopf", - "description": "Bad named entity: Zopf without a semi-colon", - "output": [ - [ - "Character", - "&Zopf" - ] - ] - }, - { - "input": "ℤ", - "description": "Named entity: Zopf; with a semi-colon", - "output": [ - [ - "Character", - "\u2124" - ] - ] - }, - { - "input": "&Zscr", - "description": "Bad named entity: Zscr without a semi-colon", - "output": [ - [ - "Character", - "&Zscr" - ] - ] - }, - { - "input": "𝒵", - "description": "Named entity: Zscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udcb5" - ] - ] - }, - { - "input": "á", - "description": "Named entity: aacute without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00e1" - ] - ] - }, - { - "input": "á", - "description": "Named entity: aacute; with a semi-colon", - "output": [ - [ - "Character", - "\u00e1" - ] - ] - }, - { - "input": "&abreve", - "description": "Bad named entity: abreve without a semi-colon", - "output": [ - [ - "Character", - "&abreve" - ] - ] - }, - { - "input": "ă", - "description": "Named entity: abreve; with a semi-colon", - "output": [ - [ - "Character", - "\u0103" - ] - ] - }, - { - "input": "&ac", - "description": "Bad named entity: ac without a semi-colon", - "output": [ - [ - "Character", - "&ac" - ] - ] - }, - { - "input": "∾", - "description": "Named entity: ac; with a semi-colon", - "output": [ - [ - "Character", - "\u223e" - ] - ] - }, - { - "input": "&acE", - "description": "Bad named entity: acE without a semi-colon", - "output": [ - [ - "Character", - "&acE" - ] - ] - }, - { - "input": "∾̳", - "description": "Named entity: acE; with a semi-colon", - "output": [ - [ - "Character", - "\u223e\u0333" - ] - ] - }, - { - "input": "&acd", - "description": "Bad named entity: acd without a semi-colon", - "output": [ - [ - "Character", - "&acd" - ] - ] - }, - { - "input": "∿", - "description": "Named entity: acd; with a semi-colon", - "output": [ - [ - "Character", - "\u223f" - ] - ] - }, - { - "input": "â", - "description": "Named entity: acirc without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00e2" - ] - ] - }, - { - "input": "â", - "description": "Named entity: acirc; with a semi-colon", - "output": [ - [ - "Character", - "\u00e2" - ] - ] - }, - { - "input": "´", - "description": "Named entity: acute without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00b4" - ] - ] - }, - { - "input": "´", - "description": "Named entity: acute; with a semi-colon", - "output": [ - [ - "Character", - "\u00b4" - ] - ] - }, - { - "input": "&acy", - "description": "Bad named entity: acy without a semi-colon", - "output": [ - [ - "Character", - "&acy" - ] - ] - }, - { - "input": "а", - "description": "Named entity: acy; with a semi-colon", - "output": [ - [ - "Character", - "\u0430" - ] - ] - }, - { - "input": "æ", - "description": "Named entity: aelig without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00e6" - ] - ] - }, - { - "input": "æ", - "description": "Named entity: aelig; with a semi-colon", - "output": [ - [ - "Character", - "\u00e6" - ] - ] - }, - { - "input": "&af", - "description": "Bad named entity: af without a semi-colon", - "output": [ - [ - "Character", - "&af" - ] - ] - }, - { - "input": "⁡", - "description": "Named entity: af; with a semi-colon", - "output": [ - [ - "Character", - "\u2061" - ] - ] - }, - { - "input": "&afr", - "description": "Bad named entity: afr without a semi-colon", - "output": [ - [ - "Character", - "&afr" - ] - ] - }, - { - "input": "𝔞", - "description": "Named entity: afr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd1e" - ] - ] - }, - { - "input": "à", - "description": "Named entity: agrave without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00e0" - ] - ] - }, - { - "input": "à", - "description": "Named entity: agrave; with a semi-colon", - "output": [ - [ - "Character", - "\u00e0" - ] - ] - }, - { - "input": "&alefsym", - "description": "Bad named entity: alefsym without a semi-colon", - "output": [ - [ - "Character", - "&alefsym" - ] - ] - }, - { - "input": "ℵ", - "description": "Named entity: alefsym; with a semi-colon", - "output": [ - [ - "Character", - "\u2135" - ] - ] - }, - { - "input": "&aleph", - "description": "Bad named entity: aleph without a semi-colon", - "output": [ - [ - "Character", - "&aleph" - ] - ] - }, - { - "input": "ℵ", - "description": "Named entity: aleph; with a semi-colon", - "output": [ - [ - "Character", - "\u2135" - ] - ] - }, - { - "input": "&alpha", - "description": "Bad named entity: alpha without a semi-colon", - "output": [ - [ - "Character", - "&alpha" - ] - ] - }, - { - "input": "α", - "description": "Named entity: alpha; with a semi-colon", - "output": [ - [ - "Character", - "\u03b1" - ] - ] - }, - { - "input": "&amacr", - "description": "Bad named entity: amacr without a semi-colon", - "output": [ - [ - "Character", - "&amacr" - ] - ] - }, - { - "input": "ā", - "description": "Named entity: amacr; with a semi-colon", - "output": [ - [ - "Character", - "\u0101" - ] - ] - }, - { - "input": "&amalg", - "description": "Bad named entity: amalg without a semi-colon", - "output": [ - [ - "Character", - "&amalg" - ] - ] - }, - { - "input": "⨿", - "description": "Named entity: amalg; with a semi-colon", - "output": [ - [ - "Character", - "\u2a3f" - ] - ] - }, - { - "input": "&", - "description": "Named entity: amp without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "&" - ] - ] - }, - { - "input": "&", - "description": "Named entity: amp; with a semi-colon", - "output": [ - [ - "Character", - "&" - ] - ] - }, - { - "input": "&and", - "description": "Bad named entity: and without a semi-colon", - "output": [ - [ - "Character", - "&and" - ] - ] - }, - { - "input": "∧", - "description": "Named entity: and; with a semi-colon", - "output": [ - [ - "Character", - "\u2227" - ] - ] - }, - { - "input": "&andand", - "description": "Bad named entity: andand without a semi-colon", - "output": [ - [ - "Character", - "&andand" - ] - ] - }, - { - "input": "⩕", - "description": "Named entity: andand; with a semi-colon", - "output": [ - [ - "Character", - "\u2a55" - ] - ] - }, - { - "input": "&andd", - "description": "Bad named entity: andd without a semi-colon", - "output": [ - [ - "Character", - "&andd" - ] - ] - }, - { - "input": "⩜", - "description": "Named entity: andd; with a semi-colon", - "output": [ - [ - "Character", - "\u2a5c" - ] - ] - }, - { - "input": "&andslope", - "description": "Bad named entity: andslope without a semi-colon", - "output": [ - [ - "Character", - "&andslope" - ] - ] - }, - { - "input": "⩘", - "description": "Named entity: andslope; with a semi-colon", - "output": [ - [ - "Character", - "\u2a58" - ] - ] - }, - { - "input": "&andv", - "description": "Bad named entity: andv without a semi-colon", - "output": [ - [ - "Character", - "&andv" - ] - ] - }, - { - "input": "⩚", - "description": "Named entity: andv; with a semi-colon", - "output": [ - [ - "Character", - "\u2a5a" - ] - ] - }, - { - "input": "&ang", - "description": "Bad named entity: ang without a semi-colon", - "output": [ - [ - "Character", - "&ang" - ] - ] - }, - { - "input": "∠", - "description": "Named entity: ang; with a semi-colon", - "output": [ - [ - "Character", - "\u2220" - ] - ] - }, - { - "input": "&ange", - "description": "Bad named entity: ange without a semi-colon", - "output": [ - [ - "Character", - "&ange" - ] - ] - }, - { - "input": "⦤", - "description": "Named entity: ange; with a semi-colon", - "output": [ - [ - "Character", - "\u29a4" - ] - ] - }, - { - "input": "&angle", - "description": "Bad named entity: angle without a semi-colon", - "output": [ - [ - "Character", - "&angle" - ] - ] - }, - { - "input": "∠", - "description": "Named entity: angle; with a semi-colon", - "output": [ - [ - "Character", - "\u2220" - ] - ] - }, - { - "input": "&angmsd", - "description": "Bad named entity: angmsd without a semi-colon", - "output": [ - [ - "Character", - "&angmsd" - ] - ] - }, - { - "input": "∡", - "description": "Named entity: angmsd; with a semi-colon", - "output": [ - [ - "Character", - "\u2221" - ] - ] - }, - { - "input": "&angmsdaa", - "description": "Bad named entity: angmsdaa without a semi-colon", - "output": [ - [ - "Character", - "&angmsdaa" - ] - ] - }, - { - "input": "⦨", - "description": "Named entity: angmsdaa; with a semi-colon", - "output": [ - [ - "Character", - "\u29a8" - ] - ] - }, - { - "input": "&angmsdab", - "description": "Bad named entity: angmsdab without a semi-colon", - "output": [ - [ - "Character", - "&angmsdab" - ] - ] - }, - { - "input": "⦩", - "description": "Named entity: angmsdab; with a semi-colon", - "output": [ - [ - "Character", - "\u29a9" - ] - ] - }, - { - "input": "&angmsdac", - "description": "Bad named entity: angmsdac without a semi-colon", - "output": [ - [ - "Character", - "&angmsdac" - ] - ] - }, - { - "input": "⦪", - "description": "Named entity: angmsdac; with a semi-colon", - "output": [ - [ - "Character", - "\u29aa" - ] - ] - }, - { - "input": "&angmsdad", - "description": "Bad named entity: angmsdad without a semi-colon", - "output": [ - [ - "Character", - "&angmsdad" - ] - ] - }, - { - "input": "⦫", - "description": "Named entity: angmsdad; with a semi-colon", - "output": [ - [ - "Character", - "\u29ab" - ] - ] - }, - { - "input": "&angmsdae", - "description": "Bad named entity: angmsdae without a semi-colon", - "output": [ - [ - "Character", - "&angmsdae" - ] - ] - }, - { - "input": "⦬", - "description": "Named entity: angmsdae; with a semi-colon", - "output": [ - [ - "Character", - "\u29ac" - ] - ] - }, - { - "input": "&angmsdaf", - "description": "Bad named entity: angmsdaf without a semi-colon", - "output": [ - [ - "Character", - "&angmsdaf" - ] - ] - }, - { - "input": "⦭", - "description": "Named entity: angmsdaf; with a semi-colon", - "output": [ - [ - "Character", - "\u29ad" - ] - ] - }, - { - "input": "&angmsdag", - "description": "Bad named entity: angmsdag without a semi-colon", - "output": [ - [ - "Character", - "&angmsdag" - ] - ] - }, - { - "input": "⦮", - "description": "Named entity: angmsdag; with a semi-colon", - "output": [ - [ - "Character", - "\u29ae" - ] - ] - }, - { - "input": "&angmsdah", - "description": "Bad named entity: angmsdah without a semi-colon", - "output": [ - [ - "Character", - "&angmsdah" - ] - ] - }, - { - "input": "⦯", - "description": "Named entity: angmsdah; with a semi-colon", - "output": [ - [ - "Character", - "\u29af" - ] - ] - }, - { - "input": "&angrt", - "description": "Bad named entity: angrt without a semi-colon", - "output": [ - [ - "Character", - "&angrt" - ] - ] - }, - { - "input": "∟", - "description": "Named entity: angrt; with a semi-colon", - "output": [ - [ - "Character", - "\u221f" - ] - ] - }, - { - "input": "&angrtvb", - "description": "Bad named entity: angrtvb without a semi-colon", - "output": [ - [ - "Character", - "&angrtvb" - ] - ] - }, - { - "input": "⊾", - "description": "Named entity: angrtvb; with a semi-colon", - "output": [ - [ - "Character", - "\u22be" - ] - ] - }, - { - "input": "&angrtvbd", - "description": "Bad named entity: angrtvbd without a semi-colon", - "output": [ - [ - "Character", - "&angrtvbd" - ] - ] - }, - { - "input": "⦝", - "description": "Named entity: angrtvbd; with a semi-colon", - "output": [ - [ - "Character", - "\u299d" - ] - ] - }, - { - "input": "&angsph", - "description": "Bad named entity: angsph without a semi-colon", - "output": [ - [ - "Character", - "&angsph" - ] - ] - }, - { - "input": "∢", - "description": "Named entity: angsph; with a semi-colon", - "output": [ - [ - "Character", - "\u2222" - ] - ] - }, - { - "input": "&angst", - "description": "Bad named entity: angst without a semi-colon", - "output": [ - [ - "Character", - "&angst" - ] - ] - }, - { - "input": "Å", - "description": "Named entity: angst; with a semi-colon", - "output": [ - [ - "Character", - "\u00c5" - ] - ] - }, - { - "input": "&angzarr", - "description": "Bad named entity: angzarr without a semi-colon", - "output": [ - [ - "Character", - "&angzarr" - ] - ] - }, - { - "input": "⍼", - "description": "Named entity: angzarr; with a semi-colon", - "output": [ - [ - "Character", - "\u237c" - ] - ] - }, - { - "input": "&aogon", - "description": "Bad named entity: aogon without a semi-colon", - "output": [ - [ - "Character", - "&aogon" - ] - ] - }, - { - "input": "ą", - "description": "Named entity: aogon; with a semi-colon", - "output": [ - [ - "Character", - "\u0105" - ] - ] - }, - { - "input": "&aopf", - "description": "Bad named entity: aopf without a semi-colon", - "output": [ - [ - "Character", - "&aopf" - ] - ] - }, - { - "input": "𝕒", - "description": "Named entity: aopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd52" - ] - ] - }, - { - "input": "&ap", - "description": "Bad named entity: ap without a semi-colon", - "output": [ - [ - "Character", - "&ap" - ] - ] - }, - { - "input": "≈", - "description": "Named entity: ap; with a semi-colon", - "output": [ - [ - "Character", - "\u2248" - ] - ] - }, - { - "input": "&apE", - "description": "Bad named entity: apE without a semi-colon", - "output": [ - [ - "Character", - "&apE" - ] - ] - }, - { - "input": "⩰", - "description": "Named entity: apE; with a semi-colon", - "output": [ - [ - "Character", - "\u2a70" - ] - ] - }, - { - "input": "&apacir", - "description": "Bad named entity: apacir without a semi-colon", - "output": [ - [ - "Character", - "&apacir" - ] - ] - }, - { - "input": "⩯", - "description": "Named entity: apacir; with a semi-colon", - "output": [ - [ - "Character", - "\u2a6f" - ] - ] - }, - { - "input": "&ape", - "description": "Bad named entity: ape without a semi-colon", - "output": [ - [ - "Character", - "&ape" - ] - ] - }, - { - "input": "≊", - "description": "Named entity: ape; with a semi-colon", - "output": [ - [ - "Character", - "\u224a" - ] - ] - }, - { - "input": "&apid", - "description": "Bad named entity: apid without a semi-colon", - "output": [ - [ - "Character", - "&apid" - ] - ] - }, - { - "input": "≋", - "description": "Named entity: apid; with a semi-colon", - "output": [ - [ - "Character", - "\u224b" - ] - ] - }, - { - "input": "&apos", - "description": "Bad named entity: apos without a semi-colon", - "output": [ - [ - "Character", - "&apos" - ] - ] - }, - { - "input": "'", - "description": "Named entity: apos; with a semi-colon", - "output": [ - [ - "Character", - "'" - ] - ] - }, - { - "input": "&approx", - "description": "Bad named entity: approx without a semi-colon", - "output": [ - [ - "Character", - "&approx" - ] - ] - }, - { - "input": "≈", - "description": "Named entity: approx; with a semi-colon", - "output": [ - [ - "Character", - "\u2248" - ] - ] - }, - { - "input": "&approxeq", - "description": "Bad named entity: approxeq without a semi-colon", - "output": [ - [ - "Character", - "&approxeq" - ] - ] - }, - { - "input": "≊", - "description": "Named entity: approxeq; with a semi-colon", - "output": [ - [ - "Character", - "\u224a" - ] - ] - }, - { - "input": "å", - "description": "Named entity: aring without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00e5" - ] - ] - }, - { - "input": "å", - "description": "Named entity: aring; with a semi-colon", - "output": [ - [ - "Character", - "\u00e5" - ] - ] - }, - { - "input": "&ascr", - "description": "Bad named entity: ascr without a semi-colon", - "output": [ - [ - "Character", - "&ascr" - ] - ] - }, - { - "input": "𝒶", - "description": "Named entity: ascr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udcb6" - ] - ] - }, - { - "input": "&ast", - "description": "Bad named entity: ast without a semi-colon", - "output": [ - [ - "Character", - "&ast" - ] - ] - }, - { - "input": "*", - "description": "Named entity: ast; with a semi-colon", - "output": [ - [ - "Character", - "*" - ] - ] - }, - { - "input": "&asymp", - "description": "Bad named entity: asymp without a semi-colon", - "output": [ - [ - "Character", - "&asymp" - ] - ] - }, - { - "input": "≈", - "description": "Named entity: asymp; with a semi-colon", - "output": [ - [ - "Character", - "\u2248" - ] - ] - }, - { - "input": "&asympeq", - "description": "Bad named entity: asympeq without a semi-colon", - "output": [ - [ - "Character", - "&asympeq" - ] - ] - }, - { - "input": "≍", - "description": "Named entity: asympeq; with a semi-colon", - "output": [ - [ - "Character", - "\u224d" - ] - ] - }, - { - "input": "ã", - "description": "Named entity: atilde without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00e3" - ] - ] - }, - { - "input": "ã", - "description": "Named entity: atilde; with a semi-colon", - "output": [ - [ - "Character", - "\u00e3" - ] - ] - }, - { - "input": "ä", - "description": "Named entity: auml without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00e4" - ] - ] - }, - { - "input": "ä", - "description": "Named entity: auml; with a semi-colon", - "output": [ - [ - "Character", - "\u00e4" - ] - ] - }, - { - "input": "&awconint", - "description": "Bad named entity: awconint without a semi-colon", - "output": [ - [ - "Character", - "&awconint" - ] - ] - }, - { - "input": "∳", - "description": "Named entity: awconint; with a semi-colon", - "output": [ - [ - "Character", - "\u2233" - ] - ] - }, - { - "input": "&awint", - "description": "Bad named entity: awint without a semi-colon", - "output": [ - [ - "Character", - "&awint" - ] - ] - }, - { - "input": "⨑", - "description": "Named entity: awint; with a semi-colon", - "output": [ - [ - "Character", - "\u2a11" - ] - ] - }, - { - "input": "&bNot", - "description": "Bad named entity: bNot without a semi-colon", - "output": [ - [ - "Character", - "&bNot" - ] - ] - }, - { - "input": "⫭", - "description": "Named entity: bNot; with a semi-colon", - "output": [ - [ - "Character", - "\u2aed" - ] - ] - }, - { - "input": "&backcong", - "description": "Bad named entity: backcong without a semi-colon", - "output": [ - [ - "Character", - "&backcong" - ] - ] - }, - { - "input": "≌", - "description": "Named entity: backcong; with a semi-colon", - "output": [ - [ - "Character", - "\u224c" - ] - ] - }, - { - "input": "&backepsilon", - "description": "Bad named entity: backepsilon without a semi-colon", - "output": [ - [ - "Character", - "&backepsilon" - ] - ] - }, - { - "input": "϶", - "description": "Named entity: backepsilon; with a semi-colon", - "output": [ - [ - "Character", - "\u03f6" - ] - ] - }, - { - "input": "&backprime", - "description": "Bad named entity: backprime without a semi-colon", - "output": [ - [ - "Character", - "&backprime" - ] - ] - }, - { - "input": "‵", - "description": "Named entity: backprime; with a semi-colon", - "output": [ - [ - "Character", - "\u2035" - ] - ] - }, - { - "input": "&backsim", - "description": "Bad named entity: backsim without a semi-colon", - "output": [ - [ - "Character", - "&backsim" - ] - ] - }, - { - "input": "∽", - "description": "Named entity: backsim; with a semi-colon", - "output": [ - [ - "Character", - "\u223d" - ] - ] - }, - { - "input": "&backsimeq", - "description": "Bad named entity: backsimeq without a semi-colon", - "output": [ - [ - "Character", - "&backsimeq" - ] - ] - }, - { - "input": "⋍", - "description": "Named entity: backsimeq; with a semi-colon", - "output": [ - [ - "Character", - "\u22cd" - ] - ] - }, - { - "input": "&barvee", - "description": "Bad named entity: barvee without a semi-colon", - "output": [ - [ - "Character", - "&barvee" - ] - ] - }, - { - "input": "⊽", - "description": "Named entity: barvee; with a semi-colon", - "output": [ - [ - "Character", - "\u22bd" - ] - ] - }, - { - "input": "&barwed", - "description": "Bad named entity: barwed without a semi-colon", - "output": [ - [ - "Character", - "&barwed" - ] - ] - }, - { - "input": "⌅", - "description": "Named entity: barwed; with a semi-colon", - "output": [ - [ - "Character", - "\u2305" - ] - ] - }, - { - "input": "&barwedge", - "description": "Bad named entity: barwedge without a semi-colon", - "output": [ - [ - "Character", - "&barwedge" - ] - ] - }, - { - "input": "⌅", - "description": "Named entity: barwedge; with a semi-colon", - "output": [ - [ - "Character", - "\u2305" - ] - ] - }, - { - "input": "&bbrk", - "description": "Bad named entity: bbrk without a semi-colon", - "output": [ - [ - "Character", - "&bbrk" - ] - ] - }, - { - "input": "⎵", - "description": "Named entity: bbrk; with a semi-colon", - "output": [ - [ - "Character", - "\u23b5" - ] - ] - }, - { - "input": "&bbrktbrk", - "description": "Bad named entity: bbrktbrk without a semi-colon", - "output": [ - [ - "Character", - "&bbrktbrk" - ] - ] - }, - { - "input": "⎶", - "description": "Named entity: bbrktbrk; with a semi-colon", - "output": [ - [ - "Character", - "\u23b6" - ] - ] - }, - { - "input": "&bcong", - "description": "Bad named entity: bcong without a semi-colon", - "output": [ - [ - "Character", - "&bcong" - ] - ] - }, - { - "input": "≌", - "description": "Named entity: bcong; with a semi-colon", - "output": [ - [ - "Character", - "\u224c" - ] - ] - }, - { - "input": "&bcy", - "description": "Bad named entity: bcy without a semi-colon", - "output": [ - [ - "Character", - "&bcy" - ] - ] - }, - { - "input": "б", - "description": "Named entity: bcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0431" - ] - ] - }, - { - "input": "&bdquo", - "description": "Bad named entity: bdquo without a semi-colon", - "output": [ - [ - "Character", - "&bdquo" - ] - ] - }, - { - "input": "„", - "description": "Named entity: bdquo; with a semi-colon", - "output": [ - [ - "Character", - "\u201e" - ] - ] - }, - { - "input": "&becaus", - "description": "Bad named entity: becaus without a semi-colon", - "output": [ - [ - "Character", - "&becaus" - ] - ] - }, - { - "input": "∵", - "description": "Named entity: becaus; with a semi-colon", - "output": [ - [ - "Character", - "\u2235" - ] - ] - }, - { - "input": "&because", - "description": "Bad named entity: because without a semi-colon", - "output": [ - [ - "Character", - "&because" - ] - ] - }, - { - "input": "∵", - "description": "Named entity: because; with a semi-colon", - "output": [ - [ - "Character", - "\u2235" - ] - ] - }, - { - "input": "&bemptyv", - "description": "Bad named entity: bemptyv without a semi-colon", - "output": [ - [ - "Character", - "&bemptyv" - ] - ] - }, - { - "input": "⦰", - "description": "Named entity: bemptyv; with a semi-colon", - "output": [ - [ - "Character", - "\u29b0" - ] - ] - }, - { - "input": "&bepsi", - "description": "Bad named entity: bepsi without a semi-colon", - "output": [ - [ - "Character", - "&bepsi" - ] - ] - }, - { - "input": "϶", - "description": "Named entity: bepsi; with a semi-colon", - "output": [ - [ - "Character", - "\u03f6" - ] - ] - }, - { - "input": "&bernou", - "description": "Bad named entity: bernou without a semi-colon", - "output": [ - [ - "Character", - "&bernou" - ] - ] - }, - { - "input": "ℬ", - "description": "Named entity: bernou; with a semi-colon", - "output": [ - [ - "Character", - "\u212c" - ] - ] - }, - { - "input": "&beta", - "description": "Bad named entity: beta without a semi-colon", - "output": [ - [ - "Character", - "&beta" - ] - ] - }, - { - "input": "β", - "description": "Named entity: beta; with a semi-colon", - "output": [ - [ - "Character", - "\u03b2" - ] - ] - }, - { - "input": "&beth", - "description": "Bad named entity: beth without a semi-colon", - "output": [ - [ - "Character", - "&beth" - ] - ] - }, - { - "input": "ℶ", - "description": "Named entity: beth; with a semi-colon", - "output": [ - [ - "Character", - "\u2136" - ] - ] - }, - { - "input": "&between", - "description": "Bad named entity: between without a semi-colon", - "output": [ - [ - "Character", - "&between" - ] - ] - }, - { - "input": "≬", - "description": "Named entity: between; with a semi-colon", - "output": [ - [ - "Character", - "\u226c" - ] - ] - }, - { - "input": "&bfr", - "description": "Bad named entity: bfr without a semi-colon", - "output": [ - [ - "Character", - "&bfr" - ] - ] - }, - { - "input": "𝔟", - "description": "Named entity: bfr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd1f" - ] - ] - }, - { - "input": "&bigcap", - "description": "Bad named entity: bigcap without a semi-colon", - "output": [ - [ - "Character", - "&bigcap" - ] - ] - }, - { - "input": "⋂", - "description": "Named entity: bigcap; with a semi-colon", - "output": [ - [ - "Character", - "\u22c2" - ] - ] - }, - { - "input": "&bigcirc", - "description": "Bad named entity: bigcirc without a semi-colon", - "output": [ - [ - "Character", - "&bigcirc" - ] - ] - }, - { - "input": "◯", - "description": "Named entity: bigcirc; with a semi-colon", - "output": [ - [ - "Character", - "\u25ef" - ] - ] - }, - { - "input": "&bigcup", - "description": "Bad named entity: bigcup without a semi-colon", - "output": [ - [ - "Character", - "&bigcup" - ] - ] - }, - { - "input": "⋃", - "description": "Named entity: bigcup; with a semi-colon", - "output": [ - [ - "Character", - "\u22c3" - ] - ] - }, - { - "input": "&bigodot", - "description": "Bad named entity: bigodot without a semi-colon", - "output": [ - [ - "Character", - "&bigodot" - ] - ] - }, - { - "input": "⨀", - "description": "Named entity: bigodot; with a semi-colon", - "output": [ - [ - "Character", - "\u2a00" - ] - ] - }, - { - "input": "&bigoplus", - "description": "Bad named entity: bigoplus without a semi-colon", - "output": [ - [ - "Character", - "&bigoplus" - ] - ] - }, - { - "input": "⨁", - "description": "Named entity: bigoplus; with a semi-colon", - "output": [ - [ - "Character", - "\u2a01" - ] - ] - }, - { - "input": "&bigotimes", - "description": "Bad named entity: bigotimes without a semi-colon", - "output": [ - [ - "Character", - "&bigotimes" - ] - ] - }, - { - "input": "⨂", - "description": "Named entity: bigotimes; with a semi-colon", - "output": [ - [ - "Character", - "\u2a02" - ] - ] - }, - { - "input": "&bigsqcup", - "description": "Bad named entity: bigsqcup without a semi-colon", - "output": [ - [ - "Character", - "&bigsqcup" - ] - ] - }, - { - "input": "⨆", - "description": "Named entity: bigsqcup; with a semi-colon", - "output": [ - [ - "Character", - "\u2a06" - ] - ] - }, - { - "input": "&bigstar", - "description": "Bad named entity: bigstar without a semi-colon", - "output": [ - [ - "Character", - "&bigstar" - ] - ] - }, - { - "input": "★", - "description": "Named entity: bigstar; with a semi-colon", - "output": [ - [ - "Character", - "\u2605" - ] - ] - }, - { - "input": "&bigtriangledown", - "description": "Bad named entity: bigtriangledown without a semi-colon", - "output": [ - [ - "Character", - "&bigtriangledown" - ] - ] - }, - { - "input": "▽", - "description": "Named entity: bigtriangledown; with a semi-colon", - "output": [ - [ - "Character", - "\u25bd" - ] - ] - }, - { - "input": "&bigtriangleup", - "description": "Bad named entity: bigtriangleup without a semi-colon", - "output": [ - [ - "Character", - "&bigtriangleup" - ] - ] - }, - { - "input": "△", - "description": "Named entity: bigtriangleup; with a semi-colon", - "output": [ - [ - "Character", - "\u25b3" - ] - ] - }, - { - "input": "&biguplus", - "description": "Bad named entity: biguplus without a semi-colon", - "output": [ - [ - "Character", - "&biguplus" - ] - ] - }, - { - "input": "⨄", - "description": "Named entity: biguplus; with a semi-colon", - "output": [ - [ - "Character", - "\u2a04" - ] - ] - }, - { - "input": "&bigvee", - "description": "Bad named entity: bigvee without a semi-colon", - "output": [ - [ - "Character", - "&bigvee" - ] - ] - }, - { - "input": "⋁", - "description": "Named entity: bigvee; with a semi-colon", - "output": [ - [ - "Character", - "\u22c1" - ] - ] - }, - { - "input": "&bigwedge", - "description": "Bad named entity: bigwedge without a semi-colon", - "output": [ - [ - "Character", - "&bigwedge" - ] - ] - }, - { - "input": "⋀", - "description": "Named entity: bigwedge; with a semi-colon", - "output": [ - [ - "Character", - "\u22c0" - ] - ] - }, - { - "input": "&bkarow", - "description": "Bad named entity: bkarow without a semi-colon", - "output": [ - [ - "Character", - "&bkarow" - ] - ] - }, - { - "input": "⤍", - "description": "Named entity: bkarow; with a semi-colon", - "output": [ - [ - "Character", - "\u290d" - ] - ] - }, - { - "input": "&blacklozenge", - "description": "Bad named entity: blacklozenge without a semi-colon", - "output": [ - [ - "Character", - "&blacklozenge" - ] - ] - }, - { - "input": "⧫", - "description": "Named entity: blacklozenge; with a semi-colon", - "output": [ - [ - "Character", - "\u29eb" - ] - ] - }, - { - "input": "&blacksquare", - "description": "Bad named entity: blacksquare without a semi-colon", - "output": [ - [ - "Character", - "&blacksquare" - ] - ] - }, - { - "input": "▪", - "description": "Named entity: blacksquare; with a semi-colon", - "output": [ - [ - "Character", - "\u25aa" - ] - ] - }, - { - "input": "&blacktriangle", - "description": "Bad named entity: blacktriangle without a semi-colon", - "output": [ - [ - "Character", - "&blacktriangle" - ] - ] - }, - { - "input": "▴", - "description": "Named entity: blacktriangle; with a semi-colon", - "output": [ - [ - "Character", - "\u25b4" - ] - ] - }, - { - "input": "&blacktriangledown", - "description": "Bad named entity: blacktriangledown without a semi-colon", - "output": [ - [ - "Character", - "&blacktriangledown" - ] - ] - }, - { - "input": "▾", - "description": "Named entity: blacktriangledown; with a semi-colon", - "output": [ - [ - "Character", - "\u25be" - ] - ] - }, - { - "input": "&blacktriangleleft", - "description": "Bad named entity: blacktriangleleft without a semi-colon", - "output": [ - [ - "Character", - "&blacktriangleleft" - ] - ] - }, - { - "input": "◂", - "description": "Named entity: blacktriangleleft; with a semi-colon", - "output": [ - [ - "Character", - "\u25c2" - ] - ] - }, - { - "input": "&blacktriangleright", - "description": "Bad named entity: blacktriangleright without a semi-colon", - "output": [ - [ - "Character", - "&blacktriangleright" - ] - ] - }, - { - "input": "▸", - "description": "Named entity: blacktriangleright; with a semi-colon", - "output": [ - [ - "Character", - "\u25b8" - ] - ] - }, - { - "input": "&blank", - "description": "Bad named entity: blank without a semi-colon", - "output": [ - [ - "Character", - "&blank" - ] - ] - }, - { - "input": "␣", - "description": "Named entity: blank; with a semi-colon", - "output": [ - [ - "Character", - "\u2423" - ] - ] - }, - { - "input": "&blk12", - "description": "Bad named entity: blk12 without a semi-colon", - "output": [ - [ - "Character", - "&blk12" - ] - ] - }, - { - "input": "▒", - "description": "Named entity: blk12; with a semi-colon", - "output": [ - [ - "Character", - "\u2592" - ] - ] - }, - { - "input": "&blk14", - "description": "Bad named entity: blk14 without a semi-colon", - "output": [ - [ - "Character", - "&blk14" - ] - ] - }, - { - "input": "░", - "description": "Named entity: blk14; with a semi-colon", - "output": [ - [ - "Character", - "\u2591" - ] - ] - }, - { - "input": "&blk34", - "description": "Bad named entity: blk34 without a semi-colon", - "output": [ - [ - "Character", - "&blk34" - ] - ] - }, - { - "input": "▓", - "description": "Named entity: blk34; with a semi-colon", - "output": [ - [ - "Character", - "\u2593" - ] - ] - }, - { - "input": "&block", - "description": "Bad named entity: block without a semi-colon", - "output": [ - [ - "Character", - "&block" - ] - ] - }, - { - "input": "█", - "description": "Named entity: block; with a semi-colon", - "output": [ - [ - "Character", - "\u2588" - ] - ] - }, - { - "input": "&bne", - "description": "Bad named entity: bne without a semi-colon", - "output": [ - [ - "Character", - "&bne" - ] - ] - }, - { - "input": "=⃥", - "description": "Named entity: bne; with a semi-colon", - "output": [ - [ - "Character", - "=\u20e5" - ] - ] - }, - { - "input": "&bnequiv", - "description": "Bad named entity: bnequiv without a semi-colon", - "output": [ - [ - "Character", - "&bnequiv" - ] - ] - }, - { - "input": "≡⃥", - "description": "Named entity: bnequiv; with a semi-colon", - "output": [ - [ - "Character", - "\u2261\u20e5" - ] - ] - }, - { - "input": "&bnot", - "description": "Bad named entity: bnot without a semi-colon", - "output": [ - [ - "Character", - "&bnot" - ] - ] - }, - { - "input": "⌐", - "description": "Named entity: bnot; with a semi-colon", - "output": [ - [ - "Character", - "\u2310" - ] - ] - }, - { - "input": "&bopf", - "description": "Bad named entity: bopf without a semi-colon", - "output": [ - [ - "Character", - "&bopf" - ] - ] - }, - { - "input": "𝕓", - "description": "Named entity: bopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd53" - ] - ] - }, - { - "input": "&bot", - "description": "Bad named entity: bot without a semi-colon", - "output": [ - [ - "Character", - "&bot" - ] - ] - }, - { - "input": "⊥", - "description": "Named entity: bot; with a semi-colon", - "output": [ - [ - "Character", - "\u22a5" - ] - ] - }, - { - "input": "&bottom", - "description": "Bad named entity: bottom without a semi-colon", - "output": [ - [ - "Character", - "&bottom" - ] - ] - }, - { - "input": "⊥", - "description": "Named entity: bottom; with a semi-colon", - "output": [ - [ - "Character", - "\u22a5" - ] - ] - }, - { - "input": "&bowtie", - "description": "Bad named entity: bowtie without a semi-colon", - "output": [ - [ - "Character", - "&bowtie" - ] - ] - }, - { - "input": "⋈", - "description": "Named entity: bowtie; with a semi-colon", - "output": [ - [ - "Character", - "\u22c8" - ] - ] - }, - { - "input": "&boxDL", - "description": "Bad named entity: boxDL without a semi-colon", - "output": [ - [ - "Character", - "&boxDL" - ] - ] - }, - { - "input": "╗", - "description": "Named entity: boxDL; with a semi-colon", - "output": [ - [ - "Character", - "\u2557" - ] - ] - }, - { - "input": "&boxDR", - "description": "Bad named entity: boxDR without a semi-colon", - "output": [ - [ - "Character", - "&boxDR" - ] - ] - }, - { - "input": "╔", - "description": "Named entity: boxDR; with a semi-colon", - "output": [ - [ - "Character", - "\u2554" - ] - ] - }, - { - "input": "&boxDl", - "description": "Bad named entity: boxDl without a semi-colon", - "output": [ - [ - "Character", - "&boxDl" - ] - ] - }, - { - "input": "╖", - "description": "Named entity: boxDl; with a semi-colon", - "output": [ - [ - "Character", - "\u2556" - ] - ] - }, - { - "input": "&boxDr", - "description": "Bad named entity: boxDr without a semi-colon", - "output": [ - [ - "Character", - "&boxDr" - ] - ] - }, - { - "input": "╓", - "description": "Named entity: boxDr; with a semi-colon", - "output": [ - [ - "Character", - "\u2553" - ] - ] - }, - { - "input": "&boxH", - "description": "Bad named entity: boxH without a semi-colon", - "output": [ - [ - "Character", - "&boxH" - ] - ] - }, - { - "input": "═", - "description": "Named entity: boxH; with a semi-colon", - "output": [ - [ - "Character", - "\u2550" - ] - ] - }, - { - "input": "&boxHD", - "description": "Bad named entity: boxHD without a semi-colon", - "output": [ - [ - "Character", - "&boxHD" - ] - ] - }, - { - "input": "╦", - "description": "Named entity: boxHD; with a semi-colon", - "output": [ - [ - "Character", - "\u2566" - ] - ] - }, - { - "input": "&boxHU", - "description": "Bad named entity: boxHU without a semi-colon", - "output": [ - [ - "Character", - "&boxHU" - ] - ] - }, - { - "input": "╩", - "description": "Named entity: boxHU; with a semi-colon", - "output": [ - [ - "Character", - "\u2569" - ] - ] - }, - { - "input": "&boxHd", - "description": "Bad named entity: boxHd without a semi-colon", - "output": [ - [ - "Character", - "&boxHd" - ] - ] - }, - { - "input": "╤", - "description": "Named entity: boxHd; with a semi-colon", - "output": [ - [ - "Character", - "\u2564" - ] - ] - }, - { - "input": "&boxHu", - "description": "Bad named entity: boxHu without a semi-colon", - "output": [ - [ - "Character", - "&boxHu" - ] - ] - }, - { - "input": "╧", - "description": "Named entity: boxHu; with a semi-colon", - "output": [ - [ - "Character", - "\u2567" - ] - ] - }, - { - "input": "&boxUL", - "description": "Bad named entity: boxUL without a semi-colon", - "output": [ - [ - "Character", - "&boxUL" - ] - ] - }, - { - "input": "╝", - "description": "Named entity: boxUL; with a semi-colon", - "output": [ - [ - "Character", - "\u255d" - ] - ] - }, - { - "input": "&boxUR", - "description": "Bad named entity: boxUR without a semi-colon", - "output": [ - [ - "Character", - "&boxUR" - ] - ] - }, - { - "input": "╚", - "description": "Named entity: boxUR; with a semi-colon", - "output": [ - [ - "Character", - "\u255a" - ] - ] - }, - { - "input": "&boxUl", - "description": "Bad named entity: boxUl without a semi-colon", - "output": [ - [ - "Character", - "&boxUl" - ] - ] - }, - { - "input": "╜", - "description": "Named entity: boxUl; with a semi-colon", - "output": [ - [ - "Character", - "\u255c" - ] - ] - }, - { - "input": "&boxUr", - "description": "Bad named entity: boxUr without a semi-colon", - "output": [ - [ - "Character", - "&boxUr" - ] - ] - }, - { - "input": "╙", - "description": "Named entity: boxUr; with a semi-colon", - "output": [ - [ - "Character", - "\u2559" - ] - ] - }, - { - "input": "&boxV", - "description": "Bad named entity: boxV without a semi-colon", - "output": [ - [ - "Character", - "&boxV" - ] - ] - }, - { - "input": "║", - "description": "Named entity: boxV; with a semi-colon", - "output": [ - [ - "Character", - "\u2551" - ] - ] - }, - { - "input": "&boxVH", - "description": "Bad named entity: boxVH without a semi-colon", - "output": [ - [ - "Character", - "&boxVH" - ] - ] - }, - { - "input": "╬", - "description": "Named entity: boxVH; with a semi-colon", - "output": [ - [ - "Character", - "\u256c" - ] - ] - }, - { - "input": "&boxVL", - "description": "Bad named entity: boxVL without a semi-colon", - "output": [ - [ - "Character", - "&boxVL" - ] - ] - }, - { - "input": "╣", - "description": "Named entity: boxVL; with a semi-colon", - "output": [ - [ - "Character", - "\u2563" - ] - ] - }, - { - "input": "&boxVR", - "description": "Bad named entity: boxVR without a semi-colon", - "output": [ - [ - "Character", - "&boxVR" - ] - ] - }, - { - "input": "╠", - "description": "Named entity: boxVR; with a semi-colon", - "output": [ - [ - "Character", - "\u2560" - ] - ] - }, - { - "input": "&boxVh", - "description": "Bad named entity: boxVh without a semi-colon", - "output": [ - [ - "Character", - "&boxVh" - ] - ] - }, - { - "input": "╫", - "description": "Named entity: boxVh; with a semi-colon", - "output": [ - [ - "Character", - "\u256b" - ] - ] - }, - { - "input": "&boxVl", - "description": "Bad named entity: boxVl without a semi-colon", - "output": [ - [ - "Character", - "&boxVl" - ] - ] - }, - { - "input": "╢", - "description": "Named entity: boxVl; with a semi-colon", - "output": [ - [ - "Character", - "\u2562" - ] - ] - }, - { - "input": "&boxVr", - "description": "Bad named entity: boxVr without a semi-colon", - "output": [ - [ - "Character", - "&boxVr" - ] - ] - }, - { - "input": "╟", - "description": "Named entity: boxVr; with a semi-colon", - "output": [ - [ - "Character", - "\u255f" - ] - ] - }, - { - "input": "&boxbox", - "description": "Bad named entity: boxbox without a semi-colon", - "output": [ - [ - "Character", - "&boxbox" - ] - ] - }, - { - "input": "⧉", - "description": "Named entity: boxbox; with a semi-colon", - "output": [ - [ - "Character", - "\u29c9" - ] - ] - }, - { - "input": "&boxdL", - "description": "Bad named entity: boxdL without a semi-colon", - "output": [ - [ - "Character", - "&boxdL" - ] - ] - }, - { - "input": "╕", - "description": "Named entity: boxdL; with a semi-colon", - "output": [ - [ - "Character", - "\u2555" - ] - ] - }, - { - "input": "&boxdR", - "description": "Bad named entity: boxdR without a semi-colon", - "output": [ - [ - "Character", - "&boxdR" - ] - ] - }, - { - "input": "╒", - "description": "Named entity: boxdR; with a semi-colon", - "output": [ - [ - "Character", - "\u2552" - ] - ] - }, - { - "input": "&boxdl", - "description": "Bad named entity: boxdl without a semi-colon", - "output": [ - [ - "Character", - "&boxdl" - ] - ] - }, - { - "input": "┐", - "description": "Named entity: boxdl; with a semi-colon", - "output": [ - [ - "Character", - "\u2510" - ] - ] - }, - { - "input": "&boxdr", - "description": "Bad named entity: boxdr without a semi-colon", - "output": [ - [ - "Character", - "&boxdr" - ] - ] - }, - { - "input": "┌", - "description": "Named entity: boxdr; with a semi-colon", - "output": [ - [ - "Character", - "\u250c" - ] - ] - }, - { - "input": "&boxh", - "description": "Bad named entity: boxh without a semi-colon", - "output": [ - [ - "Character", - "&boxh" - ] - ] - }, - { - "input": "─", - "description": "Named entity: boxh; with a semi-colon", - "output": [ - [ - "Character", - "\u2500" - ] - ] - }, - { - "input": "&boxhD", - "description": "Bad named entity: boxhD without a semi-colon", - "output": [ - [ - "Character", - "&boxhD" - ] - ] - }, - { - "input": "╥", - "description": "Named entity: boxhD; with a semi-colon", - "output": [ - [ - "Character", - "\u2565" - ] - ] - }, - { - "input": "&boxhU", - "description": "Bad named entity: boxhU without a semi-colon", - "output": [ - [ - "Character", - "&boxhU" - ] - ] - }, - { - "input": "╨", - "description": "Named entity: boxhU; with a semi-colon", - "output": [ - [ - "Character", - "\u2568" - ] - ] - }, - { - "input": "&boxhd", - "description": "Bad named entity: boxhd without a semi-colon", - "output": [ - [ - "Character", - "&boxhd" - ] - ] - }, - { - "input": "┬", - "description": "Named entity: boxhd; with a semi-colon", - "output": [ - [ - "Character", - "\u252c" - ] - ] - }, - { - "input": "&boxhu", - "description": "Bad named entity: boxhu without a semi-colon", - "output": [ - [ - "Character", - "&boxhu" - ] - ] - }, - { - "input": "┴", - "description": "Named entity: boxhu; with a semi-colon", - "output": [ - [ - "Character", - "\u2534" - ] - ] - }, - { - "input": "&boxminus", - "description": "Bad named entity: boxminus without a semi-colon", - "output": [ - [ - "Character", - "&boxminus" - ] - ] - }, - { - "input": "⊟", - "description": "Named entity: boxminus; with a semi-colon", - "output": [ - [ - "Character", - "\u229f" - ] - ] - }, - { - "input": "&boxplus", - "description": "Bad named entity: boxplus without a semi-colon", - "output": [ - [ - "Character", - "&boxplus" - ] - ] - }, - { - "input": "⊞", - "description": "Named entity: boxplus; with a semi-colon", - "output": [ - [ - "Character", - "\u229e" - ] - ] - }, - { - "input": "&boxtimes", - "description": "Bad named entity: boxtimes without a semi-colon", - "output": [ - [ - "Character", - "&boxtimes" - ] - ] - }, - { - "input": "⊠", - "description": "Named entity: boxtimes; with a semi-colon", - "output": [ - [ - "Character", - "\u22a0" - ] - ] - }, - { - "input": "&boxuL", - "description": "Bad named entity: boxuL without a semi-colon", - "output": [ - [ - "Character", - "&boxuL" - ] - ] - }, - { - "input": "╛", - "description": "Named entity: boxuL; with a semi-colon", - "output": [ - [ - "Character", - "\u255b" - ] - ] - }, - { - "input": "&boxuR", - "description": "Bad named entity: boxuR without a semi-colon", - "output": [ - [ - "Character", - "&boxuR" - ] - ] - }, - { - "input": "╘", - "description": "Named entity: boxuR; with a semi-colon", - "output": [ - [ - "Character", - "\u2558" - ] - ] - }, - { - "input": "&boxul", - "description": "Bad named entity: boxul without a semi-colon", - "output": [ - [ - "Character", - "&boxul" - ] - ] - }, - { - "input": "┘", - "description": "Named entity: boxul; with a semi-colon", - "output": [ - [ - "Character", - "\u2518" - ] - ] - }, - { - "input": "&boxur", - "description": "Bad named entity: boxur without a semi-colon", - "output": [ - [ - "Character", - "&boxur" - ] - ] - }, - { - "input": "└", - "description": "Named entity: boxur; with a semi-colon", - "output": [ - [ - "Character", - "\u2514" - ] - ] - }, - { - "input": "&boxv", - "description": "Bad named entity: boxv without a semi-colon", - "output": [ - [ - "Character", - "&boxv" - ] - ] - }, - { - "input": "│", - "description": "Named entity: boxv; with a semi-colon", - "output": [ - [ - "Character", - "\u2502" - ] - ] - }, - { - "input": "&boxvH", - "description": "Bad named entity: boxvH without a semi-colon", - "output": [ - [ - "Character", - "&boxvH" - ] - ] - }, - { - "input": "╪", - "description": "Named entity: boxvH; with a semi-colon", - "output": [ - [ - "Character", - "\u256a" - ] - ] - }, - { - "input": "&boxvL", - "description": "Bad named entity: boxvL without a semi-colon", - "output": [ - [ - "Character", - "&boxvL" - ] - ] - }, - { - "input": "╡", - "description": "Named entity: boxvL; with a semi-colon", - "output": [ - [ - "Character", - "\u2561" - ] - ] - }, - { - "input": "&boxvR", - "description": "Bad named entity: boxvR without a semi-colon", - "output": [ - [ - "Character", - "&boxvR" - ] - ] - }, - { - "input": "╞", - "description": "Named entity: boxvR; with a semi-colon", - "output": [ - [ - "Character", - "\u255e" - ] - ] - }, - { - "input": "&boxvh", - "description": "Bad named entity: boxvh without a semi-colon", - "output": [ - [ - "Character", - "&boxvh" - ] - ] - }, - { - "input": "┼", - "description": "Named entity: boxvh; with a semi-colon", - "output": [ - [ - "Character", - "\u253c" - ] - ] - }, - { - "input": "&boxvl", - "description": "Bad named entity: boxvl without a semi-colon", - "output": [ - [ - "Character", - "&boxvl" - ] - ] - }, - { - "input": "┤", - "description": "Named entity: boxvl; with a semi-colon", - "output": [ - [ - "Character", - "\u2524" - ] - ] - }, - { - "input": "&boxvr", - "description": "Bad named entity: boxvr without a semi-colon", - "output": [ - [ - "Character", - "&boxvr" - ] - ] - }, - { - "input": "├", - "description": "Named entity: boxvr; with a semi-colon", - "output": [ - [ - "Character", - "\u251c" - ] - ] - }, - { - "input": "&bprime", - "description": "Bad named entity: bprime without a semi-colon", - "output": [ - [ - "Character", - "&bprime" - ] - ] - }, - { - "input": "‵", - "description": "Named entity: bprime; with a semi-colon", - "output": [ - [ - "Character", - "\u2035" - ] - ] - }, - { - "input": "&breve", - "description": "Bad named entity: breve without a semi-colon", - "output": [ - [ - "Character", - "&breve" - ] - ] - }, - { - "input": "˘", - "description": "Named entity: breve; with a semi-colon", - "output": [ - [ - "Character", - "\u02d8" - ] - ] - }, - { - "input": "¦", - "description": "Named entity: brvbar without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00a6" - ] - ] - }, - { - "input": "¦", - "description": "Named entity: brvbar; with a semi-colon", - "output": [ - [ - "Character", - "\u00a6" - ] - ] - }, - { - "input": "&bscr", - "description": "Bad named entity: bscr without a semi-colon", - "output": [ - [ - "Character", - "&bscr" - ] - ] - }, - { - "input": "𝒷", - "description": "Named entity: bscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udcb7" - ] - ] - }, - { - "input": "&bsemi", - "description": "Bad named entity: bsemi without a semi-colon", - "output": [ - [ - "Character", - "&bsemi" - ] - ] - }, - { - "input": "⁏", - "description": "Named entity: bsemi; with a semi-colon", - "output": [ - [ - "Character", - "\u204f" - ] - ] - }, - { - "input": "&bsim", - "description": "Bad named entity: bsim without a semi-colon", - "output": [ - [ - "Character", - "&bsim" - ] - ] - }, - { - "input": "∽", - "description": "Named entity: bsim; with a semi-colon", - "output": [ - [ - "Character", - "\u223d" - ] - ] - }, - { - "input": "&bsime", - "description": "Bad named entity: bsime without a semi-colon", - "output": [ - [ - "Character", - "&bsime" - ] - ] - }, - { - "input": "⋍", - "description": "Named entity: bsime; with a semi-colon", - "output": [ - [ - "Character", - "\u22cd" - ] - ] - }, - { - "input": "&bsol", - "description": "Bad named entity: bsol without a semi-colon", - "output": [ - [ - "Character", - "&bsol" - ] - ] - }, - { - "input": "\", - "description": "Named entity: bsol; with a semi-colon", - "output": [ - [ - "Character", - "\\" - ] - ] - }, - { - "input": "&bsolb", - "description": "Bad named entity: bsolb without a semi-colon", - "output": [ - [ - "Character", - "&bsolb" - ] - ] - }, - { - "input": "⧅", - "description": "Named entity: bsolb; with a semi-colon", - "output": [ - [ - "Character", - "\u29c5" - ] - ] - }, - { - "input": "&bsolhsub", - "description": "Bad named entity: bsolhsub without a semi-colon", - "output": [ - [ - "Character", - "&bsolhsub" - ] - ] - }, - { - "input": "⟈", - "description": "Named entity: bsolhsub; with a semi-colon", - "output": [ - [ - "Character", - "\u27c8" - ] - ] - }, - { - "input": "&bull", - "description": "Bad named entity: bull without a semi-colon", - "output": [ - [ - "Character", - "&bull" - ] - ] - }, - { - "input": "•", - "description": "Named entity: bull; with a semi-colon", - "output": [ - [ - "Character", - "\u2022" - ] - ] - }, - { - "input": "&bullet", - "description": "Bad named entity: bullet without a semi-colon", - "output": [ - [ - "Character", - "&bullet" - ] - ] - }, - { - "input": "•", - "description": "Named entity: bullet; with a semi-colon", - "output": [ - [ - "Character", - "\u2022" - ] - ] - }, - { - "input": "&bump", - "description": "Bad named entity: bump without a semi-colon", - "output": [ - [ - "Character", - "&bump" - ] - ] - }, - { - "input": "≎", - "description": "Named entity: bump; with a semi-colon", - "output": [ - [ - "Character", - "\u224e" - ] - ] - }, - { - "input": "&bumpE", - "description": "Bad named entity: bumpE without a semi-colon", - "output": [ - [ - "Character", - "&bumpE" - ] - ] - }, - { - "input": "⪮", - "description": "Named entity: bumpE; with a semi-colon", - "output": [ - [ - "Character", - "\u2aae" - ] - ] - }, - { - "input": "&bumpe", - "description": "Bad named entity: bumpe without a semi-colon", - "output": [ - [ - "Character", - "&bumpe" - ] - ] - }, - { - "input": "≏", - "description": "Named entity: bumpe; with a semi-colon", - "output": [ - [ - "Character", - "\u224f" - ] - ] - }, - { - "input": "&bumpeq", - "description": "Bad named entity: bumpeq without a semi-colon", - "output": [ - [ - "Character", - "&bumpeq" - ] - ] - }, - { - "input": "≏", - "description": "Named entity: bumpeq; with a semi-colon", - "output": [ - [ - "Character", - "\u224f" - ] - ] - }, - { - "input": "&cacute", - "description": "Bad named entity: cacute without a semi-colon", - "output": [ - [ - "Character", - "&cacute" - ] - ] - }, - { - "input": "ć", - "description": "Named entity: cacute; with a semi-colon", - "output": [ - [ - "Character", - "\u0107" - ] - ] - }, - { - "input": "&cap", - "description": "Bad named entity: cap without a semi-colon", - "output": [ - [ - "Character", - "&cap" - ] - ] - }, - { - "input": "∩", - "description": "Named entity: cap; with a semi-colon", - "output": [ - [ - "Character", - "\u2229" - ] - ] - }, - { - "input": "&capand", - "description": "Bad named entity: capand without a semi-colon", - "output": [ - [ - "Character", - "&capand" - ] - ] - }, - { - "input": "⩄", - "description": "Named entity: capand; with a semi-colon", - "output": [ - [ - "Character", - "\u2a44" - ] - ] - }, - { - "input": "&capbrcup", - "description": "Bad named entity: capbrcup without a semi-colon", - "output": [ - [ - "Character", - "&capbrcup" - ] - ] - }, - { - "input": "⩉", - "description": "Named entity: capbrcup; with a semi-colon", - "output": [ - [ - "Character", - "\u2a49" - ] - ] - }, - { - "input": "&capcap", - "description": "Bad named entity: capcap without a semi-colon", - "output": [ - [ - "Character", - "&capcap" - ] - ] - }, - { - "input": "⩋", - "description": "Named entity: capcap; with a semi-colon", - "output": [ - [ - "Character", - "\u2a4b" - ] - ] - }, - { - "input": "&capcup", - "description": "Bad named entity: capcup without a semi-colon", - "output": [ - [ - "Character", - "&capcup" - ] - ] - }, - { - "input": "⩇", - "description": "Named entity: capcup; with a semi-colon", - "output": [ - [ - "Character", - "\u2a47" - ] - ] - }, - { - "input": "&capdot", - "description": "Bad named entity: capdot without a semi-colon", - "output": [ - [ - "Character", - "&capdot" - ] - ] - }, - { - "input": "⩀", - "description": "Named entity: capdot; with a semi-colon", - "output": [ - [ - "Character", - "\u2a40" - ] - ] - }, - { - "input": "&caps", - "description": "Bad named entity: caps without a semi-colon", - "output": [ - [ - "Character", - "&caps" - ] - ] - }, - { - "input": "∩︀", - "description": "Named entity: caps; with a semi-colon", - "output": [ - [ - "Character", - "\u2229\ufe00" - ] - ] - }, - { - "input": "&caret", - "description": "Bad named entity: caret without a semi-colon", - "output": [ - [ - "Character", - "&caret" - ] - ] - }, - { - "input": "⁁", - "description": "Named entity: caret; with a semi-colon", - "output": [ - [ - "Character", - "\u2041" - ] - ] - }, - { - "input": "&caron", - "description": "Bad named entity: caron without a semi-colon", - "output": [ - [ - "Character", - "&caron" - ] - ] - }, - { - "input": "ˇ", - "description": "Named entity: caron; with a semi-colon", - "output": [ - [ - "Character", - "\u02c7" - ] - ] - }, - { - "input": "&ccaps", - "description": "Bad named entity: ccaps without a semi-colon", - "output": [ - [ - "Character", - "&ccaps" - ] - ] - }, - { - "input": "⩍", - "description": "Named entity: ccaps; with a semi-colon", - "output": [ - [ - "Character", - "\u2a4d" - ] - ] - }, - { - "input": "&ccaron", - "description": "Bad named entity: ccaron without a semi-colon", - "output": [ - [ - "Character", - "&ccaron" - ] - ] - }, - { - "input": "č", - "description": "Named entity: ccaron; with a semi-colon", - "output": [ - [ - "Character", - "\u010d" - ] - ] - }, - { - "input": "ç", - "description": "Named entity: ccedil without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00e7" - ] - ] - }, - { - "input": "ç", - "description": "Named entity: ccedil; with a semi-colon", - "output": [ - [ - "Character", - "\u00e7" - ] - ] - }, - { - "input": "&ccirc", - "description": "Bad named entity: ccirc without a semi-colon", - "output": [ - [ - "Character", - "&ccirc" - ] - ] - }, - { - "input": "ĉ", - "description": "Named entity: ccirc; with a semi-colon", - "output": [ - [ - "Character", - "\u0109" - ] - ] - }, - { - "input": "&ccups", - "description": "Bad named entity: ccups without a semi-colon", - "output": [ - [ - "Character", - "&ccups" - ] - ] - }, - { - "input": "⩌", - "description": "Named entity: ccups; with a semi-colon", - "output": [ - [ - "Character", - "\u2a4c" - ] - ] - }, - { - "input": "&ccupssm", - "description": "Bad named entity: ccupssm without a semi-colon", - "output": [ - [ - "Character", - "&ccupssm" - ] - ] - }, - { - "input": "⩐", - "description": "Named entity: ccupssm; with a semi-colon", - "output": [ - [ - "Character", - "\u2a50" - ] - ] - }, - { - "input": "&cdot", - "description": "Bad named entity: cdot without a semi-colon", - "output": [ - [ - "Character", - "&cdot" - ] - ] - }, - { - "input": "ċ", - "description": "Named entity: cdot; with a semi-colon", - "output": [ - [ - "Character", - "\u010b" - ] - ] - }, - { - "input": "¸", - "description": "Named entity: cedil without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00b8" - ] - ] - }, - { - "input": "¸", - "description": "Named entity: cedil; with a semi-colon", - "output": [ - [ - "Character", - "\u00b8" - ] - ] - }, - { - "input": "&cemptyv", - "description": "Bad named entity: cemptyv without a semi-colon", - "output": [ - [ - "Character", - "&cemptyv" - ] - ] - }, - { - "input": "⦲", - "description": "Named entity: cemptyv; with a semi-colon", - "output": [ - [ - "Character", - "\u29b2" - ] - ] - }, - { - "input": "¢", - "description": "Named entity: cent without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00a2" - ] - ] - }, - { - "input": "¢", - "description": "Named entity: cent; with a semi-colon", - "output": [ - [ - "Character", - "\u00a2" - ] - ] - }, - { - "input": "·", - "description": "Named entity: centerdot; with a semi-colon", - "output": [ - [ - "Character", - "\u00b7" - ] - ] - }, - { - "input": "&cfr", - "description": "Bad named entity: cfr without a semi-colon", - "output": [ - [ - "Character", - "&cfr" - ] - ] - }, - { - "input": "𝔠", - "description": "Named entity: cfr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd20" - ] - ] - }, - { - "input": "&chcy", - "description": "Bad named entity: chcy without a semi-colon", - "output": [ - [ - "Character", - "&chcy" - ] - ] - }, - { - "input": "ч", - "description": "Named entity: chcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0447" - ] - ] - }, - { - "input": "&check", - "description": "Bad named entity: check without a semi-colon", - "output": [ - [ - "Character", - "&check" - ] - ] - }, - { - "input": "✓", - "description": "Named entity: check; with a semi-colon", - "output": [ - [ - "Character", - "\u2713" - ] - ] - }, - { - "input": "&checkmark", - "description": "Bad named entity: checkmark without a semi-colon", - "output": [ - [ - "Character", - "&checkmark" - ] - ] - }, - { - "input": "✓", - "description": "Named entity: checkmark; with a semi-colon", - "output": [ - [ - "Character", - "\u2713" - ] - ] - }, - { - "input": "&chi", - "description": "Bad named entity: chi without a semi-colon", - "output": [ - [ - "Character", - "&chi" - ] - ] - }, - { - "input": "χ", - "description": "Named entity: chi; with a semi-colon", - "output": [ - [ - "Character", - "\u03c7" - ] - ] - }, - { - "input": "&cir", - "description": "Bad named entity: cir without a semi-colon", - "output": [ - [ - "Character", - "&cir" - ] - ] - }, - { - "input": "○", - "description": "Named entity: cir; with a semi-colon", - "output": [ - [ - "Character", - "\u25cb" - ] - ] - }, - { - "input": "&cirE", - "description": "Bad named entity: cirE without a semi-colon", - "output": [ - [ - "Character", - "&cirE" - ] - ] - }, - { - "input": "⧃", - "description": "Named entity: cirE; with a semi-colon", - "output": [ - [ - "Character", - "\u29c3" - ] - ] - }, - { - "input": "&circ", - "description": "Bad named entity: circ without a semi-colon", - "output": [ - [ - "Character", - "&circ" - ] - ] - }, - { - "input": "ˆ", - "description": "Named entity: circ; with a semi-colon", - "output": [ - [ - "Character", - "\u02c6" - ] - ] - }, - { - "input": "&circeq", - "description": "Bad named entity: circeq without a semi-colon", - "output": [ - [ - "Character", - "&circeq" - ] - ] - }, - { - "input": "≗", - "description": "Named entity: circeq; with a semi-colon", - "output": [ - [ - "Character", - "\u2257" - ] - ] - }, - { - "input": "&circlearrowleft", - "description": "Bad named entity: circlearrowleft without a semi-colon", - "output": [ - [ - "Character", - "&circlearrowleft" - ] - ] - }, - { - "input": "↺", - "description": "Named entity: circlearrowleft; with a semi-colon", - "output": [ - [ - "Character", - "\u21ba" - ] - ] - }, - { - "input": "&circlearrowright", - "description": "Bad named entity: circlearrowright without a semi-colon", - "output": [ - [ - "Character", - "&circlearrowright" - ] - ] - }, - { - "input": "↻", - "description": "Named entity: circlearrowright; with a semi-colon", - "output": [ - [ - "Character", - "\u21bb" - ] - ] - }, - { - "input": "&circledR", - "description": "Bad named entity: circledR without a semi-colon", - "output": [ - [ - "Character", - "&circledR" - ] - ] - }, - { - "input": "®", - "description": "Named entity: circledR; with a semi-colon", - "output": [ - [ - "Character", - "\u00ae" - ] - ] - }, - { - "input": "&circledS", - "description": "Bad named entity: circledS without a semi-colon", - "output": [ - [ - "Character", - "&circledS" - ] - ] - }, - { - "input": "Ⓢ", - "description": "Named entity: circledS; with a semi-colon", - "output": [ - [ - "Character", - "\u24c8" - ] - ] - }, - { - "input": "&circledast", - "description": "Bad named entity: circledast without a semi-colon", - "output": [ - [ - "Character", - "&circledast" - ] - ] - }, - { - "input": "⊛", - "description": "Named entity: circledast; with a semi-colon", - "output": [ - [ - "Character", - "\u229b" - ] - ] - }, - { - "input": "&circledcirc", - "description": "Bad named entity: circledcirc without a semi-colon", - "output": [ - [ - "Character", - "&circledcirc" - ] - ] - }, - { - "input": "⊚", - "description": "Named entity: circledcirc; with a semi-colon", - "output": [ - [ - "Character", - "\u229a" - ] - ] - }, - { - "input": "&circleddash", - "description": "Bad named entity: circleddash without a semi-colon", - "output": [ - [ - "Character", - "&circleddash" - ] - ] - }, - { - "input": "⊝", - "description": "Named entity: circleddash; with a semi-colon", - "output": [ - [ - "Character", - "\u229d" - ] - ] - }, - { - "input": "&cire", - "description": "Bad named entity: cire without a semi-colon", - "output": [ - [ - "Character", - "&cire" - ] - ] - }, - { - "input": "≗", - "description": "Named entity: cire; with a semi-colon", - "output": [ - [ - "Character", - "\u2257" - ] - ] - }, - { - "input": "&cirfnint", - "description": "Bad named entity: cirfnint without a semi-colon", - "output": [ - [ - "Character", - "&cirfnint" - ] - ] - }, - { - "input": "⨐", - "description": "Named entity: cirfnint; with a semi-colon", - "output": [ - [ - "Character", - "\u2a10" - ] - ] - }, - { - "input": "&cirmid", - "description": "Bad named entity: cirmid without a semi-colon", - "output": [ - [ - "Character", - "&cirmid" - ] - ] - }, - { - "input": "⫯", - "description": "Named entity: cirmid; with a semi-colon", - "output": [ - [ - "Character", - "\u2aef" - ] - ] - }, - { - "input": "&cirscir", - "description": "Bad named entity: cirscir without a semi-colon", - "output": [ - [ - "Character", - "&cirscir" - ] - ] - }, - { - "input": "⧂", - "description": "Named entity: cirscir; with a semi-colon", - "output": [ - [ - "Character", - "\u29c2" - ] - ] - }, - { - "input": "&clubs", - "description": "Bad named entity: clubs without a semi-colon", - "output": [ - [ - "Character", - "&clubs" - ] - ] - }, - { - "input": "♣", - "description": "Named entity: clubs; with a semi-colon", - "output": [ - [ - "Character", - "\u2663" - ] - ] - }, - { - "input": "&clubsuit", - "description": "Bad named entity: clubsuit without a semi-colon", - "output": [ - [ - "Character", - "&clubsuit" - ] - ] - }, - { - "input": "♣", - "description": "Named entity: clubsuit; with a semi-colon", - "output": [ - [ - "Character", - "\u2663" - ] - ] - }, - { - "input": "&colon", - "description": "Bad named entity: colon without a semi-colon", - "output": [ - [ - "Character", - "&colon" - ] - ] - }, - { - "input": ":", - "description": "Named entity: colon; with a semi-colon", - "output": [ - [ - "Character", - ":" - ] - ] - }, - { - "input": "&colone", - "description": "Bad named entity: colone without a semi-colon", - "output": [ - [ - "Character", - "&colone" - ] - ] - }, - { - "input": "≔", - "description": "Named entity: colone; with a semi-colon", - "output": [ - [ - "Character", - "\u2254" - ] - ] - }, - { - "input": "&coloneq", - "description": "Bad named entity: coloneq without a semi-colon", - "output": [ - [ - "Character", - "&coloneq" - ] - ] - }, - { - "input": "≔", - "description": "Named entity: coloneq; with a semi-colon", - "output": [ - [ - "Character", - "\u2254" - ] - ] - }, - { - "input": "&comma", - "description": "Bad named entity: comma without a semi-colon", - "output": [ - [ - "Character", - "&comma" - ] - ] - }, - { - "input": ",", - "description": "Named entity: comma; with a semi-colon", - "output": [ - [ - "Character", - "," - ] - ] - }, - { - "input": "&commat", - "description": "Bad named entity: commat without a semi-colon", - "output": [ - [ - "Character", - "&commat" - ] - ] - }, - { - "input": "@", - "description": "Named entity: commat; with a semi-colon", - "output": [ - [ - "Character", - "@" - ] - ] - }, - { - "input": "&comp", - "description": "Bad named entity: comp without a semi-colon", - "output": [ - [ - "Character", - "&comp" - ] - ] - }, - { - "input": "∁", - "description": "Named entity: comp; with a semi-colon", - "output": [ - [ - "Character", - "\u2201" - ] - ] - }, - { - "input": "&compfn", - "description": "Bad named entity: compfn without a semi-colon", - "output": [ - [ - "Character", - "&compfn" - ] - ] - }, - { - "input": "∘", - "description": "Named entity: compfn; with a semi-colon", - "output": [ - [ - "Character", - "\u2218" - ] - ] - }, - { - "input": "&complement", - "description": "Bad named entity: complement without a semi-colon", - "output": [ - [ - "Character", - "&complement" - ] - ] - }, - { - "input": "∁", - "description": "Named entity: complement; with a semi-colon", - "output": [ - [ - "Character", - "\u2201" - ] - ] - }, - { - "input": "&complexes", - "description": "Bad named entity: complexes without a semi-colon", - "output": [ - [ - "Character", - "&complexes" - ] - ] - }, - { - "input": "ℂ", - "description": "Named entity: complexes; with a semi-colon", - "output": [ - [ - "Character", - "\u2102" - ] - ] - }, - { - "input": "&cong", - "description": "Bad named entity: cong without a semi-colon", - "output": [ - [ - "Character", - "&cong" - ] - ] - }, - { - "input": "≅", - "description": "Named entity: cong; with a semi-colon", - "output": [ - [ - "Character", - "\u2245" - ] - ] - }, - { - "input": "&congdot", - "description": "Bad named entity: congdot without a semi-colon", - "output": [ - [ - "Character", - "&congdot" - ] - ] - }, - { - "input": "⩭", - "description": "Named entity: congdot; with a semi-colon", - "output": [ - [ - "Character", - "\u2a6d" - ] - ] - }, - { - "input": "&conint", - "description": "Bad named entity: conint without a semi-colon", - "output": [ - [ - "Character", - "&conint" - ] - ] - }, - { - "input": "∮", - "description": "Named entity: conint; with a semi-colon", - "output": [ - [ - "Character", - "\u222e" - ] - ] - }, - { - "input": "&copf", - "description": "Bad named entity: copf without a semi-colon", - "output": [ - [ - "Character", - "&copf" - ] - ] - }, - { - "input": "𝕔", - "description": "Named entity: copf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd54" - ] - ] - }, - { - "input": "&coprod", - "description": "Bad named entity: coprod without a semi-colon", - "output": [ - [ - "Character", - "&coprod" - ] - ] - }, - { - "input": "∐", - "description": "Named entity: coprod; with a semi-colon", - "output": [ - [ - "Character", - "\u2210" - ] - ] - }, - { - "input": "©", - "description": "Named entity: copy without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00a9" - ] - ] - }, - { - "input": "©", - "description": "Named entity: copy; with a semi-colon", - "output": [ - [ - "Character", - "\u00a9" - ] - ] - }, - { - "input": "℗", - "description": "Named entity: copysr; with a semi-colon", - "output": [ - [ - "Character", - "\u2117" - ] - ] - }, - { - "input": "&crarr", - "description": "Bad named entity: crarr without a semi-colon", - "output": [ - [ - "Character", - "&crarr" - ] - ] - }, - { - "input": "↵", - "description": "Named entity: crarr; with a semi-colon", - "output": [ - [ - "Character", - "\u21b5" - ] - ] - }, - { - "input": "&cross", - "description": "Bad named entity: cross without a semi-colon", - "output": [ - [ - "Character", - "&cross" - ] - ] - }, - { - "input": "✗", - "description": "Named entity: cross; with a semi-colon", - "output": [ - [ - "Character", - "\u2717" - ] - ] - }, - { - "input": "&cscr", - "description": "Bad named entity: cscr without a semi-colon", - "output": [ - [ - "Character", - "&cscr" - ] - ] - }, - { - "input": "𝒸", - "description": "Named entity: cscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udcb8" - ] - ] - }, - { - "input": "&csub", - "description": "Bad named entity: csub without a semi-colon", - "output": [ - [ - "Character", - "&csub" - ] - ] - }, - { - "input": "⫏", - "description": "Named entity: csub; with a semi-colon", - "output": [ - [ - "Character", - "\u2acf" - ] - ] - }, - { - "input": "&csube", - "description": "Bad named entity: csube without a semi-colon", - "output": [ - [ - "Character", - "&csube" - ] - ] - }, - { - "input": "⫑", - "description": "Named entity: csube; with a semi-colon", - "output": [ - [ - "Character", - "\u2ad1" - ] - ] - }, - { - "input": "&csup", - "description": "Bad named entity: csup without a semi-colon", - "output": [ - [ - "Character", - "&csup" - ] - ] - }, - { - "input": "⫐", - "description": "Named entity: csup; with a semi-colon", - "output": [ - [ - "Character", - "\u2ad0" - ] - ] - }, - { - "input": "&csupe", - "description": "Bad named entity: csupe without a semi-colon", - "output": [ - [ - "Character", - "&csupe" - ] - ] - }, - { - "input": "⫒", - "description": "Named entity: csupe; with a semi-colon", - "output": [ - [ - "Character", - "\u2ad2" - ] - ] - }, - { - "input": "&ctdot", - "description": "Bad named entity: ctdot without a semi-colon", - "output": [ - [ - "Character", - "&ctdot" - ] - ] - }, - { - "input": "⋯", - "description": "Named entity: ctdot; with a semi-colon", - "output": [ - [ - "Character", - "\u22ef" - ] - ] - }, - { - "input": "&cudarrl", - "description": "Bad named entity: cudarrl without a semi-colon", - "output": [ - [ - "Character", - "&cudarrl" - ] - ] - }, - { - "input": "⤸", - "description": "Named entity: cudarrl; with a semi-colon", - "output": [ - [ - "Character", - "\u2938" - ] - ] - }, - { - "input": "&cudarrr", - "description": "Bad named entity: cudarrr without a semi-colon", - "output": [ - [ - "Character", - "&cudarrr" - ] - ] - }, - { - "input": "⤵", - "description": "Named entity: cudarrr; with a semi-colon", - "output": [ - [ - "Character", - "\u2935" - ] - ] - }, - { - "input": "&cuepr", - "description": "Bad named entity: cuepr without a semi-colon", - "output": [ - [ - "Character", - "&cuepr" - ] - ] - }, - { - "input": "⋞", - "description": "Named entity: cuepr; with a semi-colon", - "output": [ - [ - "Character", - "\u22de" - ] - ] - }, - { - "input": "&cuesc", - "description": "Bad named entity: cuesc without a semi-colon", - "output": [ - [ - "Character", - "&cuesc" - ] - ] - }, - { - "input": "⋟", - "description": "Named entity: cuesc; with a semi-colon", - "output": [ - [ - "Character", - "\u22df" - ] - ] - }, - { - "input": "&cularr", - "description": "Bad named entity: cularr without a semi-colon", - "output": [ - [ - "Character", - "&cularr" - ] - ] - }, - { - "input": "↶", - "description": "Named entity: cularr; with a semi-colon", - "output": [ - [ - "Character", - "\u21b6" - ] - ] - }, - { - "input": "&cularrp", - "description": "Bad named entity: cularrp without a semi-colon", - "output": [ - [ - "Character", - "&cularrp" - ] - ] - }, - { - "input": "⤽", - "description": "Named entity: cularrp; with a semi-colon", - "output": [ - [ - "Character", - "\u293d" - ] - ] - }, - { - "input": "&cup", - "description": "Bad named entity: cup without a semi-colon", - "output": [ - [ - "Character", - "&cup" - ] - ] - }, - { - "input": "∪", - "description": "Named entity: cup; with a semi-colon", - "output": [ - [ - "Character", - "\u222a" - ] - ] - }, - { - "input": "&cupbrcap", - "description": "Bad named entity: cupbrcap without a semi-colon", - "output": [ - [ - "Character", - "&cupbrcap" - ] - ] - }, - { - "input": "⩈", - "description": "Named entity: cupbrcap; with a semi-colon", - "output": [ - [ - "Character", - "\u2a48" - ] - ] - }, - { - "input": "&cupcap", - "description": "Bad named entity: cupcap without a semi-colon", - "output": [ - [ - "Character", - "&cupcap" - ] - ] - }, - { - "input": "⩆", - "description": "Named entity: cupcap; with a semi-colon", - "output": [ - [ - "Character", - "\u2a46" - ] - ] - }, - { - "input": "&cupcup", - "description": "Bad named entity: cupcup without a semi-colon", - "output": [ - [ - "Character", - "&cupcup" - ] - ] - }, - { - "input": "⩊", - "description": "Named entity: cupcup; with a semi-colon", - "output": [ - [ - "Character", - "\u2a4a" - ] - ] - }, - { - "input": "&cupdot", - "description": "Bad named entity: cupdot without a semi-colon", - "output": [ - [ - "Character", - "&cupdot" - ] - ] - }, - { - "input": "⊍", - "description": "Named entity: cupdot; with a semi-colon", - "output": [ - [ - "Character", - "\u228d" - ] - ] - }, - { - "input": "&cupor", - "description": "Bad named entity: cupor without a semi-colon", - "output": [ - [ - "Character", - "&cupor" - ] - ] - }, - { - "input": "⩅", - "description": "Named entity: cupor; with a semi-colon", - "output": [ - [ - "Character", - "\u2a45" - ] - ] - }, - { - "input": "&cups", - "description": "Bad named entity: cups without a semi-colon", - "output": [ - [ - "Character", - "&cups" - ] - ] - }, - { - "input": "∪︀", - "description": "Named entity: cups; with a semi-colon", - "output": [ - [ - "Character", - "\u222a\ufe00" - ] - ] - }, - { - "input": "&curarr", - "description": "Bad named entity: curarr without a semi-colon", - "output": [ - [ - "Character", - "&curarr" - ] - ] - }, - { - "input": "↷", - "description": "Named entity: curarr; with a semi-colon", - "output": [ - [ - "Character", - "\u21b7" - ] - ] - }, - { - "input": "&curarrm", - "description": "Bad named entity: curarrm without a semi-colon", - "output": [ - [ - "Character", - "&curarrm" - ] - ] - }, - { - "input": "⤼", - "description": "Named entity: curarrm; with a semi-colon", - "output": [ - [ - "Character", - "\u293c" - ] - ] - }, - { - "input": "&curlyeqprec", - "description": "Bad named entity: curlyeqprec without a semi-colon", - "output": [ - [ - "Character", - "&curlyeqprec" - ] - ] - }, - { - "input": "⋞", - "description": "Named entity: curlyeqprec; with a semi-colon", - "output": [ - [ - "Character", - "\u22de" - ] - ] - }, - { - "input": "&curlyeqsucc", - "description": "Bad named entity: curlyeqsucc without a semi-colon", - "output": [ - [ - "Character", - "&curlyeqsucc" - ] - ] - }, - { - "input": "⋟", - "description": "Named entity: curlyeqsucc; with a semi-colon", - "output": [ - [ - "Character", - "\u22df" - ] - ] - }, - { - "input": "&curlyvee", - "description": "Bad named entity: curlyvee without a semi-colon", - "output": [ - [ - "Character", - "&curlyvee" - ] - ] - }, - { - "input": "⋎", - "description": "Named entity: curlyvee; with a semi-colon", - "output": [ - [ - "Character", - "\u22ce" - ] - ] - }, - { - "input": "&curlywedge", - "description": "Bad named entity: curlywedge without a semi-colon", - "output": [ - [ - "Character", - "&curlywedge" - ] - ] - }, - { - "input": "⋏", - "description": "Named entity: curlywedge; with a semi-colon", - "output": [ - [ - "Character", - "\u22cf" - ] - ] - }, - { - "input": "¤", - "description": "Named entity: curren without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00a4" - ] - ] - }, - { - "input": "¤", - "description": "Named entity: curren; with a semi-colon", - "output": [ - [ - "Character", - "\u00a4" - ] - ] - }, - { - "input": "&curvearrowleft", - "description": "Bad named entity: curvearrowleft without a semi-colon", - "output": [ - [ - "Character", - "&curvearrowleft" - ] - ] - }, - { - "input": "↶", - "description": "Named entity: curvearrowleft; with a semi-colon", - "output": [ - [ - "Character", - "\u21b6" - ] - ] - }, - { - "input": "&curvearrowright", - "description": "Bad named entity: curvearrowright without a semi-colon", - "output": [ - [ - "Character", - "&curvearrowright" - ] - ] - }, - { - "input": "↷", - "description": "Named entity: curvearrowright; with a semi-colon", - "output": [ - [ - "Character", - "\u21b7" - ] - ] - }, - { - "input": "&cuvee", - "description": "Bad named entity: cuvee without a semi-colon", - "output": [ - [ - "Character", - "&cuvee" - ] - ] - }, - { - "input": "⋎", - "description": "Named entity: cuvee; with a semi-colon", - "output": [ - [ - "Character", - "\u22ce" - ] - ] - }, - { - "input": "&cuwed", - "description": "Bad named entity: cuwed without a semi-colon", - "output": [ - [ - "Character", - "&cuwed" - ] - ] - }, - { - "input": "⋏", - "description": "Named entity: cuwed; with a semi-colon", - "output": [ - [ - "Character", - "\u22cf" - ] - ] - }, - { - "input": "&cwconint", - "description": "Bad named entity: cwconint without a semi-colon", - "output": [ - [ - "Character", - "&cwconint" - ] - ] - }, - { - "input": "∲", - "description": "Named entity: cwconint; with a semi-colon", - "output": [ - [ - "Character", - "\u2232" - ] - ] - }, - { - "input": "&cwint", - "description": "Bad named entity: cwint without a semi-colon", - "output": [ - [ - "Character", - "&cwint" - ] - ] - }, - { - "input": "∱", - "description": "Named entity: cwint; with a semi-colon", - "output": [ - [ - "Character", - "\u2231" - ] - ] - }, - { - "input": "&cylcty", - "description": "Bad named entity: cylcty without a semi-colon", - "output": [ - [ - "Character", - "&cylcty" - ] - ] - }, - { - "input": "⌭", - "description": "Named entity: cylcty; with a semi-colon", - "output": [ - [ - "Character", - "\u232d" - ] - ] - }, - { - "input": "&dArr", - "description": "Bad named entity: dArr without a semi-colon", - "output": [ - [ - "Character", - "&dArr" - ] - ] - }, - { - "input": "⇓", - "description": "Named entity: dArr; with a semi-colon", - "output": [ - [ - "Character", - "\u21d3" - ] - ] - }, - { - "input": "&dHar", - "description": "Bad named entity: dHar without a semi-colon", - "output": [ - [ - "Character", - "&dHar" - ] - ] - }, - { - "input": "⥥", - "description": "Named entity: dHar; with a semi-colon", - "output": [ - [ - "Character", - "\u2965" - ] - ] - }, - { - "input": "&dagger", - "description": "Bad named entity: dagger without a semi-colon", - "output": [ - [ - "Character", - "&dagger" - ] - ] - }, - { - "input": "†", - "description": "Named entity: dagger; with a semi-colon", - "output": [ - [ - "Character", - "\u2020" - ] - ] - }, - { - "input": "&daleth", - "description": "Bad named entity: daleth without a semi-colon", - "output": [ - [ - "Character", - "&daleth" - ] - ] - }, - { - "input": "ℸ", - "description": "Named entity: daleth; with a semi-colon", - "output": [ - [ - "Character", - "\u2138" - ] - ] - }, - { - "input": "&darr", - "description": "Bad named entity: darr without a semi-colon", - "output": [ - [ - "Character", - "&darr" - ] - ] - }, - { - "input": "↓", - "description": "Named entity: darr; with a semi-colon", - "output": [ - [ - "Character", - "\u2193" - ] - ] - }, - { - "input": "&dash", - "description": "Bad named entity: dash without a semi-colon", - "output": [ - [ - "Character", - "&dash" - ] - ] - }, - { - "input": "‐", - "description": "Named entity: dash; with a semi-colon", - "output": [ - [ - "Character", - "\u2010" - ] - ] - }, - { - "input": "&dashv", - "description": "Bad named entity: dashv without a semi-colon", - "output": [ - [ - "Character", - "&dashv" - ] - ] - }, - { - "input": "⊣", - "description": "Named entity: dashv; with a semi-colon", - "output": [ - [ - "Character", - "\u22a3" - ] - ] - }, - { - "input": "&dbkarow", - "description": "Bad named entity: dbkarow without a semi-colon", - "output": [ - [ - "Character", - "&dbkarow" - ] - ] - }, - { - "input": "⤏", - "description": "Named entity: dbkarow; with a semi-colon", - "output": [ - [ - "Character", - "\u290f" - ] - ] - }, - { - "input": "&dblac", - "description": "Bad named entity: dblac without a semi-colon", - "output": [ - [ - "Character", - "&dblac" - ] - ] - }, - { - "input": "˝", - "description": "Named entity: dblac; with a semi-colon", - "output": [ - [ - "Character", - "\u02dd" - ] - ] - }, - { - "input": "&dcaron", - "description": "Bad named entity: dcaron without a semi-colon", - "output": [ - [ - "Character", - "&dcaron" - ] - ] - }, - { - "input": "ď", - "description": "Named entity: dcaron; with a semi-colon", - "output": [ - [ - "Character", - "\u010f" - ] - ] - }, - { - "input": "&dcy", - "description": "Bad named entity: dcy without a semi-colon", - "output": [ - [ - "Character", - "&dcy" - ] - ] - }, - { - "input": "д", - "description": "Named entity: dcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0434" - ] - ] - }, - { - "input": "&dd", - "description": "Bad named entity: dd without a semi-colon", - "output": [ - [ - "Character", - "&dd" - ] - ] - }, - { - "input": "ⅆ", - "description": "Named entity: dd; with a semi-colon", - "output": [ - [ - "Character", - "\u2146" - ] - ] - }, - { - "input": "&ddagger", - "description": "Bad named entity: ddagger without a semi-colon", - "output": [ - [ - "Character", - "&ddagger" - ] - ] - }, - { - "input": "‡", - "description": "Named entity: ddagger; with a semi-colon", - "output": [ - [ - "Character", - "\u2021" - ] - ] - }, - { - "input": "&ddarr", - "description": "Bad named entity: ddarr without a semi-colon", - "output": [ - [ - "Character", - "&ddarr" - ] - ] - }, - { - "input": "⇊", - "description": "Named entity: ddarr; with a semi-colon", - "output": [ - [ - "Character", - "\u21ca" - ] - ] - }, - { - "input": "&ddotseq", - "description": "Bad named entity: ddotseq without a semi-colon", - "output": [ - [ - "Character", - "&ddotseq" - ] - ] - }, - { - "input": "⩷", - "description": "Named entity: ddotseq; with a semi-colon", - "output": [ - [ - "Character", - "\u2a77" - ] - ] - }, - { - "input": "°", - "description": "Named entity: deg without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00b0" - ] - ] - }, - { - "input": "°", - "description": "Named entity: deg; with a semi-colon", - "output": [ - [ - "Character", - "\u00b0" - ] - ] - }, - { - "input": "&delta", - "description": "Bad named entity: delta without a semi-colon", - "output": [ - [ - "Character", - "&delta" - ] - ] - }, - { - "input": "δ", - "description": "Named entity: delta; with a semi-colon", - "output": [ - [ - "Character", - "\u03b4" - ] - ] - }, - { - "input": "&demptyv", - "description": "Bad named entity: demptyv without a semi-colon", - "output": [ - [ - "Character", - "&demptyv" - ] - ] - }, - { - "input": "⦱", - "description": "Named entity: demptyv; with a semi-colon", - "output": [ - [ - "Character", - "\u29b1" - ] - ] - }, - { - "input": "&dfisht", - "description": "Bad named entity: dfisht without a semi-colon", - "output": [ - [ - "Character", - "&dfisht" - ] - ] - }, - { - "input": "⥿", - "description": "Named entity: dfisht; with a semi-colon", - "output": [ - [ - "Character", - "\u297f" - ] - ] - }, - { - "input": "&dfr", - "description": "Bad named entity: dfr without a semi-colon", - "output": [ - [ - "Character", - "&dfr" - ] - ] - }, - { - "input": "𝔡", - "description": "Named entity: dfr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd21" - ] - ] - }, - { - "input": "&dharl", - "description": "Bad named entity: dharl without a semi-colon", - "output": [ - [ - "Character", - "&dharl" - ] - ] - }, - { - "input": "⇃", - "description": "Named entity: dharl; with a semi-colon", - "output": [ - [ - "Character", - "\u21c3" - ] - ] - }, - { - "input": "&dharr", - "description": "Bad named entity: dharr without a semi-colon", - "output": [ - [ - "Character", - "&dharr" - ] - ] - }, - { - "input": "⇂", - "description": "Named entity: dharr; with a semi-colon", - "output": [ - [ - "Character", - "\u21c2" - ] - ] - }, - { - "input": "&diam", - "description": "Bad named entity: diam without a semi-colon", - "output": [ - [ - "Character", - "&diam" - ] - ] - }, - { - "input": "⋄", - "description": "Named entity: diam; with a semi-colon", - "output": [ - [ - "Character", - "\u22c4" - ] - ] - }, - { - "input": "&diamond", - "description": "Bad named entity: diamond without a semi-colon", - "output": [ - [ - "Character", - "&diamond" - ] - ] - }, - { - "input": "⋄", - "description": "Named entity: diamond; with a semi-colon", - "output": [ - [ - "Character", - "\u22c4" - ] - ] - }, - { - "input": "&diamondsuit", - "description": "Bad named entity: diamondsuit without a semi-colon", - "output": [ - [ - "Character", - "&diamondsuit" - ] - ] - }, - { - "input": "♦", - "description": "Named entity: diamondsuit; with a semi-colon", - "output": [ - [ - "Character", - "\u2666" - ] - ] - }, - { - "input": "&diams", - "description": "Bad named entity: diams without a semi-colon", - "output": [ - [ - "Character", - "&diams" - ] - ] - }, - { - "input": "♦", - "description": "Named entity: diams; with a semi-colon", - "output": [ - [ - "Character", - "\u2666" - ] - ] - }, - { - "input": "&die", - "description": "Bad named entity: die without a semi-colon", - "output": [ - [ - "Character", - "&die" - ] - ] - }, - { - "input": "¨", - "description": "Named entity: die; with a semi-colon", - "output": [ - [ - "Character", - "\u00a8" - ] - ] - }, - { - "input": "&digamma", - "description": "Bad named entity: digamma without a semi-colon", - "output": [ - [ - "Character", - "&digamma" - ] - ] - }, - { - "input": "ϝ", - "description": "Named entity: digamma; with a semi-colon", - "output": [ - [ - "Character", - "\u03dd" - ] - ] - }, - { - "input": "&disin", - "description": "Bad named entity: disin without a semi-colon", - "output": [ - [ - "Character", - "&disin" - ] - ] - }, - { - "input": "⋲", - "description": "Named entity: disin; with a semi-colon", - "output": [ - [ - "Character", - "\u22f2" - ] - ] - }, - { - "input": "&div", - "description": "Bad named entity: div without a semi-colon", - "output": [ - [ - "Character", - "&div" - ] - ] - }, - { - "input": "÷", - "description": "Named entity: div; with a semi-colon", - "output": [ - [ - "Character", - "\u00f7" - ] - ] - }, - { - "input": "÷", - "description": "Named entity: divide without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00f7" - ] - ] - }, - { - "input": "÷", - "description": "Named entity: divide; with a semi-colon", - "output": [ - [ - "Character", - "\u00f7" - ] - ] - }, - { - "input": "⋇", - "description": "Named entity: divideontimes; with a semi-colon", - "output": [ - [ - "Character", - "\u22c7" - ] - ] - }, - { - "input": "&divonx", - "description": "Bad named entity: divonx without a semi-colon", - "output": [ - [ - "Character", - "&divonx" - ] - ] - }, - { - "input": "⋇", - "description": "Named entity: divonx; with a semi-colon", - "output": [ - [ - "Character", - "\u22c7" - ] - ] - }, - { - "input": "&djcy", - "description": "Bad named entity: djcy without a semi-colon", - "output": [ - [ - "Character", - "&djcy" - ] - ] - }, - { - "input": "ђ", - "description": "Named entity: djcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0452" - ] - ] - }, - { - "input": "&dlcorn", - "description": "Bad named entity: dlcorn without a semi-colon", - "output": [ - [ - "Character", - "&dlcorn" - ] - ] - }, - { - "input": "⌞", - "description": "Named entity: dlcorn; with a semi-colon", - "output": [ - [ - "Character", - "\u231e" - ] - ] - }, - { - "input": "&dlcrop", - "description": "Bad named entity: dlcrop without a semi-colon", - "output": [ - [ - "Character", - "&dlcrop" - ] - ] - }, - { - "input": "⌍", - "description": "Named entity: dlcrop; with a semi-colon", - "output": [ - [ - "Character", - "\u230d" - ] - ] - }, - { - "input": "&dollar", - "description": "Bad named entity: dollar without a semi-colon", - "output": [ - [ - "Character", - "&dollar" - ] - ] - }, - { - "input": "$", - "description": "Named entity: dollar; with a semi-colon", - "output": [ - [ - "Character", - "$" - ] - ] - }, - { - "input": "&dopf", - "description": "Bad named entity: dopf without a semi-colon", - "output": [ - [ - "Character", - "&dopf" - ] - ] - }, - { - "input": "𝕕", - "description": "Named entity: dopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd55" - ] - ] - }, - { - "input": "&dot", - "description": "Bad named entity: dot without a semi-colon", - "output": [ - [ - "Character", - "&dot" - ] - ] - }, - { - "input": "˙", - "description": "Named entity: dot; with a semi-colon", - "output": [ - [ - "Character", - "\u02d9" - ] - ] - }, - { - "input": "&doteq", - "description": "Bad named entity: doteq without a semi-colon", - "output": [ - [ - "Character", - "&doteq" - ] - ] - }, - { - "input": "≐", - "description": "Named entity: doteq; with a semi-colon", - "output": [ - [ - "Character", - "\u2250" - ] - ] - }, - { - "input": "&doteqdot", - "description": "Bad named entity: doteqdot without a semi-colon", - "output": [ - [ - "Character", - "&doteqdot" - ] - ] - }, - { - "input": "≑", - "description": "Named entity: doteqdot; with a semi-colon", - "output": [ - [ - "Character", - "\u2251" - ] - ] - }, - { - "input": "&dotminus", - "description": "Bad named entity: dotminus without a semi-colon", - "output": [ - [ - "Character", - "&dotminus" - ] - ] - }, - { - "input": "∸", - "description": "Named entity: dotminus; with a semi-colon", - "output": [ - [ - "Character", - "\u2238" - ] - ] - }, - { - "input": "&dotplus", - "description": "Bad named entity: dotplus without a semi-colon", - "output": [ - [ - "Character", - "&dotplus" - ] - ] - }, - { - "input": "∔", - "description": "Named entity: dotplus; with a semi-colon", - "output": [ - [ - "Character", - "\u2214" - ] - ] - }, - { - "input": "&dotsquare", - "description": "Bad named entity: dotsquare without a semi-colon", - "output": [ - [ - "Character", - "&dotsquare" - ] - ] - }, - { - "input": "⊡", - "description": "Named entity: dotsquare; with a semi-colon", - "output": [ - [ - "Character", - "\u22a1" - ] - ] - }, - { - "input": "&doublebarwedge", - "description": "Bad named entity: doublebarwedge without a semi-colon", - "output": [ - [ - "Character", - "&doublebarwedge" - ] - ] - }, - { - "input": "⌆", - "description": "Named entity: doublebarwedge; with a semi-colon", - "output": [ - [ - "Character", - "\u2306" - ] - ] - }, - { - "input": "&downarrow", - "description": "Bad named entity: downarrow without a semi-colon", - "output": [ - [ - "Character", - "&downarrow" - ] - ] - }, - { - "input": "↓", - "description": "Named entity: downarrow; with a semi-colon", - "output": [ - [ - "Character", - "\u2193" - ] - ] - }, - { - "input": "&downdownarrows", - "description": "Bad named entity: downdownarrows without a semi-colon", - "output": [ - [ - "Character", - "&downdownarrows" - ] - ] - }, - { - "input": "⇊", - "description": "Named entity: downdownarrows; with a semi-colon", - "output": [ - [ - "Character", - "\u21ca" - ] - ] - }, - { - "input": "&downharpoonleft", - "description": "Bad named entity: downharpoonleft without a semi-colon", - "output": [ - [ - "Character", - "&downharpoonleft" - ] - ] - }, - { - "input": "⇃", - "description": "Named entity: downharpoonleft; with a semi-colon", - "output": [ - [ - "Character", - "\u21c3" - ] - ] - }, - { - "input": "&downharpoonright", - "description": "Bad named entity: downharpoonright without a semi-colon", - "output": [ - [ - "Character", - "&downharpoonright" - ] - ] - }, - { - "input": "⇂", - "description": "Named entity: downharpoonright; with a semi-colon", - "output": [ - [ - "Character", - "\u21c2" - ] - ] - }, - { - "input": "&drbkarow", - "description": "Bad named entity: drbkarow without a semi-colon", - "output": [ - [ - "Character", - "&drbkarow" - ] - ] - }, - { - "input": "⤐", - "description": "Named entity: drbkarow; with a semi-colon", - "output": [ - [ - "Character", - "\u2910" - ] - ] - }, - { - "input": "&drcorn", - "description": "Bad named entity: drcorn without a semi-colon", - "output": [ - [ - "Character", - "&drcorn" - ] - ] - }, - { - "input": "⌟", - "description": "Named entity: drcorn; with a semi-colon", - "output": [ - [ - "Character", - "\u231f" - ] - ] - }, - { - "input": "&drcrop", - "description": "Bad named entity: drcrop without a semi-colon", - "output": [ - [ - "Character", - "&drcrop" - ] - ] - }, - { - "input": "⌌", - "description": "Named entity: drcrop; with a semi-colon", - "output": [ - [ - "Character", - "\u230c" - ] - ] - }, - { - "input": "&dscr", - "description": "Bad named entity: dscr without a semi-colon", - "output": [ - [ - "Character", - "&dscr" - ] - ] - }, - { - "input": "𝒹", - "description": "Named entity: dscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udcb9" - ] - ] - }, - { - "input": "&dscy", - "description": "Bad named entity: dscy without a semi-colon", - "output": [ - [ - "Character", - "&dscy" - ] - ] - }, - { - "input": "ѕ", - "description": "Named entity: dscy; with a semi-colon", - "output": [ - [ - "Character", - "\u0455" - ] - ] - }, - { - "input": "&dsol", - "description": "Bad named entity: dsol without a semi-colon", - "output": [ - [ - "Character", - "&dsol" - ] - ] - }, - { - "input": "⧶", - "description": "Named entity: dsol; with a semi-colon", - "output": [ - [ - "Character", - "\u29f6" - ] - ] - }, - { - "input": "&dstrok", - "description": "Bad named entity: dstrok without a semi-colon", - "output": [ - [ - "Character", - "&dstrok" - ] - ] - }, - { - "input": "đ", - "description": "Named entity: dstrok; with a semi-colon", - "output": [ - [ - "Character", - "\u0111" - ] - ] - }, - { - "input": "&dtdot", - "description": "Bad named entity: dtdot without a semi-colon", - "output": [ - [ - "Character", - "&dtdot" - ] - ] - }, - { - "input": "⋱", - "description": "Named entity: dtdot; with a semi-colon", - "output": [ - [ - "Character", - "\u22f1" - ] - ] - }, - { - "input": "&dtri", - "description": "Bad named entity: dtri without a semi-colon", - "output": [ - [ - "Character", - "&dtri" - ] - ] - }, - { - "input": "▿", - "description": "Named entity: dtri; with a semi-colon", - "output": [ - [ - "Character", - "\u25bf" - ] - ] - }, - { - "input": "&dtrif", - "description": "Bad named entity: dtrif without a semi-colon", - "output": [ - [ - "Character", - "&dtrif" - ] - ] - }, - { - "input": "▾", - "description": "Named entity: dtrif; with a semi-colon", - "output": [ - [ - "Character", - "\u25be" - ] - ] - }, - { - "input": "&duarr", - "description": "Bad named entity: duarr without a semi-colon", - "output": [ - [ - "Character", - "&duarr" - ] - ] - }, - { - "input": "⇵", - "description": "Named entity: duarr; with a semi-colon", - "output": [ - [ - "Character", - "\u21f5" - ] - ] - }, - { - "input": "&duhar", - "description": "Bad named entity: duhar without a semi-colon", - "output": [ - [ - "Character", - "&duhar" - ] - ] - }, - { - "input": "⥯", - "description": "Named entity: duhar; with a semi-colon", - "output": [ - [ - "Character", - "\u296f" - ] - ] - }, - { - "input": "&dwangle", - "description": "Bad named entity: dwangle without a semi-colon", - "output": [ - [ - "Character", - "&dwangle" - ] - ] - }, - { - "input": "⦦", - "description": "Named entity: dwangle; with a semi-colon", - "output": [ - [ - "Character", - "\u29a6" - ] - ] - }, - { - "input": "&dzcy", - "description": "Bad named entity: dzcy without a semi-colon", - "output": [ - [ - "Character", - "&dzcy" - ] - ] - }, - { - "input": "џ", - "description": "Named entity: dzcy; with a semi-colon", - "output": [ - [ - "Character", - "\u045f" - ] - ] - }, - { - "input": "&dzigrarr", - "description": "Bad named entity: dzigrarr without a semi-colon", - "output": [ - [ - "Character", - "&dzigrarr" - ] - ] - }, - { - "input": "⟿", - "description": "Named entity: dzigrarr; with a semi-colon", - "output": [ - [ - "Character", - "\u27ff" - ] - ] - }, - { - "input": "&eDDot", - "description": "Bad named entity: eDDot without a semi-colon", - "output": [ - [ - "Character", - "&eDDot" - ] - ] - }, - { - "input": "⩷", - "description": "Named entity: eDDot; with a semi-colon", - "output": [ - [ - "Character", - "\u2a77" - ] - ] - }, - { - "input": "&eDot", - "description": "Bad named entity: eDot without a semi-colon", - "output": [ - [ - "Character", - "&eDot" - ] - ] - }, - { - "input": "≑", - "description": "Named entity: eDot; with a semi-colon", - "output": [ - [ - "Character", - "\u2251" - ] - ] - }, - { - "input": "é", - "description": "Named entity: eacute without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00e9" - ] - ] - }, - { - "input": "é", - "description": "Named entity: eacute; with a semi-colon", - "output": [ - [ - "Character", - "\u00e9" - ] - ] - }, - { - "input": "&easter", - "description": "Bad named entity: easter without a semi-colon", - "output": [ - [ - "Character", - "&easter" - ] - ] - }, - { - "input": "⩮", - "description": "Named entity: easter; with a semi-colon", - "output": [ - [ - "Character", - "\u2a6e" - ] - ] - }, - { - "input": "&ecaron", - "description": "Bad named entity: ecaron without a semi-colon", - "output": [ - [ - "Character", - "&ecaron" - ] - ] - }, - { - "input": "ě", - "description": "Named entity: ecaron; with a semi-colon", - "output": [ - [ - "Character", - "\u011b" - ] - ] - }, - { - "input": "&ecir", - "description": "Bad named entity: ecir without a semi-colon", - "output": [ - [ - "Character", - "&ecir" - ] - ] - }, - { - "input": "≖", - "description": "Named entity: ecir; with a semi-colon", - "output": [ - [ - "Character", - "\u2256" - ] - ] - }, - { - "input": "ê", - "description": "Named entity: ecirc without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00ea" - ] - ] - }, - { - "input": "ê", - "description": "Named entity: ecirc; with a semi-colon", - "output": [ - [ - "Character", - "\u00ea" - ] - ] - }, - { - "input": "&ecolon", - "description": "Bad named entity: ecolon without a semi-colon", - "output": [ - [ - "Character", - "&ecolon" - ] - ] - }, - { - "input": "≕", - "description": "Named entity: ecolon; with a semi-colon", - "output": [ - [ - "Character", - "\u2255" - ] - ] - }, - { - "input": "&ecy", - "description": "Bad named entity: ecy without a semi-colon", - "output": [ - [ - "Character", - "&ecy" - ] - ] - }, - { - "input": "э", - "description": "Named entity: ecy; with a semi-colon", - "output": [ - [ - "Character", - "\u044d" - ] - ] - }, - { - "input": "&edot", - "description": "Bad named entity: edot without a semi-colon", - "output": [ - [ - "Character", - "&edot" - ] - ] - }, - { - "input": "ė", - "description": "Named entity: edot; with a semi-colon", - "output": [ - [ - "Character", - "\u0117" - ] - ] - }, - { - "input": "&ee", - "description": "Bad named entity: ee without a semi-colon", - "output": [ - [ - "Character", - "&ee" - ] - ] - }, - { - "input": "ⅇ", - "description": "Named entity: ee; with a semi-colon", - "output": [ - [ - "Character", - "\u2147" - ] - ] - }, - { - "input": "&efDot", - "description": "Bad named entity: efDot without a semi-colon", - "output": [ - [ - "Character", - "&efDot" - ] - ] - }, - { - "input": "≒", - "description": "Named entity: efDot; with a semi-colon", - "output": [ - [ - "Character", - "\u2252" - ] - ] - }, - { - "input": "&efr", - "description": "Bad named entity: efr without a semi-colon", - "output": [ - [ - "Character", - "&efr" - ] - ] - }, - { - "input": "𝔢", - "description": "Named entity: efr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd22" - ] - ] - }, - { - "input": "&eg", - "description": "Bad named entity: eg without a semi-colon", - "output": [ - [ - "Character", - "&eg" - ] - ] - }, - { - "input": "⪚", - "description": "Named entity: eg; with a semi-colon", - "output": [ - [ - "Character", - "\u2a9a" - ] - ] - }, - { - "input": "è", - "description": "Named entity: egrave without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00e8" - ] - ] - }, - { - "input": "è", - "description": "Named entity: egrave; with a semi-colon", - "output": [ - [ - "Character", - "\u00e8" - ] - ] - }, - { - "input": "&egs", - "description": "Bad named entity: egs without a semi-colon", - "output": [ - [ - "Character", - "&egs" - ] - ] - }, - { - "input": "⪖", - "description": "Named entity: egs; with a semi-colon", - "output": [ - [ - "Character", - "\u2a96" - ] - ] - }, - { - "input": "&egsdot", - "description": "Bad named entity: egsdot without a semi-colon", - "output": [ - [ - "Character", - "&egsdot" - ] - ] - }, - { - "input": "⪘", - "description": "Named entity: egsdot; with a semi-colon", - "output": [ - [ - "Character", - "\u2a98" - ] - ] - }, - { - "input": "&el", - "description": "Bad named entity: el without a semi-colon", - "output": [ - [ - "Character", - "&el" - ] - ] - }, - { - "input": "⪙", - "description": "Named entity: el; with a semi-colon", - "output": [ - [ - "Character", - "\u2a99" - ] - ] - }, - { - "input": "&elinters", - "description": "Bad named entity: elinters without a semi-colon", - "output": [ - [ - "Character", - "&elinters" - ] - ] - }, - { - "input": "⏧", - "description": "Named entity: elinters; with a semi-colon", - "output": [ - [ - "Character", - "\u23e7" - ] - ] - }, - { - "input": "&ell", - "description": "Bad named entity: ell without a semi-colon", - "output": [ - [ - "Character", - "&ell" - ] - ] - }, - { - "input": "ℓ", - "description": "Named entity: ell; with a semi-colon", - "output": [ - [ - "Character", - "\u2113" - ] - ] - }, - { - "input": "&els", - "description": "Bad named entity: els without a semi-colon", - "output": [ - [ - "Character", - "&els" - ] - ] - }, - { - "input": "⪕", - "description": "Named entity: els; with a semi-colon", - "output": [ - [ - "Character", - "\u2a95" - ] - ] - }, - { - "input": "&elsdot", - "description": "Bad named entity: elsdot without a semi-colon", - "output": [ - [ - "Character", - "&elsdot" - ] - ] - }, - { - "input": "⪗", - "description": "Named entity: elsdot; with a semi-colon", - "output": [ - [ - "Character", - "\u2a97" - ] - ] - }, - { - "input": "&emacr", - "description": "Bad named entity: emacr without a semi-colon", - "output": [ - [ - "Character", - "&emacr" - ] - ] - }, - { - "input": "ē", - "description": "Named entity: emacr; with a semi-colon", - "output": [ - [ - "Character", - "\u0113" - ] - ] - }, - { - "input": "&empty", - "description": "Bad named entity: empty without a semi-colon", - "output": [ - [ - "Character", - "&empty" - ] - ] - }, - { - "input": "∅", - "description": "Named entity: empty; with a semi-colon", - "output": [ - [ - "Character", - "\u2205" - ] - ] - }, - { - "input": "&emptyset", - "description": "Bad named entity: emptyset without a semi-colon", - "output": [ - [ - "Character", - "&emptyset" - ] - ] - }, - { - "input": "∅", - "description": "Named entity: emptyset; with a semi-colon", - "output": [ - [ - "Character", - "\u2205" - ] - ] - }, - { - "input": "&emptyv", - "description": "Bad named entity: emptyv without a semi-colon", - "output": [ - [ - "Character", - "&emptyv" - ] - ] - }, - { - "input": "∅", - "description": "Named entity: emptyv; with a semi-colon", - "output": [ - [ - "Character", - "\u2205" - ] - ] - }, - { - "input": "&emsp", - "description": "Bad named entity: emsp without a semi-colon", - "output": [ - [ - "Character", - "&emsp" - ] - ] - }, - { - "input": "&emsp13", - "description": "Bad named entity: emsp13 without a semi-colon", - "output": [ - [ - "Character", - "&emsp13" - ] - ] - }, - { - "input": " ", - "description": "Named entity: emsp13; with a semi-colon", - "output": [ - [ - "Character", - "\u2004" - ] - ] - }, - { - "input": "&emsp14", - "description": "Bad named entity: emsp14 without a semi-colon", - "output": [ - [ - "Character", - "&emsp14" - ] - ] - }, - { - "input": " ", - "description": "Named entity: emsp14; with a semi-colon", - "output": [ - [ - "Character", - "\u2005" - ] - ] - }, - { - "input": " ", - "description": "Named entity: emsp; with a semi-colon", - "output": [ - [ - "Character", - "\u2003" - ] - ] - }, - { - "input": "&eng", - "description": "Bad named entity: eng without a semi-colon", - "output": [ - [ - "Character", - "&eng" - ] - ] - }, - { - "input": "ŋ", - "description": "Named entity: eng; with a semi-colon", - "output": [ - [ - "Character", - "\u014b" - ] - ] - }, - { - "input": "&ensp", - "description": "Bad named entity: ensp without a semi-colon", - "output": [ - [ - "Character", - "&ensp" - ] - ] - }, - { - "input": " ", - "description": "Named entity: ensp; with a semi-colon", - "output": [ - [ - "Character", - "\u2002" - ] - ] - }, - { - "input": "&eogon", - "description": "Bad named entity: eogon without a semi-colon", - "output": [ - [ - "Character", - "&eogon" - ] - ] - }, - { - "input": "ę", - "description": "Named entity: eogon; with a semi-colon", - "output": [ - [ - "Character", - "\u0119" - ] - ] - }, - { - "input": "&eopf", - "description": "Bad named entity: eopf without a semi-colon", - "output": [ - [ - "Character", - "&eopf" - ] - ] - }, - { - "input": "𝕖", - "description": "Named entity: eopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd56" - ] - ] - }, - { - "input": "&epar", - "description": "Bad named entity: epar without a semi-colon", - "output": [ - [ - "Character", - "&epar" - ] - ] - }, - { - "input": "⋕", - "description": "Named entity: epar; with a semi-colon", - "output": [ - [ - "Character", - "\u22d5" - ] - ] - }, - { - "input": "&eparsl", - "description": "Bad named entity: eparsl without a semi-colon", - "output": [ - [ - "Character", - "&eparsl" - ] - ] - }, - { - "input": "⧣", - "description": "Named entity: eparsl; with a semi-colon", - "output": [ - [ - "Character", - "\u29e3" - ] - ] - }, - { - "input": "&eplus", - "description": "Bad named entity: eplus without a semi-colon", - "output": [ - [ - "Character", - "&eplus" - ] - ] - }, - { - "input": "⩱", - "description": "Named entity: eplus; with a semi-colon", - "output": [ - [ - "Character", - "\u2a71" - ] - ] - }, - { - "input": "&epsi", - "description": "Bad named entity: epsi without a semi-colon", - "output": [ - [ - "Character", - "&epsi" - ] - ] - }, - { - "input": "ε", - "description": "Named entity: epsi; with a semi-colon", - "output": [ - [ - "Character", - "\u03b5" - ] - ] - }, - { - "input": "&epsilon", - "description": "Bad named entity: epsilon without a semi-colon", - "output": [ - [ - "Character", - "&epsilon" - ] - ] - }, - { - "input": "ε", - "description": "Named entity: epsilon; with a semi-colon", - "output": [ - [ - "Character", - "\u03b5" - ] - ] - }, - { - "input": "&epsiv", - "description": "Bad named entity: epsiv without a semi-colon", - "output": [ - [ - "Character", - "&epsiv" - ] - ] - }, - { - "input": "ϵ", - "description": "Named entity: epsiv; with a semi-colon", - "output": [ - [ - "Character", - "\u03f5" - ] - ] - }, - { - "input": "&eqcirc", - "description": "Bad named entity: eqcirc without a semi-colon", - "output": [ - [ - "Character", - "&eqcirc" - ] - ] - }, - { - "input": "≖", - "description": "Named entity: eqcirc; with a semi-colon", - "output": [ - [ - "Character", - "\u2256" - ] - ] - }, - { - "input": "&eqcolon", - "description": "Bad named entity: eqcolon without a semi-colon", - "output": [ - [ - "Character", - "&eqcolon" - ] - ] - }, - { - "input": "≕", - "description": "Named entity: eqcolon; with a semi-colon", - "output": [ - [ - "Character", - "\u2255" - ] - ] - }, - { - "input": "&eqsim", - "description": "Bad named entity: eqsim without a semi-colon", - "output": [ - [ - "Character", - "&eqsim" - ] - ] - }, - { - "input": "≂", - "description": "Named entity: eqsim; with a semi-colon", - "output": [ - [ - "Character", - "\u2242" - ] - ] - }, - { - "input": "&eqslantgtr", - "description": "Bad named entity: eqslantgtr without a semi-colon", - "output": [ - [ - "Character", - "&eqslantgtr" - ] - ] - }, - { - "input": "⪖", - "description": "Named entity: eqslantgtr; with a semi-colon", - "output": [ - [ - "Character", - "\u2a96" - ] - ] - }, - { - "input": "&eqslantless", - "description": "Bad named entity: eqslantless without a semi-colon", - "output": [ - [ - "Character", - "&eqslantless" - ] - ] - }, - { - "input": "⪕", - "description": "Named entity: eqslantless; with a semi-colon", - "output": [ - [ - "Character", - "\u2a95" - ] - ] - }, - { - "input": "&equals", - "description": "Bad named entity: equals without a semi-colon", - "output": [ - [ - "Character", - "&equals" - ] - ] - }, - { - "input": "=", - "description": "Named entity: equals; with a semi-colon", - "output": [ - [ - "Character", - "=" - ] - ] - }, - { - "input": "&equest", - "description": "Bad named entity: equest without a semi-colon", - "output": [ - [ - "Character", - "&equest" - ] - ] - }, - { - "input": "≟", - "description": "Named entity: equest; with a semi-colon", - "output": [ - [ - "Character", - "\u225f" - ] - ] - }, - { - "input": "&equiv", - "description": "Bad named entity: equiv without a semi-colon", - "output": [ - [ - "Character", - "&equiv" - ] - ] - }, - { - "input": "≡", - "description": "Named entity: equiv; with a semi-colon", - "output": [ - [ - "Character", - "\u2261" - ] - ] - }, - { - "input": "&equivDD", - "description": "Bad named entity: equivDD without a semi-colon", - "output": [ - [ - "Character", - "&equivDD" - ] - ] - }, - { - "input": "⩸", - "description": "Named entity: equivDD; with a semi-colon", - "output": [ - [ - "Character", - "\u2a78" - ] - ] - }, - { - "input": "&eqvparsl", - "description": "Bad named entity: eqvparsl without a semi-colon", - "output": [ - [ - "Character", - "&eqvparsl" - ] - ] - }, - { - "input": "⧥", - "description": "Named entity: eqvparsl; with a semi-colon", - "output": [ - [ - "Character", - "\u29e5" - ] - ] - }, - { - "input": "&erDot", - "description": "Bad named entity: erDot without a semi-colon", - "output": [ - [ - "Character", - "&erDot" - ] - ] - }, - { - "input": "≓", - "description": "Named entity: erDot; with a semi-colon", - "output": [ - [ - "Character", - "\u2253" - ] - ] - }, - { - "input": "&erarr", - "description": "Bad named entity: erarr without a semi-colon", - "output": [ - [ - "Character", - "&erarr" - ] - ] - }, - { - "input": "⥱", - "description": "Named entity: erarr; with a semi-colon", - "output": [ - [ - "Character", - "\u2971" - ] - ] - }, - { - "input": "&escr", - "description": "Bad named entity: escr without a semi-colon", - "output": [ - [ - "Character", - "&escr" - ] - ] - }, - { - "input": "ℯ", - "description": "Named entity: escr; with a semi-colon", - "output": [ - [ - "Character", - "\u212f" - ] - ] - }, - { - "input": "&esdot", - "description": "Bad named entity: esdot without a semi-colon", - "output": [ - [ - "Character", - "&esdot" - ] - ] - }, - { - "input": "≐", - "description": "Named entity: esdot; with a semi-colon", - "output": [ - [ - "Character", - "\u2250" - ] - ] - }, - { - "input": "&esim", - "description": "Bad named entity: esim without a semi-colon", - "output": [ - [ - "Character", - "&esim" - ] - ] - }, - { - "input": "≂", - "description": "Named entity: esim; with a semi-colon", - "output": [ - [ - "Character", - "\u2242" - ] - ] - }, - { - "input": "&eta", - "description": "Bad named entity: eta without a semi-colon", - "output": [ - [ - "Character", - "&eta" - ] - ] - }, - { - "input": "η", - "description": "Named entity: eta; with a semi-colon", - "output": [ - [ - "Character", - "\u03b7" - ] - ] - }, - { - "input": "ð", - "description": "Named entity: eth without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00f0" - ] - ] - }, - { - "input": "ð", - "description": "Named entity: eth; with a semi-colon", - "output": [ - [ - "Character", - "\u00f0" - ] - ] - }, - { - "input": "ë", - "description": "Named entity: euml without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00eb" - ] - ] - }, - { - "input": "ë", - "description": "Named entity: euml; with a semi-colon", - "output": [ - [ - "Character", - "\u00eb" - ] - ] - }, - { - "input": "&euro", - "description": "Bad named entity: euro without a semi-colon", - "output": [ - [ - "Character", - "&euro" - ] - ] - }, - { - "input": "€", - "description": "Named entity: euro; with a semi-colon", - "output": [ - [ - "Character", - "\u20ac" - ] - ] - }, - { - "input": "&excl", - "description": "Bad named entity: excl without a semi-colon", - "output": [ - [ - "Character", - "&excl" - ] - ] - }, - { - "input": "!", - "description": "Named entity: excl; with a semi-colon", - "output": [ - [ - "Character", - "!" - ] - ] - }, - { - "input": "&exist", - "description": "Bad named entity: exist without a semi-colon", - "output": [ - [ - "Character", - "&exist" - ] - ] - }, - { - "input": "∃", - "description": "Named entity: exist; with a semi-colon", - "output": [ - [ - "Character", - "\u2203" - ] - ] - }, - { - "input": "&expectation", - "description": "Bad named entity: expectation without a semi-colon", - "output": [ - [ - "Character", - "&expectation" - ] - ] - }, - { - "input": "ℰ", - "description": "Named entity: expectation; with a semi-colon", - "output": [ - [ - "Character", - "\u2130" - ] - ] - }, - { - "input": "&exponentiale", - "description": "Bad named entity: exponentiale without a semi-colon", - "output": [ - [ - "Character", - "&exponentiale" - ] - ] - }, - { - "input": "ⅇ", - "description": "Named entity: exponentiale; with a semi-colon", - "output": [ - [ - "Character", - "\u2147" - ] - ] - }, - { - "input": "&fallingdotseq", - "description": "Bad named entity: fallingdotseq without a semi-colon", - "output": [ - [ - "Character", - "&fallingdotseq" - ] - ] - }, - { - "input": "≒", - "description": "Named entity: fallingdotseq; with a semi-colon", - "output": [ - [ - "Character", - "\u2252" - ] - ] - }, - { - "input": "&fcy", - "description": "Bad named entity: fcy without a semi-colon", - "output": [ - [ - "Character", - "&fcy" - ] - ] - }, - { - "input": "ф", - "description": "Named entity: fcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0444" - ] - ] - }, - { - "input": "&female", - "description": "Bad named entity: female without a semi-colon", - "output": [ - [ - "Character", - "&female" - ] - ] - }, - { - "input": "♀", - "description": "Named entity: female; with a semi-colon", - "output": [ - [ - "Character", - "\u2640" - ] - ] - }, - { - "input": "&ffilig", - "description": "Bad named entity: ffilig without a semi-colon", - "output": [ - [ - "Character", - "&ffilig" - ] - ] - }, - { - "input": "ffi", - "description": "Named entity: ffilig; with a semi-colon", - "output": [ - [ - "Character", - "\ufb03" - ] - ] - }, - { - "input": "&fflig", - "description": "Bad named entity: fflig without a semi-colon", - "output": [ - [ - "Character", - "&fflig" - ] - ] - }, - { - "input": "ff", - "description": "Named entity: fflig; with a semi-colon", - "output": [ - [ - "Character", - "\ufb00" - ] - ] - }, - { - "input": "&ffllig", - "description": "Bad named entity: ffllig without a semi-colon", - "output": [ - [ - "Character", - "&ffllig" - ] - ] - }, - { - "input": "ffl", - "description": "Named entity: ffllig; with a semi-colon", - "output": [ - [ - "Character", - "\ufb04" - ] - ] - }, - { - "input": "&ffr", - "description": "Bad named entity: ffr without a semi-colon", - "output": [ - [ - "Character", - "&ffr" - ] - ] - }, - { - "input": "𝔣", - "description": "Named entity: ffr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd23" - ] - ] - }, - { - "input": "&filig", - "description": "Bad named entity: filig without a semi-colon", - "output": [ - [ - "Character", - "&filig" - ] - ] - }, - { - "input": "fi", - "description": "Named entity: filig; with a semi-colon", - "output": [ - [ - "Character", - "\ufb01" - ] - ] - }, - { - "input": "&fjlig", - "description": "Bad named entity: fjlig without a semi-colon", - "output": [ - [ - "Character", - "&fjlig" - ] - ] - }, - { - "input": "fj", - "description": "Named entity: fjlig; with a semi-colon", - "output": [ - [ - "Character", - "fj" - ] - ] - }, - { - "input": "&flat", - "description": "Bad named entity: flat without a semi-colon", - "output": [ - [ - "Character", - "&flat" - ] - ] - }, - { - "input": "♭", - "description": "Named entity: flat; with a semi-colon", - "output": [ - [ - "Character", - "\u266d" - ] - ] - }, - { - "input": "&fllig", - "description": "Bad named entity: fllig without a semi-colon", - "output": [ - [ - "Character", - "&fllig" - ] - ] - }, - { - "input": "fl", - "description": "Named entity: fllig; with a semi-colon", - "output": [ - [ - "Character", - "\ufb02" - ] - ] - }, - { - "input": "&fltns", - "description": "Bad named entity: fltns without a semi-colon", - "output": [ - [ - "Character", - "&fltns" - ] - ] - }, - { - "input": "▱", - "description": "Named entity: fltns; with a semi-colon", - "output": [ - [ - "Character", - "\u25b1" - ] - ] - }, - { - "input": "&fnof", - "description": "Bad named entity: fnof without a semi-colon", - "output": [ - [ - "Character", - "&fnof" - ] - ] - }, - { - "input": "ƒ", - "description": "Named entity: fnof; with a semi-colon", - "output": [ - [ - "Character", - "\u0192" - ] - ] - }, - { - "input": "&fopf", - "description": "Bad named entity: fopf without a semi-colon", - "output": [ - [ - "Character", - "&fopf" - ] - ] - }, - { - "input": "𝕗", - "description": "Named entity: fopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd57" - ] - ] - }, - { - "input": "&forall", - "description": "Bad named entity: forall without a semi-colon", - "output": [ - [ - "Character", - "&forall" - ] - ] - }, - { - "input": "∀", - "description": "Named entity: forall; with a semi-colon", - "output": [ - [ - "Character", - "\u2200" - ] - ] - }, - { - "input": "&fork", - "description": "Bad named entity: fork without a semi-colon", - "output": [ - [ - "Character", - "&fork" - ] - ] - }, - { - "input": "⋔", - "description": "Named entity: fork; with a semi-colon", - "output": [ - [ - "Character", - "\u22d4" - ] - ] - }, - { - "input": "&forkv", - "description": "Bad named entity: forkv without a semi-colon", - "output": [ - [ - "Character", - "&forkv" - ] - ] - }, - { - "input": "⫙", - "description": "Named entity: forkv; with a semi-colon", - "output": [ - [ - "Character", - "\u2ad9" - ] - ] - }, - { - "input": "&fpartint", - "description": "Bad named entity: fpartint without a semi-colon", - "output": [ - [ - "Character", - "&fpartint" - ] - ] - }, - { - "input": "⨍", - "description": "Named entity: fpartint; with a semi-colon", - "output": [ - [ - "Character", - "\u2a0d" - ] - ] - }, - { - "input": "½", - "description": "Named entity: frac12 without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00bd" - ] - ] - }, - { - "input": "½", - "description": "Named entity: frac12; with a semi-colon", - "output": [ - [ - "Character", - "\u00bd" - ] - ] - }, - { - "input": "&frac13", - "description": "Bad named entity: frac13 without a semi-colon", - "output": [ - [ - "Character", - "&frac13" - ] - ] - }, - { - "input": "⅓", - "description": "Named entity: frac13; with a semi-colon", - "output": [ - [ - "Character", - "\u2153" - ] - ] - }, - { - "input": "¼", - "description": "Named entity: frac14 without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00bc" - ] - ] - }, - { - "input": "¼", - "description": "Named entity: frac14; with a semi-colon", - "output": [ - [ - "Character", - "\u00bc" - ] - ] - }, - { - "input": "&frac15", - "description": "Bad named entity: frac15 without a semi-colon", - "output": [ - [ - "Character", - "&frac15" - ] - ] - }, - { - "input": "⅕", - "description": "Named entity: frac15; with a semi-colon", - "output": [ - [ - "Character", - "\u2155" - ] - ] - }, - { - "input": "&frac16", - "description": "Bad named entity: frac16 without a semi-colon", - "output": [ - [ - "Character", - "&frac16" - ] - ] - }, - { - "input": "⅙", - "description": "Named entity: frac16; with a semi-colon", - "output": [ - [ - "Character", - "\u2159" - ] - ] - }, - { - "input": "&frac18", - "description": "Bad named entity: frac18 without a semi-colon", - "output": [ - [ - "Character", - "&frac18" - ] - ] - }, - { - "input": "⅛", - "description": "Named entity: frac18; with a semi-colon", - "output": [ - [ - "Character", - "\u215b" - ] - ] - }, - { - "input": "&frac23", - "description": "Bad named entity: frac23 without a semi-colon", - "output": [ - [ - "Character", - "&frac23" - ] - ] - }, - { - "input": "⅔", - "description": "Named entity: frac23; with a semi-colon", - "output": [ - [ - "Character", - "\u2154" - ] - ] - }, - { - "input": "&frac25", - "description": "Bad named entity: frac25 without a semi-colon", - "output": [ - [ - "Character", - "&frac25" - ] - ] - }, - { - "input": "⅖", - "description": "Named entity: frac25; with a semi-colon", - "output": [ - [ - "Character", - "\u2156" - ] - ] - }, - { - "input": "¾", - "description": "Named entity: frac34 without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00be" - ] - ] - }, - { - "input": "¾", - "description": "Named entity: frac34; with a semi-colon", - "output": [ - [ - "Character", - "\u00be" - ] - ] - }, - { - "input": "&frac35", - "description": "Bad named entity: frac35 without a semi-colon", - "output": [ - [ - "Character", - "&frac35" - ] - ] - }, - { - "input": "⅗", - "description": "Named entity: frac35; with a semi-colon", - "output": [ - [ - "Character", - "\u2157" - ] - ] - }, - { - "input": "&frac38", - "description": "Bad named entity: frac38 without a semi-colon", - "output": [ - [ - "Character", - "&frac38" - ] - ] - }, - { - "input": "⅜", - "description": "Named entity: frac38; with a semi-colon", - "output": [ - [ - "Character", - "\u215c" - ] - ] - }, - { - "input": "&frac45", - "description": "Bad named entity: frac45 without a semi-colon", - "output": [ - [ - "Character", - "&frac45" - ] - ] - }, - { - "input": "⅘", - "description": "Named entity: frac45; with a semi-colon", - "output": [ - [ - "Character", - "\u2158" - ] - ] - }, - { - "input": "&frac56", - "description": "Bad named entity: frac56 without a semi-colon", - "output": [ - [ - "Character", - "&frac56" - ] - ] - }, - { - "input": "⅚", - "description": "Named entity: frac56; with a semi-colon", - "output": [ - [ - "Character", - "\u215a" - ] - ] - }, - { - "input": "&frac58", - "description": "Bad named entity: frac58 without a semi-colon", - "output": [ - [ - "Character", - "&frac58" - ] - ] - }, - { - "input": "⅝", - "description": "Named entity: frac58; with a semi-colon", - "output": [ - [ - "Character", - "\u215d" - ] - ] - }, - { - "input": "&frac78", - "description": "Bad named entity: frac78 without a semi-colon", - "output": [ - [ - "Character", - "&frac78" - ] - ] - }, - { - "input": "⅞", - "description": "Named entity: frac78; with a semi-colon", - "output": [ - [ - "Character", - "\u215e" - ] - ] - }, - { - "input": "&frasl", - "description": "Bad named entity: frasl without a semi-colon", - "output": [ - [ - "Character", - "&frasl" - ] - ] - }, - { - "input": "⁄", - "description": "Named entity: frasl; with a semi-colon", - "output": [ - [ - "Character", - "\u2044" - ] - ] - }, - { - "input": "&frown", - "description": "Bad named entity: frown without a semi-colon", - "output": [ - [ - "Character", - "&frown" - ] - ] - }, - { - "input": "⌢", - "description": "Named entity: frown; with a semi-colon", - "output": [ - [ - "Character", - "\u2322" - ] - ] - }, - { - "input": "&fscr", - "description": "Bad named entity: fscr without a semi-colon", - "output": [ - [ - "Character", - "&fscr" - ] - ] - }, - { - "input": "𝒻", - "description": "Named entity: fscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udcbb" - ] - ] - }, - { - "input": "&gE", - "description": "Bad named entity: gE without a semi-colon", - "output": [ - [ - "Character", - "&gE" - ] - ] - }, - { - "input": "≧", - "description": "Named entity: gE; with a semi-colon", - "output": [ - [ - "Character", - "\u2267" - ] - ] - }, - { - "input": "&gEl", - "description": "Bad named entity: gEl without a semi-colon", - "output": [ - [ - "Character", - "&gEl" - ] - ] - }, - { - "input": "⪌", - "description": "Named entity: gEl; with a semi-colon", - "output": [ - [ - "Character", - "\u2a8c" - ] - ] - }, - { - "input": "&gacute", - "description": "Bad named entity: gacute without a semi-colon", - "output": [ - [ - "Character", - "&gacute" - ] - ] - }, - { - "input": "ǵ", - "description": "Named entity: gacute; with a semi-colon", - "output": [ - [ - "Character", - "\u01f5" - ] - ] - }, - { - "input": "&gamma", - "description": "Bad named entity: gamma without a semi-colon", - "output": [ - [ - "Character", - "&gamma" - ] - ] - }, - { - "input": "γ", - "description": "Named entity: gamma; with a semi-colon", - "output": [ - [ - "Character", - "\u03b3" - ] - ] - }, - { - "input": "&gammad", - "description": "Bad named entity: gammad without a semi-colon", - "output": [ - [ - "Character", - "&gammad" - ] - ] - }, - { - "input": "ϝ", - "description": "Named entity: gammad; with a semi-colon", - "output": [ - [ - "Character", - "\u03dd" - ] - ] - }, - { - "input": "&gap", - "description": "Bad named entity: gap without a semi-colon", - "output": [ - [ - "Character", - "&gap" - ] - ] - }, - { - "input": "⪆", - "description": "Named entity: gap; with a semi-colon", - "output": [ - [ - "Character", - "\u2a86" - ] - ] - }, - { - "input": "&gbreve", - "description": "Bad named entity: gbreve without a semi-colon", - "output": [ - [ - "Character", - "&gbreve" - ] - ] - }, - { - "input": "ğ", - "description": "Named entity: gbreve; with a semi-colon", - "output": [ - [ - "Character", - "\u011f" - ] - ] - }, - { - "input": "&gcirc", - "description": "Bad named entity: gcirc without a semi-colon", - "output": [ - [ - "Character", - "&gcirc" - ] - ] - }, - { - "input": "ĝ", - "description": "Named entity: gcirc; with a semi-colon", - "output": [ - [ - "Character", - "\u011d" - ] - ] - }, - { - "input": "&gcy", - "description": "Bad named entity: gcy without a semi-colon", - "output": [ - [ - "Character", - "&gcy" - ] - ] - }, - { - "input": "г", - "description": "Named entity: gcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0433" - ] - ] - }, - { - "input": "&gdot", - "description": "Bad named entity: gdot without a semi-colon", - "output": [ - [ - "Character", - "&gdot" - ] - ] - }, - { - "input": "ġ", - "description": "Named entity: gdot; with a semi-colon", - "output": [ - [ - "Character", - "\u0121" - ] - ] - }, - { - "input": "&ge", - "description": "Bad named entity: ge without a semi-colon", - "output": [ - [ - "Character", - "&ge" - ] - ] - }, - { - "input": "≥", - "description": "Named entity: ge; with a semi-colon", - "output": [ - [ - "Character", - "\u2265" - ] - ] - }, - { - "input": "&gel", - "description": "Bad named entity: gel without a semi-colon", - "output": [ - [ - "Character", - "&gel" - ] - ] - }, - { - "input": "⋛", - "description": "Named entity: gel; with a semi-colon", - "output": [ - [ - "Character", - "\u22db" - ] - ] - }, - { - "input": "&geq", - "description": "Bad named entity: geq without a semi-colon", - "output": [ - [ - "Character", - "&geq" - ] - ] - }, - { - "input": "≥", - "description": "Named entity: geq; with a semi-colon", - "output": [ - [ - "Character", - "\u2265" - ] - ] - }, - { - "input": "&geqq", - "description": "Bad named entity: geqq without a semi-colon", - "output": [ - [ - "Character", - "&geqq" - ] - ] - }, - { - "input": "≧", - "description": "Named entity: geqq; with a semi-colon", - "output": [ - [ - "Character", - "\u2267" - ] - ] - }, - { - "input": "&geqslant", - "description": "Bad named entity: geqslant without a semi-colon", - "output": [ - [ - "Character", - "&geqslant" - ] - ] - }, - { - "input": "⩾", - "description": "Named entity: geqslant; with a semi-colon", - "output": [ - [ - "Character", - "\u2a7e" - ] - ] - }, - { - "input": "&ges", - "description": "Bad named entity: ges without a semi-colon", - "output": [ - [ - "Character", - "&ges" - ] - ] - }, - { - "input": "⩾", - "description": "Named entity: ges; with a semi-colon", - "output": [ - [ - "Character", - "\u2a7e" - ] - ] - }, - { - "input": "&gescc", - "description": "Bad named entity: gescc without a semi-colon", - "output": [ - [ - "Character", - "&gescc" - ] - ] - }, - { - "input": "⪩", - "description": "Named entity: gescc; with a semi-colon", - "output": [ - [ - "Character", - "\u2aa9" - ] - ] - }, - { - "input": "&gesdot", - "description": "Bad named entity: gesdot without a semi-colon", - "output": [ - [ - "Character", - "&gesdot" - ] - ] - }, - { - "input": "⪀", - "description": "Named entity: gesdot; with a semi-colon", - "output": [ - [ - "Character", - "\u2a80" - ] - ] - }, - { - "input": "&gesdoto", - "description": "Bad named entity: gesdoto without a semi-colon", - "output": [ - [ - "Character", - "&gesdoto" - ] - ] - }, - { - "input": "⪂", - "description": "Named entity: gesdoto; with a semi-colon", - "output": [ - [ - "Character", - "\u2a82" - ] - ] - }, - { - "input": "&gesdotol", - "description": "Bad named entity: gesdotol without a semi-colon", - "output": [ - [ - "Character", - "&gesdotol" - ] - ] - }, - { - "input": "⪄", - "description": "Named entity: gesdotol; with a semi-colon", - "output": [ - [ - "Character", - "\u2a84" - ] - ] - }, - { - "input": "&gesl", - "description": "Bad named entity: gesl without a semi-colon", - "output": [ - [ - "Character", - "&gesl" - ] - ] - }, - { - "input": "⋛︀", - "description": "Named entity: gesl; with a semi-colon", - "output": [ - [ - "Character", - "\u22db\ufe00" - ] - ] - }, - { - "input": "&gesles", - "description": "Bad named entity: gesles without a semi-colon", - "output": [ - [ - "Character", - "&gesles" - ] - ] - }, - { - "input": "⪔", - "description": "Named entity: gesles; with a semi-colon", - "output": [ - [ - "Character", - "\u2a94" - ] - ] - }, - { - "input": "&gfr", - "description": "Bad named entity: gfr without a semi-colon", - "output": [ - [ - "Character", - "&gfr" - ] - ] - }, - { - "input": "𝔤", - "description": "Named entity: gfr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd24" - ] - ] - }, - { - "input": "&gg", - "description": "Bad named entity: gg without a semi-colon", - "output": [ - [ - "Character", - "&gg" - ] - ] - }, - { - "input": "≫", - "description": "Named entity: gg; with a semi-colon", - "output": [ - [ - "Character", - "\u226b" - ] - ] - }, - { - "input": "&ggg", - "description": "Bad named entity: ggg without a semi-colon", - "output": [ - [ - "Character", - "&ggg" - ] - ] - }, - { - "input": "⋙", - "description": "Named entity: ggg; with a semi-colon", - "output": [ - [ - "Character", - "\u22d9" - ] - ] - }, - { - "input": "&gimel", - "description": "Bad named entity: gimel without a semi-colon", - "output": [ - [ - "Character", - "&gimel" - ] - ] - }, - { - "input": "ℷ", - "description": "Named entity: gimel; with a semi-colon", - "output": [ - [ - "Character", - "\u2137" - ] - ] - }, - { - "input": "&gjcy", - "description": "Bad named entity: gjcy without a semi-colon", - "output": [ - [ - "Character", - "&gjcy" - ] - ] - }, - { - "input": "ѓ", - "description": "Named entity: gjcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0453" - ] - ] - }, - { - "input": "&gl", - "description": "Bad named entity: gl without a semi-colon", - "output": [ - [ - "Character", - "&gl" - ] - ] - }, - { - "input": "≷", - "description": "Named entity: gl; with a semi-colon", - "output": [ - [ - "Character", - "\u2277" - ] - ] - }, - { - "input": "&glE", - "description": "Bad named entity: glE without a semi-colon", - "output": [ - [ - "Character", - "&glE" - ] - ] - }, - { - "input": "⪒", - "description": "Named entity: glE; with a semi-colon", - "output": [ - [ - "Character", - "\u2a92" - ] - ] - }, - { - "input": "&gla", - "description": "Bad named entity: gla without a semi-colon", - "output": [ - [ - "Character", - "&gla" - ] - ] - }, - { - "input": "⪥", - "description": "Named entity: gla; with a semi-colon", - "output": [ - [ - "Character", - "\u2aa5" - ] - ] - }, - { - "input": "&glj", - "description": "Bad named entity: glj without a semi-colon", - "output": [ - [ - "Character", - "&glj" - ] - ] - }, - { - "input": "⪤", - "description": "Named entity: glj; with a semi-colon", - "output": [ - [ - "Character", - "\u2aa4" - ] - ] - }, - { - "input": "&gnE", - "description": "Bad named entity: gnE without a semi-colon", - "output": [ - [ - "Character", - "&gnE" - ] - ] - }, - { - "input": "≩", - "description": "Named entity: gnE; with a semi-colon", - "output": [ - [ - "Character", - "\u2269" - ] - ] - }, - { - "input": "&gnap", - "description": "Bad named entity: gnap without a semi-colon", - "output": [ - [ - "Character", - "&gnap" - ] - ] - }, - { - "input": "⪊", - "description": "Named entity: gnap; with a semi-colon", - "output": [ - [ - "Character", - "\u2a8a" - ] - ] - }, - { - "input": "&gnapprox", - "description": "Bad named entity: gnapprox without a semi-colon", - "output": [ - [ - "Character", - "&gnapprox" - ] - ] - }, - { - "input": "⪊", - "description": "Named entity: gnapprox; with a semi-colon", - "output": [ - [ - "Character", - "\u2a8a" - ] - ] - }, - { - "input": "&gne", - "description": "Bad named entity: gne without a semi-colon", - "output": [ - [ - "Character", - "&gne" - ] - ] - }, - { - "input": "⪈", - "description": "Named entity: gne; with a semi-colon", - "output": [ - [ - "Character", - "\u2a88" - ] - ] - }, - { - "input": "&gneq", - "description": "Bad named entity: gneq without a semi-colon", - "output": [ - [ - "Character", - "&gneq" - ] - ] - }, - { - "input": "⪈", - "description": "Named entity: gneq; with a semi-colon", - "output": [ - [ - "Character", - "\u2a88" - ] - ] - }, - { - "input": "&gneqq", - "description": "Bad named entity: gneqq without a semi-colon", - "output": [ - [ - "Character", - "&gneqq" - ] - ] - }, - { - "input": "≩", - "description": "Named entity: gneqq; with a semi-colon", - "output": [ - [ - "Character", - "\u2269" - ] - ] - }, - { - "input": "&gnsim", - "description": "Bad named entity: gnsim without a semi-colon", - "output": [ - [ - "Character", - "&gnsim" - ] - ] - }, - { - "input": "⋧", - "description": "Named entity: gnsim; with a semi-colon", - "output": [ - [ - "Character", - "\u22e7" - ] - ] - }, - { - "input": "&gopf", - "description": "Bad named entity: gopf without a semi-colon", - "output": [ - [ - "Character", - "&gopf" - ] - ] - }, - { - "input": "𝕘", - "description": "Named entity: gopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd58" - ] - ] - }, - { - "input": "&grave", - "description": "Bad named entity: grave without a semi-colon", - "output": [ - [ - "Character", - "&grave" - ] - ] - }, - { - "input": "`", - "description": "Named entity: grave; with a semi-colon", - "output": [ - [ - "Character", - "`" - ] - ] - }, - { - "input": "&gscr", - "description": "Bad named entity: gscr without a semi-colon", - "output": [ - [ - "Character", - "&gscr" - ] - ] - }, - { - "input": "ℊ", - "description": "Named entity: gscr; with a semi-colon", - "output": [ - [ - "Character", - "\u210a" - ] - ] - }, - { - "input": "&gsim", - "description": "Bad named entity: gsim without a semi-colon", - "output": [ - [ - "Character", - "&gsim" - ] - ] - }, - { - "input": "≳", - "description": "Named entity: gsim; with a semi-colon", - "output": [ - [ - "Character", - "\u2273" - ] - ] - }, - { - "input": "&gsime", - "description": "Bad named entity: gsime without a semi-colon", - "output": [ - [ - "Character", - "&gsime" - ] - ] - }, - { - "input": "⪎", - "description": "Named entity: gsime; with a semi-colon", - "output": [ - [ - "Character", - "\u2a8e" - ] - ] - }, - { - "input": "&gsiml", - "description": "Bad named entity: gsiml without a semi-colon", - "output": [ - [ - "Character", - "&gsiml" - ] - ] - }, - { - "input": "⪐", - "description": "Named entity: gsiml; with a semi-colon", - "output": [ - [ - "Character", - "\u2a90" - ] - ] - }, - { - "input": ">", - "description": "Named entity: gt without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - ">" - ] - ] - }, - { - "input": ">", - "description": "Named entity: gt; with a semi-colon", - "output": [ - [ - "Character", - ">" - ] - ] - }, - { - "input": "⪧", - "description": "Named entity: gtcc; with a semi-colon", - "output": [ - [ - "Character", - "\u2aa7" - ] - ] - }, - { - "input": "⩺", - "description": "Named entity: gtcir; with a semi-colon", - "output": [ - [ - "Character", - "\u2a7a" - ] - ] - }, - { - "input": "⋗", - "description": "Named entity: gtdot; with a semi-colon", - "output": [ - [ - "Character", - "\u22d7" - ] - ] - }, - { - "input": "⦕", - "description": "Named entity: gtlPar; with a semi-colon", - "output": [ - [ - "Character", - "\u2995" - ] - ] - }, - { - "input": "⩼", - "description": "Named entity: gtquest; with a semi-colon", - "output": [ - [ - "Character", - "\u2a7c" - ] - ] - }, - { - "input": "⪆", - "description": "Named entity: gtrapprox; with a semi-colon", - "output": [ - [ - "Character", - "\u2a86" - ] - ] - }, - { - "input": "⥸", - "description": "Named entity: gtrarr; with a semi-colon", - "output": [ - [ - "Character", - "\u2978" - ] - ] - }, - { - "input": "⋗", - "description": "Named entity: gtrdot; with a semi-colon", - "output": [ - [ - "Character", - "\u22d7" - ] - ] - }, - { - "input": "⋛", - "description": "Named entity: gtreqless; with a semi-colon", - "output": [ - [ - "Character", - "\u22db" - ] - ] - }, - { - "input": "⪌", - "description": "Named entity: gtreqqless; with a semi-colon", - "output": [ - [ - "Character", - "\u2a8c" - ] - ] - }, - { - "input": "≷", - "description": "Named entity: gtrless; with a semi-colon", - "output": [ - [ - "Character", - "\u2277" - ] - ] - }, - { - "input": "≳", - "description": "Named entity: gtrsim; with a semi-colon", - "output": [ - [ - "Character", - "\u2273" - ] - ] - }, - { - "input": "&gvertneqq", - "description": "Bad named entity: gvertneqq without a semi-colon", - "output": [ - [ - "Character", - "&gvertneqq" - ] - ] - }, - { - "input": "≩︀", - "description": "Named entity: gvertneqq; with a semi-colon", - "output": [ - [ - "Character", - "\u2269\ufe00" - ] - ] - }, - { - "input": "&gvnE", - "description": "Bad named entity: gvnE without a semi-colon", - "output": [ - [ - "Character", - "&gvnE" - ] - ] - }, - { - "input": "≩︀", - "description": "Named entity: gvnE; with a semi-colon", - "output": [ - [ - "Character", - "\u2269\ufe00" - ] - ] - }, - { - "input": "&hArr", - "description": "Bad named entity: hArr without a semi-colon", - "output": [ - [ - "Character", - "&hArr" - ] - ] - }, - { - "input": "⇔", - "description": "Named entity: hArr; with a semi-colon", - "output": [ - [ - "Character", - "\u21d4" - ] - ] - }, - { - "input": "&hairsp", - "description": "Bad named entity: hairsp without a semi-colon", - "output": [ - [ - "Character", - "&hairsp" - ] - ] - }, - { - "input": " ", - "description": "Named entity: hairsp; with a semi-colon", - "output": [ - [ - "Character", - "\u200a" - ] - ] - }, - { - "input": "&half", - "description": "Bad named entity: half without a semi-colon", - "output": [ - [ - "Character", - "&half" - ] - ] - }, - { - "input": "½", - "description": "Named entity: half; with a semi-colon", - "output": [ - [ - "Character", - "\u00bd" - ] - ] - }, - { - "input": "&hamilt", - "description": "Bad named entity: hamilt without a semi-colon", - "output": [ - [ - "Character", - "&hamilt" - ] - ] - }, - { - "input": "ℋ", - "description": "Named entity: hamilt; with a semi-colon", - "output": [ - [ - "Character", - "\u210b" - ] - ] - }, - { - "input": "&hardcy", - "description": "Bad named entity: hardcy without a semi-colon", - "output": [ - [ - "Character", - "&hardcy" - ] - ] - }, - { - "input": "ъ", - "description": "Named entity: hardcy; with a semi-colon", - "output": [ - [ - "Character", - "\u044a" - ] - ] - }, - { - "input": "&harr", - "description": "Bad named entity: harr without a semi-colon", - "output": [ - [ - "Character", - "&harr" - ] - ] - }, - { - "input": "↔", - "description": "Named entity: harr; with a semi-colon", - "output": [ - [ - "Character", - "\u2194" - ] - ] - }, - { - "input": "&harrcir", - "description": "Bad named entity: harrcir without a semi-colon", - "output": [ - [ - "Character", - "&harrcir" - ] - ] - }, - { - "input": "⥈", - "description": "Named entity: harrcir; with a semi-colon", - "output": [ - [ - "Character", - "\u2948" - ] - ] - }, - { - "input": "&harrw", - "description": "Bad named entity: harrw without a semi-colon", - "output": [ - [ - "Character", - "&harrw" - ] - ] - }, - { - "input": "↭", - "description": "Named entity: harrw; with a semi-colon", - "output": [ - [ - "Character", - "\u21ad" - ] - ] - }, - { - "input": "&hbar", - "description": "Bad named entity: hbar without a semi-colon", - "output": [ - [ - "Character", - "&hbar" - ] - ] - }, - { - "input": "ℏ", - "description": "Named entity: hbar; with a semi-colon", - "output": [ - [ - "Character", - "\u210f" - ] - ] - }, - { - "input": "&hcirc", - "description": "Bad named entity: hcirc without a semi-colon", - "output": [ - [ - "Character", - "&hcirc" - ] - ] - }, - { - "input": "ĥ", - "description": "Named entity: hcirc; with a semi-colon", - "output": [ - [ - "Character", - "\u0125" - ] - ] - }, - { - "input": "&hearts", - "description": "Bad named entity: hearts without a semi-colon", - "output": [ - [ - "Character", - "&hearts" - ] - ] - }, - { - "input": "♥", - "description": "Named entity: hearts; with a semi-colon", - "output": [ - [ - "Character", - "\u2665" - ] - ] - }, - { - "input": "&heartsuit", - "description": "Bad named entity: heartsuit without a semi-colon", - "output": [ - [ - "Character", - "&heartsuit" - ] - ] - }, - { - "input": "♥", - "description": "Named entity: heartsuit; with a semi-colon", - "output": [ - [ - "Character", - "\u2665" - ] - ] - }, - { - "input": "&hellip", - "description": "Bad named entity: hellip without a semi-colon", - "output": [ - [ - "Character", - "&hellip" - ] - ] - }, - { - "input": "…", - "description": "Named entity: hellip; with a semi-colon", - "output": [ - [ - "Character", - "\u2026" - ] - ] - }, - { - "input": "&hercon", - "description": "Bad named entity: hercon without a semi-colon", - "output": [ - [ - "Character", - "&hercon" - ] - ] - }, - { - "input": "⊹", - "description": "Named entity: hercon; with a semi-colon", - "output": [ - [ - "Character", - "\u22b9" - ] - ] - }, - { - "input": "&hfr", - "description": "Bad named entity: hfr without a semi-colon", - "output": [ - [ - "Character", - "&hfr" - ] - ] - }, - { - "input": "𝔥", - "description": "Named entity: hfr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd25" - ] - ] - }, - { - "input": "&hksearow", - "description": "Bad named entity: hksearow without a semi-colon", - "output": [ - [ - "Character", - "&hksearow" - ] - ] - }, - { - "input": "⤥", - "description": "Named entity: hksearow; with a semi-colon", - "output": [ - [ - "Character", - "\u2925" - ] - ] - }, - { - "input": "&hkswarow", - "description": "Bad named entity: hkswarow without a semi-colon", - "output": [ - [ - "Character", - "&hkswarow" - ] - ] - }, - { - "input": "⤦", - "description": "Named entity: hkswarow; with a semi-colon", - "output": [ - [ - "Character", - "\u2926" - ] - ] - }, - { - "input": "&hoarr", - "description": "Bad named entity: hoarr without a semi-colon", - "output": [ - [ - "Character", - "&hoarr" - ] - ] - }, - { - "input": "⇿", - "description": "Named entity: hoarr; with a semi-colon", - "output": [ - [ - "Character", - "\u21ff" - ] - ] - }, - { - "input": "&homtht", - "description": "Bad named entity: homtht without a semi-colon", - "output": [ - [ - "Character", - "&homtht" - ] - ] - }, - { - "input": "∻", - "description": "Named entity: homtht; with a semi-colon", - "output": [ - [ - "Character", - "\u223b" - ] - ] - }, - { - "input": "&hookleftarrow", - "description": "Bad named entity: hookleftarrow without a semi-colon", - "output": [ - [ - "Character", - "&hookleftarrow" - ] - ] - }, - { - "input": "↩", - "description": "Named entity: hookleftarrow; with a semi-colon", - "output": [ - [ - "Character", - "\u21a9" - ] - ] - }, - { - "input": "&hookrightarrow", - "description": "Bad named entity: hookrightarrow without a semi-colon", - "output": [ - [ - "Character", - "&hookrightarrow" - ] - ] - }, - { - "input": "↪", - "description": "Named entity: hookrightarrow; with a semi-colon", - "output": [ - [ - "Character", - "\u21aa" - ] - ] - }, - { - "input": "&hopf", - "description": "Bad named entity: hopf without a semi-colon", - "output": [ - [ - "Character", - "&hopf" - ] - ] - }, - { - "input": "𝕙", - "description": "Named entity: hopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd59" - ] - ] - }, - { - "input": "&horbar", - "description": "Bad named entity: horbar without a semi-colon", - "output": [ - [ - "Character", - "&horbar" - ] - ] - }, - { - "input": "―", - "description": "Named entity: horbar; with a semi-colon", - "output": [ - [ - "Character", - "\u2015" - ] - ] - }, - { - "input": "&hscr", - "description": "Bad named entity: hscr without a semi-colon", - "output": [ - [ - "Character", - "&hscr" - ] - ] - }, - { - "input": "𝒽", - "description": "Named entity: hscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udcbd" - ] - ] - }, - { - "input": "&hslash", - "description": "Bad named entity: hslash without a semi-colon", - "output": [ - [ - "Character", - "&hslash" - ] - ] - }, - { - "input": "ℏ", - "description": "Named entity: hslash; with a semi-colon", - "output": [ - [ - "Character", - "\u210f" - ] - ] - }, - { - "input": "&hstrok", - "description": "Bad named entity: hstrok without a semi-colon", - "output": [ - [ - "Character", - "&hstrok" - ] - ] - }, - { - "input": "ħ", - "description": "Named entity: hstrok; with a semi-colon", - "output": [ - [ - "Character", - "\u0127" - ] - ] - }, - { - "input": "&hybull", - "description": "Bad named entity: hybull without a semi-colon", - "output": [ - [ - "Character", - "&hybull" - ] - ] - }, - { - "input": "⁃", - "description": "Named entity: hybull; with a semi-colon", - "output": [ - [ - "Character", - "\u2043" - ] - ] - }, - { - "input": "&hyphen", - "description": "Bad named entity: hyphen without a semi-colon", - "output": [ - [ - "Character", - "&hyphen" - ] - ] - }, - { - "input": "‐", - "description": "Named entity: hyphen; with a semi-colon", - "output": [ - [ - "Character", - "\u2010" - ] - ] - }, - { - "input": "í", - "description": "Named entity: iacute without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00ed" - ] - ] - }, - { - "input": "í", - "description": "Named entity: iacute; with a semi-colon", - "output": [ - [ - "Character", - "\u00ed" - ] - ] - }, - { - "input": "&ic", - "description": "Bad named entity: ic without a semi-colon", - "output": [ - [ - "Character", - "&ic" - ] - ] - }, - { - "input": "⁣", - "description": "Named entity: ic; with a semi-colon", - "output": [ - [ - "Character", - "\u2063" - ] - ] - }, - { - "input": "î", - "description": "Named entity: icirc without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00ee" - ] - ] - }, - { - "input": "î", - "description": "Named entity: icirc; with a semi-colon", - "output": [ - [ - "Character", - "\u00ee" - ] - ] - }, - { - "input": "&icy", - "description": "Bad named entity: icy without a semi-colon", - "output": [ - [ - "Character", - "&icy" - ] - ] - }, - { - "input": "и", - "description": "Named entity: icy; with a semi-colon", - "output": [ - [ - "Character", - "\u0438" - ] - ] - }, - { - "input": "&iecy", - "description": "Bad named entity: iecy without a semi-colon", - "output": [ - [ - "Character", - "&iecy" - ] - ] - }, - { - "input": "е", - "description": "Named entity: iecy; with a semi-colon", - "output": [ - [ - "Character", - "\u0435" - ] - ] - }, - { - "input": "¡", - "description": "Named entity: iexcl without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00a1" - ] - ] - }, - { - "input": "¡", - "description": "Named entity: iexcl; with a semi-colon", - "output": [ - [ - "Character", - "\u00a1" - ] - ] - }, - { - "input": "&iff", - "description": "Bad named entity: iff without a semi-colon", - "output": [ - [ - "Character", - "&iff" - ] - ] - }, - { - "input": "⇔", - "description": "Named entity: iff; with a semi-colon", - "output": [ - [ - "Character", - "\u21d4" - ] - ] - }, - { - "input": "&ifr", - "description": "Bad named entity: ifr without a semi-colon", - "output": [ - [ - "Character", - "&ifr" - ] - ] - }, - { - "input": "𝔦", - "description": "Named entity: ifr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd26" - ] - ] - }, - { - "input": "ì", - "description": "Named entity: igrave without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00ec" - ] - ] - }, - { - "input": "ì", - "description": "Named entity: igrave; with a semi-colon", - "output": [ - [ - "Character", - "\u00ec" - ] - ] - }, - { - "input": "&ii", - "description": "Bad named entity: ii without a semi-colon", - "output": [ - [ - "Character", - "&ii" - ] - ] - }, - { - "input": "ⅈ", - "description": "Named entity: ii; with a semi-colon", - "output": [ - [ - "Character", - "\u2148" - ] - ] - }, - { - "input": "&iiiint", - "description": "Bad named entity: iiiint without a semi-colon", - "output": [ - [ - "Character", - "&iiiint" - ] - ] - }, - { - "input": "⨌", - "description": "Named entity: iiiint; with a semi-colon", - "output": [ - [ - "Character", - "\u2a0c" - ] - ] - }, - { - "input": "&iiint", - "description": "Bad named entity: iiint without a semi-colon", - "output": [ - [ - "Character", - "&iiint" - ] - ] - }, - { - "input": "∭", - "description": "Named entity: iiint; with a semi-colon", - "output": [ - [ - "Character", - "\u222d" - ] - ] - }, - { - "input": "&iinfin", - "description": "Bad named entity: iinfin without a semi-colon", - "output": [ - [ - "Character", - "&iinfin" - ] - ] - }, - { - "input": "⧜", - "description": "Named entity: iinfin; with a semi-colon", - "output": [ - [ - "Character", - "\u29dc" - ] - ] - }, - { - "input": "&iiota", - "description": "Bad named entity: iiota without a semi-colon", - "output": [ - [ - "Character", - "&iiota" - ] - ] - }, - { - "input": "℩", - "description": "Named entity: iiota; with a semi-colon", - "output": [ - [ - "Character", - "\u2129" - ] - ] - }, - { - "input": "&ijlig", - "description": "Bad named entity: ijlig without a semi-colon", - "output": [ - [ - "Character", - "&ijlig" - ] - ] - }, - { - "input": "ij", - "description": "Named entity: ijlig; with a semi-colon", - "output": [ - [ - "Character", - "\u0133" - ] - ] - }, - { - "input": "&imacr", - "description": "Bad named entity: imacr without a semi-colon", - "output": [ - [ - "Character", - "&imacr" - ] - ] - }, - { - "input": "ī", - "description": "Named entity: imacr; with a semi-colon", - "output": [ - [ - "Character", - "\u012b" - ] - ] - }, - { - "input": "&image", - "description": "Bad named entity: image without a semi-colon", - "output": [ - [ - "Character", - "&image" - ] - ] - }, - { - "input": "ℑ", - "description": "Named entity: image; with a semi-colon", - "output": [ - [ - "Character", - "\u2111" - ] - ] - }, - { - "input": "&imagline", - "description": "Bad named entity: imagline without a semi-colon", - "output": [ - [ - "Character", - "&imagline" - ] - ] - }, - { - "input": "ℐ", - "description": "Named entity: imagline; with a semi-colon", - "output": [ - [ - "Character", - "\u2110" - ] - ] - }, - { - "input": "&imagpart", - "description": "Bad named entity: imagpart without a semi-colon", - "output": [ - [ - "Character", - "&imagpart" - ] - ] - }, - { - "input": "ℑ", - "description": "Named entity: imagpart; with a semi-colon", - "output": [ - [ - "Character", - "\u2111" - ] - ] - }, - { - "input": "&imath", - "description": "Bad named entity: imath without a semi-colon", - "output": [ - [ - "Character", - "&imath" - ] - ] - }, - { - "input": "ı", - "description": "Named entity: imath; with a semi-colon", - "output": [ - [ - "Character", - "\u0131" - ] - ] - }, - { - "input": "&imof", - "description": "Bad named entity: imof without a semi-colon", - "output": [ - [ - "Character", - "&imof" - ] - ] - }, - { - "input": "⊷", - "description": "Named entity: imof; with a semi-colon", - "output": [ - [ - "Character", - "\u22b7" - ] - ] - }, - { - "input": "&imped", - "description": "Bad named entity: imped without a semi-colon", - "output": [ - [ - "Character", - "&imped" - ] - ] - }, - { - "input": "Ƶ", - "description": "Named entity: imped; with a semi-colon", - "output": [ - [ - "Character", - "\u01b5" - ] - ] - }, - { - "input": "&in", - "description": "Bad named entity: in without a semi-colon", - "output": [ - [ - "Character", - "&in" - ] - ] - }, - { - "input": "∈", - "description": "Named entity: in; with a semi-colon", - "output": [ - [ - "Character", - "\u2208" - ] - ] - }, - { - "input": "&incare", - "description": "Bad named entity: incare without a semi-colon", - "output": [ - [ - "Character", - "&incare" - ] - ] - }, - { - "input": "℅", - "description": "Named entity: incare; with a semi-colon", - "output": [ - [ - "Character", - "\u2105" - ] - ] - }, - { - "input": "&infin", - "description": "Bad named entity: infin without a semi-colon", - "output": [ - [ - "Character", - "&infin" - ] - ] - }, - { - "input": "∞", - "description": "Named entity: infin; with a semi-colon", - "output": [ - [ - "Character", - "\u221e" - ] - ] - }, - { - "input": "&infintie", - "description": "Bad named entity: infintie without a semi-colon", - "output": [ - [ - "Character", - "&infintie" - ] - ] - }, - { - "input": "⧝", - "description": "Named entity: infintie; with a semi-colon", - "output": [ - [ - "Character", - "\u29dd" - ] - ] - }, - { - "input": "&inodot", - "description": "Bad named entity: inodot without a semi-colon", - "output": [ - [ - "Character", - "&inodot" - ] - ] - }, - { - "input": "ı", - "description": "Named entity: inodot; with a semi-colon", - "output": [ - [ - "Character", - "\u0131" - ] - ] - }, - { - "input": "&int", - "description": "Bad named entity: int without a semi-colon", - "output": [ - [ - "Character", - "&int" - ] - ] - }, - { - "input": "∫", - "description": "Named entity: int; with a semi-colon", - "output": [ - [ - "Character", - "\u222b" - ] - ] - }, - { - "input": "&intcal", - "description": "Bad named entity: intcal without a semi-colon", - "output": [ - [ - "Character", - "&intcal" - ] - ] - }, - { - "input": "⊺", - "description": "Named entity: intcal; with a semi-colon", - "output": [ - [ - "Character", - "\u22ba" - ] - ] - }, - { - "input": "&integers", - "description": "Bad named entity: integers without a semi-colon", - "output": [ - [ - "Character", - "&integers" - ] - ] - }, - { - "input": "ℤ", - "description": "Named entity: integers; with a semi-colon", - "output": [ - [ - "Character", - "\u2124" - ] - ] - }, - { - "input": "&intercal", - "description": "Bad named entity: intercal without a semi-colon", - "output": [ - [ - "Character", - "&intercal" - ] - ] - }, - { - "input": "⊺", - "description": "Named entity: intercal; with a semi-colon", - "output": [ - [ - "Character", - "\u22ba" - ] - ] - }, - { - "input": "&intlarhk", - "description": "Bad named entity: intlarhk without a semi-colon", - "output": [ - [ - "Character", - "&intlarhk" - ] - ] - }, - { - "input": "⨗", - "description": "Named entity: intlarhk; with a semi-colon", - "output": [ - [ - "Character", - "\u2a17" - ] - ] - }, - { - "input": "&intprod", - "description": "Bad named entity: intprod without a semi-colon", - "output": [ - [ - "Character", - "&intprod" - ] - ] - }, - { - "input": "⨼", - "description": "Named entity: intprod; with a semi-colon", - "output": [ - [ - "Character", - "\u2a3c" - ] - ] - }, - { - "input": "&iocy", - "description": "Bad named entity: iocy without a semi-colon", - "output": [ - [ - "Character", - "&iocy" - ] - ] - }, - { - "input": "ё", - "description": "Named entity: iocy; with a semi-colon", - "output": [ - [ - "Character", - "\u0451" - ] - ] - }, - { - "input": "&iogon", - "description": "Bad named entity: iogon without a semi-colon", - "output": [ - [ - "Character", - "&iogon" - ] - ] - }, - { - "input": "į", - "description": "Named entity: iogon; with a semi-colon", - "output": [ - [ - "Character", - "\u012f" - ] - ] - }, - { - "input": "&iopf", - "description": "Bad named entity: iopf without a semi-colon", - "output": [ - [ - "Character", - "&iopf" - ] - ] - }, - { - "input": "𝕚", - "description": "Named entity: iopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd5a" - ] - ] - }, - { - "input": "&iota", - "description": "Bad named entity: iota without a semi-colon", - "output": [ - [ - "Character", - "&iota" - ] - ] - }, - { - "input": "ι", - "description": "Named entity: iota; with a semi-colon", - "output": [ - [ - "Character", - "\u03b9" - ] - ] - }, - { - "input": "&iprod", - "description": "Bad named entity: iprod without a semi-colon", - "output": [ - [ - "Character", - "&iprod" - ] - ] - }, - { - "input": "⨼", - "description": "Named entity: iprod; with a semi-colon", - "output": [ - [ - "Character", - "\u2a3c" - ] - ] - }, - { - "input": "¿", - "description": "Named entity: iquest without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00bf" - ] - ] - }, - { - "input": "¿", - "description": "Named entity: iquest; with a semi-colon", - "output": [ - [ - "Character", - "\u00bf" - ] - ] - }, - { - "input": "&iscr", - "description": "Bad named entity: iscr without a semi-colon", - "output": [ - [ - "Character", - "&iscr" - ] - ] - }, - { - "input": "𝒾", - "description": "Named entity: iscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udcbe" - ] - ] - }, - { - "input": "&isin", - "description": "Bad named entity: isin without a semi-colon", - "output": [ - [ - "Character", - "&isin" - ] - ] - }, - { - "input": "∈", - "description": "Named entity: isin; with a semi-colon", - "output": [ - [ - "Character", - "\u2208" - ] - ] - }, - { - "input": "&isinE", - "description": "Bad named entity: isinE without a semi-colon", - "output": [ - [ - "Character", - "&isinE" - ] - ] - }, - { - "input": "⋹", - "description": "Named entity: isinE; with a semi-colon", - "output": [ - [ - "Character", - "\u22f9" - ] - ] - }, - { - "input": "&isindot", - "description": "Bad named entity: isindot without a semi-colon", - "output": [ - [ - "Character", - "&isindot" - ] - ] - }, - { - "input": "⋵", - "description": "Named entity: isindot; with a semi-colon", - "output": [ - [ - "Character", - "\u22f5" - ] - ] - }, - { - "input": "&isins", - "description": "Bad named entity: isins without a semi-colon", - "output": [ - [ - "Character", - "&isins" - ] - ] - }, - { - "input": "⋴", - "description": "Named entity: isins; with a semi-colon", - "output": [ - [ - "Character", - "\u22f4" - ] - ] - }, - { - "input": "&isinsv", - "description": "Bad named entity: isinsv without a semi-colon", - "output": [ - [ - "Character", - "&isinsv" - ] - ] - }, - { - "input": "⋳", - "description": "Named entity: isinsv; with a semi-colon", - "output": [ - [ - "Character", - "\u22f3" - ] - ] - }, - { - "input": "&isinv", - "description": "Bad named entity: isinv without a semi-colon", - "output": [ - [ - "Character", - "&isinv" - ] - ] - }, - { - "input": "∈", - "description": "Named entity: isinv; with a semi-colon", - "output": [ - [ - "Character", - "\u2208" - ] - ] - }, - { - "input": "&it", - "description": "Bad named entity: it without a semi-colon", - "output": [ - [ - "Character", - "&it" - ] - ] - }, - { - "input": "⁢", - "description": "Named entity: it; with a semi-colon", - "output": [ - [ - "Character", - "\u2062" - ] - ] - }, - { - "input": "&itilde", - "description": "Bad named entity: itilde without a semi-colon", - "output": [ - [ - "Character", - "&itilde" - ] - ] - }, - { - "input": "ĩ", - "description": "Named entity: itilde; with a semi-colon", - "output": [ - [ - "Character", - "\u0129" - ] - ] - }, - { - "input": "&iukcy", - "description": "Bad named entity: iukcy without a semi-colon", - "output": [ - [ - "Character", - "&iukcy" - ] - ] - }, - { - "input": "і", - "description": "Named entity: iukcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0456" - ] - ] - }, - { - "input": "ï", - "description": "Named entity: iuml without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00ef" - ] - ] - }, - { - "input": "ï", - "description": "Named entity: iuml; with a semi-colon", - "output": [ - [ - "Character", - "\u00ef" - ] - ] - }, - { - "input": "&jcirc", - "description": "Bad named entity: jcirc without a semi-colon", - "output": [ - [ - "Character", - "&jcirc" - ] - ] - }, - { - "input": "ĵ", - "description": "Named entity: jcirc; with a semi-colon", - "output": [ - [ - "Character", - "\u0135" - ] - ] - }, - { - "input": "&jcy", - "description": "Bad named entity: jcy without a semi-colon", - "output": [ - [ - "Character", - "&jcy" - ] - ] - }, - { - "input": "й", - "description": "Named entity: jcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0439" - ] - ] - }, - { - "input": "&jfr", - "description": "Bad named entity: jfr without a semi-colon", - "output": [ - [ - "Character", - "&jfr" - ] - ] - }, - { - "input": "𝔧", - "description": "Named entity: jfr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd27" - ] - ] - }, - { - "input": "&jmath", - "description": "Bad named entity: jmath without a semi-colon", - "output": [ - [ - "Character", - "&jmath" - ] - ] - }, - { - "input": "ȷ", - "description": "Named entity: jmath; with a semi-colon", - "output": [ - [ - "Character", - "\u0237" - ] - ] - }, - { - "input": "&jopf", - "description": "Bad named entity: jopf without a semi-colon", - "output": [ - [ - "Character", - "&jopf" - ] - ] - }, - { - "input": "𝕛", - "description": "Named entity: jopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd5b" - ] - ] - }, - { - "input": "&jscr", - "description": "Bad named entity: jscr without a semi-colon", - "output": [ - [ - "Character", - "&jscr" - ] - ] - }, - { - "input": "𝒿", - "description": "Named entity: jscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udcbf" - ] - ] - }, - { - "input": "&jsercy", - "description": "Bad named entity: jsercy without a semi-colon", - "output": [ - [ - "Character", - "&jsercy" - ] - ] - }, - { - "input": "ј", - "description": "Named entity: jsercy; with a semi-colon", - "output": [ - [ - "Character", - "\u0458" - ] - ] - }, - { - "input": "&jukcy", - "description": "Bad named entity: jukcy without a semi-colon", - "output": [ - [ - "Character", - "&jukcy" - ] - ] - }, - { - "input": "є", - "description": "Named entity: jukcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0454" - ] - ] - }, - { - "input": "&kappa", - "description": "Bad named entity: kappa without a semi-colon", - "output": [ - [ - "Character", - "&kappa" - ] - ] - }, - { - "input": "κ", - "description": "Named entity: kappa; with a semi-colon", - "output": [ - [ - "Character", - "\u03ba" - ] - ] - }, - { - "input": "&kappav", - "description": "Bad named entity: kappav without a semi-colon", - "output": [ - [ - "Character", - "&kappav" - ] - ] - }, - { - "input": "ϰ", - "description": "Named entity: kappav; with a semi-colon", - "output": [ - [ - "Character", - "\u03f0" - ] - ] - }, - { - "input": "&kcedil", - "description": "Bad named entity: kcedil without a semi-colon", - "output": [ - [ - "Character", - "&kcedil" - ] - ] - }, - { - "input": "ķ", - "description": "Named entity: kcedil; with a semi-colon", - "output": [ - [ - "Character", - "\u0137" - ] - ] - }, - { - "input": "&kcy", - "description": "Bad named entity: kcy without a semi-colon", - "output": [ - [ - "Character", - "&kcy" - ] - ] - }, - { - "input": "к", - "description": "Named entity: kcy; with a semi-colon", - "output": [ - [ - "Character", - "\u043a" - ] - ] - }, - { - "input": "&kfr", - "description": "Bad named entity: kfr without a semi-colon", - "output": [ - [ - "Character", - "&kfr" - ] - ] - }, - { - "input": "𝔨", - "description": "Named entity: kfr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd28" - ] - ] - }, - { - "input": "&kgreen", - "description": "Bad named entity: kgreen without a semi-colon", - "output": [ - [ - "Character", - "&kgreen" - ] - ] - }, - { - "input": "ĸ", - "description": "Named entity: kgreen; with a semi-colon", - "output": [ - [ - "Character", - "\u0138" - ] - ] - }, - { - "input": "&khcy", - "description": "Bad named entity: khcy without a semi-colon", - "output": [ - [ - "Character", - "&khcy" - ] - ] - }, - { - "input": "х", - "description": "Named entity: khcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0445" - ] - ] - }, - { - "input": "&kjcy", - "description": "Bad named entity: kjcy without a semi-colon", - "output": [ - [ - "Character", - "&kjcy" - ] - ] - }, - { - "input": "ќ", - "description": "Named entity: kjcy; with a semi-colon", - "output": [ - [ - "Character", - "\u045c" - ] - ] - }, - { - "input": "&kopf", - "description": "Bad named entity: kopf without a semi-colon", - "output": [ - [ - "Character", - "&kopf" - ] - ] - }, - { - "input": "𝕜", - "description": "Named entity: kopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd5c" - ] - ] - }, - { - "input": "&kscr", - "description": "Bad named entity: kscr without a semi-colon", - "output": [ - [ - "Character", - "&kscr" - ] - ] - }, - { - "input": "𝓀", - "description": "Named entity: kscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udcc0" - ] - ] - }, - { - "input": "&lAarr", - "description": "Bad named entity: lAarr without a semi-colon", - "output": [ - [ - "Character", - "&lAarr" - ] - ] - }, - { - "input": "⇚", - "description": "Named entity: lAarr; with a semi-colon", - "output": [ - [ - "Character", - "\u21da" - ] - ] - }, - { - "input": "&lArr", - "description": "Bad named entity: lArr without a semi-colon", - "output": [ - [ - "Character", - "&lArr" - ] - ] - }, - { - "input": "⇐", - "description": "Named entity: lArr; with a semi-colon", - "output": [ - [ - "Character", - "\u21d0" - ] - ] - }, - { - "input": "&lAtail", - "description": "Bad named entity: lAtail without a semi-colon", - "output": [ - [ - "Character", - "&lAtail" - ] - ] - }, - { - "input": "⤛", - "description": "Named entity: lAtail; with a semi-colon", - "output": [ - [ - "Character", - "\u291b" - ] - ] - }, - { - "input": "&lBarr", - "description": "Bad named entity: lBarr without a semi-colon", - "output": [ - [ - "Character", - "&lBarr" - ] - ] - }, - { - "input": "⤎", - "description": "Named entity: lBarr; with a semi-colon", - "output": [ - [ - "Character", - "\u290e" - ] - ] - }, - { - "input": "&lE", - "description": "Bad named entity: lE without a semi-colon", - "output": [ - [ - "Character", - "&lE" - ] - ] - }, - { - "input": "≦", - "description": "Named entity: lE; with a semi-colon", - "output": [ - [ - "Character", - "\u2266" - ] - ] - }, - { - "input": "&lEg", - "description": "Bad named entity: lEg without a semi-colon", - "output": [ - [ - "Character", - "&lEg" - ] - ] - }, - { - "input": "⪋", - "description": "Named entity: lEg; with a semi-colon", - "output": [ - [ - "Character", - "\u2a8b" - ] - ] - }, - { - "input": "&lHar", - "description": "Bad named entity: lHar without a semi-colon", - "output": [ - [ - "Character", - "&lHar" - ] - ] - }, - { - "input": "⥢", - "description": "Named entity: lHar; with a semi-colon", - "output": [ - [ - "Character", - "\u2962" - ] - ] - }, - { - "input": "&lacute", - "description": "Bad named entity: lacute without a semi-colon", - "output": [ - [ - "Character", - "&lacute" - ] - ] - }, - { - "input": "ĺ", - "description": "Named entity: lacute; with a semi-colon", - "output": [ - [ - "Character", - "\u013a" - ] - ] - }, - { - "input": "&laemptyv", - "description": "Bad named entity: laemptyv without a semi-colon", - "output": [ - [ - "Character", - "&laemptyv" - ] - ] - }, - { - "input": "⦴", - "description": "Named entity: laemptyv; with a semi-colon", - "output": [ - [ - "Character", - "\u29b4" - ] - ] - }, - { - "input": "&lagran", - "description": "Bad named entity: lagran without a semi-colon", - "output": [ - [ - "Character", - "&lagran" - ] - ] - }, - { - "input": "ℒ", - "description": "Named entity: lagran; with a semi-colon", - "output": [ - [ - "Character", - "\u2112" - ] - ] - }, - { - "input": "&lambda", - "description": "Bad named entity: lambda without a semi-colon", - "output": [ - [ - "Character", - "&lambda" - ] - ] - }, - { - "input": "λ", - "description": "Named entity: lambda; with a semi-colon", - "output": [ - [ - "Character", - "\u03bb" - ] - ] - }, - { - "input": "&lang", - "description": "Bad named entity: lang without a semi-colon", - "output": [ - [ - "Character", - "&lang" - ] - ] - }, - { - "input": "⟨", - "description": "Named entity: lang; with a semi-colon", - "output": [ - [ - "Character", - "\u27e8" - ] - ] - }, - { - "input": "&langd", - "description": "Bad named entity: langd without a semi-colon", - "output": [ - [ - "Character", - "&langd" - ] - ] - }, - { - "input": "⦑", - "description": "Named entity: langd; with a semi-colon", - "output": [ - [ - "Character", - "\u2991" - ] - ] - }, - { - "input": "&langle", - "description": "Bad named entity: langle without a semi-colon", - "output": [ - [ - "Character", - "&langle" - ] - ] - }, - { - "input": "⟨", - "description": "Named entity: langle; with a semi-colon", - "output": [ - [ - "Character", - "\u27e8" - ] - ] - }, - { - "input": "&lap", - "description": "Bad named entity: lap without a semi-colon", - "output": [ - [ - "Character", - "&lap" - ] - ] - }, - { - "input": "⪅", - "description": "Named entity: lap; with a semi-colon", - "output": [ - [ - "Character", - "\u2a85" - ] - ] - }, - { - "input": "«", - "description": "Named entity: laquo without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00ab" - ] - ] - }, - { - "input": "«", - "description": "Named entity: laquo; with a semi-colon", - "output": [ - [ - "Character", - "\u00ab" - ] - ] - }, - { - "input": "&larr", - "description": "Bad named entity: larr without a semi-colon", - "output": [ - [ - "Character", - "&larr" - ] - ] - }, - { - "input": "←", - "description": "Named entity: larr; with a semi-colon", - "output": [ - [ - "Character", - "\u2190" - ] - ] - }, - { - "input": "&larrb", - "description": "Bad named entity: larrb without a semi-colon", - "output": [ - [ - "Character", - "&larrb" - ] - ] - }, - { - "input": "⇤", - "description": "Named entity: larrb; with a semi-colon", - "output": [ - [ - "Character", - "\u21e4" - ] - ] - }, - { - "input": "&larrbfs", - "description": "Bad named entity: larrbfs without a semi-colon", - "output": [ - [ - "Character", - "&larrbfs" - ] - ] - }, - { - "input": "⤟", - "description": "Named entity: larrbfs; with a semi-colon", - "output": [ - [ - "Character", - "\u291f" - ] - ] - }, - { - "input": "&larrfs", - "description": "Bad named entity: larrfs without a semi-colon", - "output": [ - [ - "Character", - "&larrfs" - ] - ] - }, - { - "input": "⤝", - "description": "Named entity: larrfs; with a semi-colon", - "output": [ - [ - "Character", - "\u291d" - ] - ] - }, - { - "input": "&larrhk", - "description": "Bad named entity: larrhk without a semi-colon", - "output": [ - [ - "Character", - "&larrhk" - ] - ] - }, - { - "input": "↩", - "description": "Named entity: larrhk; with a semi-colon", - "output": [ - [ - "Character", - "\u21a9" - ] - ] - }, - { - "input": "&larrlp", - "description": "Bad named entity: larrlp without a semi-colon", - "output": [ - [ - "Character", - "&larrlp" - ] - ] - }, - { - "input": "↫", - "description": "Named entity: larrlp; with a semi-colon", - "output": [ - [ - "Character", - "\u21ab" - ] - ] - }, - { - "input": "&larrpl", - "description": "Bad named entity: larrpl without a semi-colon", - "output": [ - [ - "Character", - "&larrpl" - ] - ] - }, - { - "input": "⤹", - "description": "Named entity: larrpl; with a semi-colon", - "output": [ - [ - "Character", - "\u2939" - ] - ] - }, - { - "input": "&larrsim", - "description": "Bad named entity: larrsim without a semi-colon", - "output": [ - [ - "Character", - "&larrsim" - ] - ] - }, - { - "input": "⥳", - "description": "Named entity: larrsim; with a semi-colon", - "output": [ - [ - "Character", - "\u2973" - ] - ] - }, - { - "input": "&larrtl", - "description": "Bad named entity: larrtl without a semi-colon", - "output": [ - [ - "Character", - "&larrtl" - ] - ] - }, - { - "input": "↢", - "description": "Named entity: larrtl; with a semi-colon", - "output": [ - [ - "Character", - "\u21a2" - ] - ] - }, - { - "input": "&lat", - "description": "Bad named entity: lat without a semi-colon", - "output": [ - [ - "Character", - "&lat" - ] - ] - }, - { - "input": "⪫", - "description": "Named entity: lat; with a semi-colon", - "output": [ - [ - "Character", - "\u2aab" - ] - ] - }, - { - "input": "&latail", - "description": "Bad named entity: latail without a semi-colon", - "output": [ - [ - "Character", - "&latail" - ] - ] - }, - { - "input": "⤙", - "description": "Named entity: latail; with a semi-colon", - "output": [ - [ - "Character", - "\u2919" - ] - ] - }, - { - "input": "&late", - "description": "Bad named entity: late without a semi-colon", - "output": [ - [ - "Character", - "&late" - ] - ] - }, - { - "input": "⪭", - "description": "Named entity: late; with a semi-colon", - "output": [ - [ - "Character", - "\u2aad" - ] - ] - }, - { - "input": "&lates", - "description": "Bad named entity: lates without a semi-colon", - "output": [ - [ - "Character", - "&lates" - ] - ] - }, - { - "input": "⪭︀", - "description": "Named entity: lates; with a semi-colon", - "output": [ - [ - "Character", - "\u2aad\ufe00" - ] - ] - }, - { - "input": "&lbarr", - "description": "Bad named entity: lbarr without a semi-colon", - "output": [ - [ - "Character", - "&lbarr" - ] - ] - }, - { - "input": "⤌", - "description": "Named entity: lbarr; with a semi-colon", - "output": [ - [ - "Character", - "\u290c" - ] - ] - }, - { - "input": "&lbbrk", - "description": "Bad named entity: lbbrk without a semi-colon", - "output": [ - [ - "Character", - "&lbbrk" - ] - ] - }, - { - "input": "❲", - "description": "Named entity: lbbrk; with a semi-colon", - "output": [ - [ - "Character", - "\u2772" - ] - ] - }, - { - "input": "&lbrace", - "description": "Bad named entity: lbrace without a semi-colon", - "output": [ - [ - "Character", - "&lbrace" - ] - ] - }, - { - "input": "{", - "description": "Named entity: lbrace; with a semi-colon", - "output": [ - [ - "Character", - "{" - ] - ] - }, - { - "input": "&lbrack", - "description": "Bad named entity: lbrack without a semi-colon", - "output": [ - [ - "Character", - "&lbrack" - ] - ] - }, - { - "input": "[", - "description": "Named entity: lbrack; with a semi-colon", - "output": [ - [ - "Character", - "[" - ] - ] - }, - { - "input": "&lbrke", - "description": "Bad named entity: lbrke without a semi-colon", - "output": [ - [ - "Character", - "&lbrke" - ] - ] - }, - { - "input": "⦋", - "description": "Named entity: lbrke; with a semi-colon", - "output": [ - [ - "Character", - "\u298b" - ] - ] - }, - { - "input": "&lbrksld", - "description": "Bad named entity: lbrksld without a semi-colon", - "output": [ - [ - "Character", - "&lbrksld" - ] - ] - }, - { - "input": "⦏", - "description": "Named entity: lbrksld; with a semi-colon", - "output": [ - [ - "Character", - "\u298f" - ] - ] - }, - { - "input": "&lbrkslu", - "description": "Bad named entity: lbrkslu without a semi-colon", - "output": [ - [ - "Character", - "&lbrkslu" - ] - ] - }, - { - "input": "⦍", - "description": "Named entity: lbrkslu; with a semi-colon", - "output": [ - [ - "Character", - "\u298d" - ] - ] - }, - { - "input": "&lcaron", - "description": "Bad named entity: lcaron without a semi-colon", - "output": [ - [ - "Character", - "&lcaron" - ] - ] - }, - { - "input": "ľ", - "description": "Named entity: lcaron; with a semi-colon", - "output": [ - [ - "Character", - "\u013e" - ] - ] - }, - { - "input": "&lcedil", - "description": "Bad named entity: lcedil without a semi-colon", - "output": [ - [ - "Character", - "&lcedil" - ] - ] - }, - { - "input": "ļ", - "description": "Named entity: lcedil; with a semi-colon", - "output": [ - [ - "Character", - "\u013c" - ] - ] - }, - { - "input": "&lceil", - "description": "Bad named entity: lceil without a semi-colon", - "output": [ - [ - "Character", - "&lceil" - ] - ] - }, - { - "input": "⌈", - "description": "Named entity: lceil; with a semi-colon", - "output": [ - [ - "Character", - "\u2308" - ] - ] - }, - { - "input": "&lcub", - "description": "Bad named entity: lcub without a semi-colon", - "output": [ - [ - "Character", - "&lcub" - ] - ] - }, - { - "input": "{", - "description": "Named entity: lcub; with a semi-colon", - "output": [ - [ - "Character", - "{" - ] - ] - }, - { - "input": "&lcy", - "description": "Bad named entity: lcy without a semi-colon", - "output": [ - [ - "Character", - "&lcy" - ] - ] - }, - { - "input": "л", - "description": "Named entity: lcy; with a semi-colon", - "output": [ - [ - "Character", - "\u043b" - ] - ] - }, - { - "input": "&ldca", - "description": "Bad named entity: ldca without a semi-colon", - "output": [ - [ - "Character", - "&ldca" - ] - ] - }, - { - "input": "⤶", - "description": "Named entity: ldca; with a semi-colon", - "output": [ - [ - "Character", - "\u2936" - ] - ] - }, - { - "input": "&ldquo", - "description": "Bad named entity: ldquo without a semi-colon", - "output": [ - [ - "Character", - "&ldquo" - ] - ] - }, - { - "input": "“", - "description": "Named entity: ldquo; with a semi-colon", - "output": [ - [ - "Character", - "\u201c" - ] - ] - }, - { - "input": "&ldquor", - "description": "Bad named entity: ldquor without a semi-colon", - "output": [ - [ - "Character", - "&ldquor" - ] - ] - }, - { - "input": "„", - "description": "Named entity: ldquor; with a semi-colon", - "output": [ - [ - "Character", - "\u201e" - ] - ] - }, - { - "input": "&ldrdhar", - "description": "Bad named entity: ldrdhar without a semi-colon", - "output": [ - [ - "Character", - "&ldrdhar" - ] - ] - }, - { - "input": "⥧", - "description": "Named entity: ldrdhar; with a semi-colon", - "output": [ - [ - "Character", - "\u2967" - ] - ] - }, - { - "input": "&ldrushar", - "description": "Bad named entity: ldrushar without a semi-colon", - "output": [ - [ - "Character", - "&ldrushar" - ] - ] - }, - { - "input": "⥋", - "description": "Named entity: ldrushar; with a semi-colon", - "output": [ - [ - "Character", - "\u294b" - ] - ] - }, - { - "input": "&ldsh", - "description": "Bad named entity: ldsh without a semi-colon", - "output": [ - [ - "Character", - "&ldsh" - ] - ] - }, - { - "input": "↲", - "description": "Named entity: ldsh; with a semi-colon", - "output": [ - [ - "Character", - "\u21b2" - ] - ] - }, - { - "input": "&le", - "description": "Bad named entity: le without a semi-colon", - "output": [ - [ - "Character", - "&le" - ] - ] - }, - { - "input": "≤", - "description": "Named entity: le; with a semi-colon", - "output": [ - [ - "Character", - "\u2264" - ] - ] - }, - { - "input": "&leftarrow", - "description": "Bad named entity: leftarrow without a semi-colon", - "output": [ - [ - "Character", - "&leftarrow" - ] - ] - }, - { - "input": "←", - "description": "Named entity: leftarrow; with a semi-colon", - "output": [ - [ - "Character", - "\u2190" - ] - ] - }, - { - "input": "&leftarrowtail", - "description": "Bad named entity: leftarrowtail without a semi-colon", - "output": [ - [ - "Character", - "&leftarrowtail" - ] - ] - }, - { - "input": "↢", - "description": "Named entity: leftarrowtail; with a semi-colon", - "output": [ - [ - "Character", - "\u21a2" - ] - ] - }, - { - "input": "&leftharpoondown", - "description": "Bad named entity: leftharpoondown without a semi-colon", - "output": [ - [ - "Character", - "&leftharpoondown" - ] - ] - }, - { - "input": "↽", - "description": "Named entity: leftharpoondown; with a semi-colon", - "output": [ - [ - "Character", - "\u21bd" - ] - ] - }, - { - "input": "&leftharpoonup", - "description": "Bad named entity: leftharpoonup without a semi-colon", - "output": [ - [ - "Character", - "&leftharpoonup" - ] - ] - }, - { - "input": "↼", - "description": "Named entity: leftharpoonup; with a semi-colon", - "output": [ - [ - "Character", - "\u21bc" - ] - ] - }, - { - "input": "&leftleftarrows", - "description": "Bad named entity: leftleftarrows without a semi-colon", - "output": [ - [ - "Character", - "&leftleftarrows" - ] - ] - }, - { - "input": "⇇", - "description": "Named entity: leftleftarrows; with a semi-colon", - "output": [ - [ - "Character", - "\u21c7" - ] - ] - }, - { - "input": "&leftrightarrow", - "description": "Bad named entity: leftrightarrow without a semi-colon", - "output": [ - [ - "Character", - "&leftrightarrow" - ] - ] - }, - { - "input": "↔", - "description": "Named entity: leftrightarrow; with a semi-colon", - "output": [ - [ - "Character", - "\u2194" - ] - ] - }, - { - "input": "&leftrightarrows", - "description": "Bad named entity: leftrightarrows without a semi-colon", - "output": [ - [ - "Character", - "&leftrightarrows" - ] - ] - }, - { - "input": "⇆", - "description": "Named entity: leftrightarrows; with a semi-colon", - "output": [ - [ - "Character", - "\u21c6" - ] - ] - }, - { - "input": "&leftrightharpoons", - "description": "Bad named entity: leftrightharpoons without a semi-colon", - "output": [ - [ - "Character", - "&leftrightharpoons" - ] - ] - }, - { - "input": "⇋", - "description": "Named entity: leftrightharpoons; with a semi-colon", - "output": [ - [ - "Character", - "\u21cb" - ] - ] - }, - { - "input": "&leftrightsquigarrow", - "description": "Bad named entity: leftrightsquigarrow without a semi-colon", - "output": [ - [ - "Character", - "&leftrightsquigarrow" - ] - ] - }, - { - "input": "↭", - "description": "Named entity: leftrightsquigarrow; with a semi-colon", - "output": [ - [ - "Character", - "\u21ad" - ] - ] - }, - { - "input": "&leftthreetimes", - "description": "Bad named entity: leftthreetimes without a semi-colon", - "output": [ - [ - "Character", - "&leftthreetimes" - ] - ] - }, - { - "input": "⋋", - "description": "Named entity: leftthreetimes; with a semi-colon", - "output": [ - [ - "Character", - "\u22cb" - ] - ] - }, - { - "input": "&leg", - "description": "Bad named entity: leg without a semi-colon", - "output": [ - [ - "Character", - "&leg" - ] - ] - }, - { - "input": "⋚", - "description": "Named entity: leg; with a semi-colon", - "output": [ - [ - "Character", - "\u22da" - ] - ] - }, - { - "input": "&leq", - "description": "Bad named entity: leq without a semi-colon", - "output": [ - [ - "Character", - "&leq" - ] - ] - }, - { - "input": "≤", - "description": "Named entity: leq; with a semi-colon", - "output": [ - [ - "Character", - "\u2264" - ] - ] - }, - { - "input": "&leqq", - "description": "Bad named entity: leqq without a semi-colon", - "output": [ - [ - "Character", - "&leqq" - ] - ] - }, - { - "input": "≦", - "description": "Named entity: leqq; with a semi-colon", - "output": [ - [ - "Character", - "\u2266" - ] - ] - }, - { - "input": "&leqslant", - "description": "Bad named entity: leqslant without a semi-colon", - "output": [ - [ - "Character", - "&leqslant" - ] - ] - }, - { - "input": "⩽", - "description": "Named entity: leqslant; with a semi-colon", - "output": [ - [ - "Character", - "\u2a7d" - ] - ] - }, - { - "input": "&les", - "description": "Bad named entity: les without a semi-colon", - "output": [ - [ - "Character", - "&les" - ] - ] - }, - { - "input": "⩽", - "description": "Named entity: les; with a semi-colon", - "output": [ - [ - "Character", - "\u2a7d" - ] - ] - }, - { - "input": "&lescc", - "description": "Bad named entity: lescc without a semi-colon", - "output": [ - [ - "Character", - "&lescc" - ] - ] - }, - { - "input": "⪨", - "description": "Named entity: lescc; with a semi-colon", - "output": [ - [ - "Character", - "\u2aa8" - ] - ] - }, - { - "input": "&lesdot", - "description": "Bad named entity: lesdot without a semi-colon", - "output": [ - [ - "Character", - "&lesdot" - ] - ] - }, - { - "input": "⩿", - "description": "Named entity: lesdot; with a semi-colon", - "output": [ - [ - "Character", - "\u2a7f" - ] - ] - }, - { - "input": "&lesdoto", - "description": "Bad named entity: lesdoto without a semi-colon", - "output": [ - [ - "Character", - "&lesdoto" - ] - ] - }, - { - "input": "⪁", - "description": "Named entity: lesdoto; with a semi-colon", - "output": [ - [ - "Character", - "\u2a81" - ] - ] - }, - { - "input": "&lesdotor", - "description": "Bad named entity: lesdotor without a semi-colon", - "output": [ - [ - "Character", - "&lesdotor" - ] - ] - }, - { - "input": "⪃", - "description": "Named entity: lesdotor; with a semi-colon", - "output": [ - [ - "Character", - "\u2a83" - ] - ] - }, - { - "input": "&lesg", - "description": "Bad named entity: lesg without a semi-colon", - "output": [ - [ - "Character", - "&lesg" - ] - ] - }, - { - "input": "⋚︀", - "description": "Named entity: lesg; with a semi-colon", - "output": [ - [ - "Character", - "\u22da\ufe00" - ] - ] - }, - { - "input": "&lesges", - "description": "Bad named entity: lesges without a semi-colon", - "output": [ - [ - "Character", - "&lesges" - ] - ] - }, - { - "input": "⪓", - "description": "Named entity: lesges; with a semi-colon", - "output": [ - [ - "Character", - "\u2a93" - ] - ] - }, - { - "input": "&lessapprox", - "description": "Bad named entity: lessapprox without a semi-colon", - "output": [ - [ - "Character", - "&lessapprox" - ] - ] - }, - { - "input": "⪅", - "description": "Named entity: lessapprox; with a semi-colon", - "output": [ - [ - "Character", - "\u2a85" - ] - ] - }, - { - "input": "&lessdot", - "description": "Bad named entity: lessdot without a semi-colon", - "output": [ - [ - "Character", - "&lessdot" - ] - ] - }, - { - "input": "⋖", - "description": "Named entity: lessdot; with a semi-colon", - "output": [ - [ - "Character", - "\u22d6" - ] - ] - }, - { - "input": "&lesseqgtr", - "description": "Bad named entity: lesseqgtr without a semi-colon", - "output": [ - [ - "Character", - "&lesseqgtr" - ] - ] - }, - { - "input": "⋚", - "description": "Named entity: lesseqgtr; with a semi-colon", - "output": [ - [ - "Character", - "\u22da" - ] - ] - }, - { - "input": "&lesseqqgtr", - "description": "Bad named entity: lesseqqgtr without a semi-colon", - "output": [ - [ - "Character", - "&lesseqqgtr" - ] - ] - }, - { - "input": "⪋", - "description": "Named entity: lesseqqgtr; with a semi-colon", - "output": [ - [ - "Character", - "\u2a8b" - ] - ] - }, - { - "input": "&lessgtr", - "description": "Bad named entity: lessgtr without a semi-colon", - "output": [ - [ - "Character", - "&lessgtr" - ] - ] - }, - { - "input": "≶", - "description": "Named entity: lessgtr; with a semi-colon", - "output": [ - [ - "Character", - "\u2276" - ] - ] - }, - { - "input": "&lesssim", - "description": "Bad named entity: lesssim without a semi-colon", - "output": [ - [ - "Character", - "&lesssim" - ] - ] - }, - { - "input": "≲", - "description": "Named entity: lesssim; with a semi-colon", - "output": [ - [ - "Character", - "\u2272" - ] - ] - }, - { - "input": "&lfisht", - "description": "Bad named entity: lfisht without a semi-colon", - "output": [ - [ - "Character", - "&lfisht" - ] - ] - }, - { - "input": "⥼", - "description": "Named entity: lfisht; with a semi-colon", - "output": [ - [ - "Character", - "\u297c" - ] - ] - }, - { - "input": "&lfloor", - "description": "Bad named entity: lfloor without a semi-colon", - "output": [ - [ - "Character", - "&lfloor" - ] - ] - }, - { - "input": "⌊", - "description": "Named entity: lfloor; with a semi-colon", - "output": [ - [ - "Character", - "\u230a" - ] - ] - }, - { - "input": "&lfr", - "description": "Bad named entity: lfr without a semi-colon", - "output": [ - [ - "Character", - "&lfr" - ] - ] - }, - { - "input": "𝔩", - "description": "Named entity: lfr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd29" - ] - ] - }, - { - "input": "&lg", - "description": "Bad named entity: lg without a semi-colon", - "output": [ - [ - "Character", - "&lg" - ] - ] - }, - { - "input": "≶", - "description": "Named entity: lg; with a semi-colon", - "output": [ - [ - "Character", - "\u2276" - ] - ] - }, - { - "input": "&lgE", - "description": "Bad named entity: lgE without a semi-colon", - "output": [ - [ - "Character", - "&lgE" - ] - ] - }, - { - "input": "⪑", - "description": "Named entity: lgE; with a semi-colon", - "output": [ - [ - "Character", - "\u2a91" - ] - ] - }, - { - "input": "&lhard", - "description": "Bad named entity: lhard without a semi-colon", - "output": [ - [ - "Character", - "&lhard" - ] - ] - }, - { - "input": "↽", - "description": "Named entity: lhard; with a semi-colon", - "output": [ - [ - "Character", - "\u21bd" - ] - ] - }, - { - "input": "&lharu", - "description": "Bad named entity: lharu without a semi-colon", - "output": [ - [ - "Character", - "&lharu" - ] - ] - }, - { - "input": "↼", - "description": "Named entity: lharu; with a semi-colon", - "output": [ - [ - "Character", - "\u21bc" - ] - ] - }, - { - "input": "&lharul", - "description": "Bad named entity: lharul without a semi-colon", - "output": [ - [ - "Character", - "&lharul" - ] - ] - }, - { - "input": "⥪", - "description": "Named entity: lharul; with a semi-colon", - "output": [ - [ - "Character", - "\u296a" - ] - ] - }, - { - "input": "&lhblk", - "description": "Bad named entity: lhblk without a semi-colon", - "output": [ - [ - "Character", - "&lhblk" - ] - ] - }, - { - "input": "▄", - "description": "Named entity: lhblk; with a semi-colon", - "output": [ - [ - "Character", - "\u2584" - ] - ] - }, - { - "input": "&ljcy", - "description": "Bad named entity: ljcy without a semi-colon", - "output": [ - [ - "Character", - "&ljcy" - ] - ] - }, - { - "input": "љ", - "description": "Named entity: ljcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0459" - ] - ] - }, - { - "input": "&ll", - "description": "Bad named entity: ll without a semi-colon", - "output": [ - [ - "Character", - "&ll" - ] - ] - }, - { - "input": "≪", - "description": "Named entity: ll; with a semi-colon", - "output": [ - [ - "Character", - "\u226a" - ] - ] - }, - { - "input": "&llarr", - "description": "Bad named entity: llarr without a semi-colon", - "output": [ - [ - "Character", - "&llarr" - ] - ] - }, - { - "input": "⇇", - "description": "Named entity: llarr; with a semi-colon", - "output": [ - [ - "Character", - "\u21c7" - ] - ] - }, - { - "input": "&llcorner", - "description": "Bad named entity: llcorner without a semi-colon", - "output": [ - [ - "Character", - "&llcorner" - ] - ] - }, - { - "input": "⌞", - "description": "Named entity: llcorner; with a semi-colon", - "output": [ - [ - "Character", - "\u231e" - ] - ] - }, - { - "input": "&llhard", - "description": "Bad named entity: llhard without a semi-colon", - "output": [ - [ - "Character", - "&llhard" - ] - ] - }, - { - "input": "⥫", - "description": "Named entity: llhard; with a semi-colon", - "output": [ - [ - "Character", - "\u296b" - ] - ] - }, - { - "input": "&lltri", - "description": "Bad named entity: lltri without a semi-colon", - "output": [ - [ - "Character", - "&lltri" - ] - ] - }, - { - "input": "◺", - "description": "Named entity: lltri; with a semi-colon", - "output": [ - [ - "Character", - "\u25fa" - ] - ] - }, - { - "input": "&lmidot", - "description": "Bad named entity: lmidot without a semi-colon", - "output": [ - [ - "Character", - "&lmidot" - ] - ] - }, - { - "input": "ŀ", - "description": "Named entity: lmidot; with a semi-colon", - "output": [ - [ - "Character", - "\u0140" - ] - ] - }, - { - "input": "&lmoust", - "description": "Bad named entity: lmoust without a semi-colon", - "output": [ - [ - "Character", - "&lmoust" - ] - ] - }, - { - "input": "⎰", - "description": "Named entity: lmoust; with a semi-colon", - "output": [ - [ - "Character", - "\u23b0" - ] - ] - }, - { - "input": "&lmoustache", - "description": "Bad named entity: lmoustache without a semi-colon", - "output": [ - [ - "Character", - "&lmoustache" - ] - ] - }, - { - "input": "⎰", - "description": "Named entity: lmoustache; with a semi-colon", - "output": [ - [ - "Character", - "\u23b0" - ] - ] - }, - { - "input": "&lnE", - "description": "Bad named entity: lnE without a semi-colon", - "output": [ - [ - "Character", - "&lnE" - ] - ] - }, - { - "input": "≨", - "description": "Named entity: lnE; with a semi-colon", - "output": [ - [ - "Character", - "\u2268" - ] - ] - }, - { - "input": "&lnap", - "description": "Bad named entity: lnap without a semi-colon", - "output": [ - [ - "Character", - "&lnap" - ] - ] - }, - { - "input": "⪉", - "description": "Named entity: lnap; with a semi-colon", - "output": [ - [ - "Character", - "\u2a89" - ] - ] - }, - { - "input": "&lnapprox", - "description": "Bad named entity: lnapprox without a semi-colon", - "output": [ - [ - "Character", - "&lnapprox" - ] - ] - }, - { - "input": "⪉", - "description": "Named entity: lnapprox; with a semi-colon", - "output": [ - [ - "Character", - "\u2a89" - ] - ] - }, - { - "input": "&lne", - "description": "Bad named entity: lne without a semi-colon", - "output": [ - [ - "Character", - "&lne" - ] - ] - }, - { - "input": "⪇", - "description": "Named entity: lne; with a semi-colon", - "output": [ - [ - "Character", - "\u2a87" - ] - ] - }, - { - "input": "&lneq", - "description": "Bad named entity: lneq without a semi-colon", - "output": [ - [ - "Character", - "&lneq" - ] - ] - }, - { - "input": "⪇", - "description": "Named entity: lneq; with a semi-colon", - "output": [ - [ - "Character", - "\u2a87" - ] - ] - }, - { - "input": "&lneqq", - "description": "Bad named entity: lneqq without a semi-colon", - "output": [ - [ - "Character", - "&lneqq" - ] - ] - }, - { - "input": "≨", - "description": "Named entity: lneqq; with a semi-colon", - "output": [ - [ - "Character", - "\u2268" - ] - ] - }, - { - "input": "&lnsim", - "description": "Bad named entity: lnsim without a semi-colon", - "output": [ - [ - "Character", - "&lnsim" - ] - ] - }, - { - "input": "⋦", - "description": "Named entity: lnsim; with a semi-colon", - "output": [ - [ - "Character", - "\u22e6" - ] - ] - }, - { - "input": "&loang", - "description": "Bad named entity: loang without a semi-colon", - "output": [ - [ - "Character", - "&loang" - ] - ] - }, - { - "input": "⟬", - "description": "Named entity: loang; with a semi-colon", - "output": [ - [ - "Character", - "\u27ec" - ] - ] - }, - { - "input": "&loarr", - "description": "Bad named entity: loarr without a semi-colon", - "output": [ - [ - "Character", - "&loarr" - ] - ] - }, - { - "input": "⇽", - "description": "Named entity: loarr; with a semi-colon", - "output": [ - [ - "Character", - "\u21fd" - ] - ] - }, - { - "input": "&lobrk", - "description": "Bad named entity: lobrk without a semi-colon", - "output": [ - [ - "Character", - "&lobrk" - ] - ] - }, - { - "input": "⟦", - "description": "Named entity: lobrk; with a semi-colon", - "output": [ - [ - "Character", - "\u27e6" - ] - ] - }, - { - "input": "&longleftarrow", - "description": "Bad named entity: longleftarrow without a semi-colon", - "output": [ - [ - "Character", - "&longleftarrow" - ] - ] - }, - { - "input": "⟵", - "description": "Named entity: longleftarrow; with a semi-colon", - "output": [ - [ - "Character", - "\u27f5" - ] - ] - }, - { - "input": "&longleftrightarrow", - "description": "Bad named entity: longleftrightarrow without a semi-colon", - "output": [ - [ - "Character", - "&longleftrightarrow" - ] - ] - }, - { - "input": "⟷", - "description": "Named entity: longleftrightarrow; with a semi-colon", - "output": [ - [ - "Character", - "\u27f7" - ] - ] - }, - { - "input": "&longmapsto", - "description": "Bad named entity: longmapsto without a semi-colon", - "output": [ - [ - "Character", - "&longmapsto" - ] - ] - }, - { - "input": "⟼", - "description": "Named entity: longmapsto; with a semi-colon", - "output": [ - [ - "Character", - "\u27fc" - ] - ] - }, - { - "input": "&longrightarrow", - "description": "Bad named entity: longrightarrow without a semi-colon", - "output": [ - [ - "Character", - "&longrightarrow" - ] - ] - }, - { - "input": "⟶", - "description": "Named entity: longrightarrow; with a semi-colon", - "output": [ - [ - "Character", - "\u27f6" - ] - ] - }, - { - "input": "&looparrowleft", - "description": "Bad named entity: looparrowleft without a semi-colon", - "output": [ - [ - "Character", - "&looparrowleft" - ] - ] - }, - { - "input": "↫", - "description": "Named entity: looparrowleft; with a semi-colon", - "output": [ - [ - "Character", - "\u21ab" - ] - ] - }, - { - "input": "&looparrowright", - "description": "Bad named entity: looparrowright without a semi-colon", - "output": [ - [ - "Character", - "&looparrowright" - ] - ] - }, - { - "input": "↬", - "description": "Named entity: looparrowright; with a semi-colon", - "output": [ - [ - "Character", - "\u21ac" - ] - ] - }, - { - "input": "&lopar", - "description": "Bad named entity: lopar without a semi-colon", - "output": [ - [ - "Character", - "&lopar" - ] - ] - }, - { - "input": "⦅", - "description": "Named entity: lopar; with a semi-colon", - "output": [ - [ - "Character", - "\u2985" - ] - ] - }, - { - "input": "&lopf", - "description": "Bad named entity: lopf without a semi-colon", - "output": [ - [ - "Character", - "&lopf" - ] - ] - }, - { - "input": "𝕝", - "description": "Named entity: lopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd5d" - ] - ] - }, - { - "input": "&loplus", - "description": "Bad named entity: loplus without a semi-colon", - "output": [ - [ - "Character", - "&loplus" - ] - ] - }, - { - "input": "⨭", - "description": "Named entity: loplus; with a semi-colon", - "output": [ - [ - "Character", - "\u2a2d" - ] - ] - }, - { - "input": "&lotimes", - "description": "Bad named entity: lotimes without a semi-colon", - "output": [ - [ - "Character", - "&lotimes" - ] - ] - }, - { - "input": "⨴", - "description": "Named entity: lotimes; with a semi-colon", - "output": [ - [ - "Character", - "\u2a34" - ] - ] - }, - { - "input": "&lowast", - "description": "Bad named entity: lowast without a semi-colon", - "output": [ - [ - "Character", - "&lowast" - ] - ] - }, - { - "input": "∗", - "description": "Named entity: lowast; with a semi-colon", - "output": [ - [ - "Character", - "\u2217" - ] - ] - }, - { - "input": "&lowbar", - "description": "Bad named entity: lowbar without a semi-colon", - "output": [ - [ - "Character", - "&lowbar" - ] - ] - }, - { - "input": "_", - "description": "Named entity: lowbar; with a semi-colon", - "output": [ - [ - "Character", - "_" - ] - ] - }, - { - "input": "&loz", - "description": "Bad named entity: loz without a semi-colon", - "output": [ - [ - "Character", - "&loz" - ] - ] - }, - { - "input": "◊", - "description": "Named entity: loz; with a semi-colon", - "output": [ - [ - "Character", - "\u25ca" - ] - ] - }, - { - "input": "&lozenge", - "description": "Bad named entity: lozenge without a semi-colon", - "output": [ - [ - "Character", - "&lozenge" - ] - ] - }, - { - "input": "◊", - "description": "Named entity: lozenge; with a semi-colon", - "output": [ - [ - "Character", - "\u25ca" - ] - ] - }, - { - "input": "&lozf", - "description": "Bad named entity: lozf without a semi-colon", - "output": [ - [ - "Character", - "&lozf" - ] - ] - }, - { - "input": "⧫", - "description": "Named entity: lozf; with a semi-colon", - "output": [ - [ - "Character", - "\u29eb" - ] - ] - }, - { - "input": "&lpar", - "description": "Bad named entity: lpar without a semi-colon", - "output": [ - [ - "Character", - "&lpar" - ] - ] - }, - { - "input": "(", - "description": "Named entity: lpar; with a semi-colon", - "output": [ - [ - "Character", - "(" - ] - ] - }, - { - "input": "&lparlt", - "description": "Bad named entity: lparlt without a semi-colon", - "output": [ - [ - "Character", - "&lparlt" - ] - ] - }, - { - "input": "⦓", - "description": "Named entity: lparlt; with a semi-colon", - "output": [ - [ - "Character", - "\u2993" - ] - ] - }, - { - "input": "&lrarr", - "description": "Bad named entity: lrarr without a semi-colon", - "output": [ - [ - "Character", - "&lrarr" - ] - ] - }, - { - "input": "⇆", - "description": "Named entity: lrarr; with a semi-colon", - "output": [ - [ - "Character", - "\u21c6" - ] - ] - }, - { - "input": "&lrcorner", - "description": "Bad named entity: lrcorner without a semi-colon", - "output": [ - [ - "Character", - "&lrcorner" - ] - ] - }, - { - "input": "⌟", - "description": "Named entity: lrcorner; with a semi-colon", - "output": [ - [ - "Character", - "\u231f" - ] - ] - }, - { - "input": "&lrhar", - "description": "Bad named entity: lrhar without a semi-colon", - "output": [ - [ - "Character", - "&lrhar" - ] - ] - }, - { - "input": "⇋", - "description": "Named entity: lrhar; with a semi-colon", - "output": [ - [ - "Character", - "\u21cb" - ] - ] - }, - { - "input": "&lrhard", - "description": "Bad named entity: lrhard without a semi-colon", - "output": [ - [ - "Character", - "&lrhard" - ] - ] - }, - { - "input": "⥭", - "description": "Named entity: lrhard; with a semi-colon", - "output": [ - [ - "Character", - "\u296d" - ] - ] - }, - { - "input": "&lrm", - "description": "Bad named entity: lrm without a semi-colon", - "output": [ - [ - "Character", - "&lrm" - ] - ] - }, - { - "input": "‎", - "description": "Named entity: lrm; with a semi-colon", - "output": [ - [ - "Character", - "\u200e" - ] - ] - }, - { - "input": "&lrtri", - "description": "Bad named entity: lrtri without a semi-colon", - "output": [ - [ - "Character", - "&lrtri" - ] - ] - }, - { - "input": "⊿", - "description": "Named entity: lrtri; with a semi-colon", - "output": [ - [ - "Character", - "\u22bf" - ] - ] - }, - { - "input": "&lsaquo", - "description": "Bad named entity: lsaquo without a semi-colon", - "output": [ - [ - "Character", - "&lsaquo" - ] - ] - }, - { - "input": "‹", - "description": "Named entity: lsaquo; with a semi-colon", - "output": [ - [ - "Character", - "\u2039" - ] - ] - }, - { - "input": "&lscr", - "description": "Bad named entity: lscr without a semi-colon", - "output": [ - [ - "Character", - "&lscr" - ] - ] - }, - { - "input": "𝓁", - "description": "Named entity: lscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udcc1" - ] - ] - }, - { - "input": "&lsh", - "description": "Bad named entity: lsh without a semi-colon", - "output": [ - [ - "Character", - "&lsh" - ] - ] - }, - { - "input": "↰", - "description": "Named entity: lsh; with a semi-colon", - "output": [ - [ - "Character", - "\u21b0" - ] - ] - }, - { - "input": "&lsim", - "description": "Bad named entity: lsim without a semi-colon", - "output": [ - [ - "Character", - "&lsim" - ] - ] - }, - { - "input": "≲", - "description": "Named entity: lsim; with a semi-colon", - "output": [ - [ - "Character", - "\u2272" - ] - ] - }, - { - "input": "&lsime", - "description": "Bad named entity: lsime without a semi-colon", - "output": [ - [ - "Character", - "&lsime" - ] - ] - }, - { - "input": "⪍", - "description": "Named entity: lsime; with a semi-colon", - "output": [ - [ - "Character", - "\u2a8d" - ] - ] - }, - { - "input": "&lsimg", - "description": "Bad named entity: lsimg without a semi-colon", - "output": [ - [ - "Character", - "&lsimg" - ] - ] - }, - { - "input": "⪏", - "description": "Named entity: lsimg; with a semi-colon", - "output": [ - [ - "Character", - "\u2a8f" - ] - ] - }, - { - "input": "&lsqb", - "description": "Bad named entity: lsqb without a semi-colon", - "output": [ - [ - "Character", - "&lsqb" - ] - ] - }, - { - "input": "[", - "description": "Named entity: lsqb; with a semi-colon", - "output": [ - [ - "Character", - "[" - ] - ] - }, - { - "input": "&lsquo", - "description": "Bad named entity: lsquo without a semi-colon", - "output": [ - [ - "Character", - "&lsquo" - ] - ] - }, - { - "input": "‘", - "description": "Named entity: lsquo; with a semi-colon", - "output": [ - [ - "Character", - "\u2018" - ] - ] - }, - { - "input": "&lsquor", - "description": "Bad named entity: lsquor without a semi-colon", - "output": [ - [ - "Character", - "&lsquor" - ] - ] - }, - { - "input": "‚", - "description": "Named entity: lsquor; with a semi-colon", - "output": [ - [ - "Character", - "\u201a" - ] - ] - }, - { - "input": "&lstrok", - "description": "Bad named entity: lstrok without a semi-colon", - "output": [ - [ - "Character", - "&lstrok" - ] - ] - }, - { - "input": "ł", - "description": "Named entity: lstrok; with a semi-colon", - "output": [ - [ - "Character", - "\u0142" - ] - ] - }, - { - "input": "<", - "description": "Named entity: lt without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "<" - ] - ] - }, - { - "input": "<", - "description": "Named entity: lt; with a semi-colon", - "output": [ - [ - "Character", - "<" - ] - ] - }, - { - "input": "⪦", - "description": "Named entity: ltcc; with a semi-colon", - "output": [ - [ - "Character", - "\u2aa6" - ] - ] - }, - { - "input": "⩹", - "description": "Named entity: ltcir; with a semi-colon", - "output": [ - [ - "Character", - "\u2a79" - ] - ] - }, - { - "input": "⋖", - "description": "Named entity: ltdot; with a semi-colon", - "output": [ - [ - "Character", - "\u22d6" - ] - ] - }, - { - "input": "⋋", - "description": "Named entity: lthree; with a semi-colon", - "output": [ - [ - "Character", - "\u22cb" - ] - ] - }, - { - "input": "⋉", - "description": "Named entity: ltimes; with a semi-colon", - "output": [ - [ - "Character", - "\u22c9" - ] - ] - }, - { - "input": "⥶", - "description": "Named entity: ltlarr; with a semi-colon", - "output": [ - [ - "Character", - "\u2976" - ] - ] - }, - { - "input": "⩻", - "description": "Named entity: ltquest; with a semi-colon", - "output": [ - [ - "Character", - "\u2a7b" - ] - ] - }, - { - "input": "⦖", - "description": "Named entity: ltrPar; with a semi-colon", - "output": [ - [ - "Character", - "\u2996" - ] - ] - }, - { - "input": "◃", - "description": "Named entity: ltri; with a semi-colon", - "output": [ - [ - "Character", - "\u25c3" - ] - ] - }, - { - "input": "⊴", - "description": "Named entity: ltrie; with a semi-colon", - "output": [ - [ - "Character", - "\u22b4" - ] - ] - }, - { - "input": "◂", - "description": "Named entity: ltrif; with a semi-colon", - "output": [ - [ - "Character", - "\u25c2" - ] - ] - }, - { - "input": "&lurdshar", - "description": "Bad named entity: lurdshar without a semi-colon", - "output": [ - [ - "Character", - "&lurdshar" - ] - ] - }, - { - "input": "⥊", - "description": "Named entity: lurdshar; with a semi-colon", - "output": [ - [ - "Character", - "\u294a" - ] - ] - }, - { - "input": "&luruhar", - "description": "Bad named entity: luruhar without a semi-colon", - "output": [ - [ - "Character", - "&luruhar" - ] - ] - }, - { - "input": "⥦", - "description": "Named entity: luruhar; with a semi-colon", - "output": [ - [ - "Character", - "\u2966" - ] - ] - }, - { - "input": "&lvertneqq", - "description": "Bad named entity: lvertneqq without a semi-colon", - "output": [ - [ - "Character", - "&lvertneqq" - ] - ] - }, - { - "input": "≨︀", - "description": "Named entity: lvertneqq; with a semi-colon", - "output": [ - [ - "Character", - "\u2268\ufe00" - ] - ] - }, - { - "input": "&lvnE", - "description": "Bad named entity: lvnE without a semi-colon", - "output": [ - [ - "Character", - "&lvnE" - ] - ] - }, - { - "input": "≨︀", - "description": "Named entity: lvnE; with a semi-colon", - "output": [ - [ - "Character", - "\u2268\ufe00" - ] - ] - }, - { - "input": "&mDDot", - "description": "Bad named entity: mDDot without a semi-colon", - "output": [ - [ - "Character", - "&mDDot" - ] - ] - }, - { - "input": "∺", - "description": "Named entity: mDDot; with a semi-colon", - "output": [ - [ - "Character", - "\u223a" - ] - ] - }, - { - "input": "¯", - "description": "Named entity: macr without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00af" - ] - ] - }, - { - "input": "¯", - "description": "Named entity: macr; with a semi-colon", - "output": [ - [ - "Character", - "\u00af" - ] - ] - }, - { - "input": "&male", - "description": "Bad named entity: male without a semi-colon", - "output": [ - [ - "Character", - "&male" - ] - ] - }, - { - "input": "♂", - "description": "Named entity: male; with a semi-colon", - "output": [ - [ - "Character", - "\u2642" - ] - ] - }, - { - "input": "&malt", - "description": "Bad named entity: malt without a semi-colon", - "output": [ - [ - "Character", - "&malt" - ] - ] - }, - { - "input": "✠", - "description": "Named entity: malt; with a semi-colon", - "output": [ - [ - "Character", - "\u2720" - ] - ] - }, - { - "input": "&maltese", - "description": "Bad named entity: maltese without a semi-colon", - "output": [ - [ - "Character", - "&maltese" - ] - ] - }, - { - "input": "✠", - "description": "Named entity: maltese; with a semi-colon", - "output": [ - [ - "Character", - "\u2720" - ] - ] - }, - { - "input": "&map", - "description": "Bad named entity: map without a semi-colon", - "output": [ - [ - "Character", - "&map" - ] - ] - }, - { - "input": "↦", - "description": "Named entity: map; with a semi-colon", - "output": [ - [ - "Character", - "\u21a6" - ] - ] - }, - { - "input": "&mapsto", - "description": "Bad named entity: mapsto without a semi-colon", - "output": [ - [ - "Character", - "&mapsto" - ] - ] - }, - { - "input": "↦", - "description": "Named entity: mapsto; with a semi-colon", - "output": [ - [ - "Character", - "\u21a6" - ] - ] - }, - { - "input": "&mapstodown", - "description": "Bad named entity: mapstodown without a semi-colon", - "output": [ - [ - "Character", - "&mapstodown" - ] - ] - }, - { - "input": "↧", - "description": "Named entity: mapstodown; with a semi-colon", - "output": [ - [ - "Character", - "\u21a7" - ] - ] - }, - { - "input": "&mapstoleft", - "description": "Bad named entity: mapstoleft without a semi-colon", - "output": [ - [ - "Character", - "&mapstoleft" - ] - ] - }, - { - "input": "↤", - "description": "Named entity: mapstoleft; with a semi-colon", - "output": [ - [ - "Character", - "\u21a4" - ] - ] - }, - { - "input": "&mapstoup", - "description": "Bad named entity: mapstoup without a semi-colon", - "output": [ - [ - "Character", - "&mapstoup" - ] - ] - }, - { - "input": "↥", - "description": "Named entity: mapstoup; with a semi-colon", - "output": [ - [ - "Character", - "\u21a5" - ] - ] - }, - { - "input": "&marker", - "description": "Bad named entity: marker without a semi-colon", - "output": [ - [ - "Character", - "&marker" - ] - ] - }, - { - "input": "▮", - "description": "Named entity: marker; with a semi-colon", - "output": [ - [ - "Character", - "\u25ae" - ] - ] - }, - { - "input": "&mcomma", - "description": "Bad named entity: mcomma without a semi-colon", - "output": [ - [ - "Character", - "&mcomma" - ] - ] - }, - { - "input": "⨩", - "description": "Named entity: mcomma; with a semi-colon", - "output": [ - [ - "Character", - "\u2a29" - ] - ] - }, - { - "input": "&mcy", - "description": "Bad named entity: mcy without a semi-colon", - "output": [ - [ - "Character", - "&mcy" - ] - ] - }, - { - "input": "м", - "description": "Named entity: mcy; with a semi-colon", - "output": [ - [ - "Character", - "\u043c" - ] - ] - }, - { - "input": "&mdash", - "description": "Bad named entity: mdash without a semi-colon", - "output": [ - [ - "Character", - "&mdash" - ] - ] - }, - { - "input": "—", - "description": "Named entity: mdash; with a semi-colon", - "output": [ - [ - "Character", - "\u2014" - ] - ] - }, - { - "input": "&measuredangle", - "description": "Bad named entity: measuredangle without a semi-colon", - "output": [ - [ - "Character", - "&measuredangle" - ] - ] - }, - { - "input": "∡", - "description": "Named entity: measuredangle; with a semi-colon", - "output": [ - [ - "Character", - "\u2221" - ] - ] - }, - { - "input": "&mfr", - "description": "Bad named entity: mfr without a semi-colon", - "output": [ - [ - "Character", - "&mfr" - ] - ] - }, - { - "input": "𝔪", - "description": "Named entity: mfr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd2a" - ] - ] - }, - { - "input": "&mho", - "description": "Bad named entity: mho without a semi-colon", - "output": [ - [ - "Character", - "&mho" - ] - ] - }, - { - "input": "℧", - "description": "Named entity: mho; with a semi-colon", - "output": [ - [ - "Character", - "\u2127" - ] - ] - }, - { - "input": "µ", - "description": "Named entity: micro without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00b5" - ] - ] - }, - { - "input": "µ", - "description": "Named entity: micro; with a semi-colon", - "output": [ - [ - "Character", - "\u00b5" - ] - ] - }, - { - "input": "&mid", - "description": "Bad named entity: mid without a semi-colon", - "output": [ - [ - "Character", - "&mid" - ] - ] - }, - { - "input": "∣", - "description": "Named entity: mid; with a semi-colon", - "output": [ - [ - "Character", - "\u2223" - ] - ] - }, - { - "input": "&midast", - "description": "Bad named entity: midast without a semi-colon", - "output": [ - [ - "Character", - "&midast" - ] - ] - }, - { - "input": "*", - "description": "Named entity: midast; with a semi-colon", - "output": [ - [ - "Character", - "*" - ] - ] - }, - { - "input": "&midcir", - "description": "Bad named entity: midcir without a semi-colon", - "output": [ - [ - "Character", - "&midcir" - ] - ] - }, - { - "input": "⫰", - "description": "Named entity: midcir; with a semi-colon", - "output": [ - [ - "Character", - "\u2af0" - ] - ] - }, - { - "input": "·", - "description": "Named entity: middot without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00b7" - ] - ] - }, - { - "input": "·", - "description": "Named entity: middot; with a semi-colon", - "output": [ - [ - "Character", - "\u00b7" - ] - ] - }, - { - "input": "&minus", - "description": "Bad named entity: minus without a semi-colon", - "output": [ - [ - "Character", - "&minus" - ] - ] - }, - { - "input": "−", - "description": "Named entity: minus; with a semi-colon", - "output": [ - [ - "Character", - "\u2212" - ] - ] - }, - { - "input": "&minusb", - "description": "Bad named entity: minusb without a semi-colon", - "output": [ - [ - "Character", - "&minusb" - ] - ] - }, - { - "input": "⊟", - "description": "Named entity: minusb; with a semi-colon", - "output": [ - [ - "Character", - "\u229f" - ] - ] - }, - { - "input": "&minusd", - "description": "Bad named entity: minusd without a semi-colon", - "output": [ - [ - "Character", - "&minusd" - ] - ] - }, - { - "input": "∸", - "description": "Named entity: minusd; with a semi-colon", - "output": [ - [ - "Character", - "\u2238" - ] - ] - }, - { - "input": "&minusdu", - "description": "Bad named entity: minusdu without a semi-colon", - "output": [ - [ - "Character", - "&minusdu" - ] - ] - }, - { - "input": "⨪", - "description": "Named entity: minusdu; with a semi-colon", - "output": [ - [ - "Character", - "\u2a2a" - ] - ] - }, - { - "input": "&mlcp", - "description": "Bad named entity: mlcp without a semi-colon", - "output": [ - [ - "Character", - "&mlcp" - ] - ] - }, - { - "input": "⫛", - "description": "Named entity: mlcp; with a semi-colon", - "output": [ - [ - "Character", - "\u2adb" - ] - ] - }, - { - "input": "&mldr", - "description": "Bad named entity: mldr without a semi-colon", - "output": [ - [ - "Character", - "&mldr" - ] - ] - }, - { - "input": "…", - "description": "Named entity: mldr; with a semi-colon", - "output": [ - [ - "Character", - "\u2026" - ] - ] - }, - { - "input": "&mnplus", - "description": "Bad named entity: mnplus without a semi-colon", - "output": [ - [ - "Character", - "&mnplus" - ] - ] - }, - { - "input": "∓", - "description": "Named entity: mnplus; with a semi-colon", - "output": [ - [ - "Character", - "\u2213" - ] - ] - }, - { - "input": "&models", - "description": "Bad named entity: models without a semi-colon", - "output": [ - [ - "Character", - "&models" - ] - ] - }, - { - "input": "⊧", - "description": "Named entity: models; with a semi-colon", - "output": [ - [ - "Character", - "\u22a7" - ] - ] - }, - { - "input": "&mopf", - "description": "Bad named entity: mopf without a semi-colon", - "output": [ - [ - "Character", - "&mopf" - ] - ] - }, - { - "input": "𝕞", - "description": "Named entity: mopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd5e" - ] - ] - }, - { - "input": "&mp", - "description": "Bad named entity: mp without a semi-colon", - "output": [ - [ - "Character", - "&mp" - ] - ] - }, - { - "input": "∓", - "description": "Named entity: mp; with a semi-colon", - "output": [ - [ - "Character", - "\u2213" - ] - ] - }, - { - "input": "&mscr", - "description": "Bad named entity: mscr without a semi-colon", - "output": [ - [ - "Character", - "&mscr" - ] - ] - }, - { - "input": "𝓂", - "description": "Named entity: mscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udcc2" - ] - ] - }, - { - "input": "&mstpos", - "description": "Bad named entity: mstpos without a semi-colon", - "output": [ - [ - "Character", - "&mstpos" - ] - ] - }, - { - "input": "∾", - "description": "Named entity: mstpos; with a semi-colon", - "output": [ - [ - "Character", - "\u223e" - ] - ] - }, - { - "input": "&mu", - "description": "Bad named entity: mu without a semi-colon", - "output": [ - [ - "Character", - "&mu" - ] - ] - }, - { - "input": "μ", - "description": "Named entity: mu; with a semi-colon", - "output": [ - [ - "Character", - "\u03bc" - ] - ] - }, - { - "input": "&multimap", - "description": "Bad named entity: multimap without a semi-colon", - "output": [ - [ - "Character", - "&multimap" - ] - ] - }, - { - "input": "⊸", - "description": "Named entity: multimap; with a semi-colon", - "output": [ - [ - "Character", - "\u22b8" - ] - ] - }, - { - "input": "&mumap", - "description": "Bad named entity: mumap without a semi-colon", - "output": [ - [ - "Character", - "&mumap" - ] - ] - }, - { - "input": "⊸", - "description": "Named entity: mumap; with a semi-colon", - "output": [ - [ - "Character", - "\u22b8" - ] - ] - }, - { - "input": "&nGg", - "description": "Bad named entity: nGg without a semi-colon", - "output": [ - [ - "Character", - "&nGg" - ] - ] - }, - { - "input": "⋙̸", - "description": "Named entity: nGg; with a semi-colon", - "output": [ - [ - "Character", - "\u22d9\u0338" - ] - ] - }, - { - "input": "&nGt", - "description": "Bad named entity: nGt without a semi-colon", - "output": [ - [ - "Character", - "&nGt" - ] - ] - }, - { - "input": "≫⃒", - "description": "Named entity: nGt; with a semi-colon", - "output": [ - [ - "Character", - "\u226b\u20d2" - ] - ] - }, - { - "input": "&nGtv", - "description": "Bad named entity: nGtv without a semi-colon", - "output": [ - [ - "Character", - "&nGtv" - ] - ] - }, - { - "input": "≫̸", - "description": "Named entity: nGtv; with a semi-colon", - "output": [ - [ - "Character", - "\u226b\u0338" - ] - ] - }, - { - "input": "&nLeftarrow", - "description": "Bad named entity: nLeftarrow without a semi-colon", - "output": [ - [ - "Character", - "&nLeftarrow" - ] - ] - }, - { - "input": "⇍", - "description": "Named entity: nLeftarrow; with a semi-colon", - "output": [ - [ - "Character", - "\u21cd" - ] - ] - }, - { - "input": "&nLeftrightarrow", - "description": "Bad named entity: nLeftrightarrow without a semi-colon", - "output": [ - [ - "Character", - "&nLeftrightarrow" - ] - ] - }, - { - "input": "⇎", - "description": "Named entity: nLeftrightarrow; with a semi-colon", - "output": [ - [ - "Character", - "\u21ce" - ] - ] - }, - { - "input": "&nLl", - "description": "Bad named entity: nLl without a semi-colon", - "output": [ - [ - "Character", - "&nLl" - ] - ] - }, - { - "input": "⋘̸", - "description": "Named entity: nLl; with a semi-colon", - "output": [ - [ - "Character", - "\u22d8\u0338" - ] - ] - }, - { - "input": "&nLt", - "description": "Bad named entity: nLt without a semi-colon", - "output": [ - [ - "Character", - "&nLt" - ] - ] - }, - { - "input": "≪⃒", - "description": "Named entity: nLt; with a semi-colon", - "output": [ - [ - "Character", - "\u226a\u20d2" - ] - ] - }, - { - "input": "&nLtv", - "description": "Bad named entity: nLtv without a semi-colon", - "output": [ - [ - "Character", - "&nLtv" - ] - ] - }, - { - "input": "≪̸", - "description": "Named entity: nLtv; with a semi-colon", - "output": [ - [ - "Character", - "\u226a\u0338" - ] - ] - }, - { - "input": "&nRightarrow", - "description": "Bad named entity: nRightarrow without a semi-colon", - "output": [ - [ - "Character", - "&nRightarrow" - ] - ] - }, - { - "input": "⇏", - "description": "Named entity: nRightarrow; with a semi-colon", - "output": [ - [ - "Character", - "\u21cf" - ] - ] - }, - { - "input": "&nVDash", - "description": "Bad named entity: nVDash without a semi-colon", - "output": [ - [ - "Character", - "&nVDash" - ] - ] - }, - { - "input": "⊯", - "description": "Named entity: nVDash; with a semi-colon", - "output": [ - [ - "Character", - "\u22af" - ] - ] - }, - { - "input": "&nVdash", - "description": "Bad named entity: nVdash without a semi-colon", - "output": [ - [ - "Character", - "&nVdash" - ] - ] - }, - { - "input": "⊮", - "description": "Named entity: nVdash; with a semi-colon", - "output": [ - [ - "Character", - "\u22ae" - ] - ] - }, - { - "input": "&nabla", - "description": "Bad named entity: nabla without a semi-colon", - "output": [ - [ - "Character", - "&nabla" - ] - ] - }, - { - "input": "∇", - "description": "Named entity: nabla; with a semi-colon", - "output": [ - [ - "Character", - "\u2207" - ] - ] - }, - { - "input": "&nacute", - "description": "Bad named entity: nacute without a semi-colon", - "output": [ - [ - "Character", - "&nacute" - ] - ] - }, - { - "input": "ń", - "description": "Named entity: nacute; with a semi-colon", - "output": [ - [ - "Character", - "\u0144" - ] - ] - }, - { - "input": "&nang", - "description": "Bad named entity: nang without a semi-colon", - "output": [ - [ - "Character", - "&nang" - ] - ] - }, - { - "input": "∠⃒", - "description": "Named entity: nang; with a semi-colon", - "output": [ - [ - "Character", - "\u2220\u20d2" - ] - ] - }, - { - "input": "&nap", - "description": "Bad named entity: nap without a semi-colon", - "output": [ - [ - "Character", - "&nap" - ] - ] - }, - { - "input": "≉", - "description": "Named entity: nap; with a semi-colon", - "output": [ - [ - "Character", - "\u2249" - ] - ] - }, - { - "input": "&napE", - "description": "Bad named entity: napE without a semi-colon", - "output": [ - [ - "Character", - "&napE" - ] - ] - }, - { - "input": "⩰̸", - "description": "Named entity: napE; with a semi-colon", - "output": [ - [ - "Character", - "\u2a70\u0338" - ] - ] - }, - { - "input": "&napid", - "description": "Bad named entity: napid without a semi-colon", - "output": [ - [ - "Character", - "&napid" - ] - ] - }, - { - "input": "≋̸", - "description": "Named entity: napid; with a semi-colon", - "output": [ - [ - "Character", - "\u224b\u0338" - ] - ] - }, - { - "input": "&napos", - "description": "Bad named entity: napos without a semi-colon", - "output": [ - [ - "Character", - "&napos" - ] - ] - }, - { - "input": "ʼn", - "description": "Named entity: napos; with a semi-colon", - "output": [ - [ - "Character", - "\u0149" - ] - ] - }, - { - "input": "&napprox", - "description": "Bad named entity: napprox without a semi-colon", - "output": [ - [ - "Character", - "&napprox" - ] - ] - }, - { - "input": "≉", - "description": "Named entity: napprox; with a semi-colon", - "output": [ - [ - "Character", - "\u2249" - ] - ] - }, - { - "input": "&natur", - "description": "Bad named entity: natur without a semi-colon", - "output": [ - [ - "Character", - "&natur" - ] - ] - }, - { - "input": "♮", - "description": "Named entity: natur; with a semi-colon", - "output": [ - [ - "Character", - "\u266e" - ] - ] - }, - { - "input": "&natural", - "description": "Bad named entity: natural without a semi-colon", - "output": [ - [ - "Character", - "&natural" - ] - ] - }, - { - "input": "♮", - "description": "Named entity: natural; with a semi-colon", - "output": [ - [ - "Character", - "\u266e" - ] - ] - }, - { - "input": "&naturals", - "description": "Bad named entity: naturals without a semi-colon", - "output": [ - [ - "Character", - "&naturals" - ] - ] - }, - { - "input": "ℕ", - "description": "Named entity: naturals; with a semi-colon", - "output": [ - [ - "Character", - "\u2115" - ] - ] - }, - { - "input": " ", - "description": "Named entity: nbsp without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00a0" - ] - ] - }, - { - "input": " ", - "description": "Named entity: nbsp; with a semi-colon", - "output": [ - [ - "Character", - "\u00a0" - ] - ] - }, - { - "input": "&nbump", - "description": "Bad named entity: nbump without a semi-colon", - "output": [ - [ - "Character", - "&nbump" - ] - ] - }, - { - "input": "≎̸", - "description": "Named entity: nbump; with a semi-colon", - "output": [ - [ - "Character", - "\u224e\u0338" - ] - ] - }, - { - "input": "&nbumpe", - "description": "Bad named entity: nbumpe without a semi-colon", - "output": [ - [ - "Character", - "&nbumpe" - ] - ] - }, - { - "input": "≏̸", - "description": "Named entity: nbumpe; with a semi-colon", - "output": [ - [ - "Character", - "\u224f\u0338" - ] - ] - }, - { - "input": "&ncap", - "description": "Bad named entity: ncap without a semi-colon", - "output": [ - [ - "Character", - "&ncap" - ] - ] - }, - { - "input": "⩃", - "description": "Named entity: ncap; with a semi-colon", - "output": [ - [ - "Character", - "\u2a43" - ] - ] - }, - { - "input": "&ncaron", - "description": "Bad named entity: ncaron without a semi-colon", - "output": [ - [ - "Character", - "&ncaron" - ] - ] - }, - { - "input": "ň", - "description": "Named entity: ncaron; with a semi-colon", - "output": [ - [ - "Character", - "\u0148" - ] - ] - }, - { - "input": "&ncedil", - "description": "Bad named entity: ncedil without a semi-colon", - "output": [ - [ - "Character", - "&ncedil" - ] - ] - }, - { - "input": "ņ", - "description": "Named entity: ncedil; with a semi-colon", - "output": [ - [ - "Character", - "\u0146" - ] - ] - }, - { - "input": "&ncong", - "description": "Bad named entity: ncong without a semi-colon", - "output": [ - [ - "Character", - "&ncong" - ] - ] - }, - { - "input": "≇", - "description": "Named entity: ncong; with a semi-colon", - "output": [ - [ - "Character", - "\u2247" - ] - ] - }, - { - "input": "&ncongdot", - "description": "Bad named entity: ncongdot without a semi-colon", - "output": [ - [ - "Character", - "&ncongdot" - ] - ] - }, - { - "input": "⩭̸", - "description": "Named entity: ncongdot; with a semi-colon", - "output": [ - [ - "Character", - "\u2a6d\u0338" - ] - ] - }, - { - "input": "&ncup", - "description": "Bad named entity: ncup without a semi-colon", - "output": [ - [ - "Character", - "&ncup" - ] - ] - }, - { - "input": "⩂", - "description": "Named entity: ncup; with a semi-colon", - "output": [ - [ - "Character", - "\u2a42" - ] - ] - }, - { - "input": "&ncy", - "description": "Bad named entity: ncy without a semi-colon", - "output": [ - [ - "Character", - "&ncy" - ] - ] - }, - { - "input": "н", - "description": "Named entity: ncy; with a semi-colon", - "output": [ - [ - "Character", - "\u043d" - ] - ] - }, - { - "input": "&ndash", - "description": "Bad named entity: ndash without a semi-colon", - "output": [ - [ - "Character", - "&ndash" - ] - ] - }, - { - "input": "–", - "description": "Named entity: ndash; with a semi-colon", - "output": [ - [ - "Character", - "\u2013" - ] - ] - }, - { - "input": "&ne", - "description": "Bad named entity: ne without a semi-colon", - "output": [ - [ - "Character", - "&ne" - ] - ] - }, - { - "input": "≠", - "description": "Named entity: ne; with a semi-colon", - "output": [ - [ - "Character", - "\u2260" - ] - ] - }, - { - "input": "&neArr", - "description": "Bad named entity: neArr without a semi-colon", - "output": [ - [ - "Character", - "&neArr" - ] - ] - }, - { - "input": "⇗", - "description": "Named entity: neArr; with a semi-colon", - "output": [ - [ - "Character", - "\u21d7" - ] - ] - }, - { - "input": "&nearhk", - "description": "Bad named entity: nearhk without a semi-colon", - "output": [ - [ - "Character", - "&nearhk" - ] - ] - }, - { - "input": "⤤", - "description": "Named entity: nearhk; with a semi-colon", - "output": [ - [ - "Character", - "\u2924" - ] - ] - }, - { - "input": "&nearr", - "description": "Bad named entity: nearr without a semi-colon", - "output": [ - [ - "Character", - "&nearr" - ] - ] - }, - { - "input": "↗", - "description": "Named entity: nearr; with a semi-colon", - "output": [ - [ - "Character", - "\u2197" - ] - ] - }, - { - "input": "&nearrow", - "description": "Bad named entity: nearrow without a semi-colon", - "output": [ - [ - "Character", - "&nearrow" - ] - ] - }, - { - "input": "↗", - "description": "Named entity: nearrow; with a semi-colon", - "output": [ - [ - "Character", - "\u2197" - ] - ] - }, - { - "input": "&nedot", - "description": "Bad named entity: nedot without a semi-colon", - "output": [ - [ - "Character", - "&nedot" - ] - ] - }, - { - "input": "≐̸", - "description": "Named entity: nedot; with a semi-colon", - "output": [ - [ - "Character", - "\u2250\u0338" - ] - ] - }, - { - "input": "&nequiv", - "description": "Bad named entity: nequiv without a semi-colon", - "output": [ - [ - "Character", - "&nequiv" - ] - ] - }, - { - "input": "≢", - "description": "Named entity: nequiv; with a semi-colon", - "output": [ - [ - "Character", - "\u2262" - ] - ] - }, - { - "input": "&nesear", - "description": "Bad named entity: nesear without a semi-colon", - "output": [ - [ - "Character", - "&nesear" - ] - ] - }, - { - "input": "⤨", - "description": "Named entity: nesear; with a semi-colon", - "output": [ - [ - "Character", - "\u2928" - ] - ] - }, - { - "input": "&nesim", - "description": "Bad named entity: nesim without a semi-colon", - "output": [ - [ - "Character", - "&nesim" - ] - ] - }, - { - "input": "≂̸", - "description": "Named entity: nesim; with a semi-colon", - "output": [ - [ - "Character", - "\u2242\u0338" - ] - ] - }, - { - "input": "&nexist", - "description": "Bad named entity: nexist without a semi-colon", - "output": [ - [ - "Character", - "&nexist" - ] - ] - }, - { - "input": "∄", - "description": "Named entity: nexist; with a semi-colon", - "output": [ - [ - "Character", - "\u2204" - ] - ] - }, - { - "input": "&nexists", - "description": "Bad named entity: nexists without a semi-colon", - "output": [ - [ - "Character", - "&nexists" - ] - ] - }, - { - "input": "∄", - "description": "Named entity: nexists; with a semi-colon", - "output": [ - [ - "Character", - "\u2204" - ] - ] - }, - { - "input": "&nfr", - "description": "Bad named entity: nfr without a semi-colon", - "output": [ - [ - "Character", - "&nfr" - ] - ] - }, - { - "input": "𝔫", - "description": "Named entity: nfr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd2b" - ] - ] - }, - { - "input": "&ngE", - "description": "Bad named entity: ngE without a semi-colon", - "output": [ - [ - "Character", - "&ngE" - ] - ] - }, - { - "input": "≧̸", - "description": "Named entity: ngE; with a semi-colon", - "output": [ - [ - "Character", - "\u2267\u0338" - ] - ] - }, - { - "input": "&nge", - "description": "Bad named entity: nge without a semi-colon", - "output": [ - [ - "Character", - "&nge" - ] - ] - }, - { - "input": "≱", - "description": "Named entity: nge; with a semi-colon", - "output": [ - [ - "Character", - "\u2271" - ] - ] - }, - { - "input": "&ngeq", - "description": "Bad named entity: ngeq without a semi-colon", - "output": [ - [ - "Character", - "&ngeq" - ] - ] - }, - { - "input": "≱", - "description": "Named entity: ngeq; with a semi-colon", - "output": [ - [ - "Character", - "\u2271" - ] - ] - }, - { - "input": "&ngeqq", - "description": "Bad named entity: ngeqq without a semi-colon", - "output": [ - [ - "Character", - "&ngeqq" - ] - ] - }, - { - "input": "≧̸", - "description": "Named entity: ngeqq; with a semi-colon", - "output": [ - [ - "Character", - "\u2267\u0338" - ] - ] - }, - { - "input": "&ngeqslant", - "description": "Bad named entity: ngeqslant without a semi-colon", - "output": [ - [ - "Character", - "&ngeqslant" - ] - ] - }, - { - "input": "⩾̸", - "description": "Named entity: ngeqslant; with a semi-colon", - "output": [ - [ - "Character", - "\u2a7e\u0338" - ] - ] - }, - { - "input": "&nges", - "description": "Bad named entity: nges without a semi-colon", - "output": [ - [ - "Character", - "&nges" - ] - ] - }, - { - "input": "⩾̸", - "description": "Named entity: nges; with a semi-colon", - "output": [ - [ - "Character", - "\u2a7e\u0338" - ] - ] - }, - { - "input": "&ngsim", - "description": "Bad named entity: ngsim without a semi-colon", - "output": [ - [ - "Character", - "&ngsim" - ] - ] - }, - { - "input": "≵", - "description": "Named entity: ngsim; with a semi-colon", - "output": [ - [ - "Character", - "\u2275" - ] - ] - }, - { - "input": "&ngt", - "description": "Bad named entity: ngt without a semi-colon", - "output": [ - [ - "Character", - "&ngt" - ] - ] - }, - { - "input": "≯", - "description": "Named entity: ngt; with a semi-colon", - "output": [ - [ - "Character", - "\u226f" - ] - ] - }, - { - "input": "&ngtr", - "description": "Bad named entity: ngtr without a semi-colon", - "output": [ - [ - "Character", - "&ngtr" - ] - ] - }, - { - "input": "≯", - "description": "Named entity: ngtr; with a semi-colon", - "output": [ - [ - "Character", - "\u226f" - ] - ] - }, - { - "input": "&nhArr", - "description": "Bad named entity: nhArr without a semi-colon", - "output": [ - [ - "Character", - "&nhArr" - ] - ] - }, - { - "input": "⇎", - "description": "Named entity: nhArr; with a semi-colon", - "output": [ - [ - "Character", - "\u21ce" - ] - ] - }, - { - "input": "&nharr", - "description": "Bad named entity: nharr without a semi-colon", - "output": [ - [ - "Character", - "&nharr" - ] - ] - }, - { - "input": "↮", - "description": "Named entity: nharr; with a semi-colon", - "output": [ - [ - "Character", - "\u21ae" - ] - ] - }, - { - "input": "&nhpar", - "description": "Bad named entity: nhpar without a semi-colon", - "output": [ - [ - "Character", - "&nhpar" - ] - ] - }, - { - "input": "⫲", - "description": "Named entity: nhpar; with a semi-colon", - "output": [ - [ - "Character", - "\u2af2" - ] - ] - }, - { - "input": "&ni", - "description": "Bad named entity: ni without a semi-colon", - "output": [ - [ - "Character", - "&ni" - ] - ] - }, - { - "input": "∋", - "description": "Named entity: ni; with a semi-colon", - "output": [ - [ - "Character", - "\u220b" - ] - ] - }, - { - "input": "&nis", - "description": "Bad named entity: nis without a semi-colon", - "output": [ - [ - "Character", - "&nis" - ] - ] - }, - { - "input": "⋼", - "description": "Named entity: nis; with a semi-colon", - "output": [ - [ - "Character", - "\u22fc" - ] - ] - }, - { - "input": "&nisd", - "description": "Bad named entity: nisd without a semi-colon", - "output": [ - [ - "Character", - "&nisd" - ] - ] - }, - { - "input": "⋺", - "description": "Named entity: nisd; with a semi-colon", - "output": [ - [ - "Character", - "\u22fa" - ] - ] - }, - { - "input": "&niv", - "description": "Bad named entity: niv without a semi-colon", - "output": [ - [ - "Character", - "&niv" - ] - ] - }, - { - "input": "∋", - "description": "Named entity: niv; with a semi-colon", - "output": [ - [ - "Character", - "\u220b" - ] - ] - }, - { - "input": "&njcy", - "description": "Bad named entity: njcy without a semi-colon", - "output": [ - [ - "Character", - "&njcy" - ] - ] - }, - { - "input": "њ", - "description": "Named entity: njcy; with a semi-colon", - "output": [ - [ - "Character", - "\u045a" - ] - ] - }, - { - "input": "&nlArr", - "description": "Bad named entity: nlArr without a semi-colon", - "output": [ - [ - "Character", - "&nlArr" - ] - ] - }, - { - "input": "⇍", - "description": "Named entity: nlArr; with a semi-colon", - "output": [ - [ - "Character", - "\u21cd" - ] - ] - }, - { - "input": "&nlE", - "description": "Bad named entity: nlE without a semi-colon", - "output": [ - [ - "Character", - "&nlE" - ] - ] - }, - { - "input": "≦̸", - "description": "Named entity: nlE; with a semi-colon", - "output": [ - [ - "Character", - "\u2266\u0338" - ] - ] - }, - { - "input": "&nlarr", - "description": "Bad named entity: nlarr without a semi-colon", - "output": [ - [ - "Character", - "&nlarr" - ] - ] - }, - { - "input": "↚", - "description": "Named entity: nlarr; with a semi-colon", - "output": [ - [ - "Character", - "\u219a" - ] - ] - }, - { - "input": "&nldr", - "description": "Bad named entity: nldr without a semi-colon", - "output": [ - [ - "Character", - "&nldr" - ] - ] - }, - { - "input": "‥", - "description": "Named entity: nldr; with a semi-colon", - "output": [ - [ - "Character", - "\u2025" - ] - ] - }, - { - "input": "&nle", - "description": "Bad named entity: nle without a semi-colon", - "output": [ - [ - "Character", - "&nle" - ] - ] - }, - { - "input": "≰", - "description": "Named entity: nle; with a semi-colon", - "output": [ - [ - "Character", - "\u2270" - ] - ] - }, - { - "input": "&nleftarrow", - "description": "Bad named entity: nleftarrow without a semi-colon", - "output": [ - [ - "Character", - "&nleftarrow" - ] - ] - }, - { - "input": "↚", - "description": "Named entity: nleftarrow; with a semi-colon", - "output": [ - [ - "Character", - "\u219a" - ] - ] - }, - { - "input": "&nleftrightarrow", - "description": "Bad named entity: nleftrightarrow without a semi-colon", - "output": [ - [ - "Character", - "&nleftrightarrow" - ] - ] - }, - { - "input": "↮", - "description": "Named entity: nleftrightarrow; with a semi-colon", - "output": [ - [ - "Character", - "\u21ae" - ] - ] - }, - { - "input": "&nleq", - "description": "Bad named entity: nleq without a semi-colon", - "output": [ - [ - "Character", - "&nleq" - ] - ] - }, - { - "input": "≰", - "description": "Named entity: nleq; with a semi-colon", - "output": [ - [ - "Character", - "\u2270" - ] - ] - }, - { - "input": "&nleqq", - "description": "Bad named entity: nleqq without a semi-colon", - "output": [ - [ - "Character", - "&nleqq" - ] - ] - }, - { - "input": "≦̸", - "description": "Named entity: nleqq; with a semi-colon", - "output": [ - [ - "Character", - "\u2266\u0338" - ] - ] - }, - { - "input": "&nleqslant", - "description": "Bad named entity: nleqslant without a semi-colon", - "output": [ - [ - "Character", - "&nleqslant" - ] - ] - }, - { - "input": "⩽̸", - "description": "Named entity: nleqslant; with a semi-colon", - "output": [ - [ - "Character", - "\u2a7d\u0338" - ] - ] - }, - { - "input": "&nles", - "description": "Bad named entity: nles without a semi-colon", - "output": [ - [ - "Character", - "&nles" - ] - ] - }, - { - "input": "⩽̸", - "description": "Named entity: nles; with a semi-colon", - "output": [ - [ - "Character", - "\u2a7d\u0338" - ] - ] - }, - { - "input": "&nless", - "description": "Bad named entity: nless without a semi-colon", - "output": [ - [ - "Character", - "&nless" - ] - ] - }, - { - "input": "≮", - "description": "Named entity: nless; with a semi-colon", - "output": [ - [ - "Character", - "\u226e" - ] - ] - }, - { - "input": "&nlsim", - "description": "Bad named entity: nlsim without a semi-colon", - "output": [ - [ - "Character", - "&nlsim" - ] - ] - }, - { - "input": "≴", - "description": "Named entity: nlsim; with a semi-colon", - "output": [ - [ - "Character", - "\u2274" - ] - ] - }, - { - "input": "&nlt", - "description": "Bad named entity: nlt without a semi-colon", - "output": [ - [ - "Character", - "&nlt" - ] - ] - }, - { - "input": "≮", - "description": "Named entity: nlt; with a semi-colon", - "output": [ - [ - "Character", - "\u226e" - ] - ] - }, - { - "input": "&nltri", - "description": "Bad named entity: nltri without a semi-colon", - "output": [ - [ - "Character", - "&nltri" - ] - ] - }, - { - "input": "⋪", - "description": "Named entity: nltri; with a semi-colon", - "output": [ - [ - "Character", - "\u22ea" - ] - ] - }, - { - "input": "&nltrie", - "description": "Bad named entity: nltrie without a semi-colon", - "output": [ - [ - "Character", - "&nltrie" - ] - ] - }, - { - "input": "⋬", - "description": "Named entity: nltrie; with a semi-colon", - "output": [ - [ - "Character", - "\u22ec" - ] - ] - }, - { - "input": "&nmid", - "description": "Bad named entity: nmid without a semi-colon", - "output": [ - [ - "Character", - "&nmid" - ] - ] - }, - { - "input": "∤", - "description": "Named entity: nmid; with a semi-colon", - "output": [ - [ - "Character", - "\u2224" - ] - ] - }, - { - "input": "&nopf", - "description": "Bad named entity: nopf without a semi-colon", - "output": [ - [ - "Character", - "&nopf" - ] - ] - }, - { - "input": "𝕟", - "description": "Named entity: nopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd5f" - ] - ] - }, - { - "input": "¬", - "description": "Named entity: not without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00ac" - ] - ] - }, - { - "input": "¬", - "description": "Named entity: not; with a semi-colon", - "output": [ - [ - "Character", - "\u00ac" - ] - ] - }, - { - "input": "∉", - "description": "Named entity: notin; with a semi-colon", - "output": [ - [ - "Character", - "\u2209" - ] - ] - }, - { - "input": "⋹̸", - "description": "Named entity: notinE; with a semi-colon", - "output": [ - [ - "Character", - "\u22f9\u0338" - ] - ] - }, - { - "input": "⋵̸", - "description": "Named entity: notindot; with a semi-colon", - "output": [ - [ - "Character", - "\u22f5\u0338" - ] - ] - }, - { - "input": "∉", - "description": "Named entity: notinva; with a semi-colon", - "output": [ - [ - "Character", - "\u2209" - ] - ] - }, - { - "input": "⋷", - "description": "Named entity: notinvb; with a semi-colon", - "output": [ - [ - "Character", - "\u22f7" - ] - ] - }, - { - "input": "⋶", - "description": "Named entity: notinvc; with a semi-colon", - "output": [ - [ - "Character", - "\u22f6" - ] - ] - }, - { - "input": "∌", - "description": "Named entity: notni; with a semi-colon", - "output": [ - [ - "Character", - "\u220c" - ] - ] - }, - { - "input": "∌", - "description": "Named entity: notniva; with a semi-colon", - "output": [ - [ - "Character", - "\u220c" - ] - ] - }, - { - "input": "⋾", - "description": "Named entity: notnivb; with a semi-colon", - "output": [ - [ - "Character", - "\u22fe" - ] - ] - }, - { - "input": "⋽", - "description": "Named entity: notnivc; with a semi-colon", - "output": [ - [ - "Character", - "\u22fd" - ] - ] - }, - { - "input": "&npar", - "description": "Bad named entity: npar without a semi-colon", - "output": [ - [ - "Character", - "&npar" - ] - ] - }, - { - "input": "∦", - "description": "Named entity: npar; with a semi-colon", - "output": [ - [ - "Character", - "\u2226" - ] - ] - }, - { - "input": "&nparallel", - "description": "Bad named entity: nparallel without a semi-colon", - "output": [ - [ - "Character", - "&nparallel" - ] - ] - }, - { - "input": "∦", - "description": "Named entity: nparallel; with a semi-colon", - "output": [ - [ - "Character", - "\u2226" - ] - ] - }, - { - "input": "&nparsl", - "description": "Bad named entity: nparsl without a semi-colon", - "output": [ - [ - "Character", - "&nparsl" - ] - ] - }, - { - "input": "⫽⃥", - "description": "Named entity: nparsl; with a semi-colon", - "output": [ - [ - "Character", - "\u2afd\u20e5" - ] - ] - }, - { - "input": "&npart", - "description": "Bad named entity: npart without a semi-colon", - "output": [ - [ - "Character", - "&npart" - ] - ] - }, - { - "input": "∂̸", - "description": "Named entity: npart; with a semi-colon", - "output": [ - [ - "Character", - "\u2202\u0338" - ] - ] - }, - { - "input": "&npolint", - "description": "Bad named entity: npolint without a semi-colon", - "output": [ - [ - "Character", - "&npolint" - ] - ] - }, - { - "input": "⨔", - "description": "Named entity: npolint; with a semi-colon", - "output": [ - [ - "Character", - "\u2a14" - ] - ] - }, - { - "input": "&npr", - "description": "Bad named entity: npr without a semi-colon", - "output": [ - [ - "Character", - "&npr" - ] - ] - }, - { - "input": "⊀", - "description": "Named entity: npr; with a semi-colon", - "output": [ - [ - "Character", - "\u2280" - ] - ] - }, - { - "input": "&nprcue", - "description": "Bad named entity: nprcue without a semi-colon", - "output": [ - [ - "Character", - "&nprcue" - ] - ] - }, - { - "input": "⋠", - "description": "Named entity: nprcue; with a semi-colon", - "output": [ - [ - "Character", - "\u22e0" - ] - ] - }, - { - "input": "&npre", - "description": "Bad named entity: npre without a semi-colon", - "output": [ - [ - "Character", - "&npre" - ] - ] - }, - { - "input": "⪯̸", - "description": "Named entity: npre; with a semi-colon", - "output": [ - [ - "Character", - "\u2aaf\u0338" - ] - ] - }, - { - "input": "&nprec", - "description": "Bad named entity: nprec without a semi-colon", - "output": [ - [ - "Character", - "&nprec" - ] - ] - }, - { - "input": "⊀", - "description": "Named entity: nprec; with a semi-colon", - "output": [ - [ - "Character", - "\u2280" - ] - ] - }, - { - "input": "&npreceq", - "description": "Bad named entity: npreceq without a semi-colon", - "output": [ - [ - "Character", - "&npreceq" - ] - ] - }, - { - "input": "⪯̸", - "description": "Named entity: npreceq; with a semi-colon", - "output": [ - [ - "Character", - "\u2aaf\u0338" - ] - ] - }, - { - "input": "&nrArr", - "description": "Bad named entity: nrArr without a semi-colon", - "output": [ - [ - "Character", - "&nrArr" - ] - ] - }, - { - "input": "⇏", - "description": "Named entity: nrArr; with a semi-colon", - "output": [ - [ - "Character", - "\u21cf" - ] - ] - }, - { - "input": "&nrarr", - "description": "Bad named entity: nrarr without a semi-colon", - "output": [ - [ - "Character", - "&nrarr" - ] - ] - }, - { - "input": "↛", - "description": "Named entity: nrarr; with a semi-colon", - "output": [ - [ - "Character", - "\u219b" - ] - ] - }, - { - "input": "&nrarrc", - "description": "Bad named entity: nrarrc without a semi-colon", - "output": [ - [ - "Character", - "&nrarrc" - ] - ] - }, - { - "input": "⤳̸", - "description": "Named entity: nrarrc; with a semi-colon", - "output": [ - [ - "Character", - "\u2933\u0338" - ] - ] - }, - { - "input": "&nrarrw", - "description": "Bad named entity: nrarrw without a semi-colon", - "output": [ - [ - "Character", - "&nrarrw" - ] - ] - }, - { - "input": "↝̸", - "description": "Named entity: nrarrw; with a semi-colon", - "output": [ - [ - "Character", - "\u219d\u0338" - ] - ] - }, - { - "input": "&nrightarrow", - "description": "Bad named entity: nrightarrow without a semi-colon", - "output": [ - [ - "Character", - "&nrightarrow" - ] - ] - }, - { - "input": "↛", - "description": "Named entity: nrightarrow; with a semi-colon", - "output": [ - [ - "Character", - "\u219b" - ] - ] - }, - { - "input": "&nrtri", - "description": "Bad named entity: nrtri without a semi-colon", - "output": [ - [ - "Character", - "&nrtri" - ] - ] - }, - { - "input": "⋫", - "description": "Named entity: nrtri; with a semi-colon", - "output": [ - [ - "Character", - "\u22eb" - ] - ] - }, - { - "input": "&nrtrie", - "description": "Bad named entity: nrtrie without a semi-colon", - "output": [ - [ - "Character", - "&nrtrie" - ] - ] - }, - { - "input": "⋭", - "description": "Named entity: nrtrie; with a semi-colon", - "output": [ - [ - "Character", - "\u22ed" - ] - ] - }, - { - "input": "&nsc", - "description": "Bad named entity: nsc without a semi-colon", - "output": [ - [ - "Character", - "&nsc" - ] - ] - }, - { - "input": "⊁", - "description": "Named entity: nsc; with a semi-colon", - "output": [ - [ - "Character", - "\u2281" - ] - ] - }, - { - "input": "&nsccue", - "description": "Bad named entity: nsccue without a semi-colon", - "output": [ - [ - "Character", - "&nsccue" - ] - ] - }, - { - "input": "⋡", - "description": "Named entity: nsccue; with a semi-colon", - "output": [ - [ - "Character", - "\u22e1" - ] - ] - }, - { - "input": "&nsce", - "description": "Bad named entity: nsce without a semi-colon", - "output": [ - [ - "Character", - "&nsce" - ] - ] - }, - { - "input": "⪰̸", - "description": "Named entity: nsce; with a semi-colon", - "output": [ - [ - "Character", - "\u2ab0\u0338" - ] - ] - }, - { - "input": "&nscr", - "description": "Bad named entity: nscr without a semi-colon", - "output": [ - [ - "Character", - "&nscr" - ] - ] - }, - { - "input": "𝓃", - "description": "Named entity: nscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udcc3" - ] - ] - }, - { - "input": "&nshortmid", - "description": "Bad named entity: nshortmid without a semi-colon", - "output": [ - [ - "Character", - "&nshortmid" - ] - ] - }, - { - "input": "∤", - "description": "Named entity: nshortmid; with a semi-colon", - "output": [ - [ - "Character", - "\u2224" - ] - ] - }, - { - "input": "&nshortparallel", - "description": "Bad named entity: nshortparallel without a semi-colon", - "output": [ - [ - "Character", - "&nshortparallel" - ] - ] - }, - { - "input": "∦", - "description": "Named entity: nshortparallel; with a semi-colon", - "output": [ - [ - "Character", - "\u2226" - ] - ] - }, - { - "input": "&nsim", - "description": "Bad named entity: nsim without a semi-colon", - "output": [ - [ - "Character", - "&nsim" - ] - ] - }, - { - "input": "≁", - "description": "Named entity: nsim; with a semi-colon", - "output": [ - [ - "Character", - "\u2241" - ] - ] - }, - { - "input": "&nsime", - "description": "Bad named entity: nsime without a semi-colon", - "output": [ - [ - "Character", - "&nsime" - ] - ] - }, - { - "input": "≄", - "description": "Named entity: nsime; with a semi-colon", - "output": [ - [ - "Character", - "\u2244" - ] - ] - }, - { - "input": "&nsimeq", - "description": "Bad named entity: nsimeq without a semi-colon", - "output": [ - [ - "Character", - "&nsimeq" - ] - ] - }, - { - "input": "≄", - "description": "Named entity: nsimeq; with a semi-colon", - "output": [ - [ - "Character", - "\u2244" - ] - ] - }, - { - "input": "&nsmid", - "description": "Bad named entity: nsmid without a semi-colon", - "output": [ - [ - "Character", - "&nsmid" - ] - ] - }, - { - "input": "∤", - "description": "Named entity: nsmid; with a semi-colon", - "output": [ - [ - "Character", - "\u2224" - ] - ] - }, - { - "input": "&nspar", - "description": "Bad named entity: nspar without a semi-colon", - "output": [ - [ - "Character", - "&nspar" - ] - ] - }, - { - "input": "∦", - "description": "Named entity: nspar; with a semi-colon", - "output": [ - [ - "Character", - "\u2226" - ] - ] - }, - { - "input": "&nsqsube", - "description": "Bad named entity: nsqsube without a semi-colon", - "output": [ - [ - "Character", - "&nsqsube" - ] - ] - }, - { - "input": "⋢", - "description": "Named entity: nsqsube; with a semi-colon", - "output": [ - [ - "Character", - "\u22e2" - ] - ] - }, - { - "input": "&nsqsupe", - "description": "Bad named entity: nsqsupe without a semi-colon", - "output": [ - [ - "Character", - "&nsqsupe" - ] - ] - }, - { - "input": "⋣", - "description": "Named entity: nsqsupe; with a semi-colon", - "output": [ - [ - "Character", - "\u22e3" - ] - ] - }, - { - "input": "&nsub", - "description": "Bad named entity: nsub without a semi-colon", - "output": [ - [ - "Character", - "&nsub" - ] - ] - }, - { - "input": "⊄", - "description": "Named entity: nsub; with a semi-colon", - "output": [ - [ - "Character", - "\u2284" - ] - ] - }, - { - "input": "&nsubE", - "description": "Bad named entity: nsubE without a semi-colon", - "output": [ - [ - "Character", - "&nsubE" - ] - ] - }, - { - "input": "⫅̸", - "description": "Named entity: nsubE; with a semi-colon", - "output": [ - [ - "Character", - "\u2ac5\u0338" - ] - ] - }, - { - "input": "&nsube", - "description": "Bad named entity: nsube without a semi-colon", - "output": [ - [ - "Character", - "&nsube" - ] - ] - }, - { - "input": "⊈", - "description": "Named entity: nsube; with a semi-colon", - "output": [ - [ - "Character", - "\u2288" - ] - ] - }, - { - "input": "&nsubset", - "description": "Bad named entity: nsubset without a semi-colon", - "output": [ - [ - "Character", - "&nsubset" - ] - ] - }, - { - "input": "⊂⃒", - "description": "Named entity: nsubset; with a semi-colon", - "output": [ - [ - "Character", - "\u2282\u20d2" - ] - ] - }, - { - "input": "&nsubseteq", - "description": "Bad named entity: nsubseteq without a semi-colon", - "output": [ - [ - "Character", - "&nsubseteq" - ] - ] - }, - { - "input": "⊈", - "description": "Named entity: nsubseteq; with a semi-colon", - "output": [ - [ - "Character", - "\u2288" - ] - ] - }, - { - "input": "&nsubseteqq", - "description": "Bad named entity: nsubseteqq without a semi-colon", - "output": [ - [ - "Character", - "&nsubseteqq" - ] - ] - }, - { - "input": "⫅̸", - "description": "Named entity: nsubseteqq; with a semi-colon", - "output": [ - [ - "Character", - "\u2ac5\u0338" - ] - ] - }, - { - "input": "&nsucc", - "description": "Bad named entity: nsucc without a semi-colon", - "output": [ - [ - "Character", - "&nsucc" - ] - ] - }, - { - "input": "⊁", - "description": "Named entity: nsucc; with a semi-colon", - "output": [ - [ - "Character", - "\u2281" - ] - ] - }, - { - "input": "&nsucceq", - "description": "Bad named entity: nsucceq without a semi-colon", - "output": [ - [ - "Character", - "&nsucceq" - ] - ] - }, - { - "input": "⪰̸", - "description": "Named entity: nsucceq; with a semi-colon", - "output": [ - [ - "Character", - "\u2ab0\u0338" - ] - ] - }, - { - "input": "&nsup", - "description": "Bad named entity: nsup without a semi-colon", - "output": [ - [ - "Character", - "&nsup" - ] - ] - }, - { - "input": "⊅", - "description": "Named entity: nsup; with a semi-colon", - "output": [ - [ - "Character", - "\u2285" - ] - ] - }, - { - "input": "&nsupE", - "description": "Bad named entity: nsupE without a semi-colon", - "output": [ - [ - "Character", - "&nsupE" - ] - ] - }, - { - "input": "⫆̸", - "description": "Named entity: nsupE; with a semi-colon", - "output": [ - [ - "Character", - "\u2ac6\u0338" - ] - ] - }, - { - "input": "&nsupe", - "description": "Bad named entity: nsupe without a semi-colon", - "output": [ - [ - "Character", - "&nsupe" - ] - ] - }, - { - "input": "⊉", - "description": "Named entity: nsupe; with a semi-colon", - "output": [ - [ - "Character", - "\u2289" - ] - ] - }, - { - "input": "&nsupset", - "description": "Bad named entity: nsupset without a semi-colon", - "output": [ - [ - "Character", - "&nsupset" - ] - ] - }, - { - "input": "⊃⃒", - "description": "Named entity: nsupset; with a semi-colon", - "output": [ - [ - "Character", - "\u2283\u20d2" - ] - ] - }, - { - "input": "&nsupseteq", - "description": "Bad named entity: nsupseteq without a semi-colon", - "output": [ - [ - "Character", - "&nsupseteq" - ] - ] - }, - { - "input": "⊉", - "description": "Named entity: nsupseteq; with a semi-colon", - "output": [ - [ - "Character", - "\u2289" - ] - ] - }, - { - "input": "&nsupseteqq", - "description": "Bad named entity: nsupseteqq without a semi-colon", - "output": [ - [ - "Character", - "&nsupseteqq" - ] - ] - }, - { - "input": "⫆̸", - "description": "Named entity: nsupseteqq; with a semi-colon", - "output": [ - [ - "Character", - "\u2ac6\u0338" - ] - ] - }, - { - "input": "&ntgl", - "description": "Bad named entity: ntgl without a semi-colon", - "output": [ - [ - "Character", - "&ntgl" - ] - ] - }, - { - "input": "≹", - "description": "Named entity: ntgl; with a semi-colon", - "output": [ - [ - "Character", - "\u2279" - ] - ] - }, - { - "input": "ñ", - "description": "Named entity: ntilde without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00f1" - ] - ] - }, - { - "input": "ñ", - "description": "Named entity: ntilde; with a semi-colon", - "output": [ - [ - "Character", - "\u00f1" - ] - ] - }, - { - "input": "&ntlg", - "description": "Bad named entity: ntlg without a semi-colon", - "output": [ - [ - "Character", - "&ntlg" - ] - ] - }, - { - "input": "≸", - "description": "Named entity: ntlg; with a semi-colon", - "output": [ - [ - "Character", - "\u2278" - ] - ] - }, - { - "input": "&ntriangleleft", - "description": "Bad named entity: ntriangleleft without a semi-colon", - "output": [ - [ - "Character", - "&ntriangleleft" - ] - ] - }, - { - "input": "⋪", - "description": "Named entity: ntriangleleft; with a semi-colon", - "output": [ - [ - "Character", - "\u22ea" - ] - ] - }, - { - "input": "&ntrianglelefteq", - "description": "Bad named entity: ntrianglelefteq without a semi-colon", - "output": [ - [ - "Character", - "&ntrianglelefteq" - ] - ] - }, - { - "input": "⋬", - "description": "Named entity: ntrianglelefteq; with a semi-colon", - "output": [ - [ - "Character", - "\u22ec" - ] - ] - }, - { - "input": "&ntriangleright", - "description": "Bad named entity: ntriangleright without a semi-colon", - "output": [ - [ - "Character", - "&ntriangleright" - ] - ] - }, - { - "input": "⋫", - "description": "Named entity: ntriangleright; with a semi-colon", - "output": [ - [ - "Character", - "\u22eb" - ] - ] - }, - { - "input": "&ntrianglerighteq", - "description": "Bad named entity: ntrianglerighteq without a semi-colon", - "output": [ - [ - "Character", - "&ntrianglerighteq" - ] - ] - }, - { - "input": "⋭", - "description": "Named entity: ntrianglerighteq; with a semi-colon", - "output": [ - [ - "Character", - "\u22ed" - ] - ] - }, - { - "input": "&nu", - "description": "Bad named entity: nu without a semi-colon", - "output": [ - [ - "Character", - "&nu" - ] - ] - }, - { - "input": "ν", - "description": "Named entity: nu; with a semi-colon", - "output": [ - [ - "Character", - "\u03bd" - ] - ] - }, - { - "input": "&num", - "description": "Bad named entity: num without a semi-colon", - "output": [ - [ - "Character", - "&num" - ] - ] - }, - { - "input": "#", - "description": "Named entity: num; with a semi-colon", - "output": [ - [ - "Character", - "#" - ] - ] - }, - { - "input": "&numero", - "description": "Bad named entity: numero without a semi-colon", - "output": [ - [ - "Character", - "&numero" - ] - ] - }, - { - "input": "№", - "description": "Named entity: numero; with a semi-colon", - "output": [ - [ - "Character", - "\u2116" - ] - ] - }, - { - "input": "&numsp", - "description": "Bad named entity: numsp without a semi-colon", - "output": [ - [ - "Character", - "&numsp" - ] - ] - }, - { - "input": " ", - "description": "Named entity: numsp; with a semi-colon", - "output": [ - [ - "Character", - "\u2007" - ] - ] - }, - { - "input": "&nvDash", - "description": "Bad named entity: nvDash without a semi-colon", - "output": [ - [ - "Character", - "&nvDash" - ] - ] - }, - { - "input": "⊭", - "description": "Named entity: nvDash; with a semi-colon", - "output": [ - [ - "Character", - "\u22ad" - ] - ] - }, - { - "input": "&nvHarr", - "description": "Bad named entity: nvHarr without a semi-colon", - "output": [ - [ - "Character", - "&nvHarr" - ] - ] - }, - { - "input": "⤄", - "description": "Named entity: nvHarr; with a semi-colon", - "output": [ - [ - "Character", - "\u2904" - ] - ] - }, - { - "input": "&nvap", - "description": "Bad named entity: nvap without a semi-colon", - "output": [ - [ - "Character", - "&nvap" - ] - ] - }, - { - "input": "≍⃒", - "description": "Named entity: nvap; with a semi-colon", - "output": [ - [ - "Character", - "\u224d\u20d2" - ] - ] - }, - { - "input": "&nvdash", - "description": "Bad named entity: nvdash without a semi-colon", - "output": [ - [ - "Character", - "&nvdash" - ] - ] - }, - { - "input": "⊬", - "description": "Named entity: nvdash; with a semi-colon", - "output": [ - [ - "Character", - "\u22ac" - ] - ] - }, - { - "input": "&nvge", - "description": "Bad named entity: nvge without a semi-colon", - "output": [ - [ - "Character", - "&nvge" - ] - ] - }, - { - "input": "≥⃒", - "description": "Named entity: nvge; with a semi-colon", - "output": [ - [ - "Character", - "\u2265\u20d2" - ] - ] - }, - { - "input": "&nvgt", - "description": "Bad named entity: nvgt without a semi-colon", - "output": [ - [ - "Character", - "&nvgt" - ] - ] - }, - { - "input": ">⃒", - "description": "Named entity: nvgt; with a semi-colon", - "output": [ - [ - "Character", - ">\u20d2" - ] - ] - }, - { - "input": "&nvinfin", - "description": "Bad named entity: nvinfin without a semi-colon", - "output": [ - [ - "Character", - "&nvinfin" - ] - ] - }, - { - "input": "⧞", - "description": "Named entity: nvinfin; with a semi-colon", - "output": [ - [ - "Character", - "\u29de" - ] - ] - }, - { - "input": "&nvlArr", - "description": "Bad named entity: nvlArr without a semi-colon", - "output": [ - [ - "Character", - "&nvlArr" - ] - ] - }, - { - "input": "⤂", - "description": "Named entity: nvlArr; with a semi-colon", - "output": [ - [ - "Character", - "\u2902" - ] - ] - }, - { - "input": "&nvle", - "description": "Bad named entity: nvle without a semi-colon", - "output": [ - [ - "Character", - "&nvle" - ] - ] - }, - { - "input": "≤⃒", - "description": "Named entity: nvle; with a semi-colon", - "output": [ - [ - "Character", - "\u2264\u20d2" - ] - ] - }, - { - "input": "&nvlt", - "description": "Bad named entity: nvlt without a semi-colon", - "output": [ - [ - "Character", - "&nvlt" - ] - ] - }, - { - "input": "<⃒", - "description": "Named entity: nvlt; with a semi-colon", - "output": [ - [ - "Character", - "<\u20d2" - ] - ] - }, - { - "input": "&nvltrie", - "description": "Bad named entity: nvltrie without a semi-colon", - "output": [ - [ - "Character", - "&nvltrie" - ] - ] - }, - { - "input": "⊴⃒", - "description": "Named entity: nvltrie; with a semi-colon", - "output": [ - [ - "Character", - "\u22b4\u20d2" - ] - ] - }, - { - "input": "&nvrArr", - "description": "Bad named entity: nvrArr without a semi-colon", - "output": [ - [ - "Character", - "&nvrArr" - ] - ] - }, - { - "input": "⤃", - "description": "Named entity: nvrArr; with a semi-colon", - "output": [ - [ - "Character", - "\u2903" - ] - ] - }, - { - "input": "&nvrtrie", - "description": "Bad named entity: nvrtrie without a semi-colon", - "output": [ - [ - "Character", - "&nvrtrie" - ] - ] - }, - { - "input": "⊵⃒", - "description": "Named entity: nvrtrie; with a semi-colon", - "output": [ - [ - "Character", - "\u22b5\u20d2" - ] - ] - }, - { - "input": "&nvsim", - "description": "Bad named entity: nvsim without a semi-colon", - "output": [ - [ - "Character", - "&nvsim" - ] - ] - }, - { - "input": "∼⃒", - "description": "Named entity: nvsim; with a semi-colon", - "output": [ - [ - "Character", - "\u223c\u20d2" - ] - ] - }, - { - "input": "&nwArr", - "description": "Bad named entity: nwArr without a semi-colon", - "output": [ - [ - "Character", - "&nwArr" - ] - ] - }, - { - "input": "⇖", - "description": "Named entity: nwArr; with a semi-colon", - "output": [ - [ - "Character", - "\u21d6" - ] - ] - }, - { - "input": "&nwarhk", - "description": "Bad named entity: nwarhk without a semi-colon", - "output": [ - [ - "Character", - "&nwarhk" - ] - ] - }, - { - "input": "⤣", - "description": "Named entity: nwarhk; with a semi-colon", - "output": [ - [ - "Character", - "\u2923" - ] - ] - }, - { - "input": "&nwarr", - "description": "Bad named entity: nwarr without a semi-colon", - "output": [ - [ - "Character", - "&nwarr" - ] - ] - }, - { - "input": "↖", - "description": "Named entity: nwarr; with a semi-colon", - "output": [ - [ - "Character", - "\u2196" - ] - ] - }, - { - "input": "&nwarrow", - "description": "Bad named entity: nwarrow without a semi-colon", - "output": [ - [ - "Character", - "&nwarrow" - ] - ] - }, - { - "input": "↖", - "description": "Named entity: nwarrow; with a semi-colon", - "output": [ - [ - "Character", - "\u2196" - ] - ] - }, - { - "input": "&nwnear", - "description": "Bad named entity: nwnear without a semi-colon", - "output": [ - [ - "Character", - "&nwnear" - ] - ] - }, - { - "input": "⤧", - "description": "Named entity: nwnear; with a semi-colon", - "output": [ - [ - "Character", - "\u2927" - ] - ] - }, - { - "input": "&oS", - "description": "Bad named entity: oS without a semi-colon", - "output": [ - [ - "Character", - "&oS" - ] - ] - }, - { - "input": "Ⓢ", - "description": "Named entity: oS; with a semi-colon", - "output": [ - [ - "Character", - "\u24c8" - ] - ] - }, - { - "input": "ó", - "description": "Named entity: oacute without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00f3" - ] - ] - }, - { - "input": "ó", - "description": "Named entity: oacute; with a semi-colon", - "output": [ - [ - "Character", - "\u00f3" - ] - ] - }, - { - "input": "&oast", - "description": "Bad named entity: oast without a semi-colon", - "output": [ - [ - "Character", - "&oast" - ] - ] - }, - { - "input": "⊛", - "description": "Named entity: oast; with a semi-colon", - "output": [ - [ - "Character", - "\u229b" - ] - ] - }, - { - "input": "&ocir", - "description": "Bad named entity: ocir without a semi-colon", - "output": [ - [ - "Character", - "&ocir" - ] - ] - }, - { - "input": "⊚", - "description": "Named entity: ocir; with a semi-colon", - "output": [ - [ - "Character", - "\u229a" - ] - ] - }, - { - "input": "ô", - "description": "Named entity: ocirc without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00f4" - ] - ] - }, - { - "input": "ô", - "description": "Named entity: ocirc; with a semi-colon", - "output": [ - [ - "Character", - "\u00f4" - ] - ] - }, - { - "input": "&ocy", - "description": "Bad named entity: ocy without a semi-colon", - "output": [ - [ - "Character", - "&ocy" - ] - ] - }, - { - "input": "о", - "description": "Named entity: ocy; with a semi-colon", - "output": [ - [ - "Character", - "\u043e" - ] - ] - }, - { - "input": "&odash", - "description": "Bad named entity: odash without a semi-colon", - "output": [ - [ - "Character", - "&odash" - ] - ] - }, - { - "input": "⊝", - "description": "Named entity: odash; with a semi-colon", - "output": [ - [ - "Character", - "\u229d" - ] - ] - }, - { - "input": "&odblac", - "description": "Bad named entity: odblac without a semi-colon", - "output": [ - [ - "Character", - "&odblac" - ] - ] - }, - { - "input": "ő", - "description": "Named entity: odblac; with a semi-colon", - "output": [ - [ - "Character", - "\u0151" - ] - ] - }, - { - "input": "&odiv", - "description": "Bad named entity: odiv without a semi-colon", - "output": [ - [ - "Character", - "&odiv" - ] - ] - }, - { - "input": "⨸", - "description": "Named entity: odiv; with a semi-colon", - "output": [ - [ - "Character", - "\u2a38" - ] - ] - }, - { - "input": "&odot", - "description": "Bad named entity: odot without a semi-colon", - "output": [ - [ - "Character", - "&odot" - ] - ] - }, - { - "input": "⊙", - "description": "Named entity: odot; with a semi-colon", - "output": [ - [ - "Character", - "\u2299" - ] - ] - }, - { - "input": "&odsold", - "description": "Bad named entity: odsold without a semi-colon", - "output": [ - [ - "Character", - "&odsold" - ] - ] - }, - { - "input": "⦼", - "description": "Named entity: odsold; with a semi-colon", - "output": [ - [ - "Character", - "\u29bc" - ] - ] - }, - { - "input": "&oelig", - "description": "Bad named entity: oelig without a semi-colon", - "output": [ - [ - "Character", - "&oelig" - ] - ] - }, - { - "input": "œ", - "description": "Named entity: oelig; with a semi-colon", - "output": [ - [ - "Character", - "\u0153" - ] - ] - }, - { - "input": "&ofcir", - "description": "Bad named entity: ofcir without a semi-colon", - "output": [ - [ - "Character", - "&ofcir" - ] - ] - }, - { - "input": "⦿", - "description": "Named entity: ofcir; with a semi-colon", - "output": [ - [ - "Character", - "\u29bf" - ] - ] - }, - { - "input": "&ofr", - "description": "Bad named entity: ofr without a semi-colon", - "output": [ - [ - "Character", - "&ofr" - ] - ] - }, - { - "input": "𝔬", - "description": "Named entity: ofr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd2c" - ] - ] - }, - { - "input": "&ogon", - "description": "Bad named entity: ogon without a semi-colon", - "output": [ - [ - "Character", - "&ogon" - ] - ] - }, - { - "input": "˛", - "description": "Named entity: ogon; with a semi-colon", - "output": [ - [ - "Character", - "\u02db" - ] - ] - }, - { - "input": "ò", - "description": "Named entity: ograve without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00f2" - ] - ] - }, - { - "input": "ò", - "description": "Named entity: ograve; with a semi-colon", - "output": [ - [ - "Character", - "\u00f2" - ] - ] - }, - { - "input": "&ogt", - "description": "Bad named entity: ogt without a semi-colon", - "output": [ - [ - "Character", - "&ogt" - ] - ] - }, - { - "input": "⧁", - "description": "Named entity: ogt; with a semi-colon", - "output": [ - [ - "Character", - "\u29c1" - ] - ] - }, - { - "input": "&ohbar", - "description": "Bad named entity: ohbar without a semi-colon", - "output": [ - [ - "Character", - "&ohbar" - ] - ] - }, - { - "input": "⦵", - "description": "Named entity: ohbar; with a semi-colon", - "output": [ - [ - "Character", - "\u29b5" - ] - ] - }, - { - "input": "&ohm", - "description": "Bad named entity: ohm without a semi-colon", - "output": [ - [ - "Character", - "&ohm" - ] - ] - }, - { - "input": "Ω", - "description": "Named entity: ohm; with a semi-colon", - "output": [ - [ - "Character", - "\u03a9" - ] - ] - }, - { - "input": "&oint", - "description": "Bad named entity: oint without a semi-colon", - "output": [ - [ - "Character", - "&oint" - ] - ] - }, - { - "input": "∮", - "description": "Named entity: oint; with a semi-colon", - "output": [ - [ - "Character", - "\u222e" - ] - ] - }, - { - "input": "&olarr", - "description": "Bad named entity: olarr without a semi-colon", - "output": [ - [ - "Character", - "&olarr" - ] - ] - }, - { - "input": "↺", - "description": "Named entity: olarr; with a semi-colon", - "output": [ - [ - "Character", - "\u21ba" - ] - ] - }, - { - "input": "&olcir", - "description": "Bad named entity: olcir without a semi-colon", - "output": [ - [ - "Character", - "&olcir" - ] - ] - }, - { - "input": "⦾", - "description": "Named entity: olcir; with a semi-colon", - "output": [ - [ - "Character", - "\u29be" - ] - ] - }, - { - "input": "&olcross", - "description": "Bad named entity: olcross without a semi-colon", - "output": [ - [ - "Character", - "&olcross" - ] - ] - }, - { - "input": "⦻", - "description": "Named entity: olcross; with a semi-colon", - "output": [ - [ - "Character", - "\u29bb" - ] - ] - }, - { - "input": "&oline", - "description": "Bad named entity: oline without a semi-colon", - "output": [ - [ - "Character", - "&oline" - ] - ] - }, - { - "input": "‾", - "description": "Named entity: oline; with a semi-colon", - "output": [ - [ - "Character", - "\u203e" - ] - ] - }, - { - "input": "&olt", - "description": "Bad named entity: olt without a semi-colon", - "output": [ - [ - "Character", - "&olt" - ] - ] - }, - { - "input": "⧀", - "description": "Named entity: olt; with a semi-colon", - "output": [ - [ - "Character", - "\u29c0" - ] - ] - }, - { - "input": "&omacr", - "description": "Bad named entity: omacr without a semi-colon", - "output": [ - [ - "Character", - "&omacr" - ] - ] - }, - { - "input": "ō", - "description": "Named entity: omacr; with a semi-colon", - "output": [ - [ - "Character", - "\u014d" - ] - ] - }, - { - "input": "&omega", - "description": "Bad named entity: omega without a semi-colon", - "output": [ - [ - "Character", - "&omega" - ] - ] - }, - { - "input": "ω", - "description": "Named entity: omega; with a semi-colon", - "output": [ - [ - "Character", - "\u03c9" - ] - ] - }, - { - "input": "&omicron", - "description": "Bad named entity: omicron without a semi-colon", - "output": [ - [ - "Character", - "&omicron" - ] - ] - }, - { - "input": "ο", - "description": "Named entity: omicron; with a semi-colon", - "output": [ - [ - "Character", - "\u03bf" - ] - ] - }, - { - "input": "&omid", - "description": "Bad named entity: omid without a semi-colon", - "output": [ - [ - "Character", - "&omid" - ] - ] - }, - { - "input": "⦶", - "description": "Named entity: omid; with a semi-colon", - "output": [ - [ - "Character", - "\u29b6" - ] - ] - }, - { - "input": "&ominus", - "description": "Bad named entity: ominus without a semi-colon", - "output": [ - [ - "Character", - "&ominus" - ] - ] - }, - { - "input": "⊖", - "description": "Named entity: ominus; with a semi-colon", - "output": [ - [ - "Character", - "\u2296" - ] - ] - }, - { - "input": "&oopf", - "description": "Bad named entity: oopf without a semi-colon", - "output": [ - [ - "Character", - "&oopf" - ] - ] - }, - { - "input": "𝕠", - "description": "Named entity: oopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd60" - ] - ] - }, - { - "input": "&opar", - "description": "Bad named entity: opar without a semi-colon", - "output": [ - [ - "Character", - "&opar" - ] - ] - }, - { - "input": "⦷", - "description": "Named entity: opar; with a semi-colon", - "output": [ - [ - "Character", - "\u29b7" - ] - ] - }, - { - "input": "&operp", - "description": "Bad named entity: operp without a semi-colon", - "output": [ - [ - "Character", - "&operp" - ] - ] - }, - { - "input": "⦹", - "description": "Named entity: operp; with a semi-colon", - "output": [ - [ - "Character", - "\u29b9" - ] - ] - }, - { - "input": "&oplus", - "description": "Bad named entity: oplus without a semi-colon", - "output": [ - [ - "Character", - "&oplus" - ] - ] - }, - { - "input": "⊕", - "description": "Named entity: oplus; with a semi-colon", - "output": [ - [ - "Character", - "\u2295" - ] - ] - }, - { - "input": "&or", - "description": "Bad named entity: or without a semi-colon", - "output": [ - [ - "Character", - "&or" - ] - ] - }, - { - "input": "∨", - "description": "Named entity: or; with a semi-colon", - "output": [ - [ - "Character", - "\u2228" - ] - ] - }, - { - "input": "&orarr", - "description": "Bad named entity: orarr without a semi-colon", - "output": [ - [ - "Character", - "&orarr" - ] - ] - }, - { - "input": "↻", - "description": "Named entity: orarr; with a semi-colon", - "output": [ - [ - "Character", - "\u21bb" - ] - ] - }, - { - "input": "&ord", - "description": "Bad named entity: ord without a semi-colon", - "output": [ - [ - "Character", - "&ord" - ] - ] - }, - { - "input": "⩝", - "description": "Named entity: ord; with a semi-colon", - "output": [ - [ - "Character", - "\u2a5d" - ] - ] - }, - { - "input": "&order", - "description": "Bad named entity: order without a semi-colon", - "output": [ - [ - "Character", - "&order" - ] - ] - }, - { - "input": "ℴ", - "description": "Named entity: order; with a semi-colon", - "output": [ - [ - "Character", - "\u2134" - ] - ] - }, - { - "input": "&orderof", - "description": "Bad named entity: orderof without a semi-colon", - "output": [ - [ - "Character", - "&orderof" - ] - ] - }, - { - "input": "ℴ", - "description": "Named entity: orderof; with a semi-colon", - "output": [ - [ - "Character", - "\u2134" - ] - ] - }, - { - "input": "ª", - "description": "Named entity: ordf without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00aa" - ] - ] - }, - { - "input": "ª", - "description": "Named entity: ordf; with a semi-colon", - "output": [ - [ - "Character", - "\u00aa" - ] - ] - }, - { - "input": "º", - "description": "Named entity: ordm without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00ba" - ] - ] - }, - { - "input": "º", - "description": "Named entity: ordm; with a semi-colon", - "output": [ - [ - "Character", - "\u00ba" - ] - ] - }, - { - "input": "&origof", - "description": "Bad named entity: origof without a semi-colon", - "output": [ - [ - "Character", - "&origof" - ] - ] - }, - { - "input": "⊶", - "description": "Named entity: origof; with a semi-colon", - "output": [ - [ - "Character", - "\u22b6" - ] - ] - }, - { - "input": "&oror", - "description": "Bad named entity: oror without a semi-colon", - "output": [ - [ - "Character", - "&oror" - ] - ] - }, - { - "input": "⩖", - "description": "Named entity: oror; with a semi-colon", - "output": [ - [ - "Character", - "\u2a56" - ] - ] - }, - { - "input": "&orslope", - "description": "Bad named entity: orslope without a semi-colon", - "output": [ - [ - "Character", - "&orslope" - ] - ] - }, - { - "input": "⩗", - "description": "Named entity: orslope; with a semi-colon", - "output": [ - [ - "Character", - "\u2a57" - ] - ] - }, - { - "input": "&orv", - "description": "Bad named entity: orv without a semi-colon", - "output": [ - [ - "Character", - "&orv" - ] - ] - }, - { - "input": "⩛", - "description": "Named entity: orv; with a semi-colon", - "output": [ - [ - "Character", - "\u2a5b" - ] - ] - }, - { - "input": "&oscr", - "description": "Bad named entity: oscr without a semi-colon", - "output": [ - [ - "Character", - "&oscr" - ] - ] - }, - { - "input": "ℴ", - "description": "Named entity: oscr; with a semi-colon", - "output": [ - [ - "Character", - "\u2134" - ] - ] - }, - { - "input": "ø", - "description": "Named entity: oslash without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00f8" - ] - ] - }, - { - "input": "ø", - "description": "Named entity: oslash; with a semi-colon", - "output": [ - [ - "Character", - "\u00f8" - ] - ] - }, - { - "input": "&osol", - "description": "Bad named entity: osol without a semi-colon", - "output": [ - [ - "Character", - "&osol" - ] - ] - }, - { - "input": "⊘", - "description": "Named entity: osol; with a semi-colon", - "output": [ - [ - "Character", - "\u2298" - ] - ] - }, - { - "input": "õ", - "description": "Named entity: otilde without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00f5" - ] - ] - }, - { - "input": "õ", - "description": "Named entity: otilde; with a semi-colon", - "output": [ - [ - "Character", - "\u00f5" - ] - ] - }, - { - "input": "&otimes", - "description": "Bad named entity: otimes without a semi-colon", - "output": [ - [ - "Character", - "&otimes" - ] - ] - }, - { - "input": "⊗", - "description": "Named entity: otimes; with a semi-colon", - "output": [ - [ - "Character", - "\u2297" - ] - ] - }, - { - "input": "&otimesas", - "description": "Bad named entity: otimesas without a semi-colon", - "output": [ - [ - "Character", - "&otimesas" - ] - ] - }, - { - "input": "⨶", - "description": "Named entity: otimesas; with a semi-colon", - "output": [ - [ - "Character", - "\u2a36" - ] - ] - }, - { - "input": "ö", - "description": "Named entity: ouml without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00f6" - ] - ] - }, - { - "input": "ö", - "description": "Named entity: ouml; with a semi-colon", - "output": [ - [ - "Character", - "\u00f6" - ] - ] - }, - { - "input": "&ovbar", - "description": "Bad named entity: ovbar without a semi-colon", - "output": [ - [ - "Character", - "&ovbar" - ] - ] - }, - { - "input": "⌽", - "description": "Named entity: ovbar; with a semi-colon", - "output": [ - [ - "Character", - "\u233d" - ] - ] - }, - { - "input": "&par", - "description": "Bad named entity: par without a semi-colon", - "output": [ - [ - "Character", - "&par" - ] - ] - }, - { - "input": "∥", - "description": "Named entity: par; with a semi-colon", - "output": [ - [ - "Character", - "\u2225" - ] - ] - }, - { - "input": "¶", - "description": "Named entity: para without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00b6" - ] - ] - }, - { - "input": "¶", - "description": "Named entity: para; with a semi-colon", - "output": [ - [ - "Character", - "\u00b6" - ] - ] - }, - { - "input": "∥", - "description": "Named entity: parallel; with a semi-colon", - "output": [ - [ - "Character", - "\u2225" - ] - ] - }, - { - "input": "&parsim", - "description": "Bad named entity: parsim without a semi-colon", - "output": [ - [ - "Character", - "&parsim" - ] - ] - }, - { - "input": "⫳", - "description": "Named entity: parsim; with a semi-colon", - "output": [ - [ - "Character", - "\u2af3" - ] - ] - }, - { - "input": "&parsl", - "description": "Bad named entity: parsl without a semi-colon", - "output": [ - [ - "Character", - "&parsl" - ] - ] - }, - { - "input": "⫽", - "description": "Named entity: parsl; with a semi-colon", - "output": [ - [ - "Character", - "\u2afd" - ] - ] - }, - { - "input": "&part", - "description": "Bad named entity: part without a semi-colon", - "output": [ - [ - "Character", - "&part" - ] - ] - }, - { - "input": "∂", - "description": "Named entity: part; with a semi-colon", - "output": [ - [ - "Character", - "\u2202" - ] - ] - }, - { - "input": "&pcy", - "description": "Bad named entity: pcy without a semi-colon", - "output": [ - [ - "Character", - "&pcy" - ] - ] - }, - { - "input": "п", - "description": "Named entity: pcy; with a semi-colon", - "output": [ - [ - "Character", - "\u043f" - ] - ] - }, - { - "input": "&percnt", - "description": "Bad named entity: percnt without a semi-colon", - "output": [ - [ - "Character", - "&percnt" - ] - ] - }, - { - "input": "%", - "description": "Named entity: percnt; with a semi-colon", - "output": [ - [ - "Character", - "%" - ] - ] - }, - { - "input": "&period", - "description": "Bad named entity: period without a semi-colon", - "output": [ - [ - "Character", - "&period" - ] - ] - }, - { - "input": ".", - "description": "Named entity: period; with a semi-colon", - "output": [ - [ - "Character", - "." - ] - ] - }, - { - "input": "&permil", - "description": "Bad named entity: permil without a semi-colon", - "output": [ - [ - "Character", - "&permil" - ] - ] - }, - { - "input": "‰", - "description": "Named entity: permil; with a semi-colon", - "output": [ - [ - "Character", - "\u2030" - ] - ] - }, - { - "input": "&perp", - "description": "Bad named entity: perp without a semi-colon", - "output": [ - [ - "Character", - "&perp" - ] - ] - }, - { - "input": "⊥", - "description": "Named entity: perp; with a semi-colon", - "output": [ - [ - "Character", - "\u22a5" - ] - ] - }, - { - "input": "&pertenk", - "description": "Bad named entity: pertenk without a semi-colon", - "output": [ - [ - "Character", - "&pertenk" - ] - ] - }, - { - "input": "‱", - "description": "Named entity: pertenk; with a semi-colon", - "output": [ - [ - "Character", - "\u2031" - ] - ] - }, - { - "input": "&pfr", - "description": "Bad named entity: pfr without a semi-colon", - "output": [ - [ - "Character", - "&pfr" - ] - ] - }, - { - "input": "𝔭", - "description": "Named entity: pfr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd2d" - ] - ] - }, - { - "input": "&phi", - "description": "Bad named entity: phi without a semi-colon", - "output": [ - [ - "Character", - "&phi" - ] - ] - }, - { - "input": "φ", - "description": "Named entity: phi; with a semi-colon", - "output": [ - [ - "Character", - "\u03c6" - ] - ] - }, - { - "input": "&phiv", - "description": "Bad named entity: phiv without a semi-colon", - "output": [ - [ - "Character", - "&phiv" - ] - ] - }, - { - "input": "ϕ", - "description": "Named entity: phiv; with a semi-colon", - "output": [ - [ - "Character", - "\u03d5" - ] - ] - }, - { - "input": "&phmmat", - "description": "Bad named entity: phmmat without a semi-colon", - "output": [ - [ - "Character", - "&phmmat" - ] - ] - }, - { - "input": "ℳ", - "description": "Named entity: phmmat; with a semi-colon", - "output": [ - [ - "Character", - "\u2133" - ] - ] - }, - { - "input": "&phone", - "description": "Bad named entity: phone without a semi-colon", - "output": [ - [ - "Character", - "&phone" - ] - ] - }, - { - "input": "☎", - "description": "Named entity: phone; with a semi-colon", - "output": [ - [ - "Character", - "\u260e" - ] - ] - }, - { - "input": "&pi", - "description": "Bad named entity: pi without a semi-colon", - "output": [ - [ - "Character", - "&pi" - ] - ] - }, - { - "input": "π", - "description": "Named entity: pi; with a semi-colon", - "output": [ - [ - "Character", - "\u03c0" - ] - ] - }, - { - "input": "&pitchfork", - "description": "Bad named entity: pitchfork without a semi-colon", - "output": [ - [ - "Character", - "&pitchfork" - ] - ] - }, - { - "input": "⋔", - "description": "Named entity: pitchfork; with a semi-colon", - "output": [ - [ - "Character", - "\u22d4" - ] - ] - }, - { - "input": "&piv", - "description": "Bad named entity: piv without a semi-colon", - "output": [ - [ - "Character", - "&piv" - ] - ] - }, - { - "input": "ϖ", - "description": "Named entity: piv; with a semi-colon", - "output": [ - [ - "Character", - "\u03d6" - ] - ] - }, - { - "input": "&planck", - "description": "Bad named entity: planck without a semi-colon", - "output": [ - [ - "Character", - "&planck" - ] - ] - }, - { - "input": "ℏ", - "description": "Named entity: planck; with a semi-colon", - "output": [ - [ - "Character", - "\u210f" - ] - ] - }, - { - "input": "&planckh", - "description": "Bad named entity: planckh without a semi-colon", - "output": [ - [ - "Character", - "&planckh" - ] - ] - }, - { - "input": "ℎ", - "description": "Named entity: planckh; with a semi-colon", - "output": [ - [ - "Character", - "\u210e" - ] - ] - }, - { - "input": "&plankv", - "description": "Bad named entity: plankv without a semi-colon", - "output": [ - [ - "Character", - "&plankv" - ] - ] - }, - { - "input": "ℏ", - "description": "Named entity: plankv; with a semi-colon", - "output": [ - [ - "Character", - "\u210f" - ] - ] - }, - { - "input": "&plus", - "description": "Bad named entity: plus without a semi-colon", - "output": [ - [ - "Character", - "&plus" - ] - ] - }, - { - "input": "+", - "description": "Named entity: plus; with a semi-colon", - "output": [ - [ - "Character", - "+" - ] - ] - }, - { - "input": "&plusacir", - "description": "Bad named entity: plusacir without a semi-colon", - "output": [ - [ - "Character", - "&plusacir" - ] - ] - }, - { - "input": "⨣", - "description": "Named entity: plusacir; with a semi-colon", - "output": [ - [ - "Character", - "\u2a23" - ] - ] - }, - { - "input": "&plusb", - "description": "Bad named entity: plusb without a semi-colon", - "output": [ - [ - "Character", - "&plusb" - ] - ] - }, - { - "input": "⊞", - "description": "Named entity: plusb; with a semi-colon", - "output": [ - [ - "Character", - "\u229e" - ] - ] - }, - { - "input": "&pluscir", - "description": "Bad named entity: pluscir without a semi-colon", - "output": [ - [ - "Character", - "&pluscir" - ] - ] - }, - { - "input": "⨢", - "description": "Named entity: pluscir; with a semi-colon", - "output": [ - [ - "Character", - "\u2a22" - ] - ] - }, - { - "input": "&plusdo", - "description": "Bad named entity: plusdo without a semi-colon", - "output": [ - [ - "Character", - "&plusdo" - ] - ] - }, - { - "input": "∔", - "description": "Named entity: plusdo; with a semi-colon", - "output": [ - [ - "Character", - "\u2214" - ] - ] - }, - { - "input": "&plusdu", - "description": "Bad named entity: plusdu without a semi-colon", - "output": [ - [ - "Character", - "&plusdu" - ] - ] - }, - { - "input": "⨥", - "description": "Named entity: plusdu; with a semi-colon", - "output": [ - [ - "Character", - "\u2a25" - ] - ] - }, - { - "input": "&pluse", - "description": "Bad named entity: pluse without a semi-colon", - "output": [ - [ - "Character", - "&pluse" - ] - ] - }, - { - "input": "⩲", - "description": "Named entity: pluse; with a semi-colon", - "output": [ - [ - "Character", - "\u2a72" - ] - ] - }, - { - "input": "±", - "description": "Named entity: plusmn without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00b1" - ] - ] - }, - { - "input": "±", - "description": "Named entity: plusmn; with a semi-colon", - "output": [ - [ - "Character", - "\u00b1" - ] - ] - }, - { - "input": "&plussim", - "description": "Bad named entity: plussim without a semi-colon", - "output": [ - [ - "Character", - "&plussim" - ] - ] - }, - { - "input": "⨦", - "description": "Named entity: plussim; with a semi-colon", - "output": [ - [ - "Character", - "\u2a26" - ] - ] - }, - { - "input": "&plustwo", - "description": "Bad named entity: plustwo without a semi-colon", - "output": [ - [ - "Character", - "&plustwo" - ] - ] - }, - { - "input": "⨧", - "description": "Named entity: plustwo; with a semi-colon", - "output": [ - [ - "Character", - "\u2a27" - ] - ] - }, - { - "input": "&pm", - "description": "Bad named entity: pm without a semi-colon", - "output": [ - [ - "Character", - "&pm" - ] - ] - }, - { - "input": "±", - "description": "Named entity: pm; with a semi-colon", - "output": [ - [ - "Character", - "\u00b1" - ] - ] - }, - { - "input": "&pointint", - "description": "Bad named entity: pointint without a semi-colon", - "output": [ - [ - "Character", - "&pointint" - ] - ] - }, - { - "input": "⨕", - "description": "Named entity: pointint; with a semi-colon", - "output": [ - [ - "Character", - "\u2a15" - ] - ] - }, - { - "input": "&popf", - "description": "Bad named entity: popf without a semi-colon", - "output": [ - [ - "Character", - "&popf" - ] - ] - }, - { - "input": "𝕡", - "description": "Named entity: popf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd61" - ] - ] - }, - { - "input": "£", - "description": "Named entity: pound without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00a3" - ] - ] - }, - { - "input": "£", - "description": "Named entity: pound; with a semi-colon", - "output": [ - [ - "Character", - "\u00a3" - ] - ] - }, - { - "input": "&pr", - "description": "Bad named entity: pr without a semi-colon", - "output": [ - [ - "Character", - "&pr" - ] - ] - }, - { - "input": "≺", - "description": "Named entity: pr; with a semi-colon", - "output": [ - [ - "Character", - "\u227a" - ] - ] - }, - { - "input": "&prE", - "description": "Bad named entity: prE without a semi-colon", - "output": [ - [ - "Character", - "&prE" - ] - ] - }, - { - "input": "⪳", - "description": "Named entity: prE; with a semi-colon", - "output": [ - [ - "Character", - "\u2ab3" - ] - ] - }, - { - "input": "&prap", - "description": "Bad named entity: prap without a semi-colon", - "output": [ - [ - "Character", - "&prap" - ] - ] - }, - { - "input": "⪷", - "description": "Named entity: prap; with a semi-colon", - "output": [ - [ - "Character", - "\u2ab7" - ] - ] - }, - { - "input": "&prcue", - "description": "Bad named entity: prcue without a semi-colon", - "output": [ - [ - "Character", - "&prcue" - ] - ] - }, - { - "input": "≼", - "description": "Named entity: prcue; with a semi-colon", - "output": [ - [ - "Character", - "\u227c" - ] - ] - }, - { - "input": "&pre", - "description": "Bad named entity: pre without a semi-colon", - "output": [ - [ - "Character", - "&pre" - ] - ] - }, - { - "input": "⪯", - "description": "Named entity: pre; with a semi-colon", - "output": [ - [ - "Character", - "\u2aaf" - ] - ] - }, - { - "input": "&prec", - "description": "Bad named entity: prec without a semi-colon", - "output": [ - [ - "Character", - "&prec" - ] - ] - }, - { - "input": "≺", - "description": "Named entity: prec; with a semi-colon", - "output": [ - [ - "Character", - "\u227a" - ] - ] - }, - { - "input": "&precapprox", - "description": "Bad named entity: precapprox without a semi-colon", - "output": [ - [ - "Character", - "&precapprox" - ] - ] - }, - { - "input": "⪷", - "description": "Named entity: precapprox; with a semi-colon", - "output": [ - [ - "Character", - "\u2ab7" - ] - ] - }, - { - "input": "&preccurlyeq", - "description": "Bad named entity: preccurlyeq without a semi-colon", - "output": [ - [ - "Character", - "&preccurlyeq" - ] - ] - }, - { - "input": "≼", - "description": "Named entity: preccurlyeq; with a semi-colon", - "output": [ - [ - "Character", - "\u227c" - ] - ] - }, - { - "input": "&preceq", - "description": "Bad named entity: preceq without a semi-colon", - "output": [ - [ - "Character", - "&preceq" - ] - ] - }, - { - "input": "⪯", - "description": "Named entity: preceq; with a semi-colon", - "output": [ - [ - "Character", - "\u2aaf" - ] - ] - }, - { - "input": "&precnapprox", - "description": "Bad named entity: precnapprox without a semi-colon", - "output": [ - [ - "Character", - "&precnapprox" - ] - ] - }, - { - "input": "⪹", - "description": "Named entity: precnapprox; with a semi-colon", - "output": [ - [ - "Character", - "\u2ab9" - ] - ] - }, - { - "input": "&precneqq", - "description": "Bad named entity: precneqq without a semi-colon", - "output": [ - [ - "Character", - "&precneqq" - ] - ] - }, - { - "input": "⪵", - "description": "Named entity: precneqq; with a semi-colon", - "output": [ - [ - "Character", - "\u2ab5" - ] - ] - }, - { - "input": "&precnsim", - "description": "Bad named entity: precnsim without a semi-colon", - "output": [ - [ - "Character", - "&precnsim" - ] - ] - }, - { - "input": "⋨", - "description": "Named entity: precnsim; with a semi-colon", - "output": [ - [ - "Character", - "\u22e8" - ] - ] - }, - { - "input": "&precsim", - "description": "Bad named entity: precsim without a semi-colon", - "output": [ - [ - "Character", - "&precsim" - ] - ] - }, - { - "input": "≾", - "description": "Named entity: precsim; with a semi-colon", - "output": [ - [ - "Character", - "\u227e" - ] - ] - }, - { - "input": "&prime", - "description": "Bad named entity: prime without a semi-colon", - "output": [ - [ - "Character", - "&prime" - ] - ] - }, - { - "input": "′", - "description": "Named entity: prime; with a semi-colon", - "output": [ - [ - "Character", - "\u2032" - ] - ] - }, - { - "input": "&primes", - "description": "Bad named entity: primes without a semi-colon", - "output": [ - [ - "Character", - "&primes" - ] - ] - }, - { - "input": "ℙ", - "description": "Named entity: primes; with a semi-colon", - "output": [ - [ - "Character", - "\u2119" - ] - ] - }, - { - "input": "&prnE", - "description": "Bad named entity: prnE without a semi-colon", - "output": [ - [ - "Character", - "&prnE" - ] - ] - }, - { - "input": "⪵", - "description": "Named entity: prnE; with a semi-colon", - "output": [ - [ - "Character", - "\u2ab5" - ] - ] - }, - { - "input": "&prnap", - "description": "Bad named entity: prnap without a semi-colon", - "output": [ - [ - "Character", - "&prnap" - ] - ] - }, - { - "input": "⪹", - "description": "Named entity: prnap; with a semi-colon", - "output": [ - [ - "Character", - "\u2ab9" - ] - ] - }, - { - "input": "&prnsim", - "description": "Bad named entity: prnsim without a semi-colon", - "output": [ - [ - "Character", - "&prnsim" - ] - ] - }, - { - "input": "⋨", - "description": "Named entity: prnsim; with a semi-colon", - "output": [ - [ - "Character", - "\u22e8" - ] - ] - }, - { - "input": "&prod", - "description": "Bad named entity: prod without a semi-colon", - "output": [ - [ - "Character", - "&prod" - ] - ] - }, - { - "input": "∏", - "description": "Named entity: prod; with a semi-colon", - "output": [ - [ - "Character", - "\u220f" - ] - ] - }, - { - "input": "&profalar", - "description": "Bad named entity: profalar without a semi-colon", - "output": [ - [ - "Character", - "&profalar" - ] - ] - }, - { - "input": "⌮", - "description": "Named entity: profalar; with a semi-colon", - "output": [ - [ - "Character", - "\u232e" - ] - ] - }, - { - "input": "&profline", - "description": "Bad named entity: profline without a semi-colon", - "output": [ - [ - "Character", - "&profline" - ] - ] - }, - { - "input": "⌒", - "description": "Named entity: profline; with a semi-colon", - "output": [ - [ - "Character", - "\u2312" - ] - ] - }, - { - "input": "&profsurf", - "description": "Bad named entity: profsurf without a semi-colon", - "output": [ - [ - "Character", - "&profsurf" - ] - ] - }, - { - "input": "⌓", - "description": "Named entity: profsurf; with a semi-colon", - "output": [ - [ - "Character", - "\u2313" - ] - ] - }, - { - "input": "&prop", - "description": "Bad named entity: prop without a semi-colon", - "output": [ - [ - "Character", - "&prop" - ] - ] - }, - { - "input": "∝", - "description": "Named entity: prop; with a semi-colon", - "output": [ - [ - "Character", - "\u221d" - ] - ] - }, - { - "input": "&propto", - "description": "Bad named entity: propto without a semi-colon", - "output": [ - [ - "Character", - "&propto" - ] - ] - }, - { - "input": "∝", - "description": "Named entity: propto; with a semi-colon", - "output": [ - [ - "Character", - "\u221d" - ] - ] - }, - { - "input": "&prsim", - "description": "Bad named entity: prsim without a semi-colon", - "output": [ - [ - "Character", - "&prsim" - ] - ] - }, - { - "input": "≾", - "description": "Named entity: prsim; with a semi-colon", - "output": [ - [ - "Character", - "\u227e" - ] - ] - }, - { - "input": "&prurel", - "description": "Bad named entity: prurel without a semi-colon", - "output": [ - [ - "Character", - "&prurel" - ] - ] - }, - { - "input": "⊰", - "description": "Named entity: prurel; with a semi-colon", - "output": [ - [ - "Character", - "\u22b0" - ] - ] - }, - { - "input": "&pscr", - "description": "Bad named entity: pscr without a semi-colon", - "output": [ - [ - "Character", - "&pscr" - ] - ] - }, - { - "input": "𝓅", - "description": "Named entity: pscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udcc5" - ] - ] - }, - { - "input": "&psi", - "description": "Bad named entity: psi without a semi-colon", - "output": [ - [ - "Character", - "&psi" - ] - ] - }, - { - "input": "ψ", - "description": "Named entity: psi; with a semi-colon", - "output": [ - [ - "Character", - "\u03c8" - ] - ] - }, - { - "input": "&puncsp", - "description": "Bad named entity: puncsp without a semi-colon", - "output": [ - [ - "Character", - "&puncsp" - ] - ] - }, - { - "input": " ", - "description": "Named entity: puncsp; with a semi-colon", - "output": [ - [ - "Character", - "\u2008" - ] - ] - }, - { - "input": "&qfr", - "description": "Bad named entity: qfr without a semi-colon", - "output": [ - [ - "Character", - "&qfr" - ] - ] - }, - { - "input": "𝔮", - "description": "Named entity: qfr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd2e" - ] - ] - }, - { - "input": "&qint", - "description": "Bad named entity: qint without a semi-colon", - "output": [ - [ - "Character", - "&qint" - ] - ] - }, - { - "input": "⨌", - "description": "Named entity: qint; with a semi-colon", - "output": [ - [ - "Character", - "\u2a0c" - ] - ] - }, - { - "input": "&qopf", - "description": "Bad named entity: qopf without a semi-colon", - "output": [ - [ - "Character", - "&qopf" - ] - ] - }, - { - "input": "𝕢", - "description": "Named entity: qopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd62" - ] - ] - }, - { - "input": "&qprime", - "description": "Bad named entity: qprime without a semi-colon", - "output": [ - [ - "Character", - "&qprime" - ] - ] - }, - { - "input": "⁗", - "description": "Named entity: qprime; with a semi-colon", - "output": [ - [ - "Character", - "\u2057" - ] - ] - }, - { - "input": "&qscr", - "description": "Bad named entity: qscr without a semi-colon", - "output": [ - [ - "Character", - "&qscr" - ] - ] - }, - { - "input": "𝓆", - "description": "Named entity: qscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udcc6" - ] - ] - }, - { - "input": "&quaternions", - "description": "Bad named entity: quaternions without a semi-colon", - "output": [ - [ - "Character", - "&quaternions" - ] - ] - }, - { - "input": "ℍ", - "description": "Named entity: quaternions; with a semi-colon", - "output": [ - [ - "Character", - "\u210d" - ] - ] - }, - { - "input": "&quatint", - "description": "Bad named entity: quatint without a semi-colon", - "output": [ - [ - "Character", - "&quatint" - ] - ] - }, - { - "input": "⨖", - "description": "Named entity: quatint; with a semi-colon", - "output": [ - [ - "Character", - "\u2a16" - ] - ] - }, - { - "input": "&quest", - "description": "Bad named entity: quest without a semi-colon", - "output": [ - [ - "Character", - "&quest" - ] - ] - }, - { - "input": "?", - "description": "Named entity: quest; with a semi-colon", - "output": [ - [ - "Character", - "?" - ] - ] - }, - { - "input": "&questeq", - "description": "Bad named entity: questeq without a semi-colon", - "output": [ - [ - "Character", - "&questeq" - ] - ] - }, - { - "input": "≟", - "description": "Named entity: questeq; with a semi-colon", - "output": [ - [ - "Character", - "\u225f" - ] - ] - }, - { - "input": """, - "description": "Named entity: quot without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\"" - ] - ] - }, - { - "input": """, - "description": "Named entity: quot; with a semi-colon", - "output": [ - [ - "Character", - "\"" - ] - ] - }, - { - "input": "&rAarr", - "description": "Bad named entity: rAarr without a semi-colon", - "output": [ - [ - "Character", - "&rAarr" - ] - ] - }, - { - "input": "⇛", - "description": "Named entity: rAarr; with a semi-colon", - "output": [ - [ - "Character", - "\u21db" - ] - ] - }, - { - "input": "&rArr", - "description": "Bad named entity: rArr without a semi-colon", - "output": [ - [ - "Character", - "&rArr" - ] - ] - }, - { - "input": "⇒", - "description": "Named entity: rArr; with a semi-colon", - "output": [ - [ - "Character", - "\u21d2" - ] - ] - }, - { - "input": "&rAtail", - "description": "Bad named entity: rAtail without a semi-colon", - "output": [ - [ - "Character", - "&rAtail" - ] - ] - }, - { - "input": "⤜", - "description": "Named entity: rAtail; with a semi-colon", - "output": [ - [ - "Character", - "\u291c" - ] - ] - }, - { - "input": "&rBarr", - "description": "Bad named entity: rBarr without a semi-colon", - "output": [ - [ - "Character", - "&rBarr" - ] - ] - }, - { - "input": "⤏", - "description": "Named entity: rBarr; with a semi-colon", - "output": [ - [ - "Character", - "\u290f" - ] - ] - }, - { - "input": "&rHar", - "description": "Bad named entity: rHar without a semi-colon", - "output": [ - [ - "Character", - "&rHar" - ] - ] - }, - { - "input": "⥤", - "description": "Named entity: rHar; with a semi-colon", - "output": [ - [ - "Character", - "\u2964" - ] - ] - }, - { - "input": "&race", - "description": "Bad named entity: race without a semi-colon", - "output": [ - [ - "Character", - "&race" - ] - ] - }, - { - "input": "∽̱", - "description": "Named entity: race; with a semi-colon", - "output": [ - [ - "Character", - "\u223d\u0331" - ] - ] - }, - { - "input": "&racute", - "description": "Bad named entity: racute without a semi-colon", - "output": [ - [ - "Character", - "&racute" - ] - ] - }, - { - "input": "ŕ", - "description": "Named entity: racute; with a semi-colon", - "output": [ - [ - "Character", - "\u0155" - ] - ] - }, - { - "input": "&radic", - "description": "Bad named entity: radic without a semi-colon", - "output": [ - [ - "Character", - "&radic" - ] - ] - }, - { - "input": "√", - "description": "Named entity: radic; with a semi-colon", - "output": [ - [ - "Character", - "\u221a" - ] - ] - }, - { - "input": "&raemptyv", - "description": "Bad named entity: raemptyv without a semi-colon", - "output": [ - [ - "Character", - "&raemptyv" - ] - ] - }, - { - "input": "⦳", - "description": "Named entity: raemptyv; with a semi-colon", - "output": [ - [ - "Character", - "\u29b3" - ] - ] - }, - { - "input": "&rang", - "description": "Bad named entity: rang without a semi-colon", - "output": [ - [ - "Character", - "&rang" - ] - ] - }, - { - "input": "⟩", - "description": "Named entity: rang; with a semi-colon", - "output": [ - [ - "Character", - "\u27e9" - ] - ] - }, - { - "input": "&rangd", - "description": "Bad named entity: rangd without a semi-colon", - "output": [ - [ - "Character", - "&rangd" - ] - ] - }, - { - "input": "⦒", - "description": "Named entity: rangd; with a semi-colon", - "output": [ - [ - "Character", - "\u2992" - ] - ] - }, - { - "input": "&range", - "description": "Bad named entity: range without a semi-colon", - "output": [ - [ - "Character", - "&range" - ] - ] - }, - { - "input": "⦥", - "description": "Named entity: range; with a semi-colon", - "output": [ - [ - "Character", - "\u29a5" - ] - ] - }, - { - "input": "&rangle", - "description": "Bad named entity: rangle without a semi-colon", - "output": [ - [ - "Character", - "&rangle" - ] - ] - }, - { - "input": "⟩", - "description": "Named entity: rangle; with a semi-colon", - "output": [ - [ - "Character", - "\u27e9" - ] - ] - }, - { - "input": "»", - "description": "Named entity: raquo without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00bb" - ] - ] - }, - { - "input": "»", - "description": "Named entity: raquo; with a semi-colon", - "output": [ - [ - "Character", - "\u00bb" - ] - ] - }, - { - "input": "&rarr", - "description": "Bad named entity: rarr without a semi-colon", - "output": [ - [ - "Character", - "&rarr" - ] - ] - }, - { - "input": "→", - "description": "Named entity: rarr; with a semi-colon", - "output": [ - [ - "Character", - "\u2192" - ] - ] - }, - { - "input": "&rarrap", - "description": "Bad named entity: rarrap without a semi-colon", - "output": [ - [ - "Character", - "&rarrap" - ] - ] - }, - { - "input": "⥵", - "description": "Named entity: rarrap; with a semi-colon", - "output": [ - [ - "Character", - "\u2975" - ] - ] - }, - { - "input": "&rarrb", - "description": "Bad named entity: rarrb without a semi-colon", - "output": [ - [ - "Character", - "&rarrb" - ] - ] - }, - { - "input": "⇥", - "description": "Named entity: rarrb; with a semi-colon", - "output": [ - [ - "Character", - "\u21e5" - ] - ] - }, - { - "input": "&rarrbfs", - "description": "Bad named entity: rarrbfs without a semi-colon", - "output": [ - [ - "Character", - "&rarrbfs" - ] - ] - }, - { - "input": "⤠", - "description": "Named entity: rarrbfs; with a semi-colon", - "output": [ - [ - "Character", - "\u2920" - ] - ] - }, - { - "input": "&rarrc", - "description": "Bad named entity: rarrc without a semi-colon", - "output": [ - [ - "Character", - "&rarrc" - ] - ] - }, - { - "input": "⤳", - "description": "Named entity: rarrc; with a semi-colon", - "output": [ - [ - "Character", - "\u2933" - ] - ] - }, - { - "input": "&rarrfs", - "description": "Bad named entity: rarrfs without a semi-colon", - "output": [ - [ - "Character", - "&rarrfs" - ] - ] - }, - { - "input": "⤞", - "description": "Named entity: rarrfs; with a semi-colon", - "output": [ - [ - "Character", - "\u291e" - ] - ] - }, - { - "input": "&rarrhk", - "description": "Bad named entity: rarrhk without a semi-colon", - "output": [ - [ - "Character", - "&rarrhk" - ] - ] - }, - { - "input": "↪", - "description": "Named entity: rarrhk; with a semi-colon", - "output": [ - [ - "Character", - "\u21aa" - ] - ] - }, - { - "input": "&rarrlp", - "description": "Bad named entity: rarrlp without a semi-colon", - "output": [ - [ - "Character", - "&rarrlp" - ] - ] - }, - { - "input": "↬", - "description": "Named entity: rarrlp; with a semi-colon", - "output": [ - [ - "Character", - "\u21ac" - ] - ] - }, - { - "input": "&rarrpl", - "description": "Bad named entity: rarrpl without a semi-colon", - "output": [ - [ - "Character", - "&rarrpl" - ] - ] - }, - { - "input": "⥅", - "description": "Named entity: rarrpl; with a semi-colon", - "output": [ - [ - "Character", - "\u2945" - ] - ] - }, - { - "input": "&rarrsim", - "description": "Bad named entity: rarrsim without a semi-colon", - "output": [ - [ - "Character", - "&rarrsim" - ] - ] - }, - { - "input": "⥴", - "description": "Named entity: rarrsim; with a semi-colon", - "output": [ - [ - "Character", - "\u2974" - ] - ] - }, - { - "input": "&rarrtl", - "description": "Bad named entity: rarrtl without a semi-colon", - "output": [ - [ - "Character", - "&rarrtl" - ] - ] - }, - { - "input": "↣", - "description": "Named entity: rarrtl; with a semi-colon", - "output": [ - [ - "Character", - "\u21a3" - ] - ] - }, - { - "input": "&rarrw", - "description": "Bad named entity: rarrw without a semi-colon", - "output": [ - [ - "Character", - "&rarrw" - ] - ] - }, - { - "input": "↝", - "description": "Named entity: rarrw; with a semi-colon", - "output": [ - [ - "Character", - "\u219d" - ] - ] - }, - { - "input": "&ratail", - "description": "Bad named entity: ratail without a semi-colon", - "output": [ - [ - "Character", - "&ratail" - ] - ] - }, - { - "input": "⤚", - "description": "Named entity: ratail; with a semi-colon", - "output": [ - [ - "Character", - "\u291a" - ] - ] - }, - { - "input": "&ratio", - "description": "Bad named entity: ratio without a semi-colon", - "output": [ - [ - "Character", - "&ratio" - ] - ] - }, - { - "input": "∶", - "description": "Named entity: ratio; with a semi-colon", - "output": [ - [ - "Character", - "\u2236" - ] - ] - }, - { - "input": "&rationals", - "description": "Bad named entity: rationals without a semi-colon", - "output": [ - [ - "Character", - "&rationals" - ] - ] - }, - { - "input": "ℚ", - "description": "Named entity: rationals; with a semi-colon", - "output": [ - [ - "Character", - "\u211a" - ] - ] - }, - { - "input": "&rbarr", - "description": "Bad named entity: rbarr without a semi-colon", - "output": [ - [ - "Character", - "&rbarr" - ] - ] - }, - { - "input": "⤍", - "description": "Named entity: rbarr; with a semi-colon", - "output": [ - [ - "Character", - "\u290d" - ] - ] - }, - { - "input": "&rbbrk", - "description": "Bad named entity: rbbrk without a semi-colon", - "output": [ - [ - "Character", - "&rbbrk" - ] - ] - }, - { - "input": "❳", - "description": "Named entity: rbbrk; with a semi-colon", - "output": [ - [ - "Character", - "\u2773" - ] - ] - }, - { - "input": "&rbrace", - "description": "Bad named entity: rbrace without a semi-colon", - "output": [ - [ - "Character", - "&rbrace" - ] - ] - }, - { - "input": "}", - "description": "Named entity: rbrace; with a semi-colon", - "output": [ - [ - "Character", - "}" - ] - ] - }, - { - "input": "&rbrack", - "description": "Bad named entity: rbrack without a semi-colon", - "output": [ - [ - "Character", - "&rbrack" - ] - ] - }, - { - "input": "]", - "description": "Named entity: rbrack; with a semi-colon", - "output": [ - [ - "Character", - "]" - ] - ] - }, - { - "input": "&rbrke", - "description": "Bad named entity: rbrke without a semi-colon", - "output": [ - [ - "Character", - "&rbrke" - ] - ] - }, - { - "input": "⦌", - "description": "Named entity: rbrke; with a semi-colon", - "output": [ - [ - "Character", - "\u298c" - ] - ] - }, - { - "input": "&rbrksld", - "description": "Bad named entity: rbrksld without a semi-colon", - "output": [ - [ - "Character", - "&rbrksld" - ] - ] - }, - { - "input": "⦎", - "description": "Named entity: rbrksld; with a semi-colon", - "output": [ - [ - "Character", - "\u298e" - ] - ] - }, - { - "input": "&rbrkslu", - "description": "Bad named entity: rbrkslu without a semi-colon", - "output": [ - [ - "Character", - "&rbrkslu" - ] - ] - }, - { - "input": "⦐", - "description": "Named entity: rbrkslu; with a semi-colon", - "output": [ - [ - "Character", - "\u2990" - ] - ] - }, - { - "input": "&rcaron", - "description": "Bad named entity: rcaron without a semi-colon", - "output": [ - [ - "Character", - "&rcaron" - ] - ] - }, - { - "input": "ř", - "description": "Named entity: rcaron; with a semi-colon", - "output": [ - [ - "Character", - "\u0159" - ] - ] - }, - { - "input": "&rcedil", - "description": "Bad named entity: rcedil without a semi-colon", - "output": [ - [ - "Character", - "&rcedil" - ] - ] - }, - { - "input": "ŗ", - "description": "Named entity: rcedil; with a semi-colon", - "output": [ - [ - "Character", - "\u0157" - ] - ] - }, - { - "input": "&rceil", - "description": "Bad named entity: rceil without a semi-colon", - "output": [ - [ - "Character", - "&rceil" - ] - ] - }, - { - "input": "⌉", - "description": "Named entity: rceil; with a semi-colon", - "output": [ - [ - "Character", - "\u2309" - ] - ] - }, - { - "input": "&rcub", - "description": "Bad named entity: rcub without a semi-colon", - "output": [ - [ - "Character", - "&rcub" - ] - ] - }, - { - "input": "}", - "description": "Named entity: rcub; with a semi-colon", - "output": [ - [ - "Character", - "}" - ] - ] - }, - { - "input": "&rcy", - "description": "Bad named entity: rcy without a semi-colon", - "output": [ - [ - "Character", - "&rcy" - ] - ] - }, - { - "input": "р", - "description": "Named entity: rcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0440" - ] - ] - }, - { - "input": "&rdca", - "description": "Bad named entity: rdca without a semi-colon", - "output": [ - [ - "Character", - "&rdca" - ] - ] - }, - { - "input": "⤷", - "description": "Named entity: rdca; with a semi-colon", - "output": [ - [ - "Character", - "\u2937" - ] - ] - }, - { - "input": "&rdldhar", - "description": "Bad named entity: rdldhar without a semi-colon", - "output": [ - [ - "Character", - "&rdldhar" - ] - ] - }, - { - "input": "⥩", - "description": "Named entity: rdldhar; with a semi-colon", - "output": [ - [ - "Character", - "\u2969" - ] - ] - }, - { - "input": "&rdquo", - "description": "Bad named entity: rdquo without a semi-colon", - "output": [ - [ - "Character", - "&rdquo" - ] - ] - }, - { - "input": "”", - "description": "Named entity: rdquo; with a semi-colon", - "output": [ - [ - "Character", - "\u201d" - ] - ] - }, - { - "input": "&rdquor", - "description": "Bad named entity: rdquor without a semi-colon", - "output": [ - [ - "Character", - "&rdquor" - ] - ] - }, - { - "input": "”", - "description": "Named entity: rdquor; with a semi-colon", - "output": [ - [ - "Character", - "\u201d" - ] - ] - }, - { - "input": "&rdsh", - "description": "Bad named entity: rdsh without a semi-colon", - "output": [ - [ - "Character", - "&rdsh" - ] - ] - }, - { - "input": "↳", - "description": "Named entity: rdsh; with a semi-colon", - "output": [ - [ - "Character", - "\u21b3" - ] - ] - }, - { - "input": "&real", - "description": "Bad named entity: real without a semi-colon", - "output": [ - [ - "Character", - "&real" - ] - ] - }, - { - "input": "ℜ", - "description": "Named entity: real; with a semi-colon", - "output": [ - [ - "Character", - "\u211c" - ] - ] - }, - { - "input": "&realine", - "description": "Bad named entity: realine without a semi-colon", - "output": [ - [ - "Character", - "&realine" - ] - ] - }, - { - "input": "ℛ", - "description": "Named entity: realine; with a semi-colon", - "output": [ - [ - "Character", - "\u211b" - ] - ] - }, - { - "input": "&realpart", - "description": "Bad named entity: realpart without a semi-colon", - "output": [ - [ - "Character", - "&realpart" - ] - ] - }, - { - "input": "ℜ", - "description": "Named entity: realpart; with a semi-colon", - "output": [ - [ - "Character", - "\u211c" - ] - ] - }, - { - "input": "&reals", - "description": "Bad named entity: reals without a semi-colon", - "output": [ - [ - "Character", - "&reals" - ] - ] - }, - { - "input": "ℝ", - "description": "Named entity: reals; with a semi-colon", - "output": [ - [ - "Character", - "\u211d" - ] - ] - }, - { - "input": "&rect", - "description": "Bad named entity: rect without a semi-colon", - "output": [ - [ - "Character", - "&rect" - ] - ] - }, - { - "input": "▭", - "description": "Named entity: rect; with a semi-colon", - "output": [ - [ - "Character", - "\u25ad" - ] - ] - }, - { - "input": "®", - "description": "Named entity: reg without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00ae" - ] - ] - }, - { - "input": "®", - "description": "Named entity: reg; with a semi-colon", - "output": [ - [ - "Character", - "\u00ae" - ] - ] - }, - { - "input": "&rfisht", - "description": "Bad named entity: rfisht without a semi-colon", - "output": [ - [ - "Character", - "&rfisht" - ] - ] - }, - { - "input": "⥽", - "description": "Named entity: rfisht; with a semi-colon", - "output": [ - [ - "Character", - "\u297d" - ] - ] - }, - { - "input": "&rfloor", - "description": "Bad named entity: rfloor without a semi-colon", - "output": [ - [ - "Character", - "&rfloor" - ] - ] - }, - { - "input": "⌋", - "description": "Named entity: rfloor; with a semi-colon", - "output": [ - [ - "Character", - "\u230b" - ] - ] - }, - { - "input": "&rfr", - "description": "Bad named entity: rfr without a semi-colon", - "output": [ - [ - "Character", - "&rfr" - ] - ] - }, - { - "input": "𝔯", - "description": "Named entity: rfr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd2f" - ] - ] - }, - { - "input": "&rhard", - "description": "Bad named entity: rhard without a semi-colon", - "output": [ - [ - "Character", - "&rhard" - ] - ] - }, - { - "input": "⇁", - "description": "Named entity: rhard; with a semi-colon", - "output": [ - [ - "Character", - "\u21c1" - ] - ] - }, - { - "input": "&rharu", - "description": "Bad named entity: rharu without a semi-colon", - "output": [ - [ - "Character", - "&rharu" - ] - ] - }, - { - "input": "⇀", - "description": "Named entity: rharu; with a semi-colon", - "output": [ - [ - "Character", - "\u21c0" - ] - ] - }, - { - "input": "&rharul", - "description": "Bad named entity: rharul without a semi-colon", - "output": [ - [ - "Character", - "&rharul" - ] - ] - }, - { - "input": "⥬", - "description": "Named entity: rharul; with a semi-colon", - "output": [ - [ - "Character", - "\u296c" - ] - ] - }, - { - "input": "&rho", - "description": "Bad named entity: rho without a semi-colon", - "output": [ - [ - "Character", - "&rho" - ] - ] - }, - { - "input": "ρ", - "description": "Named entity: rho; with a semi-colon", - "output": [ - [ - "Character", - "\u03c1" - ] - ] - }, - { - "input": "&rhov", - "description": "Bad named entity: rhov without a semi-colon", - "output": [ - [ - "Character", - "&rhov" - ] - ] - }, - { - "input": "ϱ", - "description": "Named entity: rhov; with a semi-colon", - "output": [ - [ - "Character", - "\u03f1" - ] - ] - }, - { - "input": "&rightarrow", - "description": "Bad named entity: rightarrow without a semi-colon", - "output": [ - [ - "Character", - "&rightarrow" - ] - ] - }, - { - "input": "→", - "description": "Named entity: rightarrow; with a semi-colon", - "output": [ - [ - "Character", - "\u2192" - ] - ] - }, - { - "input": "&rightarrowtail", - "description": "Bad named entity: rightarrowtail without a semi-colon", - "output": [ - [ - "Character", - "&rightarrowtail" - ] - ] - }, - { - "input": "↣", - "description": "Named entity: rightarrowtail; with a semi-colon", - "output": [ - [ - "Character", - "\u21a3" - ] - ] - }, - { - "input": "&rightharpoondown", - "description": "Bad named entity: rightharpoondown without a semi-colon", - "output": [ - [ - "Character", - "&rightharpoondown" - ] - ] - }, - { - "input": "⇁", - "description": "Named entity: rightharpoondown; with a semi-colon", - "output": [ - [ - "Character", - "\u21c1" - ] - ] - }, - { - "input": "&rightharpoonup", - "description": "Bad named entity: rightharpoonup without a semi-colon", - "output": [ - [ - "Character", - "&rightharpoonup" - ] - ] - }, - { - "input": "⇀", - "description": "Named entity: rightharpoonup; with a semi-colon", - "output": [ - [ - "Character", - "\u21c0" - ] - ] - }, - { - "input": "&rightleftarrows", - "description": "Bad named entity: rightleftarrows without a semi-colon", - "output": [ - [ - "Character", - "&rightleftarrows" - ] - ] - }, - { - "input": "⇄", - "description": "Named entity: rightleftarrows; with a semi-colon", - "output": [ - [ - "Character", - "\u21c4" - ] - ] - }, - { - "input": "&rightleftharpoons", - "description": "Bad named entity: rightleftharpoons without a semi-colon", - "output": [ - [ - "Character", - "&rightleftharpoons" - ] - ] - }, - { - "input": "⇌", - "description": "Named entity: rightleftharpoons; with a semi-colon", - "output": [ - [ - "Character", - "\u21cc" - ] - ] - }, - { - "input": "&rightrightarrows", - "description": "Bad named entity: rightrightarrows without a semi-colon", - "output": [ - [ - "Character", - "&rightrightarrows" - ] - ] - }, - { - "input": "⇉", - "description": "Named entity: rightrightarrows; with a semi-colon", - "output": [ - [ - "Character", - "\u21c9" - ] - ] - }, - { - "input": "&rightsquigarrow", - "description": "Bad named entity: rightsquigarrow without a semi-colon", - "output": [ - [ - "Character", - "&rightsquigarrow" - ] - ] - }, - { - "input": "↝", - "description": "Named entity: rightsquigarrow; with a semi-colon", - "output": [ - [ - "Character", - "\u219d" - ] - ] - }, - { - "input": "&rightthreetimes", - "description": "Bad named entity: rightthreetimes without a semi-colon", - "output": [ - [ - "Character", - "&rightthreetimes" - ] - ] - }, - { - "input": "⋌", - "description": "Named entity: rightthreetimes; with a semi-colon", - "output": [ - [ - "Character", - "\u22cc" - ] - ] - }, - { - "input": "&ring", - "description": "Bad named entity: ring without a semi-colon", - "output": [ - [ - "Character", - "&ring" - ] - ] - }, - { - "input": "˚", - "description": "Named entity: ring; with a semi-colon", - "output": [ - [ - "Character", - "\u02da" - ] - ] - }, - { - "input": "&risingdotseq", - "description": "Bad named entity: risingdotseq without a semi-colon", - "output": [ - [ - "Character", - "&risingdotseq" - ] - ] - }, - { - "input": "≓", - "description": "Named entity: risingdotseq; with a semi-colon", - "output": [ - [ - "Character", - "\u2253" - ] - ] - }, - { - "input": "&rlarr", - "description": "Bad named entity: rlarr without a semi-colon", - "output": [ - [ - "Character", - "&rlarr" - ] - ] - }, - { - "input": "⇄", - "description": "Named entity: rlarr; with a semi-colon", - "output": [ - [ - "Character", - "\u21c4" - ] - ] - }, - { - "input": "&rlhar", - "description": "Bad named entity: rlhar without a semi-colon", - "output": [ - [ - "Character", - "&rlhar" - ] - ] - }, - { - "input": "⇌", - "description": "Named entity: rlhar; with a semi-colon", - "output": [ - [ - "Character", - "\u21cc" - ] - ] - }, - { - "input": "&rlm", - "description": "Bad named entity: rlm without a semi-colon", - "output": [ - [ - "Character", - "&rlm" - ] - ] - }, - { - "input": "‏", - "description": "Named entity: rlm; with a semi-colon", - "output": [ - [ - "Character", - "\u200f" - ] - ] - }, - { - "input": "&rmoust", - "description": "Bad named entity: rmoust without a semi-colon", - "output": [ - [ - "Character", - "&rmoust" - ] - ] - }, - { - "input": "⎱", - "description": "Named entity: rmoust; with a semi-colon", - "output": [ - [ - "Character", - "\u23b1" - ] - ] - }, - { - "input": "&rmoustache", - "description": "Bad named entity: rmoustache without a semi-colon", - "output": [ - [ - "Character", - "&rmoustache" - ] - ] - }, - { - "input": "⎱", - "description": "Named entity: rmoustache; with a semi-colon", - "output": [ - [ - "Character", - "\u23b1" - ] - ] - }, - { - "input": "&rnmid", - "description": "Bad named entity: rnmid without a semi-colon", - "output": [ - [ - "Character", - "&rnmid" - ] - ] - }, - { - "input": "⫮", - "description": "Named entity: rnmid; with a semi-colon", - "output": [ - [ - "Character", - "\u2aee" - ] - ] - }, - { - "input": "&roang", - "description": "Bad named entity: roang without a semi-colon", - "output": [ - [ - "Character", - "&roang" - ] - ] - }, - { - "input": "⟭", - "description": "Named entity: roang; with a semi-colon", - "output": [ - [ - "Character", - "\u27ed" - ] - ] - }, - { - "input": "&roarr", - "description": "Bad named entity: roarr without a semi-colon", - "output": [ - [ - "Character", - "&roarr" - ] - ] - }, - { - "input": "⇾", - "description": "Named entity: roarr; with a semi-colon", - "output": [ - [ - "Character", - "\u21fe" - ] - ] - }, - { - "input": "&robrk", - "description": "Bad named entity: robrk without a semi-colon", - "output": [ - [ - "Character", - "&robrk" - ] - ] - }, - { - "input": "⟧", - "description": "Named entity: robrk; with a semi-colon", - "output": [ - [ - "Character", - "\u27e7" - ] - ] - }, - { - "input": "&ropar", - "description": "Bad named entity: ropar without a semi-colon", - "output": [ - [ - "Character", - "&ropar" - ] - ] - }, - { - "input": "⦆", - "description": "Named entity: ropar; with a semi-colon", - "output": [ - [ - "Character", - "\u2986" - ] - ] - }, - { - "input": "&ropf", - "description": "Bad named entity: ropf without a semi-colon", - "output": [ - [ - "Character", - "&ropf" - ] - ] - }, - { - "input": "𝕣", - "description": "Named entity: ropf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd63" - ] - ] - }, - { - "input": "&roplus", - "description": "Bad named entity: roplus without a semi-colon", - "output": [ - [ - "Character", - "&roplus" - ] - ] - }, - { - "input": "⨮", - "description": "Named entity: roplus; with a semi-colon", - "output": [ - [ - "Character", - "\u2a2e" - ] - ] - }, - { - "input": "&rotimes", - "description": "Bad named entity: rotimes without a semi-colon", - "output": [ - [ - "Character", - "&rotimes" - ] - ] - }, - { - "input": "⨵", - "description": "Named entity: rotimes; with a semi-colon", - "output": [ - [ - "Character", - "\u2a35" - ] - ] - }, - { - "input": "&rpar", - "description": "Bad named entity: rpar without a semi-colon", - "output": [ - [ - "Character", - "&rpar" - ] - ] - }, - { - "input": ")", - "description": "Named entity: rpar; with a semi-colon", - "output": [ - [ - "Character", - ")" - ] - ] - }, - { - "input": "&rpargt", - "description": "Bad named entity: rpargt without a semi-colon", - "output": [ - [ - "Character", - "&rpargt" - ] - ] - }, - { - "input": "⦔", - "description": "Named entity: rpargt; with a semi-colon", - "output": [ - [ - "Character", - "\u2994" - ] - ] - }, - { - "input": "&rppolint", - "description": "Bad named entity: rppolint without a semi-colon", - "output": [ - [ - "Character", - "&rppolint" - ] - ] - }, - { - "input": "⨒", - "description": "Named entity: rppolint; with a semi-colon", - "output": [ - [ - "Character", - "\u2a12" - ] - ] - }, - { - "input": "&rrarr", - "description": "Bad named entity: rrarr without a semi-colon", - "output": [ - [ - "Character", - "&rrarr" - ] - ] - }, - { - "input": "⇉", - "description": "Named entity: rrarr; with a semi-colon", - "output": [ - [ - "Character", - "\u21c9" - ] - ] - }, - { - "input": "&rsaquo", - "description": "Bad named entity: rsaquo without a semi-colon", - "output": [ - [ - "Character", - "&rsaquo" - ] - ] - }, - { - "input": "›", - "description": "Named entity: rsaquo; with a semi-colon", - "output": [ - [ - "Character", - "\u203a" - ] - ] - }, - { - "input": "&rscr", - "description": "Bad named entity: rscr without a semi-colon", - "output": [ - [ - "Character", - "&rscr" - ] - ] - }, - { - "input": "𝓇", - "description": "Named entity: rscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udcc7" - ] - ] - }, - { - "input": "&rsh", - "description": "Bad named entity: rsh without a semi-colon", - "output": [ - [ - "Character", - "&rsh" - ] - ] - }, - { - "input": "↱", - "description": "Named entity: rsh; with a semi-colon", - "output": [ - [ - "Character", - "\u21b1" - ] - ] - }, - { - "input": "&rsqb", - "description": "Bad named entity: rsqb without a semi-colon", - "output": [ - [ - "Character", - "&rsqb" - ] - ] - }, - { - "input": "]", - "description": "Named entity: rsqb; with a semi-colon", - "output": [ - [ - "Character", - "]" - ] - ] - }, - { - "input": "&rsquo", - "description": "Bad named entity: rsquo without a semi-colon", - "output": [ - [ - "Character", - "&rsquo" - ] - ] - }, - { - "input": "’", - "description": "Named entity: rsquo; with a semi-colon", - "output": [ - [ - "Character", - "\u2019" - ] - ] - }, - { - "input": "&rsquor", - "description": "Bad named entity: rsquor without a semi-colon", - "output": [ - [ - "Character", - "&rsquor" - ] - ] - }, - { - "input": "’", - "description": "Named entity: rsquor; with a semi-colon", - "output": [ - [ - "Character", - "\u2019" - ] - ] - }, - { - "input": "&rthree", - "description": "Bad named entity: rthree without a semi-colon", - "output": [ - [ - "Character", - "&rthree" - ] - ] - }, - { - "input": "⋌", - "description": "Named entity: rthree; with a semi-colon", - "output": [ - [ - "Character", - "\u22cc" - ] - ] - }, - { - "input": "&rtimes", - "description": "Bad named entity: rtimes without a semi-colon", - "output": [ - [ - "Character", - "&rtimes" - ] - ] - }, - { - "input": "⋊", - "description": "Named entity: rtimes; with a semi-colon", - "output": [ - [ - "Character", - "\u22ca" - ] - ] - }, - { - "input": "&rtri", - "description": "Bad named entity: rtri without a semi-colon", - "output": [ - [ - "Character", - "&rtri" - ] - ] - }, - { - "input": "▹", - "description": "Named entity: rtri; with a semi-colon", - "output": [ - [ - "Character", - "\u25b9" - ] - ] - }, - { - "input": "&rtrie", - "description": "Bad named entity: rtrie without a semi-colon", - "output": [ - [ - "Character", - "&rtrie" - ] - ] - }, - { - "input": "⊵", - "description": "Named entity: rtrie; with a semi-colon", - "output": [ - [ - "Character", - "\u22b5" - ] - ] - }, - { - "input": "&rtrif", - "description": "Bad named entity: rtrif without a semi-colon", - "output": [ - [ - "Character", - "&rtrif" - ] - ] - }, - { - "input": "▸", - "description": "Named entity: rtrif; with a semi-colon", - "output": [ - [ - "Character", - "\u25b8" - ] - ] - }, - { - "input": "&rtriltri", - "description": "Bad named entity: rtriltri without a semi-colon", - "output": [ - [ - "Character", - "&rtriltri" - ] - ] - }, - { - "input": "⧎", - "description": "Named entity: rtriltri; with a semi-colon", - "output": [ - [ - "Character", - "\u29ce" - ] - ] - }, - { - "input": "&ruluhar", - "description": "Bad named entity: ruluhar without a semi-colon", - "output": [ - [ - "Character", - "&ruluhar" - ] - ] - }, - { - "input": "⥨", - "description": "Named entity: ruluhar; with a semi-colon", - "output": [ - [ - "Character", - "\u2968" - ] - ] - }, - { - "input": "&rx", - "description": "Bad named entity: rx without a semi-colon", - "output": [ - [ - "Character", - "&rx" - ] - ] - }, - { - "input": "℞", - "description": "Named entity: rx; with a semi-colon", - "output": [ - [ - "Character", - "\u211e" - ] - ] - }, - { - "input": "&sacute", - "description": "Bad named entity: sacute without a semi-colon", - "output": [ - [ - "Character", - "&sacute" - ] - ] - }, - { - "input": "ś", - "description": "Named entity: sacute; with a semi-colon", - "output": [ - [ - "Character", - "\u015b" - ] - ] - }, - { - "input": "&sbquo", - "description": "Bad named entity: sbquo without a semi-colon", - "output": [ - [ - "Character", - "&sbquo" - ] - ] - }, - { - "input": "‚", - "description": "Named entity: sbquo; with a semi-colon", - "output": [ - [ - "Character", - "\u201a" - ] - ] - }, - { - "input": "&sc", - "description": "Bad named entity: sc without a semi-colon", - "output": [ - [ - "Character", - "&sc" - ] - ] - }, - { - "input": "≻", - "description": "Named entity: sc; with a semi-colon", - "output": [ - [ - "Character", - "\u227b" - ] - ] - }, - { - "input": "&scE", - "description": "Bad named entity: scE without a semi-colon", - "output": [ - [ - "Character", - "&scE" - ] - ] - }, - { - "input": "⪴", - "description": "Named entity: scE; with a semi-colon", - "output": [ - [ - "Character", - "\u2ab4" - ] - ] - }, - { - "input": "&scap", - "description": "Bad named entity: scap without a semi-colon", - "output": [ - [ - "Character", - "&scap" - ] - ] - }, - { - "input": "⪸", - "description": "Named entity: scap; with a semi-colon", - "output": [ - [ - "Character", - "\u2ab8" - ] - ] - }, - { - "input": "&scaron", - "description": "Bad named entity: scaron without a semi-colon", - "output": [ - [ - "Character", - "&scaron" - ] - ] - }, - { - "input": "š", - "description": "Named entity: scaron; with a semi-colon", - "output": [ - [ - "Character", - "\u0161" - ] - ] - }, - { - "input": "&sccue", - "description": "Bad named entity: sccue without a semi-colon", - "output": [ - [ - "Character", - "&sccue" - ] - ] - }, - { - "input": "≽", - "description": "Named entity: sccue; with a semi-colon", - "output": [ - [ - "Character", - "\u227d" - ] - ] - }, - { - "input": "&sce", - "description": "Bad named entity: sce without a semi-colon", - "output": [ - [ - "Character", - "&sce" - ] - ] - }, - { - "input": "⪰", - "description": "Named entity: sce; with a semi-colon", - "output": [ - [ - "Character", - "\u2ab0" - ] - ] - }, - { - "input": "&scedil", - "description": "Bad named entity: scedil without a semi-colon", - "output": [ - [ - "Character", - "&scedil" - ] - ] - }, - { - "input": "ş", - "description": "Named entity: scedil; with a semi-colon", - "output": [ - [ - "Character", - "\u015f" - ] - ] - }, - { - "input": "&scirc", - "description": "Bad named entity: scirc without a semi-colon", - "output": [ - [ - "Character", - "&scirc" - ] - ] - }, - { - "input": "ŝ", - "description": "Named entity: scirc; with a semi-colon", - "output": [ - [ - "Character", - "\u015d" - ] - ] - }, - { - "input": "&scnE", - "description": "Bad named entity: scnE without a semi-colon", - "output": [ - [ - "Character", - "&scnE" - ] - ] - }, - { - "input": "⪶", - "description": "Named entity: scnE; with a semi-colon", - "output": [ - [ - "Character", - "\u2ab6" - ] - ] - }, - { - "input": "&scnap", - "description": "Bad named entity: scnap without a semi-colon", - "output": [ - [ - "Character", - "&scnap" - ] - ] - }, - { - "input": "⪺", - "description": "Named entity: scnap; with a semi-colon", - "output": [ - [ - "Character", - "\u2aba" - ] - ] - }, - { - "input": "&scnsim", - "description": "Bad named entity: scnsim without a semi-colon", - "output": [ - [ - "Character", - "&scnsim" - ] - ] - }, - { - "input": "⋩", - "description": "Named entity: scnsim; with a semi-colon", - "output": [ - [ - "Character", - "\u22e9" - ] - ] - }, - { - "input": "&scpolint", - "description": "Bad named entity: scpolint without a semi-colon", - "output": [ - [ - "Character", - "&scpolint" - ] - ] - }, - { - "input": "⨓", - "description": "Named entity: scpolint; with a semi-colon", - "output": [ - [ - "Character", - "\u2a13" - ] - ] - }, - { - "input": "&scsim", - "description": "Bad named entity: scsim without a semi-colon", - "output": [ - [ - "Character", - "&scsim" - ] - ] - }, - { - "input": "≿", - "description": "Named entity: scsim; with a semi-colon", - "output": [ - [ - "Character", - "\u227f" - ] - ] - }, - { - "input": "&scy", - "description": "Bad named entity: scy without a semi-colon", - "output": [ - [ - "Character", - "&scy" - ] - ] - }, - { - "input": "с", - "description": "Named entity: scy; with a semi-colon", - "output": [ - [ - "Character", - "\u0441" - ] - ] - }, - { - "input": "&sdot", - "description": "Bad named entity: sdot without a semi-colon", - "output": [ - [ - "Character", - "&sdot" - ] - ] - }, - { - "input": "⋅", - "description": "Named entity: sdot; with a semi-colon", - "output": [ - [ - "Character", - "\u22c5" - ] - ] - }, - { - "input": "&sdotb", - "description": "Bad named entity: sdotb without a semi-colon", - "output": [ - [ - "Character", - "&sdotb" - ] - ] - }, - { - "input": "⊡", - "description": "Named entity: sdotb; with a semi-colon", - "output": [ - [ - "Character", - "\u22a1" - ] - ] - }, - { - "input": "&sdote", - "description": "Bad named entity: sdote without a semi-colon", - "output": [ - [ - "Character", - "&sdote" - ] - ] - }, - { - "input": "⩦", - "description": "Named entity: sdote; with a semi-colon", - "output": [ - [ - "Character", - "\u2a66" - ] - ] - }, - { - "input": "&seArr", - "description": "Bad named entity: seArr without a semi-colon", - "output": [ - [ - "Character", - "&seArr" - ] - ] - }, - { - "input": "⇘", - "description": "Named entity: seArr; with a semi-colon", - "output": [ - [ - "Character", - "\u21d8" - ] - ] - }, - { - "input": "&searhk", - "description": "Bad named entity: searhk without a semi-colon", - "output": [ - [ - "Character", - "&searhk" - ] - ] - }, - { - "input": "⤥", - "description": "Named entity: searhk; with a semi-colon", - "output": [ - [ - "Character", - "\u2925" - ] - ] - }, - { - "input": "&searr", - "description": "Bad named entity: searr without a semi-colon", - "output": [ - [ - "Character", - "&searr" - ] - ] - }, - { - "input": "↘", - "description": "Named entity: searr; with a semi-colon", - "output": [ - [ - "Character", - "\u2198" - ] - ] - }, - { - "input": "&searrow", - "description": "Bad named entity: searrow without a semi-colon", - "output": [ - [ - "Character", - "&searrow" - ] - ] - }, - { - "input": "↘", - "description": "Named entity: searrow; with a semi-colon", - "output": [ - [ - "Character", - "\u2198" - ] - ] - }, - { - "input": "§", - "description": "Named entity: sect without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00a7" - ] - ] - }, - { - "input": "§", - "description": "Named entity: sect; with a semi-colon", - "output": [ - [ - "Character", - "\u00a7" - ] - ] - }, - { - "input": "&semi", - "description": "Bad named entity: semi without a semi-colon", - "output": [ - [ - "Character", - "&semi" - ] - ] - }, - { - "input": ";", - "description": "Named entity: semi; with a semi-colon", - "output": [ - [ - "Character", - ";" - ] - ] - }, - { - "input": "&seswar", - "description": "Bad named entity: seswar without a semi-colon", - "output": [ - [ - "Character", - "&seswar" - ] - ] - }, - { - "input": "⤩", - "description": "Named entity: seswar; with a semi-colon", - "output": [ - [ - "Character", - "\u2929" - ] - ] - }, - { - "input": "&setminus", - "description": "Bad named entity: setminus without a semi-colon", - "output": [ - [ - "Character", - "&setminus" - ] - ] - }, - { - "input": "∖", - "description": "Named entity: setminus; with a semi-colon", - "output": [ - [ - "Character", - "\u2216" - ] - ] - }, - { - "input": "&setmn", - "description": "Bad named entity: setmn without a semi-colon", - "output": [ - [ - "Character", - "&setmn" - ] - ] - }, - { - "input": "∖", - "description": "Named entity: setmn; with a semi-colon", - "output": [ - [ - "Character", - "\u2216" - ] - ] - }, - { - "input": "&sext", - "description": "Bad named entity: sext without a semi-colon", - "output": [ - [ - "Character", - "&sext" - ] - ] - }, - { - "input": "✶", - "description": "Named entity: sext; with a semi-colon", - "output": [ - [ - "Character", - "\u2736" - ] - ] - }, - { - "input": "&sfr", - "description": "Bad named entity: sfr without a semi-colon", - "output": [ - [ - "Character", - "&sfr" - ] - ] - }, - { - "input": "𝔰", - "description": "Named entity: sfr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd30" - ] - ] - }, - { - "input": "&sfrown", - "description": "Bad named entity: sfrown without a semi-colon", - "output": [ - [ - "Character", - "&sfrown" - ] - ] - }, - { - "input": "⌢", - "description": "Named entity: sfrown; with a semi-colon", - "output": [ - [ - "Character", - "\u2322" - ] - ] - }, - { - "input": "&sharp", - "description": "Bad named entity: sharp without a semi-colon", - "output": [ - [ - "Character", - "&sharp" - ] - ] - }, - { - "input": "♯", - "description": "Named entity: sharp; with a semi-colon", - "output": [ - [ - "Character", - "\u266f" - ] - ] - }, - { - "input": "&shchcy", - "description": "Bad named entity: shchcy without a semi-colon", - "output": [ - [ - "Character", - "&shchcy" - ] - ] - }, - { - "input": "щ", - "description": "Named entity: shchcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0449" - ] - ] - }, - { - "input": "&shcy", - "description": "Bad named entity: shcy without a semi-colon", - "output": [ - [ - "Character", - "&shcy" - ] - ] - }, - { - "input": "ш", - "description": "Named entity: shcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0448" - ] - ] - }, - { - "input": "&shortmid", - "description": "Bad named entity: shortmid without a semi-colon", - "output": [ - [ - "Character", - "&shortmid" - ] - ] - }, - { - "input": "∣", - "description": "Named entity: shortmid; with a semi-colon", - "output": [ - [ - "Character", - "\u2223" - ] - ] - }, - { - "input": "&shortparallel", - "description": "Bad named entity: shortparallel without a semi-colon", - "output": [ - [ - "Character", - "&shortparallel" - ] - ] - }, - { - "input": "∥", - "description": "Named entity: shortparallel; with a semi-colon", - "output": [ - [ - "Character", - "\u2225" - ] - ] - }, - { - "input": "­", - "description": "Named entity: shy without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00ad" - ] - ] - }, - { - "input": "­", - "description": "Named entity: shy; with a semi-colon", - "output": [ - [ - "Character", - "\u00ad" - ] - ] - }, - { - "input": "&sigma", - "description": "Bad named entity: sigma without a semi-colon", - "output": [ - [ - "Character", - "&sigma" - ] - ] - }, - { - "input": "σ", - "description": "Named entity: sigma; with a semi-colon", - "output": [ - [ - "Character", - "\u03c3" - ] - ] - }, - { - "input": "&sigmaf", - "description": "Bad named entity: sigmaf without a semi-colon", - "output": [ - [ - "Character", - "&sigmaf" - ] - ] - }, - { - "input": "ς", - "description": "Named entity: sigmaf; with a semi-colon", - "output": [ - [ - "Character", - "\u03c2" - ] - ] - }, - { - "input": "&sigmav", - "description": "Bad named entity: sigmav without a semi-colon", - "output": [ - [ - "Character", - "&sigmav" - ] - ] - }, - { - "input": "ς", - "description": "Named entity: sigmav; with a semi-colon", - "output": [ - [ - "Character", - "\u03c2" - ] - ] - }, - { - "input": "&sim", - "description": "Bad named entity: sim without a semi-colon", - "output": [ - [ - "Character", - "&sim" - ] - ] - }, - { - "input": "∼", - "description": "Named entity: sim; with a semi-colon", - "output": [ - [ - "Character", - "\u223c" - ] - ] - }, - { - "input": "&simdot", - "description": "Bad named entity: simdot without a semi-colon", - "output": [ - [ - "Character", - "&simdot" - ] - ] - }, - { - "input": "⩪", - "description": "Named entity: simdot; with a semi-colon", - "output": [ - [ - "Character", - "\u2a6a" - ] - ] - }, - { - "input": "&sime", - "description": "Bad named entity: sime without a semi-colon", - "output": [ - [ - "Character", - "&sime" - ] - ] - }, - { - "input": "≃", - "description": "Named entity: sime; with a semi-colon", - "output": [ - [ - "Character", - "\u2243" - ] - ] - }, - { - "input": "&simeq", - "description": "Bad named entity: simeq without a semi-colon", - "output": [ - [ - "Character", - "&simeq" - ] - ] - }, - { - "input": "≃", - "description": "Named entity: simeq; with a semi-colon", - "output": [ - [ - "Character", - "\u2243" - ] - ] - }, - { - "input": "&simg", - "description": "Bad named entity: simg without a semi-colon", - "output": [ - [ - "Character", - "&simg" - ] - ] - }, - { - "input": "⪞", - "description": "Named entity: simg; with a semi-colon", - "output": [ - [ - "Character", - "\u2a9e" - ] - ] - }, - { - "input": "&simgE", - "description": "Bad named entity: simgE without a semi-colon", - "output": [ - [ - "Character", - "&simgE" - ] - ] - }, - { - "input": "⪠", - "description": "Named entity: simgE; with a semi-colon", - "output": [ - [ - "Character", - "\u2aa0" - ] - ] - }, - { - "input": "&siml", - "description": "Bad named entity: siml without a semi-colon", - "output": [ - [ - "Character", - "&siml" - ] - ] - }, - { - "input": "⪝", - "description": "Named entity: siml; with a semi-colon", - "output": [ - [ - "Character", - "\u2a9d" - ] - ] - }, - { - "input": "&simlE", - "description": "Bad named entity: simlE without a semi-colon", - "output": [ - [ - "Character", - "&simlE" - ] - ] - }, - { - "input": "⪟", - "description": "Named entity: simlE; with a semi-colon", - "output": [ - [ - "Character", - "\u2a9f" - ] - ] - }, - { - "input": "&simne", - "description": "Bad named entity: simne without a semi-colon", - "output": [ - [ - "Character", - "&simne" - ] - ] - }, - { - "input": "≆", - "description": "Named entity: simne; with a semi-colon", - "output": [ - [ - "Character", - "\u2246" - ] - ] - }, - { - "input": "&simplus", - "description": "Bad named entity: simplus without a semi-colon", - "output": [ - [ - "Character", - "&simplus" - ] - ] - }, - { - "input": "⨤", - "description": "Named entity: simplus; with a semi-colon", - "output": [ - [ - "Character", - "\u2a24" - ] - ] - }, - { - "input": "&simrarr", - "description": "Bad named entity: simrarr without a semi-colon", - "output": [ - [ - "Character", - "&simrarr" - ] - ] - }, - { - "input": "⥲", - "description": "Named entity: simrarr; with a semi-colon", - "output": [ - [ - "Character", - "\u2972" - ] - ] - }, - { - "input": "&slarr", - "description": "Bad named entity: slarr without a semi-colon", - "output": [ - [ - "Character", - "&slarr" - ] - ] - }, - { - "input": "←", - "description": "Named entity: slarr; with a semi-colon", - "output": [ - [ - "Character", - "\u2190" - ] - ] - }, - { - "input": "&smallsetminus", - "description": "Bad named entity: smallsetminus without a semi-colon", - "output": [ - [ - "Character", - "&smallsetminus" - ] - ] - }, - { - "input": "∖", - "description": "Named entity: smallsetminus; with a semi-colon", - "output": [ - [ - "Character", - "\u2216" - ] - ] - }, - { - "input": "&smashp", - "description": "Bad named entity: smashp without a semi-colon", - "output": [ - [ - "Character", - "&smashp" - ] - ] - }, - { - "input": "⨳", - "description": "Named entity: smashp; with a semi-colon", - "output": [ - [ - "Character", - "\u2a33" - ] - ] - }, - { - "input": "&smeparsl", - "description": "Bad named entity: smeparsl without a semi-colon", - "output": [ - [ - "Character", - "&smeparsl" - ] - ] - }, - { - "input": "⧤", - "description": "Named entity: smeparsl; with a semi-colon", - "output": [ - [ - "Character", - "\u29e4" - ] - ] - }, - { - "input": "&smid", - "description": "Bad named entity: smid without a semi-colon", - "output": [ - [ - "Character", - "&smid" - ] - ] - }, - { - "input": "∣", - "description": "Named entity: smid; with a semi-colon", - "output": [ - [ - "Character", - "\u2223" - ] - ] - }, - { - "input": "&smile", - "description": "Bad named entity: smile without a semi-colon", - "output": [ - [ - "Character", - "&smile" - ] - ] - }, - { - "input": "⌣", - "description": "Named entity: smile; with a semi-colon", - "output": [ - [ - "Character", - "\u2323" - ] - ] - }, - { - "input": "&smt", - "description": "Bad named entity: smt without a semi-colon", - "output": [ - [ - "Character", - "&smt" - ] - ] - }, - { - "input": "⪪", - "description": "Named entity: smt; with a semi-colon", - "output": [ - [ - "Character", - "\u2aaa" - ] - ] - }, - { - "input": "&smte", - "description": "Bad named entity: smte without a semi-colon", - "output": [ - [ - "Character", - "&smte" - ] - ] - }, - { - "input": "⪬", - "description": "Named entity: smte; with a semi-colon", - "output": [ - [ - "Character", - "\u2aac" - ] - ] - }, - { - "input": "&smtes", - "description": "Bad named entity: smtes without a semi-colon", - "output": [ - [ - "Character", - "&smtes" - ] - ] - }, - { - "input": "⪬︀", - "description": "Named entity: smtes; with a semi-colon", - "output": [ - [ - "Character", - "\u2aac\ufe00" - ] - ] - }, - { - "input": "&softcy", - "description": "Bad named entity: softcy without a semi-colon", - "output": [ - [ - "Character", - "&softcy" - ] - ] - }, - { - "input": "ь", - "description": "Named entity: softcy; with a semi-colon", - "output": [ - [ - "Character", - "\u044c" - ] - ] - }, - { - "input": "&sol", - "description": "Bad named entity: sol without a semi-colon", - "output": [ - [ - "Character", - "&sol" - ] - ] - }, - { - "input": "/", - "description": "Named entity: sol; with a semi-colon", - "output": [ - [ - "Character", - "/" - ] - ] - }, - { - "input": "&solb", - "description": "Bad named entity: solb without a semi-colon", - "output": [ - [ - "Character", - "&solb" - ] - ] - }, - { - "input": "⧄", - "description": "Named entity: solb; with a semi-colon", - "output": [ - [ - "Character", - "\u29c4" - ] - ] - }, - { - "input": "&solbar", - "description": "Bad named entity: solbar without a semi-colon", - "output": [ - [ - "Character", - "&solbar" - ] - ] - }, - { - "input": "⌿", - "description": "Named entity: solbar; with a semi-colon", - "output": [ - [ - "Character", - "\u233f" - ] - ] - }, - { - "input": "&sopf", - "description": "Bad named entity: sopf without a semi-colon", - "output": [ - [ - "Character", - "&sopf" - ] - ] - }, - { - "input": "𝕤", - "description": "Named entity: sopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd64" - ] - ] - }, - { - "input": "&spades", - "description": "Bad named entity: spades without a semi-colon", - "output": [ - [ - "Character", - "&spades" - ] - ] - }, - { - "input": "♠", - "description": "Named entity: spades; with a semi-colon", - "output": [ - [ - "Character", - "\u2660" - ] - ] - }, - { - "input": "&spadesuit", - "description": "Bad named entity: spadesuit without a semi-colon", - "output": [ - [ - "Character", - "&spadesuit" - ] - ] - }, - { - "input": "♠", - "description": "Named entity: spadesuit; with a semi-colon", - "output": [ - [ - "Character", - "\u2660" - ] - ] - }, - { - "input": "&spar", - "description": "Bad named entity: spar without a semi-colon", - "output": [ - [ - "Character", - "&spar" - ] - ] - }, - { - "input": "∥", - "description": "Named entity: spar; with a semi-colon", - "output": [ - [ - "Character", - "\u2225" - ] - ] - }, - { - "input": "&sqcap", - "description": "Bad named entity: sqcap without a semi-colon", - "output": [ - [ - "Character", - "&sqcap" - ] - ] - }, - { - "input": "⊓", - "description": "Named entity: sqcap; with a semi-colon", - "output": [ - [ - "Character", - "\u2293" - ] - ] - }, - { - "input": "&sqcaps", - "description": "Bad named entity: sqcaps without a semi-colon", - "output": [ - [ - "Character", - "&sqcaps" - ] - ] - }, - { - "input": "⊓︀", - "description": "Named entity: sqcaps; with a semi-colon", - "output": [ - [ - "Character", - "\u2293\ufe00" - ] - ] - }, - { - "input": "&sqcup", - "description": "Bad named entity: sqcup without a semi-colon", - "output": [ - [ - "Character", - "&sqcup" - ] - ] - }, - { - "input": "⊔", - "description": "Named entity: sqcup; with a semi-colon", - "output": [ - [ - "Character", - "\u2294" - ] - ] - }, - { - "input": "&sqcups", - "description": "Bad named entity: sqcups without a semi-colon", - "output": [ - [ - "Character", - "&sqcups" - ] - ] - }, - { - "input": "⊔︀", - "description": "Named entity: sqcups; with a semi-colon", - "output": [ - [ - "Character", - "\u2294\ufe00" - ] - ] - }, - { - "input": "&sqsub", - "description": "Bad named entity: sqsub without a semi-colon", - "output": [ - [ - "Character", - "&sqsub" - ] - ] - }, - { - "input": "⊏", - "description": "Named entity: sqsub; with a semi-colon", - "output": [ - [ - "Character", - "\u228f" - ] - ] - }, - { - "input": "&sqsube", - "description": "Bad named entity: sqsube without a semi-colon", - "output": [ - [ - "Character", - "&sqsube" - ] - ] - }, - { - "input": "⊑", - "description": "Named entity: sqsube; with a semi-colon", - "output": [ - [ - "Character", - "\u2291" - ] - ] - }, - { - "input": "&sqsubset", - "description": "Bad named entity: sqsubset without a semi-colon", - "output": [ - [ - "Character", - "&sqsubset" - ] - ] - }, - { - "input": "⊏", - "description": "Named entity: sqsubset; with a semi-colon", - "output": [ - [ - "Character", - "\u228f" - ] - ] - }, - { - "input": "&sqsubseteq", - "description": "Bad named entity: sqsubseteq without a semi-colon", - "output": [ - [ - "Character", - "&sqsubseteq" - ] - ] - }, - { - "input": "⊑", - "description": "Named entity: sqsubseteq; with a semi-colon", - "output": [ - [ - "Character", - "\u2291" - ] - ] - }, - { - "input": "&sqsup", - "description": "Bad named entity: sqsup without a semi-colon", - "output": [ - [ - "Character", - "&sqsup" - ] - ] - }, - { - "input": "⊐", - "description": "Named entity: sqsup; with a semi-colon", - "output": [ - [ - "Character", - "\u2290" - ] - ] - }, - { - "input": "&sqsupe", - "description": "Bad named entity: sqsupe without a semi-colon", - "output": [ - [ - "Character", - "&sqsupe" - ] - ] - }, - { - "input": "⊒", - "description": "Named entity: sqsupe; with a semi-colon", - "output": [ - [ - "Character", - "\u2292" - ] - ] - }, - { - "input": "&sqsupset", - "description": "Bad named entity: sqsupset without a semi-colon", - "output": [ - [ - "Character", - "&sqsupset" - ] - ] - }, - { - "input": "⊐", - "description": "Named entity: sqsupset; with a semi-colon", - "output": [ - [ - "Character", - "\u2290" - ] - ] - }, - { - "input": "&sqsupseteq", - "description": "Bad named entity: sqsupseteq without a semi-colon", - "output": [ - [ - "Character", - "&sqsupseteq" - ] - ] - }, - { - "input": "⊒", - "description": "Named entity: sqsupseteq; with a semi-colon", - "output": [ - [ - "Character", - "\u2292" - ] - ] - }, - { - "input": "&squ", - "description": "Bad named entity: squ without a semi-colon", - "output": [ - [ - "Character", - "&squ" - ] - ] - }, - { - "input": "□", - "description": "Named entity: squ; with a semi-colon", - "output": [ - [ - "Character", - "\u25a1" - ] - ] - }, - { - "input": "&square", - "description": "Bad named entity: square without a semi-colon", - "output": [ - [ - "Character", - "&square" - ] - ] - }, - { - "input": "□", - "description": "Named entity: square; with a semi-colon", - "output": [ - [ - "Character", - "\u25a1" - ] - ] - }, - { - "input": "&squarf", - "description": "Bad named entity: squarf without a semi-colon", - "output": [ - [ - "Character", - "&squarf" - ] - ] - }, - { - "input": "▪", - "description": "Named entity: squarf; with a semi-colon", - "output": [ - [ - "Character", - "\u25aa" - ] - ] - }, - { - "input": "&squf", - "description": "Bad named entity: squf without a semi-colon", - "output": [ - [ - "Character", - "&squf" - ] - ] - }, - { - "input": "▪", - "description": "Named entity: squf; with a semi-colon", - "output": [ - [ - "Character", - "\u25aa" - ] - ] - }, - { - "input": "&srarr", - "description": "Bad named entity: srarr without a semi-colon", - "output": [ - [ - "Character", - "&srarr" - ] - ] - }, - { - "input": "→", - "description": "Named entity: srarr; with a semi-colon", - "output": [ - [ - "Character", - "\u2192" - ] - ] - }, - { - "input": "&sscr", - "description": "Bad named entity: sscr without a semi-colon", - "output": [ - [ - "Character", - "&sscr" - ] - ] - }, - { - "input": "𝓈", - "description": "Named entity: sscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udcc8" - ] - ] - }, - { - "input": "&ssetmn", - "description": "Bad named entity: ssetmn without a semi-colon", - "output": [ - [ - "Character", - "&ssetmn" - ] - ] - }, - { - "input": "∖", - "description": "Named entity: ssetmn; with a semi-colon", - "output": [ - [ - "Character", - "\u2216" - ] - ] - }, - { - "input": "&ssmile", - "description": "Bad named entity: ssmile without a semi-colon", - "output": [ - [ - "Character", - "&ssmile" - ] - ] - }, - { - "input": "⌣", - "description": "Named entity: ssmile; with a semi-colon", - "output": [ - [ - "Character", - "\u2323" - ] - ] - }, - { - "input": "&sstarf", - "description": "Bad named entity: sstarf without a semi-colon", - "output": [ - [ - "Character", - "&sstarf" - ] - ] - }, - { - "input": "⋆", - "description": "Named entity: sstarf; with a semi-colon", - "output": [ - [ - "Character", - "\u22c6" - ] - ] - }, - { - "input": "&star", - "description": "Bad named entity: star without a semi-colon", - "output": [ - [ - "Character", - "&star" - ] - ] - }, - { - "input": "☆", - "description": "Named entity: star; with a semi-colon", - "output": [ - [ - "Character", - "\u2606" - ] - ] - }, - { - "input": "&starf", - "description": "Bad named entity: starf without a semi-colon", - "output": [ - [ - "Character", - "&starf" - ] - ] - }, - { - "input": "★", - "description": "Named entity: starf; with a semi-colon", - "output": [ - [ - "Character", - "\u2605" - ] - ] - }, - { - "input": "&straightepsilon", - "description": "Bad named entity: straightepsilon without a semi-colon", - "output": [ - [ - "Character", - "&straightepsilon" - ] - ] - }, - { - "input": "ϵ", - "description": "Named entity: straightepsilon; with a semi-colon", - "output": [ - [ - "Character", - "\u03f5" - ] - ] - }, - { - "input": "&straightphi", - "description": "Bad named entity: straightphi without a semi-colon", - "output": [ - [ - "Character", - "&straightphi" - ] - ] - }, - { - "input": "ϕ", - "description": "Named entity: straightphi; with a semi-colon", - "output": [ - [ - "Character", - "\u03d5" - ] - ] - }, - { - "input": "&strns", - "description": "Bad named entity: strns without a semi-colon", - "output": [ - [ - "Character", - "&strns" - ] - ] - }, - { - "input": "¯", - "description": "Named entity: strns; with a semi-colon", - "output": [ - [ - "Character", - "\u00af" - ] - ] - }, - { - "input": "&sub", - "description": "Bad named entity: sub without a semi-colon", - "output": [ - [ - "Character", - "&sub" - ] - ] - }, - { - "input": "⊂", - "description": "Named entity: sub; with a semi-colon", - "output": [ - [ - "Character", - "\u2282" - ] - ] - }, - { - "input": "&subE", - "description": "Bad named entity: subE without a semi-colon", - "output": [ - [ - "Character", - "&subE" - ] - ] - }, - { - "input": "⫅", - "description": "Named entity: subE; with a semi-colon", - "output": [ - [ - "Character", - "\u2ac5" - ] - ] - }, - { - "input": "&subdot", - "description": "Bad named entity: subdot without a semi-colon", - "output": [ - [ - "Character", - "&subdot" - ] - ] - }, - { - "input": "⪽", - "description": "Named entity: subdot; with a semi-colon", - "output": [ - [ - "Character", - "\u2abd" - ] - ] - }, - { - "input": "&sube", - "description": "Bad named entity: sube without a semi-colon", - "output": [ - [ - "Character", - "&sube" - ] - ] - }, - { - "input": "⊆", - "description": "Named entity: sube; with a semi-colon", - "output": [ - [ - "Character", - "\u2286" - ] - ] - }, - { - "input": "&subedot", - "description": "Bad named entity: subedot without a semi-colon", - "output": [ - [ - "Character", - "&subedot" - ] - ] - }, - { - "input": "⫃", - "description": "Named entity: subedot; with a semi-colon", - "output": [ - [ - "Character", - "\u2ac3" - ] - ] - }, - { - "input": "&submult", - "description": "Bad named entity: submult without a semi-colon", - "output": [ - [ - "Character", - "&submult" - ] - ] - }, - { - "input": "⫁", - "description": "Named entity: submult; with a semi-colon", - "output": [ - [ - "Character", - "\u2ac1" - ] - ] - }, - { - "input": "&subnE", - "description": "Bad named entity: subnE without a semi-colon", - "output": [ - [ - "Character", - "&subnE" - ] - ] - }, - { - "input": "⫋", - "description": "Named entity: subnE; with a semi-colon", - "output": [ - [ - "Character", - "\u2acb" - ] - ] - }, - { - "input": "&subne", - "description": "Bad named entity: subne without a semi-colon", - "output": [ - [ - "Character", - "&subne" - ] - ] - }, - { - "input": "⊊", - "description": "Named entity: subne; with a semi-colon", - "output": [ - [ - "Character", - "\u228a" - ] - ] - }, - { - "input": "&subplus", - "description": "Bad named entity: subplus without a semi-colon", - "output": [ - [ - "Character", - "&subplus" - ] - ] - }, - { - "input": "⪿", - "description": "Named entity: subplus; with a semi-colon", - "output": [ - [ - "Character", - "\u2abf" - ] - ] - }, - { - "input": "&subrarr", - "description": "Bad named entity: subrarr without a semi-colon", - "output": [ - [ - "Character", - "&subrarr" - ] - ] - }, - { - "input": "⥹", - "description": "Named entity: subrarr; with a semi-colon", - "output": [ - [ - "Character", - "\u2979" - ] - ] - }, - { - "input": "&subset", - "description": "Bad named entity: subset without a semi-colon", - "output": [ - [ - "Character", - "&subset" - ] - ] - }, - { - "input": "⊂", - "description": "Named entity: subset; with a semi-colon", - "output": [ - [ - "Character", - "\u2282" - ] - ] - }, - { - "input": "&subseteq", - "description": "Bad named entity: subseteq without a semi-colon", - "output": [ - [ - "Character", - "&subseteq" - ] - ] - }, - { - "input": "⊆", - "description": "Named entity: subseteq; with a semi-colon", - "output": [ - [ - "Character", - "\u2286" - ] - ] - }, - { - "input": "&subseteqq", - "description": "Bad named entity: subseteqq without a semi-colon", - "output": [ - [ - "Character", - "&subseteqq" - ] - ] - }, - { - "input": "⫅", - "description": "Named entity: subseteqq; with a semi-colon", - "output": [ - [ - "Character", - "\u2ac5" - ] - ] - }, - { - "input": "&subsetneq", - "description": "Bad named entity: subsetneq without a semi-colon", - "output": [ - [ - "Character", - "&subsetneq" - ] - ] - }, - { - "input": "⊊", - "description": "Named entity: subsetneq; with a semi-colon", - "output": [ - [ - "Character", - "\u228a" - ] - ] - }, - { - "input": "&subsetneqq", - "description": "Bad named entity: subsetneqq without a semi-colon", - "output": [ - [ - "Character", - "&subsetneqq" - ] - ] - }, - { - "input": "⫋", - "description": "Named entity: subsetneqq; with a semi-colon", - "output": [ - [ - "Character", - "\u2acb" - ] - ] - }, - { - "input": "&subsim", - "description": "Bad named entity: subsim without a semi-colon", - "output": [ - [ - "Character", - "&subsim" - ] - ] - }, - { - "input": "⫇", - "description": "Named entity: subsim; with a semi-colon", - "output": [ - [ - "Character", - "\u2ac7" - ] - ] - }, - { - "input": "&subsub", - "description": "Bad named entity: subsub without a semi-colon", - "output": [ - [ - "Character", - "&subsub" - ] - ] - }, - { - "input": "⫕", - "description": "Named entity: subsub; with a semi-colon", - "output": [ - [ - "Character", - "\u2ad5" - ] - ] - }, - { - "input": "&subsup", - "description": "Bad named entity: subsup without a semi-colon", - "output": [ - [ - "Character", - "&subsup" - ] - ] - }, - { - "input": "⫓", - "description": "Named entity: subsup; with a semi-colon", - "output": [ - [ - "Character", - "\u2ad3" - ] - ] - }, - { - "input": "&succ", - "description": "Bad named entity: succ without a semi-colon", - "output": [ - [ - "Character", - "&succ" - ] - ] - }, - { - "input": "≻", - "description": "Named entity: succ; with a semi-colon", - "output": [ - [ - "Character", - "\u227b" - ] - ] - }, - { - "input": "&succapprox", - "description": "Bad named entity: succapprox without a semi-colon", - "output": [ - [ - "Character", - "&succapprox" - ] - ] - }, - { - "input": "⪸", - "description": "Named entity: succapprox; with a semi-colon", - "output": [ - [ - "Character", - "\u2ab8" - ] - ] - }, - { - "input": "&succcurlyeq", - "description": "Bad named entity: succcurlyeq without a semi-colon", - "output": [ - [ - "Character", - "&succcurlyeq" - ] - ] - }, - { - "input": "≽", - "description": "Named entity: succcurlyeq; with a semi-colon", - "output": [ - [ - "Character", - "\u227d" - ] - ] - }, - { - "input": "&succeq", - "description": "Bad named entity: succeq without a semi-colon", - "output": [ - [ - "Character", - "&succeq" - ] - ] - }, - { - "input": "⪰", - "description": "Named entity: succeq; with a semi-colon", - "output": [ - [ - "Character", - "\u2ab0" - ] - ] - }, - { - "input": "&succnapprox", - "description": "Bad named entity: succnapprox without a semi-colon", - "output": [ - [ - "Character", - "&succnapprox" - ] - ] - }, - { - "input": "⪺", - "description": "Named entity: succnapprox; with a semi-colon", - "output": [ - [ - "Character", - "\u2aba" - ] - ] - }, - { - "input": "&succneqq", - "description": "Bad named entity: succneqq without a semi-colon", - "output": [ - [ - "Character", - "&succneqq" - ] - ] - }, - { - "input": "⪶", - "description": "Named entity: succneqq; with a semi-colon", - "output": [ - [ - "Character", - "\u2ab6" - ] - ] - }, - { - "input": "&succnsim", - "description": "Bad named entity: succnsim without a semi-colon", - "output": [ - [ - "Character", - "&succnsim" - ] - ] - }, - { - "input": "⋩", - "description": "Named entity: succnsim; with a semi-colon", - "output": [ - [ - "Character", - "\u22e9" - ] - ] - }, - { - "input": "&succsim", - "description": "Bad named entity: succsim without a semi-colon", - "output": [ - [ - "Character", - "&succsim" - ] - ] - }, - { - "input": "≿", - "description": "Named entity: succsim; with a semi-colon", - "output": [ - [ - "Character", - "\u227f" - ] - ] - }, - { - "input": "&sum", - "description": "Bad named entity: sum without a semi-colon", - "output": [ - [ - "Character", - "&sum" - ] - ] - }, - { - "input": "∑", - "description": "Named entity: sum; with a semi-colon", - "output": [ - [ - "Character", - "\u2211" - ] - ] - }, - { - "input": "&sung", - "description": "Bad named entity: sung without a semi-colon", - "output": [ - [ - "Character", - "&sung" - ] - ] - }, - { - "input": "♪", - "description": "Named entity: sung; with a semi-colon", - "output": [ - [ - "Character", - "\u266a" - ] - ] - }, - { - "input": "&sup", - "description": "Bad named entity: sup without a semi-colon", - "output": [ - [ - "Character", - "&sup" - ] - ] - }, - { - "input": "¹", - "description": "Named entity: sup1 without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00b9" - ] - ] - }, - { - "input": "¹", - "description": "Named entity: sup1; with a semi-colon", - "output": [ - [ - "Character", - "\u00b9" - ] - ] - }, - { - "input": "²", - "description": "Named entity: sup2 without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00b2" - ] - ] - }, - { - "input": "²", - "description": "Named entity: sup2; with a semi-colon", - "output": [ - [ - "Character", - "\u00b2" - ] - ] - }, - { - "input": "³", - "description": "Named entity: sup3 without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00b3" - ] - ] - }, - { - "input": "³", - "description": "Named entity: sup3; with a semi-colon", - "output": [ - [ - "Character", - "\u00b3" - ] - ] - }, - { - "input": "⊃", - "description": "Named entity: sup; with a semi-colon", - "output": [ - [ - "Character", - "\u2283" - ] - ] - }, - { - "input": "&supE", - "description": "Bad named entity: supE without a semi-colon", - "output": [ - [ - "Character", - "&supE" - ] - ] - }, - { - "input": "⫆", - "description": "Named entity: supE; with a semi-colon", - "output": [ - [ - "Character", - "\u2ac6" - ] - ] - }, - { - "input": "&supdot", - "description": "Bad named entity: supdot without a semi-colon", - "output": [ - [ - "Character", - "&supdot" - ] - ] - }, - { - "input": "⪾", - "description": "Named entity: supdot; with a semi-colon", - "output": [ - [ - "Character", - "\u2abe" - ] - ] - }, - { - "input": "&supdsub", - "description": "Bad named entity: supdsub without a semi-colon", - "output": [ - [ - "Character", - "&supdsub" - ] - ] - }, - { - "input": "⫘", - "description": "Named entity: supdsub; with a semi-colon", - "output": [ - [ - "Character", - "\u2ad8" - ] - ] - }, - { - "input": "&supe", - "description": "Bad named entity: supe without a semi-colon", - "output": [ - [ - "Character", - "&supe" - ] - ] - }, - { - "input": "⊇", - "description": "Named entity: supe; with a semi-colon", - "output": [ - [ - "Character", - "\u2287" - ] - ] - }, - { - "input": "&supedot", - "description": "Bad named entity: supedot without a semi-colon", - "output": [ - [ - "Character", - "&supedot" - ] - ] - }, - { - "input": "⫄", - "description": "Named entity: supedot; with a semi-colon", - "output": [ - [ - "Character", - "\u2ac4" - ] - ] - }, - { - "input": "&suphsol", - "description": "Bad named entity: suphsol without a semi-colon", - "output": [ - [ - "Character", - "&suphsol" - ] - ] - }, - { - "input": "⟉", - "description": "Named entity: suphsol; with a semi-colon", - "output": [ - [ - "Character", - "\u27c9" - ] - ] - }, - { - "input": "&suphsub", - "description": "Bad named entity: suphsub without a semi-colon", - "output": [ - [ - "Character", - "&suphsub" - ] - ] - }, - { - "input": "⫗", - "description": "Named entity: suphsub; with a semi-colon", - "output": [ - [ - "Character", - "\u2ad7" - ] - ] - }, - { - "input": "&suplarr", - "description": "Bad named entity: suplarr without a semi-colon", - "output": [ - [ - "Character", - "&suplarr" - ] - ] - }, - { - "input": "⥻", - "description": "Named entity: suplarr; with a semi-colon", - "output": [ - [ - "Character", - "\u297b" - ] - ] - }, - { - "input": "&supmult", - "description": "Bad named entity: supmult without a semi-colon", - "output": [ - [ - "Character", - "&supmult" - ] - ] - }, - { - "input": "⫂", - "description": "Named entity: supmult; with a semi-colon", - "output": [ - [ - "Character", - "\u2ac2" - ] - ] - }, - { - "input": "&supnE", - "description": "Bad named entity: supnE without a semi-colon", - "output": [ - [ - "Character", - "&supnE" - ] - ] - }, - { - "input": "⫌", - "description": "Named entity: supnE; with a semi-colon", - "output": [ - [ - "Character", - "\u2acc" - ] - ] - }, - { - "input": "&supne", - "description": "Bad named entity: supne without a semi-colon", - "output": [ - [ - "Character", - "&supne" - ] - ] - }, - { - "input": "⊋", - "description": "Named entity: supne; with a semi-colon", - "output": [ - [ - "Character", - "\u228b" - ] - ] - }, - { - "input": "&supplus", - "description": "Bad named entity: supplus without a semi-colon", - "output": [ - [ - "Character", - "&supplus" - ] - ] - }, - { - "input": "⫀", - "description": "Named entity: supplus; with a semi-colon", - "output": [ - [ - "Character", - "\u2ac0" - ] - ] - }, - { - "input": "&supset", - "description": "Bad named entity: supset without a semi-colon", - "output": [ - [ - "Character", - "&supset" - ] - ] - }, - { - "input": "⊃", - "description": "Named entity: supset; with a semi-colon", - "output": [ - [ - "Character", - "\u2283" - ] - ] - }, - { - "input": "&supseteq", - "description": "Bad named entity: supseteq without a semi-colon", - "output": [ - [ - "Character", - "&supseteq" - ] - ] - }, - { - "input": "⊇", - "description": "Named entity: supseteq; with a semi-colon", - "output": [ - [ - "Character", - "\u2287" - ] - ] - }, - { - "input": "&supseteqq", - "description": "Bad named entity: supseteqq without a semi-colon", - "output": [ - [ - "Character", - "&supseteqq" - ] - ] - }, - { - "input": "⫆", - "description": "Named entity: supseteqq; with a semi-colon", - "output": [ - [ - "Character", - "\u2ac6" - ] - ] - }, - { - "input": "&supsetneq", - "description": "Bad named entity: supsetneq without a semi-colon", - "output": [ - [ - "Character", - "&supsetneq" - ] - ] - }, - { - "input": "⊋", - "description": "Named entity: supsetneq; with a semi-colon", - "output": [ - [ - "Character", - "\u228b" - ] - ] - }, - { - "input": "&supsetneqq", - "description": "Bad named entity: supsetneqq without a semi-colon", - "output": [ - [ - "Character", - "&supsetneqq" - ] - ] - }, - { - "input": "⫌", - "description": "Named entity: supsetneqq; with a semi-colon", - "output": [ - [ - "Character", - "\u2acc" - ] - ] - }, - { - "input": "&supsim", - "description": "Bad named entity: supsim without a semi-colon", - "output": [ - [ - "Character", - "&supsim" - ] - ] - }, - { - "input": "⫈", - "description": "Named entity: supsim; with a semi-colon", - "output": [ - [ - "Character", - "\u2ac8" - ] - ] - }, - { - "input": "&supsub", - "description": "Bad named entity: supsub without a semi-colon", - "output": [ - [ - "Character", - "&supsub" - ] - ] - }, - { - "input": "⫔", - "description": "Named entity: supsub; with a semi-colon", - "output": [ - [ - "Character", - "\u2ad4" - ] - ] - }, - { - "input": "&supsup", - "description": "Bad named entity: supsup without a semi-colon", - "output": [ - [ - "Character", - "&supsup" - ] - ] - }, - { - "input": "⫖", - "description": "Named entity: supsup; with a semi-colon", - "output": [ - [ - "Character", - "\u2ad6" - ] - ] - }, - { - "input": "&swArr", - "description": "Bad named entity: swArr without a semi-colon", - "output": [ - [ - "Character", - "&swArr" - ] - ] - }, - { - "input": "⇙", - "description": "Named entity: swArr; with a semi-colon", - "output": [ - [ - "Character", - "\u21d9" - ] - ] - }, - { - "input": "&swarhk", - "description": "Bad named entity: swarhk without a semi-colon", - "output": [ - [ - "Character", - "&swarhk" - ] - ] - }, - { - "input": "⤦", - "description": "Named entity: swarhk; with a semi-colon", - "output": [ - [ - "Character", - "\u2926" - ] - ] - }, - { - "input": "&swarr", - "description": "Bad named entity: swarr without a semi-colon", - "output": [ - [ - "Character", - "&swarr" - ] - ] - }, - { - "input": "↙", - "description": "Named entity: swarr; with a semi-colon", - "output": [ - [ - "Character", - "\u2199" - ] - ] - }, - { - "input": "&swarrow", - "description": "Bad named entity: swarrow without a semi-colon", - "output": [ - [ - "Character", - "&swarrow" - ] - ] - }, - { - "input": "↙", - "description": "Named entity: swarrow; with a semi-colon", - "output": [ - [ - "Character", - "\u2199" - ] - ] - }, - { - "input": "&swnwar", - "description": "Bad named entity: swnwar without a semi-colon", - "output": [ - [ - "Character", - "&swnwar" - ] - ] - }, - { - "input": "⤪", - "description": "Named entity: swnwar; with a semi-colon", - "output": [ - [ - "Character", - "\u292a" - ] - ] - }, - { - "input": "ß", - "description": "Named entity: szlig without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00df" - ] - ] - }, - { - "input": "ß", - "description": "Named entity: szlig; with a semi-colon", - "output": [ - [ - "Character", - "\u00df" - ] - ] - }, - { - "input": "&target", - "description": "Bad named entity: target without a semi-colon", - "output": [ - [ - "Character", - "&target" - ] - ] - }, - { - "input": "⌖", - "description": "Named entity: target; with a semi-colon", - "output": [ - [ - "Character", - "\u2316" - ] - ] - }, - { - "input": "&tau", - "description": "Bad named entity: tau without a semi-colon", - "output": [ - [ - "Character", - "&tau" - ] - ] - }, - { - "input": "τ", - "description": "Named entity: tau; with a semi-colon", - "output": [ - [ - "Character", - "\u03c4" - ] - ] - }, - { - "input": "&tbrk", - "description": "Bad named entity: tbrk without a semi-colon", - "output": [ - [ - "Character", - "&tbrk" - ] - ] - }, - { - "input": "⎴", - "description": "Named entity: tbrk; with a semi-colon", - "output": [ - [ - "Character", - "\u23b4" - ] - ] - }, - { - "input": "&tcaron", - "description": "Bad named entity: tcaron without a semi-colon", - "output": [ - [ - "Character", - "&tcaron" - ] - ] - }, - { - "input": "ť", - "description": "Named entity: tcaron; with a semi-colon", - "output": [ - [ - "Character", - "\u0165" - ] - ] - }, - { - "input": "&tcedil", - "description": "Bad named entity: tcedil without a semi-colon", - "output": [ - [ - "Character", - "&tcedil" - ] - ] - }, - { - "input": "ţ", - "description": "Named entity: tcedil; with a semi-colon", - "output": [ - [ - "Character", - "\u0163" - ] - ] - }, - { - "input": "&tcy", - "description": "Bad named entity: tcy without a semi-colon", - "output": [ - [ - "Character", - "&tcy" - ] - ] - }, - { - "input": "т", - "description": "Named entity: tcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0442" - ] - ] - }, - { - "input": "&tdot", - "description": "Bad named entity: tdot without a semi-colon", - "output": [ - [ - "Character", - "&tdot" - ] - ] - }, - { - "input": "⃛", - "description": "Named entity: tdot; with a semi-colon", - "output": [ - [ - "Character", - "\u20db" - ] - ] - }, - { - "input": "&telrec", - "description": "Bad named entity: telrec without a semi-colon", - "output": [ - [ - "Character", - "&telrec" - ] - ] - }, - { - "input": "⌕", - "description": "Named entity: telrec; with a semi-colon", - "output": [ - [ - "Character", - "\u2315" - ] - ] - }, - { - "input": "&tfr", - "description": "Bad named entity: tfr without a semi-colon", - "output": [ - [ - "Character", - "&tfr" - ] - ] - }, - { - "input": "𝔱", - "description": "Named entity: tfr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd31" - ] - ] - }, - { - "input": "&there4", - "description": "Bad named entity: there4 without a semi-colon", - "output": [ - [ - "Character", - "&there4" - ] - ] - }, - { - "input": "∴", - "description": "Named entity: there4; with a semi-colon", - "output": [ - [ - "Character", - "\u2234" - ] - ] - }, - { - "input": "&therefore", - "description": "Bad named entity: therefore without a semi-colon", - "output": [ - [ - "Character", - "&therefore" - ] - ] - }, - { - "input": "∴", - "description": "Named entity: therefore; with a semi-colon", - "output": [ - [ - "Character", - "\u2234" - ] - ] - }, - { - "input": "&theta", - "description": "Bad named entity: theta without a semi-colon", - "output": [ - [ - "Character", - "&theta" - ] - ] - }, - { - "input": "θ", - "description": "Named entity: theta; with a semi-colon", - "output": [ - [ - "Character", - "\u03b8" - ] - ] - }, - { - "input": "&thetasym", - "description": "Bad named entity: thetasym without a semi-colon", - "output": [ - [ - "Character", - "&thetasym" - ] - ] - }, - { - "input": "ϑ", - "description": "Named entity: thetasym; with a semi-colon", - "output": [ - [ - "Character", - "\u03d1" - ] - ] - }, - { - "input": "&thetav", - "description": "Bad named entity: thetav without a semi-colon", - "output": [ - [ - "Character", - "&thetav" - ] - ] - }, - { - "input": "ϑ", - "description": "Named entity: thetav; with a semi-colon", - "output": [ - [ - "Character", - "\u03d1" - ] - ] - }, - { - "input": "&thickapprox", - "description": "Bad named entity: thickapprox without a semi-colon", - "output": [ - [ - "Character", - "&thickapprox" - ] - ] - }, - { - "input": "≈", - "description": "Named entity: thickapprox; with a semi-colon", - "output": [ - [ - "Character", - "\u2248" - ] - ] - }, - { - "input": "&thicksim", - "description": "Bad named entity: thicksim without a semi-colon", - "output": [ - [ - "Character", - "&thicksim" - ] - ] - }, - { - "input": "∼", - "description": "Named entity: thicksim; with a semi-colon", - "output": [ - [ - "Character", - "\u223c" - ] - ] - }, - { - "input": "&thinsp", - "description": "Bad named entity: thinsp without a semi-colon", - "output": [ - [ - "Character", - "&thinsp" - ] - ] - }, - { - "input": " ", - "description": "Named entity: thinsp; with a semi-colon", - "output": [ - [ - "Character", - "\u2009" - ] - ] - }, - { - "input": "&thkap", - "description": "Bad named entity: thkap without a semi-colon", - "output": [ - [ - "Character", - "&thkap" - ] - ] - }, - { - "input": "≈", - "description": "Named entity: thkap; with a semi-colon", - "output": [ - [ - "Character", - "\u2248" - ] - ] - }, - { - "input": "&thksim", - "description": "Bad named entity: thksim without a semi-colon", - "output": [ - [ - "Character", - "&thksim" - ] - ] - }, - { - "input": "∼", - "description": "Named entity: thksim; with a semi-colon", - "output": [ - [ - "Character", - "\u223c" - ] - ] - }, - { - "input": "þ", - "description": "Named entity: thorn without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00fe" - ] - ] - }, - { - "input": "þ", - "description": "Named entity: thorn; with a semi-colon", - "output": [ - [ - "Character", - "\u00fe" - ] - ] - }, - { - "input": "&tilde", - "description": "Bad named entity: tilde without a semi-colon", - "output": [ - [ - "Character", - "&tilde" - ] - ] - }, - { - "input": "˜", - "description": "Named entity: tilde; with a semi-colon", - "output": [ - [ - "Character", - "\u02dc" - ] - ] - }, - { - "input": "×", - "description": "Named entity: times without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00d7" - ] - ] - }, - { - "input": "×", - "description": "Named entity: times; with a semi-colon", - "output": [ - [ - "Character", - "\u00d7" - ] - ] - }, - { - "input": "⊠", - "description": "Named entity: timesb; with a semi-colon", - "output": [ - [ - "Character", - "\u22a0" - ] - ] - }, - { - "input": "⨱", - "description": "Named entity: timesbar; with a semi-colon", - "output": [ - [ - "Character", - "\u2a31" - ] - ] - }, - { - "input": "⨰", - "description": "Named entity: timesd; with a semi-colon", - "output": [ - [ - "Character", - "\u2a30" - ] - ] - }, - { - "input": "&tint", - "description": "Bad named entity: tint without a semi-colon", - "output": [ - [ - "Character", - "&tint" - ] - ] - }, - { - "input": "∭", - "description": "Named entity: tint; with a semi-colon", - "output": [ - [ - "Character", - "\u222d" - ] - ] - }, - { - "input": "&toea", - "description": "Bad named entity: toea without a semi-colon", - "output": [ - [ - "Character", - "&toea" - ] - ] - }, - { - "input": "⤨", - "description": "Named entity: toea; with a semi-colon", - "output": [ - [ - "Character", - "\u2928" - ] - ] - }, - { - "input": "&top", - "description": "Bad named entity: top without a semi-colon", - "output": [ - [ - "Character", - "&top" - ] - ] - }, - { - "input": "⊤", - "description": "Named entity: top; with a semi-colon", - "output": [ - [ - "Character", - "\u22a4" - ] - ] - }, - { - "input": "&topbot", - "description": "Bad named entity: topbot without a semi-colon", - "output": [ - [ - "Character", - "&topbot" - ] - ] - }, - { - "input": "⌶", - "description": "Named entity: topbot; with a semi-colon", - "output": [ - [ - "Character", - "\u2336" - ] - ] - }, - { - "input": "&topcir", - "description": "Bad named entity: topcir without a semi-colon", - "output": [ - [ - "Character", - "&topcir" - ] - ] - }, - { - "input": "⫱", - "description": "Named entity: topcir; with a semi-colon", - "output": [ - [ - "Character", - "\u2af1" - ] - ] - }, - { - "input": "&topf", - "description": "Bad named entity: topf without a semi-colon", - "output": [ - [ - "Character", - "&topf" - ] - ] - }, - { - "input": "𝕥", - "description": "Named entity: topf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd65" - ] - ] - }, - { - "input": "&topfork", - "description": "Bad named entity: topfork without a semi-colon", - "output": [ - [ - "Character", - "&topfork" - ] - ] - }, - { - "input": "⫚", - "description": "Named entity: topfork; with a semi-colon", - "output": [ - [ - "Character", - "\u2ada" - ] - ] - }, - { - "input": "&tosa", - "description": "Bad named entity: tosa without a semi-colon", - "output": [ - [ - "Character", - "&tosa" - ] - ] - }, - { - "input": "⤩", - "description": "Named entity: tosa; with a semi-colon", - "output": [ - [ - "Character", - "\u2929" - ] - ] - }, - { - "input": "&tprime", - "description": "Bad named entity: tprime without a semi-colon", - "output": [ - [ - "Character", - "&tprime" - ] - ] - }, - { - "input": "‴", - "description": "Named entity: tprime; with a semi-colon", - "output": [ - [ - "Character", - "\u2034" - ] - ] - }, - { - "input": "&trade", - "description": "Bad named entity: trade without a semi-colon", - "output": [ - [ - "Character", - "&trade" - ] - ] - }, - { - "input": "™", - "description": "Named entity: trade; with a semi-colon", - "output": [ - [ - "Character", - "\u2122" - ] - ] - }, - { - "input": "&triangle", - "description": "Bad named entity: triangle without a semi-colon", - "output": [ - [ - "Character", - "&triangle" - ] - ] - }, - { - "input": "▵", - "description": "Named entity: triangle; with a semi-colon", - "output": [ - [ - "Character", - "\u25b5" - ] - ] - }, - { - "input": "&triangledown", - "description": "Bad named entity: triangledown without a semi-colon", - "output": [ - [ - "Character", - "&triangledown" - ] - ] - }, - { - "input": "▿", - "description": "Named entity: triangledown; with a semi-colon", - "output": [ - [ - "Character", - "\u25bf" - ] - ] - }, - { - "input": "&triangleleft", - "description": "Bad named entity: triangleleft without a semi-colon", - "output": [ - [ - "Character", - "&triangleleft" - ] - ] - }, - { - "input": "◃", - "description": "Named entity: triangleleft; with a semi-colon", - "output": [ - [ - "Character", - "\u25c3" - ] - ] - }, - { - "input": "&trianglelefteq", - "description": "Bad named entity: trianglelefteq without a semi-colon", - "output": [ - [ - "Character", - "&trianglelefteq" - ] - ] - }, - { - "input": "⊴", - "description": "Named entity: trianglelefteq; with a semi-colon", - "output": [ - [ - "Character", - "\u22b4" - ] - ] - }, - { - "input": "&triangleq", - "description": "Bad named entity: triangleq without a semi-colon", - "output": [ - [ - "Character", - "&triangleq" - ] - ] - }, - { - "input": "≜", - "description": "Named entity: triangleq; with a semi-colon", - "output": [ - [ - "Character", - "\u225c" - ] - ] - }, - { - "input": "&triangleright", - "description": "Bad named entity: triangleright without a semi-colon", - "output": [ - [ - "Character", - "&triangleright" - ] - ] - }, - { - "input": "▹", - "description": "Named entity: triangleright; with a semi-colon", - "output": [ - [ - "Character", - "\u25b9" - ] - ] - }, - { - "input": "&trianglerighteq", - "description": "Bad named entity: trianglerighteq without a semi-colon", - "output": [ - [ - "Character", - "&trianglerighteq" - ] - ] - }, - { - "input": "⊵", - "description": "Named entity: trianglerighteq; with a semi-colon", - "output": [ - [ - "Character", - "\u22b5" - ] - ] - }, - { - "input": "&tridot", - "description": "Bad named entity: tridot without a semi-colon", - "output": [ - [ - "Character", - "&tridot" - ] - ] - }, - { - "input": "◬", - "description": "Named entity: tridot; with a semi-colon", - "output": [ - [ - "Character", - "\u25ec" - ] - ] - }, - { - "input": "&trie", - "description": "Bad named entity: trie without a semi-colon", - "output": [ - [ - "Character", - "&trie" - ] - ] - }, - { - "input": "≜", - "description": "Named entity: trie; with a semi-colon", - "output": [ - [ - "Character", - "\u225c" - ] - ] - }, - { - "input": "&triminus", - "description": "Bad named entity: triminus without a semi-colon", - "output": [ - [ - "Character", - "&triminus" - ] - ] - }, - { - "input": "⨺", - "description": "Named entity: triminus; with a semi-colon", - "output": [ - [ - "Character", - "\u2a3a" - ] - ] - }, - { - "input": "&triplus", - "description": "Bad named entity: triplus without a semi-colon", - "output": [ - [ - "Character", - "&triplus" - ] - ] - }, - { - "input": "⨹", - "description": "Named entity: triplus; with a semi-colon", - "output": [ - [ - "Character", - "\u2a39" - ] - ] - }, - { - "input": "&trisb", - "description": "Bad named entity: trisb without a semi-colon", - "output": [ - [ - "Character", - "&trisb" - ] - ] - }, - { - "input": "⧍", - "description": "Named entity: trisb; with a semi-colon", - "output": [ - [ - "Character", - "\u29cd" - ] - ] - }, - { - "input": "&tritime", - "description": "Bad named entity: tritime without a semi-colon", - "output": [ - [ - "Character", - "&tritime" - ] - ] - }, - { - "input": "⨻", - "description": "Named entity: tritime; with a semi-colon", - "output": [ - [ - "Character", - "\u2a3b" - ] - ] - }, - { - "input": "&trpezium", - "description": "Bad named entity: trpezium without a semi-colon", - "output": [ - [ - "Character", - "&trpezium" - ] - ] - }, - { - "input": "⏢", - "description": "Named entity: trpezium; with a semi-colon", - "output": [ - [ - "Character", - "\u23e2" - ] - ] - }, - { - "input": "&tscr", - "description": "Bad named entity: tscr without a semi-colon", - "output": [ - [ - "Character", - "&tscr" - ] - ] - }, - { - "input": "𝓉", - "description": "Named entity: tscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udcc9" - ] - ] - }, - { - "input": "&tscy", - "description": "Bad named entity: tscy without a semi-colon", - "output": [ - [ - "Character", - "&tscy" - ] - ] - }, - { - "input": "ц", - "description": "Named entity: tscy; with a semi-colon", - "output": [ - [ - "Character", - "\u0446" - ] - ] - }, - { - "input": "&tshcy", - "description": "Bad named entity: tshcy without a semi-colon", - "output": [ - [ - "Character", - "&tshcy" - ] - ] - }, - { - "input": "ћ", - "description": "Named entity: tshcy; with a semi-colon", - "output": [ - [ - "Character", - "\u045b" - ] - ] - }, - { - "input": "&tstrok", - "description": "Bad named entity: tstrok without a semi-colon", - "output": [ - [ - "Character", - "&tstrok" - ] - ] - }, - { - "input": "ŧ", - "description": "Named entity: tstrok; with a semi-colon", - "output": [ - [ - "Character", - "\u0167" - ] - ] - }, - { - "input": "&twixt", - "description": "Bad named entity: twixt without a semi-colon", - "output": [ - [ - "Character", - "&twixt" - ] - ] - }, - { - "input": "≬", - "description": "Named entity: twixt; with a semi-colon", - "output": [ - [ - "Character", - "\u226c" - ] - ] - }, - { - "input": "&twoheadleftarrow", - "description": "Bad named entity: twoheadleftarrow without a semi-colon", - "output": [ - [ - "Character", - "&twoheadleftarrow" - ] - ] - }, - { - "input": "↞", - "description": "Named entity: twoheadleftarrow; with a semi-colon", - "output": [ - [ - "Character", - "\u219e" - ] - ] - }, - { - "input": "&twoheadrightarrow", - "description": "Bad named entity: twoheadrightarrow without a semi-colon", - "output": [ - [ - "Character", - "&twoheadrightarrow" - ] - ] - }, - { - "input": "↠", - "description": "Named entity: twoheadrightarrow; with a semi-colon", - "output": [ - [ - "Character", - "\u21a0" - ] - ] - }, - { - "input": "&uArr", - "description": "Bad named entity: uArr without a semi-colon", - "output": [ - [ - "Character", - "&uArr" - ] - ] - }, - { - "input": "⇑", - "description": "Named entity: uArr; with a semi-colon", - "output": [ - [ - "Character", - "\u21d1" - ] - ] - }, - { - "input": "&uHar", - "description": "Bad named entity: uHar without a semi-colon", - "output": [ - [ - "Character", - "&uHar" - ] - ] - }, - { - "input": "⥣", - "description": "Named entity: uHar; with a semi-colon", - "output": [ - [ - "Character", - "\u2963" - ] - ] - }, - { - "input": "ú", - "description": "Named entity: uacute without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00fa" - ] - ] - }, - { - "input": "ú", - "description": "Named entity: uacute; with a semi-colon", - "output": [ - [ - "Character", - "\u00fa" - ] - ] - }, - { - "input": "&uarr", - "description": "Bad named entity: uarr without a semi-colon", - "output": [ - [ - "Character", - "&uarr" - ] - ] - }, - { - "input": "↑", - "description": "Named entity: uarr; with a semi-colon", - "output": [ - [ - "Character", - "\u2191" - ] - ] - }, - { - "input": "&ubrcy", - "description": "Bad named entity: ubrcy without a semi-colon", - "output": [ - [ - "Character", - "&ubrcy" - ] - ] - }, - { - "input": "ў", - "description": "Named entity: ubrcy; with a semi-colon", - "output": [ - [ - "Character", - "\u045e" - ] - ] - }, - { - "input": "&ubreve", - "description": "Bad named entity: ubreve without a semi-colon", - "output": [ - [ - "Character", - "&ubreve" - ] - ] - }, - { - "input": "ŭ", - "description": "Named entity: ubreve; with a semi-colon", - "output": [ - [ - "Character", - "\u016d" - ] - ] - }, - { - "input": "û", - "description": "Named entity: ucirc without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00fb" - ] - ] - }, - { - "input": "û", - "description": "Named entity: ucirc; with a semi-colon", - "output": [ - [ - "Character", - "\u00fb" - ] - ] - }, - { - "input": "&ucy", - "description": "Bad named entity: ucy without a semi-colon", - "output": [ - [ - "Character", - "&ucy" - ] - ] - }, - { - "input": "у", - "description": "Named entity: ucy; with a semi-colon", - "output": [ - [ - "Character", - "\u0443" - ] - ] - }, - { - "input": "&udarr", - "description": "Bad named entity: udarr without a semi-colon", - "output": [ - [ - "Character", - "&udarr" - ] - ] - }, - { - "input": "⇅", - "description": "Named entity: udarr; with a semi-colon", - "output": [ - [ - "Character", - "\u21c5" - ] - ] - }, - { - "input": "&udblac", - "description": "Bad named entity: udblac without a semi-colon", - "output": [ - [ - "Character", - "&udblac" - ] - ] - }, - { - "input": "ű", - "description": "Named entity: udblac; with a semi-colon", - "output": [ - [ - "Character", - "\u0171" - ] - ] - }, - { - "input": "&udhar", - "description": "Bad named entity: udhar without a semi-colon", - "output": [ - [ - "Character", - "&udhar" - ] - ] - }, - { - "input": "⥮", - "description": "Named entity: udhar; with a semi-colon", - "output": [ - [ - "Character", - "\u296e" - ] - ] - }, - { - "input": "&ufisht", - "description": "Bad named entity: ufisht without a semi-colon", - "output": [ - [ - "Character", - "&ufisht" - ] - ] - }, - { - "input": "⥾", - "description": "Named entity: ufisht; with a semi-colon", - "output": [ - [ - "Character", - "\u297e" - ] - ] - }, - { - "input": "&ufr", - "description": "Bad named entity: ufr without a semi-colon", - "output": [ - [ - "Character", - "&ufr" - ] - ] - }, - { - "input": "𝔲", - "description": "Named entity: ufr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd32" - ] - ] - }, - { - "input": "ù", - "description": "Named entity: ugrave without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00f9" - ] - ] - }, - { - "input": "ù", - "description": "Named entity: ugrave; with a semi-colon", - "output": [ - [ - "Character", - "\u00f9" - ] - ] - }, - { - "input": "&uharl", - "description": "Bad named entity: uharl without a semi-colon", - "output": [ - [ - "Character", - "&uharl" - ] - ] - }, - { - "input": "↿", - "description": "Named entity: uharl; with a semi-colon", - "output": [ - [ - "Character", - "\u21bf" - ] - ] - }, - { - "input": "&uharr", - "description": "Bad named entity: uharr without a semi-colon", - "output": [ - [ - "Character", - "&uharr" - ] - ] - }, - { - "input": "↾", - "description": "Named entity: uharr; with a semi-colon", - "output": [ - [ - "Character", - "\u21be" - ] - ] - }, - { - "input": "&uhblk", - "description": "Bad named entity: uhblk without a semi-colon", - "output": [ - [ - "Character", - "&uhblk" - ] - ] - }, - { - "input": "▀", - "description": "Named entity: uhblk; with a semi-colon", - "output": [ - [ - "Character", - "\u2580" - ] - ] - }, - { - "input": "&ulcorn", - "description": "Bad named entity: ulcorn without a semi-colon", - "output": [ - [ - "Character", - "&ulcorn" - ] - ] - }, - { - "input": "⌜", - "description": "Named entity: ulcorn; with a semi-colon", - "output": [ - [ - "Character", - "\u231c" - ] - ] - }, - { - "input": "&ulcorner", - "description": "Bad named entity: ulcorner without a semi-colon", - "output": [ - [ - "Character", - "&ulcorner" - ] - ] - }, - { - "input": "⌜", - "description": "Named entity: ulcorner; with a semi-colon", - "output": [ - [ - "Character", - "\u231c" - ] - ] - }, - { - "input": "&ulcrop", - "description": "Bad named entity: ulcrop without a semi-colon", - "output": [ - [ - "Character", - "&ulcrop" - ] - ] - }, - { - "input": "⌏", - "description": "Named entity: ulcrop; with a semi-colon", - "output": [ - [ - "Character", - "\u230f" - ] - ] - }, - { - "input": "&ultri", - "description": "Bad named entity: ultri without a semi-colon", - "output": [ - [ - "Character", - "&ultri" - ] - ] - }, - { - "input": "◸", - "description": "Named entity: ultri; with a semi-colon", - "output": [ - [ - "Character", - "\u25f8" - ] - ] - }, - { - "input": "&umacr", - "description": "Bad named entity: umacr without a semi-colon", - "output": [ - [ - "Character", - "&umacr" - ] - ] - }, - { - "input": "ū", - "description": "Named entity: umacr; with a semi-colon", - "output": [ - [ - "Character", - "\u016b" - ] - ] - }, - { - "input": "¨", - "description": "Named entity: uml without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00a8" - ] - ] - }, - { - "input": "¨", - "description": "Named entity: uml; with a semi-colon", - "output": [ - [ - "Character", - "\u00a8" - ] - ] - }, - { - "input": "&uogon", - "description": "Bad named entity: uogon without a semi-colon", - "output": [ - [ - "Character", - "&uogon" - ] - ] - }, - { - "input": "ų", - "description": "Named entity: uogon; with a semi-colon", - "output": [ - [ - "Character", - "\u0173" - ] - ] - }, - { - "input": "&uopf", - "description": "Bad named entity: uopf without a semi-colon", - "output": [ - [ - "Character", - "&uopf" - ] - ] - }, - { - "input": "𝕦", - "description": "Named entity: uopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd66" - ] - ] - }, - { - "input": "&uparrow", - "description": "Bad named entity: uparrow without a semi-colon", - "output": [ - [ - "Character", - "&uparrow" - ] - ] - }, - { - "input": "↑", - "description": "Named entity: uparrow; with a semi-colon", - "output": [ - [ - "Character", - "\u2191" - ] - ] - }, - { - "input": "&updownarrow", - "description": "Bad named entity: updownarrow without a semi-colon", - "output": [ - [ - "Character", - "&updownarrow" - ] - ] - }, - { - "input": "↕", - "description": "Named entity: updownarrow; with a semi-colon", - "output": [ - [ - "Character", - "\u2195" - ] - ] - }, - { - "input": "&upharpoonleft", - "description": "Bad named entity: upharpoonleft without a semi-colon", - "output": [ - [ - "Character", - "&upharpoonleft" - ] - ] - }, - { - "input": "↿", - "description": "Named entity: upharpoonleft; with a semi-colon", - "output": [ - [ - "Character", - "\u21bf" - ] - ] - }, - { - "input": "&upharpoonright", - "description": "Bad named entity: upharpoonright without a semi-colon", - "output": [ - [ - "Character", - "&upharpoonright" - ] - ] - }, - { - "input": "↾", - "description": "Named entity: upharpoonright; with a semi-colon", - "output": [ - [ - "Character", - "\u21be" - ] - ] - }, - { - "input": "&uplus", - "description": "Bad named entity: uplus without a semi-colon", - "output": [ - [ - "Character", - "&uplus" - ] - ] - }, - { - "input": "⊎", - "description": "Named entity: uplus; with a semi-colon", - "output": [ - [ - "Character", - "\u228e" - ] - ] - }, - { - "input": "&upsi", - "description": "Bad named entity: upsi without a semi-colon", - "output": [ - [ - "Character", - "&upsi" - ] - ] - }, - { - "input": "υ", - "description": "Named entity: upsi; with a semi-colon", - "output": [ - [ - "Character", - "\u03c5" - ] - ] - }, - { - "input": "&upsih", - "description": "Bad named entity: upsih without a semi-colon", - "output": [ - [ - "Character", - "&upsih" - ] - ] - }, - { - "input": "ϒ", - "description": "Named entity: upsih; with a semi-colon", - "output": [ - [ - "Character", - "\u03d2" - ] - ] - }, - { - "input": "&upsilon", - "description": "Bad named entity: upsilon without a semi-colon", - "output": [ - [ - "Character", - "&upsilon" - ] - ] - }, - { - "input": "υ", - "description": "Named entity: upsilon; with a semi-colon", - "output": [ - [ - "Character", - "\u03c5" - ] - ] - }, - { - "input": "&upuparrows", - "description": "Bad named entity: upuparrows without a semi-colon", - "output": [ - [ - "Character", - "&upuparrows" - ] - ] - }, - { - "input": "⇈", - "description": "Named entity: upuparrows; with a semi-colon", - "output": [ - [ - "Character", - "\u21c8" - ] - ] - }, - { - "input": "&urcorn", - "description": "Bad named entity: urcorn without a semi-colon", - "output": [ - [ - "Character", - "&urcorn" - ] - ] - }, - { - "input": "⌝", - "description": "Named entity: urcorn; with a semi-colon", - "output": [ - [ - "Character", - "\u231d" - ] - ] - }, - { - "input": "&urcorner", - "description": "Bad named entity: urcorner without a semi-colon", - "output": [ - [ - "Character", - "&urcorner" - ] - ] - }, - { - "input": "⌝", - "description": "Named entity: urcorner; with a semi-colon", - "output": [ - [ - "Character", - "\u231d" - ] - ] - }, - { - "input": "&urcrop", - "description": "Bad named entity: urcrop without a semi-colon", - "output": [ - [ - "Character", - "&urcrop" - ] - ] - }, - { - "input": "⌎", - "description": "Named entity: urcrop; with a semi-colon", - "output": [ - [ - "Character", - "\u230e" - ] - ] - }, - { - "input": "&uring", - "description": "Bad named entity: uring without a semi-colon", - "output": [ - [ - "Character", - "&uring" - ] - ] - }, - { - "input": "ů", - "description": "Named entity: uring; with a semi-colon", - "output": [ - [ - "Character", - "\u016f" - ] - ] - }, - { - "input": "&urtri", - "description": "Bad named entity: urtri without a semi-colon", - "output": [ - [ - "Character", - "&urtri" - ] - ] - }, - { - "input": "◹", - "description": "Named entity: urtri; with a semi-colon", - "output": [ - [ - "Character", - "\u25f9" - ] - ] - }, - { - "input": "&uscr", - "description": "Bad named entity: uscr without a semi-colon", - "output": [ - [ - "Character", - "&uscr" - ] - ] - }, - { - "input": "𝓊", - "description": "Named entity: uscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udcca" - ] - ] - }, - { - "input": "&utdot", - "description": "Bad named entity: utdot without a semi-colon", - "output": [ - [ - "Character", - "&utdot" - ] - ] - }, - { - "input": "⋰", - "description": "Named entity: utdot; with a semi-colon", - "output": [ - [ - "Character", - "\u22f0" - ] - ] - }, - { - "input": "&utilde", - "description": "Bad named entity: utilde without a semi-colon", - "output": [ - [ - "Character", - "&utilde" - ] - ] - }, - { - "input": "ũ", - "description": "Named entity: utilde; with a semi-colon", - "output": [ - [ - "Character", - "\u0169" - ] - ] - }, - { - "input": "&utri", - "description": "Bad named entity: utri without a semi-colon", - "output": [ - [ - "Character", - "&utri" - ] - ] - }, - { - "input": "▵", - "description": "Named entity: utri; with a semi-colon", - "output": [ - [ - "Character", - "\u25b5" - ] - ] - }, - { - "input": "&utrif", - "description": "Bad named entity: utrif without a semi-colon", - "output": [ - [ - "Character", - "&utrif" - ] - ] - }, - { - "input": "▴", - "description": "Named entity: utrif; with a semi-colon", - "output": [ - [ - "Character", - "\u25b4" - ] - ] - }, - { - "input": "&uuarr", - "description": "Bad named entity: uuarr without a semi-colon", - "output": [ - [ - "Character", - "&uuarr" - ] - ] - }, - { - "input": "⇈", - "description": "Named entity: uuarr; with a semi-colon", - "output": [ - [ - "Character", - "\u21c8" - ] - ] - }, - { - "input": "ü", - "description": "Named entity: uuml without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00fc" - ] - ] - }, - { - "input": "ü", - "description": "Named entity: uuml; with a semi-colon", - "output": [ - [ - "Character", - "\u00fc" - ] - ] - }, - { - "input": "&uwangle", - "description": "Bad named entity: uwangle without a semi-colon", - "output": [ - [ - "Character", - "&uwangle" - ] - ] - }, - { - "input": "⦧", - "description": "Named entity: uwangle; with a semi-colon", - "output": [ - [ - "Character", - "\u29a7" - ] - ] - }, - { - "input": "&vArr", - "description": "Bad named entity: vArr without a semi-colon", - "output": [ - [ - "Character", - "&vArr" - ] - ] - }, - { - "input": "⇕", - "description": "Named entity: vArr; with a semi-colon", - "output": [ - [ - "Character", - "\u21d5" - ] - ] - }, - { - "input": "&vBar", - "description": "Bad named entity: vBar without a semi-colon", - "output": [ - [ - "Character", - "&vBar" - ] - ] - }, - { - "input": "⫨", - "description": "Named entity: vBar; with a semi-colon", - "output": [ - [ - "Character", - "\u2ae8" - ] - ] - }, - { - "input": "&vBarv", - "description": "Bad named entity: vBarv without a semi-colon", - "output": [ - [ - "Character", - "&vBarv" - ] - ] - }, - { - "input": "⫩", - "description": "Named entity: vBarv; with a semi-colon", - "output": [ - [ - "Character", - "\u2ae9" - ] - ] - }, - { - "input": "&vDash", - "description": "Bad named entity: vDash without a semi-colon", - "output": [ - [ - "Character", - "&vDash" - ] - ] - }, - { - "input": "⊨", - "description": "Named entity: vDash; with a semi-colon", - "output": [ - [ - "Character", - "\u22a8" - ] - ] - }, - { - "input": "&vangrt", - "description": "Bad named entity: vangrt without a semi-colon", - "output": [ - [ - "Character", - "&vangrt" - ] - ] - }, - { - "input": "⦜", - "description": "Named entity: vangrt; with a semi-colon", - "output": [ - [ - "Character", - "\u299c" - ] - ] - }, - { - "input": "&varepsilon", - "description": "Bad named entity: varepsilon without a semi-colon", - "output": [ - [ - "Character", - "&varepsilon" - ] - ] - }, - { - "input": "ϵ", - "description": "Named entity: varepsilon; with a semi-colon", - "output": [ - [ - "Character", - "\u03f5" - ] - ] - }, - { - "input": "&varkappa", - "description": "Bad named entity: varkappa without a semi-colon", - "output": [ - [ - "Character", - "&varkappa" - ] - ] - }, - { - "input": "ϰ", - "description": "Named entity: varkappa; with a semi-colon", - "output": [ - [ - "Character", - "\u03f0" - ] - ] - }, - { - "input": "&varnothing", - "description": "Bad named entity: varnothing without a semi-colon", - "output": [ - [ - "Character", - "&varnothing" - ] - ] - }, - { - "input": "∅", - "description": "Named entity: varnothing; with a semi-colon", - "output": [ - [ - "Character", - "\u2205" - ] - ] - }, - { - "input": "&varphi", - "description": "Bad named entity: varphi without a semi-colon", - "output": [ - [ - "Character", - "&varphi" - ] - ] - }, - { - "input": "ϕ", - "description": "Named entity: varphi; with a semi-colon", - "output": [ - [ - "Character", - "\u03d5" - ] - ] - }, - { - "input": "&varpi", - "description": "Bad named entity: varpi without a semi-colon", - "output": [ - [ - "Character", - "&varpi" - ] - ] - }, - { - "input": "ϖ", - "description": "Named entity: varpi; with a semi-colon", - "output": [ - [ - "Character", - "\u03d6" - ] - ] - }, - { - "input": "&varpropto", - "description": "Bad named entity: varpropto without a semi-colon", - "output": [ - [ - "Character", - "&varpropto" - ] - ] - }, - { - "input": "∝", - "description": "Named entity: varpropto; with a semi-colon", - "output": [ - [ - "Character", - "\u221d" - ] - ] - }, - { - "input": "&varr", - "description": "Bad named entity: varr without a semi-colon", - "output": [ - [ - "Character", - "&varr" - ] - ] - }, - { - "input": "↕", - "description": "Named entity: varr; with a semi-colon", - "output": [ - [ - "Character", - "\u2195" - ] - ] - }, - { - "input": "&varrho", - "description": "Bad named entity: varrho without a semi-colon", - "output": [ - [ - "Character", - "&varrho" - ] - ] - }, - { - "input": "ϱ", - "description": "Named entity: varrho; with a semi-colon", - "output": [ - [ - "Character", - "\u03f1" - ] - ] - }, - { - "input": "&varsigma", - "description": "Bad named entity: varsigma without a semi-colon", - "output": [ - [ - "Character", - "&varsigma" - ] - ] - }, - { - "input": "ς", - "description": "Named entity: varsigma; with a semi-colon", - "output": [ - [ - "Character", - "\u03c2" - ] - ] - }, - { - "input": "&varsubsetneq", - "description": "Bad named entity: varsubsetneq without a semi-colon", - "output": [ - [ - "Character", - "&varsubsetneq" - ] - ] - }, - { - "input": "⊊︀", - "description": "Named entity: varsubsetneq; with a semi-colon", - "output": [ - [ - "Character", - "\u228a\ufe00" - ] - ] - }, - { - "input": "&varsubsetneqq", - "description": "Bad named entity: varsubsetneqq without a semi-colon", - "output": [ - [ - "Character", - "&varsubsetneqq" - ] - ] - }, - { - "input": "⫋︀", - "description": "Named entity: varsubsetneqq; with a semi-colon", - "output": [ - [ - "Character", - "\u2acb\ufe00" - ] - ] - }, - { - "input": "&varsupsetneq", - "description": "Bad named entity: varsupsetneq without a semi-colon", - "output": [ - [ - "Character", - "&varsupsetneq" - ] - ] - }, - { - "input": "⊋︀", - "description": "Named entity: varsupsetneq; with a semi-colon", - "output": [ - [ - "Character", - "\u228b\ufe00" - ] - ] - }, - { - "input": "&varsupsetneqq", - "description": "Bad named entity: varsupsetneqq without a semi-colon", - "output": [ - [ - "Character", - "&varsupsetneqq" - ] - ] - }, - { - "input": "⫌︀", - "description": "Named entity: varsupsetneqq; with a semi-colon", - "output": [ - [ - "Character", - "\u2acc\ufe00" - ] - ] - }, - { - "input": "&vartheta", - "description": "Bad named entity: vartheta without a semi-colon", - "output": [ - [ - "Character", - "&vartheta" - ] - ] - }, - { - "input": "ϑ", - "description": "Named entity: vartheta; with a semi-colon", - "output": [ - [ - "Character", - "\u03d1" - ] - ] - }, - { - "input": "&vartriangleleft", - "description": "Bad named entity: vartriangleleft without a semi-colon", - "output": [ - [ - "Character", - "&vartriangleleft" - ] - ] - }, - { - "input": "⊲", - "description": "Named entity: vartriangleleft; with a semi-colon", - "output": [ - [ - "Character", - "\u22b2" - ] - ] - }, - { - "input": "&vartriangleright", - "description": "Bad named entity: vartriangleright without a semi-colon", - "output": [ - [ - "Character", - "&vartriangleright" - ] - ] - }, - { - "input": "⊳", - "description": "Named entity: vartriangleright; with a semi-colon", - "output": [ - [ - "Character", - "\u22b3" - ] - ] - }, - { - "input": "&vcy", - "description": "Bad named entity: vcy without a semi-colon", - "output": [ - [ - "Character", - "&vcy" - ] - ] - }, - { - "input": "в", - "description": "Named entity: vcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0432" - ] - ] - }, - { - "input": "&vdash", - "description": "Bad named entity: vdash without a semi-colon", - "output": [ - [ - "Character", - "&vdash" - ] - ] - }, - { - "input": "⊢", - "description": "Named entity: vdash; with a semi-colon", - "output": [ - [ - "Character", - "\u22a2" - ] - ] - }, - { - "input": "&vee", - "description": "Bad named entity: vee without a semi-colon", - "output": [ - [ - "Character", - "&vee" - ] - ] - }, - { - "input": "∨", - "description": "Named entity: vee; with a semi-colon", - "output": [ - [ - "Character", - "\u2228" - ] - ] - }, - { - "input": "&veebar", - "description": "Bad named entity: veebar without a semi-colon", - "output": [ - [ - "Character", - "&veebar" - ] - ] - }, - { - "input": "⊻", - "description": "Named entity: veebar; with a semi-colon", - "output": [ - [ - "Character", - "\u22bb" - ] - ] - }, - { - "input": "&veeeq", - "description": "Bad named entity: veeeq without a semi-colon", - "output": [ - [ - "Character", - "&veeeq" - ] - ] - }, - { - "input": "≚", - "description": "Named entity: veeeq; with a semi-colon", - "output": [ - [ - "Character", - "\u225a" - ] - ] - }, - { - "input": "&vellip", - "description": "Bad named entity: vellip without a semi-colon", - "output": [ - [ - "Character", - "&vellip" - ] - ] - }, - { - "input": "⋮", - "description": "Named entity: vellip; with a semi-colon", - "output": [ - [ - "Character", - "\u22ee" - ] - ] - }, - { - "input": "&verbar", - "description": "Bad named entity: verbar without a semi-colon", - "output": [ - [ - "Character", - "&verbar" - ] - ] - }, - { - "input": "|", - "description": "Named entity: verbar; with a semi-colon", - "output": [ - [ - "Character", - "|" - ] - ] - }, - { - "input": "&vert", - "description": "Bad named entity: vert without a semi-colon", - "output": [ - [ - "Character", - "&vert" - ] - ] - }, - { - "input": "|", - "description": "Named entity: vert; with a semi-colon", - "output": [ - [ - "Character", - "|" - ] - ] - }, - { - "input": "&vfr", - "description": "Bad named entity: vfr without a semi-colon", - "output": [ - [ - "Character", - "&vfr" - ] - ] - }, - { - "input": "𝔳", - "description": "Named entity: vfr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd33" - ] - ] - }, - { - "input": "&vltri", - "description": "Bad named entity: vltri without a semi-colon", - "output": [ - [ - "Character", - "&vltri" - ] - ] - }, - { - "input": "⊲", - "description": "Named entity: vltri; with a semi-colon", - "output": [ - [ - "Character", - "\u22b2" - ] - ] - }, - { - "input": "&vnsub", - "description": "Bad named entity: vnsub without a semi-colon", - "output": [ - [ - "Character", - "&vnsub" - ] - ] - }, - { - "input": "⊂⃒", - "description": "Named entity: vnsub; with a semi-colon", - "output": [ - [ - "Character", - "\u2282\u20d2" - ] - ] - }, - { - "input": "&vnsup", - "description": "Bad named entity: vnsup without a semi-colon", - "output": [ - [ - "Character", - "&vnsup" - ] - ] - }, - { - "input": "⊃⃒", - "description": "Named entity: vnsup; with a semi-colon", - "output": [ - [ - "Character", - "\u2283\u20d2" - ] - ] - }, - { - "input": "&vopf", - "description": "Bad named entity: vopf without a semi-colon", - "output": [ - [ - "Character", - "&vopf" - ] - ] - }, - { - "input": "𝕧", - "description": "Named entity: vopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd67" - ] - ] - }, - { - "input": "&vprop", - "description": "Bad named entity: vprop without a semi-colon", - "output": [ - [ - "Character", - "&vprop" - ] - ] - }, - { - "input": "∝", - "description": "Named entity: vprop; with a semi-colon", - "output": [ - [ - "Character", - "\u221d" - ] - ] - }, - { - "input": "&vrtri", - "description": "Bad named entity: vrtri without a semi-colon", - "output": [ - [ - "Character", - "&vrtri" - ] - ] - }, - { - "input": "⊳", - "description": "Named entity: vrtri; with a semi-colon", - "output": [ - [ - "Character", - "\u22b3" - ] - ] - }, - { - "input": "&vscr", - "description": "Bad named entity: vscr without a semi-colon", - "output": [ - [ - "Character", - "&vscr" - ] - ] - }, - { - "input": "𝓋", - "description": "Named entity: vscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udccb" - ] - ] - }, - { - "input": "&vsubnE", - "description": "Bad named entity: vsubnE without a semi-colon", - "output": [ - [ - "Character", - "&vsubnE" - ] - ] - }, - { - "input": "⫋︀", - "description": "Named entity: vsubnE; with a semi-colon", - "output": [ - [ - "Character", - "\u2acb\ufe00" - ] - ] - }, - { - "input": "&vsubne", - "description": "Bad named entity: vsubne without a semi-colon", - "output": [ - [ - "Character", - "&vsubne" - ] - ] - }, - { - "input": "⊊︀", - "description": "Named entity: vsubne; with a semi-colon", - "output": [ - [ - "Character", - "\u228a\ufe00" - ] - ] - }, - { - "input": "&vsupnE", - "description": "Bad named entity: vsupnE without a semi-colon", - "output": [ - [ - "Character", - "&vsupnE" - ] - ] - }, - { - "input": "⫌︀", - "description": "Named entity: vsupnE; with a semi-colon", - "output": [ - [ - "Character", - "\u2acc\ufe00" - ] - ] - }, - { - "input": "&vsupne", - "description": "Bad named entity: vsupne without a semi-colon", - "output": [ - [ - "Character", - "&vsupne" - ] - ] - }, - { - "input": "⊋︀", - "description": "Named entity: vsupne; with a semi-colon", - "output": [ - [ - "Character", - "\u228b\ufe00" - ] - ] - }, - { - "input": "&vzigzag", - "description": "Bad named entity: vzigzag without a semi-colon", - "output": [ - [ - "Character", - "&vzigzag" - ] - ] - }, - { - "input": "⦚", - "description": "Named entity: vzigzag; with a semi-colon", - "output": [ - [ - "Character", - "\u299a" - ] - ] - }, - { - "input": "&wcirc", - "description": "Bad named entity: wcirc without a semi-colon", - "output": [ - [ - "Character", - "&wcirc" - ] - ] - }, - { - "input": "ŵ", - "description": "Named entity: wcirc; with a semi-colon", - "output": [ - [ - "Character", - "\u0175" - ] - ] - }, - { - "input": "&wedbar", - "description": "Bad named entity: wedbar without a semi-colon", - "output": [ - [ - "Character", - "&wedbar" - ] - ] - }, - { - "input": "⩟", - "description": "Named entity: wedbar; with a semi-colon", - "output": [ - [ - "Character", - "\u2a5f" - ] - ] - }, - { - "input": "&wedge", - "description": "Bad named entity: wedge without a semi-colon", - "output": [ - [ - "Character", - "&wedge" - ] - ] - }, - { - "input": "∧", - "description": "Named entity: wedge; with a semi-colon", - "output": [ - [ - "Character", - "\u2227" - ] - ] - }, - { - "input": "&wedgeq", - "description": "Bad named entity: wedgeq without a semi-colon", - "output": [ - [ - "Character", - "&wedgeq" - ] - ] - }, - { - "input": "≙", - "description": "Named entity: wedgeq; with a semi-colon", - "output": [ - [ - "Character", - "\u2259" - ] - ] - }, - { - "input": "&weierp", - "description": "Bad named entity: weierp without a semi-colon", - "output": [ - [ - "Character", - "&weierp" - ] - ] - }, - { - "input": "℘", - "description": "Named entity: weierp; with a semi-colon", - "output": [ - [ - "Character", - "\u2118" - ] - ] - }, - { - "input": "&wfr", - "description": "Bad named entity: wfr without a semi-colon", - "output": [ - [ - "Character", - "&wfr" - ] - ] - }, - { - "input": "𝔴", - "description": "Named entity: wfr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd34" - ] - ] - }, - { - "input": "&wopf", - "description": "Bad named entity: wopf without a semi-colon", - "output": [ - [ - "Character", - "&wopf" - ] - ] - }, - { - "input": "𝕨", - "description": "Named entity: wopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd68" - ] - ] - }, - { - "input": "&wp", - "description": "Bad named entity: wp without a semi-colon", - "output": [ - [ - "Character", - "&wp" - ] - ] - }, - { - "input": "℘", - "description": "Named entity: wp; with a semi-colon", - "output": [ - [ - "Character", - "\u2118" - ] - ] - }, - { - "input": "&wr", - "description": "Bad named entity: wr without a semi-colon", - "output": [ - [ - "Character", - "&wr" - ] - ] - }, - { - "input": "≀", - "description": "Named entity: wr; with a semi-colon", - "output": [ - [ - "Character", - "\u2240" - ] - ] - }, - { - "input": "&wreath", - "description": "Bad named entity: wreath without a semi-colon", - "output": [ - [ - "Character", - "&wreath" - ] - ] - }, - { - "input": "≀", - "description": "Named entity: wreath; with a semi-colon", - "output": [ - [ - "Character", - "\u2240" - ] - ] - }, - { - "input": "&wscr", - "description": "Bad named entity: wscr without a semi-colon", - "output": [ - [ - "Character", - "&wscr" - ] - ] - }, - { - "input": "𝓌", - "description": "Named entity: wscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udccc" - ] - ] - }, - { - "input": "&xcap", - "description": "Bad named entity: xcap without a semi-colon", - "output": [ - [ - "Character", - "&xcap" - ] - ] - }, - { - "input": "⋂", - "description": "Named entity: xcap; with a semi-colon", - "output": [ - [ - "Character", - "\u22c2" - ] - ] - }, - { - "input": "&xcirc", - "description": "Bad named entity: xcirc without a semi-colon", - "output": [ - [ - "Character", - "&xcirc" - ] - ] - }, - { - "input": "◯", - "description": "Named entity: xcirc; with a semi-colon", - "output": [ - [ - "Character", - "\u25ef" - ] - ] - }, - { - "input": "&xcup", - "description": "Bad named entity: xcup without a semi-colon", - "output": [ - [ - "Character", - "&xcup" - ] - ] - }, - { - "input": "⋃", - "description": "Named entity: xcup; with a semi-colon", - "output": [ - [ - "Character", - "\u22c3" - ] - ] - }, - { - "input": "&xdtri", - "description": "Bad named entity: xdtri without a semi-colon", - "output": [ - [ - "Character", - "&xdtri" - ] - ] - }, - { - "input": "▽", - "description": "Named entity: xdtri; with a semi-colon", - "output": [ - [ - "Character", - "\u25bd" - ] - ] - }, - { - "input": "&xfr", - "description": "Bad named entity: xfr without a semi-colon", - "output": [ - [ - "Character", - "&xfr" - ] - ] - }, - { - "input": "𝔵", - "description": "Named entity: xfr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd35" - ] - ] - }, - { - "input": "&xhArr", - "description": "Bad named entity: xhArr without a semi-colon", - "output": [ - [ - "Character", - "&xhArr" - ] - ] - }, - { - "input": "⟺", - "description": "Named entity: xhArr; with a semi-colon", - "output": [ - [ - "Character", - "\u27fa" - ] - ] - }, - { - "input": "&xharr", - "description": "Bad named entity: xharr without a semi-colon", - "output": [ - [ - "Character", - "&xharr" - ] - ] - }, - { - "input": "⟷", - "description": "Named entity: xharr; with a semi-colon", - "output": [ - [ - "Character", - "\u27f7" - ] - ] - }, - { - "input": "&xi", - "description": "Bad named entity: xi without a semi-colon", - "output": [ - [ - "Character", - "&xi" - ] - ] - }, - { - "input": "ξ", - "description": "Named entity: xi; with a semi-colon", - "output": [ - [ - "Character", - "\u03be" - ] - ] - }, - { - "input": "&xlArr", - "description": "Bad named entity: xlArr without a semi-colon", - "output": [ - [ - "Character", - "&xlArr" - ] - ] - }, - { - "input": "⟸", - "description": "Named entity: xlArr; with a semi-colon", - "output": [ - [ - "Character", - "\u27f8" - ] - ] - }, - { - "input": "&xlarr", - "description": "Bad named entity: xlarr without a semi-colon", - "output": [ - [ - "Character", - "&xlarr" - ] - ] - }, - { - "input": "⟵", - "description": "Named entity: xlarr; with a semi-colon", - "output": [ - [ - "Character", - "\u27f5" - ] - ] - }, - { - "input": "&xmap", - "description": "Bad named entity: xmap without a semi-colon", - "output": [ - [ - "Character", - "&xmap" - ] - ] - }, - { - "input": "⟼", - "description": "Named entity: xmap; with a semi-colon", - "output": [ - [ - "Character", - "\u27fc" - ] - ] - }, - { - "input": "&xnis", - "description": "Bad named entity: xnis without a semi-colon", - "output": [ - [ - "Character", - "&xnis" - ] - ] - }, - { - "input": "⋻", - "description": "Named entity: xnis; with a semi-colon", - "output": [ - [ - "Character", - "\u22fb" - ] - ] - }, - { - "input": "&xodot", - "description": "Bad named entity: xodot without a semi-colon", - "output": [ - [ - "Character", - "&xodot" - ] - ] - }, - { - "input": "⨀", - "description": "Named entity: xodot; with a semi-colon", - "output": [ - [ - "Character", - "\u2a00" - ] - ] - }, - { - "input": "&xopf", - "description": "Bad named entity: xopf without a semi-colon", - "output": [ - [ - "Character", - "&xopf" - ] - ] - }, - { - "input": "𝕩", - "description": "Named entity: xopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd69" - ] - ] - }, - { - "input": "&xoplus", - "description": "Bad named entity: xoplus without a semi-colon", - "output": [ - [ - "Character", - "&xoplus" - ] - ] - }, - { - "input": "⨁", - "description": "Named entity: xoplus; with a semi-colon", - "output": [ - [ - "Character", - "\u2a01" - ] - ] - }, - { - "input": "&xotime", - "description": "Bad named entity: xotime without a semi-colon", - "output": [ - [ - "Character", - "&xotime" - ] - ] - }, - { - "input": "⨂", - "description": "Named entity: xotime; with a semi-colon", - "output": [ - [ - "Character", - "\u2a02" - ] - ] - }, - { - "input": "&xrArr", - "description": "Bad named entity: xrArr without a semi-colon", - "output": [ - [ - "Character", - "&xrArr" - ] - ] - }, - { - "input": "⟹", - "description": "Named entity: xrArr; with a semi-colon", - "output": [ - [ - "Character", - "\u27f9" - ] - ] - }, - { - "input": "&xrarr", - "description": "Bad named entity: xrarr without a semi-colon", - "output": [ - [ - "Character", - "&xrarr" - ] - ] - }, - { - "input": "⟶", - "description": "Named entity: xrarr; with a semi-colon", - "output": [ - [ - "Character", - "\u27f6" - ] - ] - }, - { - "input": "&xscr", - "description": "Bad named entity: xscr without a semi-colon", - "output": [ - [ - "Character", - "&xscr" - ] - ] - }, - { - "input": "𝓍", - "description": "Named entity: xscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udccd" - ] - ] - }, - { - "input": "&xsqcup", - "description": "Bad named entity: xsqcup without a semi-colon", - "output": [ - [ - "Character", - "&xsqcup" - ] - ] - }, - { - "input": "⨆", - "description": "Named entity: xsqcup; with a semi-colon", - "output": [ - [ - "Character", - "\u2a06" - ] - ] - }, - { - "input": "&xuplus", - "description": "Bad named entity: xuplus without a semi-colon", - "output": [ - [ - "Character", - "&xuplus" - ] - ] - }, - { - "input": "⨄", - "description": "Named entity: xuplus; with a semi-colon", - "output": [ - [ - "Character", - "\u2a04" - ] - ] - }, - { - "input": "&xutri", - "description": "Bad named entity: xutri without a semi-colon", - "output": [ - [ - "Character", - "&xutri" - ] - ] - }, - { - "input": "△", - "description": "Named entity: xutri; with a semi-colon", - "output": [ - [ - "Character", - "\u25b3" - ] - ] - }, - { - "input": "&xvee", - "description": "Bad named entity: xvee without a semi-colon", - "output": [ - [ - "Character", - "&xvee" - ] - ] - }, - { - "input": "⋁", - "description": "Named entity: xvee; with a semi-colon", - "output": [ - [ - "Character", - "\u22c1" - ] - ] - }, - { - "input": "&xwedge", - "description": "Bad named entity: xwedge without a semi-colon", - "output": [ - [ - "Character", - "&xwedge" - ] - ] - }, - { - "input": "⋀", - "description": "Named entity: xwedge; with a semi-colon", - "output": [ - [ - "Character", - "\u22c0" - ] - ] - }, - { - "input": "ý", - "description": "Named entity: yacute without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00fd" - ] - ] - }, - { - "input": "ý", - "description": "Named entity: yacute; with a semi-colon", - "output": [ - [ - "Character", - "\u00fd" - ] - ] - }, - { - "input": "&yacy", - "description": "Bad named entity: yacy without a semi-colon", - "output": [ - [ - "Character", - "&yacy" - ] - ] - }, - { - "input": "я", - "description": "Named entity: yacy; with a semi-colon", - "output": [ - [ - "Character", - "\u044f" - ] - ] - }, - { - "input": "&ycirc", - "description": "Bad named entity: ycirc without a semi-colon", - "output": [ - [ - "Character", - "&ycirc" - ] - ] - }, - { - "input": "ŷ", - "description": "Named entity: ycirc; with a semi-colon", - "output": [ - [ - "Character", - "\u0177" - ] - ] - }, - { - "input": "&ycy", - "description": "Bad named entity: ycy without a semi-colon", - "output": [ - [ - "Character", - "&ycy" - ] - ] - }, - { - "input": "ы", - "description": "Named entity: ycy; with a semi-colon", - "output": [ - [ - "Character", - "\u044b" - ] - ] - }, - { - "input": "¥", - "description": "Named entity: yen without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00a5" - ] - ] - }, - { - "input": "¥", - "description": "Named entity: yen; with a semi-colon", - "output": [ - [ - "Character", - "\u00a5" - ] - ] - }, - { - "input": "&yfr", - "description": "Bad named entity: yfr without a semi-colon", - "output": [ - [ - "Character", - "&yfr" - ] - ] - }, - { - "input": "𝔶", - "description": "Named entity: yfr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd36" - ] - ] - }, - { - "input": "&yicy", - "description": "Bad named entity: yicy without a semi-colon", - "output": [ - [ - "Character", - "&yicy" - ] - ] - }, - { - "input": "ї", - "description": "Named entity: yicy; with a semi-colon", - "output": [ - [ - "Character", - "\u0457" - ] - ] - }, - { - "input": "&yopf", - "description": "Bad named entity: yopf without a semi-colon", - "output": [ - [ - "Character", - "&yopf" - ] - ] - }, - { - "input": "𝕪", - "description": "Named entity: yopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd6a" - ] - ] - }, - { - "input": "&yscr", - "description": "Bad named entity: yscr without a semi-colon", - "output": [ - [ - "Character", - "&yscr" - ] - ] - }, - { - "input": "𝓎", - "description": "Named entity: yscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udcce" - ] - ] - }, - { - "input": "&yucy", - "description": "Bad named entity: yucy without a semi-colon", - "output": [ - [ - "Character", - "&yucy" - ] - ] - }, - { - "input": "ю", - "description": "Named entity: yucy; with a semi-colon", - "output": [ - [ - "Character", - "\u044e" - ] - ] - }, - { - "input": "ÿ", - "description": "Named entity: yuml without a semi-colon", - "output": [ - "ParseError", - [ - "Character", - "\u00ff" - ] - ] - }, - { - "input": "ÿ", - "description": "Named entity: yuml; with a semi-colon", - "output": [ - [ - "Character", - "\u00ff" - ] - ] - }, - { - "input": "&zacute", - "description": "Bad named entity: zacute without a semi-colon", - "output": [ - [ - "Character", - "&zacute" - ] - ] - }, - { - "input": "ź", - "description": "Named entity: zacute; with a semi-colon", - "output": [ - [ - "Character", - "\u017a" - ] - ] - }, - { - "input": "&zcaron", - "description": "Bad named entity: zcaron without a semi-colon", - "output": [ - [ - "Character", - "&zcaron" - ] - ] - }, - { - "input": "ž", - "description": "Named entity: zcaron; with a semi-colon", - "output": [ - [ - "Character", - "\u017e" - ] - ] - }, - { - "input": "&zcy", - "description": "Bad named entity: zcy without a semi-colon", - "output": [ - [ - "Character", - "&zcy" - ] - ] - }, - { - "input": "з", - "description": "Named entity: zcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0437" - ] - ] - }, - { - "input": "&zdot", - "description": "Bad named entity: zdot without a semi-colon", - "output": [ - [ - "Character", - "&zdot" - ] - ] - }, - { - "input": "ż", - "description": "Named entity: zdot; with a semi-colon", - "output": [ - [ - "Character", - "\u017c" - ] - ] - }, - { - "input": "&zeetrf", - "description": "Bad named entity: zeetrf without a semi-colon", - "output": [ - [ - "Character", - "&zeetrf" - ] - ] - }, - { - "input": "ℨ", - "description": "Named entity: zeetrf; with a semi-colon", - "output": [ - [ - "Character", - "\u2128" - ] - ] - }, - { - "input": "&zeta", - "description": "Bad named entity: zeta without a semi-colon", - "output": [ - [ - "Character", - "&zeta" - ] - ] - }, - { - "input": "ζ", - "description": "Named entity: zeta; with a semi-colon", - "output": [ - [ - "Character", - "\u03b6" - ] - ] - }, - { - "input": "&zfr", - "description": "Bad named entity: zfr without a semi-colon", - "output": [ - [ - "Character", - "&zfr" - ] - ] - }, - { - "input": "𝔷", - "description": "Named entity: zfr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd37" - ] - ] - }, - { - "input": "&zhcy", - "description": "Bad named entity: zhcy without a semi-colon", - "output": [ - [ - "Character", - "&zhcy" - ] - ] - }, - { - "input": "ж", - "description": "Named entity: zhcy; with a semi-colon", - "output": [ - [ - "Character", - "\u0436" - ] - ] - }, - { - "input": "&zigrarr", - "description": "Bad named entity: zigrarr without a semi-colon", - "output": [ - [ - "Character", - "&zigrarr" - ] - ] - }, - { - "input": "⇝", - "description": "Named entity: zigrarr; with a semi-colon", - "output": [ - [ - "Character", - "\u21dd" - ] - ] - }, - { - "input": "&zopf", - "description": "Bad named entity: zopf without a semi-colon", - "output": [ - [ - "Character", - "&zopf" - ] - ] - }, - { - "input": "𝕫", - "description": "Named entity: zopf; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udd6b" - ] - ] - }, - { - "input": "&zscr", - "description": "Bad named entity: zscr without a semi-colon", - "output": [ - [ - "Character", - "&zscr" - ] - ] - }, - { - "input": "𝓏", - "description": "Named entity: zscr; with a semi-colon", - "output": [ - [ - "Character", - "\ud835\udccf" - ] - ] - }, - { - "input": "&zwj", - "description": "Bad named entity: zwj without a semi-colon", - "output": [ - [ - "Character", - "&zwj" - ] - ] - }, - { - "input": "‍", - "description": "Named entity: zwj; with a semi-colon", - "output": [ - [ - "Character", - "\u200d" - ] - ] - }, - { - "input": "&zwnj", - "description": "Bad named entity: zwnj without a semi-colon", - "output": [ - [ - "Character", - "&zwnj" - ] - ] - }, - { - "input": "‌", - "description": "Named entity: zwnj; with a semi-colon", - "output": [ - [ - "Character", - "\u200c" - ] - ] - } - ] -}
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/numericEntities.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/numericEntities.test deleted file mode 100644 index 36c82281cd9..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/numericEntities.test +++ /dev/null @@ -1,1313 +0,0 @@ -{"tests": [ - -{"description": "Invalid numeric entity character U+0000", -"input": "�", -"output": ["ParseError", ["Character", "\uFFFD"]]}, - -{"description": "Invalid numeric entity character U+0001", -"input": "", -"output": ["ParseError", ["Character", "\u0001"]]}, - -{"description": "Invalid numeric entity character U+0002", -"input": "", -"output": ["ParseError", ["Character", "\u0002"]]}, - -{"description": "Invalid numeric entity character U+0003", -"input": "", -"output": ["ParseError", ["Character", "\u0003"]]}, - -{"description": "Invalid numeric entity character U+0004", -"input": "", -"output": ["ParseError", ["Character", "\u0004"]]}, - -{"description": "Invalid numeric entity character U+0005", -"input": "", -"output": ["ParseError", ["Character", "\u0005"]]}, - -{"description": "Invalid numeric entity character U+0006", -"input": "", -"output": ["ParseError", ["Character", "\u0006"]]}, - -{"description": "Invalid numeric entity character U+0007", -"input": "", -"output": ["ParseError", ["Character", "\u0007"]]}, - -{"description": "Invalid numeric entity character U+0008", -"input": "", -"output": ["ParseError", ["Character", "\u0008"]]}, - -{"description": "Invalid numeric entity character U+000B", -"input": "", -"output": ["ParseError", ["Character", "\u000b"]]}, - -{"description": "Invalid numeric entity character U+000E", -"input": "", -"output": ["ParseError", ["Character", "\u000e"]]}, - -{"description": "Invalid numeric entity character U+000F", -"input": "", -"output": ["ParseError", ["Character", "\u000f"]]}, - -{"description": "Invalid numeric entity character U+0010", -"input": "", -"output": ["ParseError", ["Character", "\u0010"]]}, - -{"description": "Invalid numeric entity character U+0011", -"input": "", -"output": ["ParseError", ["Character", "\u0011"]]}, - -{"description": "Invalid numeric entity character U+0012", -"input": "", -"output": ["ParseError", ["Character", "\u0012"]]}, - -{"description": "Invalid numeric entity character U+0013", -"input": "", -"output": ["ParseError", ["Character", "\u0013"]]}, - -{"description": "Invalid numeric entity character U+0014", -"input": "", -"output": ["ParseError", ["Character", "\u0014"]]}, - -{"description": "Invalid numeric entity character U+0015", -"input": "", -"output": ["ParseError", ["Character", "\u0015"]]}, - -{"description": "Invalid numeric entity character U+0016", -"input": "", -"output": ["ParseError", ["Character", "\u0016"]]}, - -{"description": "Invalid numeric entity character U+0017", -"input": "", -"output": ["ParseError", ["Character", "\u0017"]]}, - -{"description": "Invalid numeric entity character U+0018", -"input": "", -"output": ["ParseError", ["Character", "\u0018"]]}, - -{"description": "Invalid numeric entity character U+0019", -"input": "", -"output": ["ParseError", ["Character", "\u0019"]]}, - -{"description": "Invalid numeric entity character U+001A", -"input": "", -"output": ["ParseError", ["Character", "\u001a"]]}, - -{"description": "Invalid numeric entity character U+001B", -"input": "", -"output": ["ParseError", ["Character", "\u001b"]]}, - -{"description": "Invalid numeric entity character U+001C", -"input": "", -"output": ["ParseError", ["Character", "\u001c"]]}, - -{"description": "Invalid numeric entity character U+001D", -"input": "", -"output": ["ParseError", ["Character", "\u001d"]]}, - -{"description": "Invalid numeric entity character U+001E", -"input": "", -"output": ["ParseError", ["Character", "\u001e"]]}, - -{"description": "Invalid numeric entity character U+001F", -"input": "", -"output": ["ParseError", ["Character", "\u001f"]]}, - -{"description": "Invalid numeric entity character U+007F", -"input": "", -"output": ["ParseError", ["Character", "\u007f"]]}, - -{"description": "Invalid numeric entity character U+D800", -"input": "�", -"output": ["ParseError", ["Character", "\uFFFD"]]}, - -{"description": "Invalid numeric entity character U+DFFF", -"input": "�", -"output": ["ParseError", ["Character", "\uFFFD"]]}, - -{"description": "Invalid numeric entity character U+FDD0", -"input": "", -"output": ["ParseError", ["Character", "\ufdd0"]]}, - -{"description": "Invalid numeric entity character U+FDD1", -"input": "", -"output": ["ParseError", ["Character", "\ufdd1"]]}, - -{"description": "Invalid numeric entity character U+FDD2", -"input": "", -"output": ["ParseError", ["Character", "\ufdd2"]]}, - -{"description": "Invalid numeric entity character U+FDD3", -"input": "", -"output": ["ParseError", ["Character", "\ufdd3"]]}, - -{"description": "Invalid numeric entity character U+FDD4", -"input": "", -"output": ["ParseError", ["Character", "\ufdd4"]]}, - -{"description": "Invalid numeric entity character U+FDD5", -"input": "", -"output": ["ParseError", ["Character", "\ufdd5"]]}, - -{"description": "Invalid numeric entity character U+FDD6", -"input": "", -"output": ["ParseError", ["Character", "\ufdd6"]]}, - -{"description": "Invalid numeric entity character U+FDD7", -"input": "", -"output": ["ParseError", ["Character", "\ufdd7"]]}, - -{"description": "Invalid numeric entity character U+FDD8", -"input": "", -"output": ["ParseError", ["Character", "\ufdd8"]]}, - -{"description": "Invalid numeric entity character U+FDD9", -"input": "", -"output": ["ParseError", ["Character", "\ufdd9"]]}, - -{"description": "Invalid numeric entity character U+FDDA", -"input": "", -"output": ["ParseError", ["Character", "\ufdda"]]}, - -{"description": "Invalid numeric entity character U+FDDB", -"input": "", -"output": ["ParseError", ["Character", "\ufddb"]]}, - -{"description": "Invalid numeric entity character U+FDDC", -"input": "", -"output": ["ParseError", ["Character", "\ufddc"]]}, - -{"description": "Invalid numeric entity character U+FDDD", -"input": "", -"output": ["ParseError", ["Character", "\ufddd"]]}, - -{"description": "Invalid numeric entity character U+FDDE", -"input": "", -"output": ["ParseError", ["Character", "\ufdde"]]}, - -{"description": "Invalid numeric entity character U+FDDF", -"input": "", -"output": ["ParseError", ["Character", "\ufddf"]]}, - -{"description": "Invalid numeric entity character U+FDE0", -"input": "", -"output": ["ParseError", ["Character", "\ufde0"]]}, - -{"description": "Invalid numeric entity character U+FDE1", -"input": "", -"output": ["ParseError", ["Character", "\ufde1"]]}, - -{"description": "Invalid numeric entity character U+FDE2", -"input": "", -"output": ["ParseError", ["Character", "\ufde2"]]}, - -{"description": "Invalid numeric entity character U+FDE3", -"input": "", -"output": ["ParseError", ["Character", "\ufde3"]]}, - -{"description": "Invalid numeric entity character U+FDE4", -"input": "", -"output": ["ParseError", ["Character", "\ufde4"]]}, - -{"description": "Invalid numeric entity character U+FDE5", -"input": "", -"output": ["ParseError", ["Character", "\ufde5"]]}, - -{"description": "Invalid numeric entity character U+FDE6", -"input": "", -"output": ["ParseError", ["Character", "\ufde6"]]}, - -{"description": "Invalid numeric entity character U+FDE7", -"input": "", -"output": ["ParseError", ["Character", "\ufde7"]]}, - -{"description": "Invalid numeric entity character U+FDE8", -"input": "", -"output": ["ParseError", ["Character", "\ufde8"]]}, - -{"description": "Invalid numeric entity character U+FDE9", -"input": "", -"output": ["ParseError", ["Character", "\ufde9"]]}, - -{"description": "Invalid numeric entity character U+FDEA", -"input": "", -"output": ["ParseError", ["Character", "\ufdea"]]}, - -{"description": "Invalid numeric entity character U+FDEB", -"input": "", -"output": ["ParseError", ["Character", "\ufdeb"]]}, - -{"description": "Invalid numeric entity character U+FDEC", -"input": "", -"output": ["ParseError", ["Character", "\ufdec"]]}, - -{"description": "Invalid numeric entity character U+FDED", -"input": "", -"output": ["ParseError", ["Character", "\ufded"]]}, - -{"description": "Invalid numeric entity character U+FDEE", -"input": "", -"output": ["ParseError", ["Character", "\ufdee"]]}, - -{"description": "Invalid numeric entity character U+FDEF", -"input": "", -"output": ["ParseError", ["Character", "\ufdef"]]}, - -{"description": "Invalid numeric entity character U+FFFE", -"input": "", -"output": ["ParseError", ["Character", "\ufffe"]]}, - -{"description": "Invalid numeric entity character U+FFFF", -"input": "", -"output": ["ParseError", ["Character", "\uffff"]]}, - -{"description": "Invalid numeric entity character U+1FFFE", -"input": "", -"output": ["ParseError", ["Character", "\uD83F\uDFFE"]]}, - -{"description": "Invalid numeric entity character U+1FFFF", -"input": "", -"output": ["ParseError", ["Character", "\uD83F\uDFFF"]]}, - -{"description": "Invalid numeric entity character U+2FFFE", -"input": "", -"output": ["ParseError", ["Character", "\uD87F\uDFFE"]]}, - -{"description": "Invalid numeric entity character U+2FFFF", -"input": "", -"output": ["ParseError", ["Character", "\uD87F\uDFFF"]]}, - -{"description": "Invalid numeric entity character U+3FFFE", -"input": "", -"output": ["ParseError", ["Character", "\uD8BF\uDFFE"]]}, - -{"description": "Invalid numeric entity character U+3FFFF", -"input": "", -"output": ["ParseError", ["Character", "\uD8BF\uDFFF"]]}, - -{"description": "Invalid numeric entity character U+4FFFE", -"input": "", -"output": ["ParseError", ["Character", "\uD8FF\uDFFE"]]}, - -{"description": "Invalid numeric entity character U+4FFFF", -"input": "", -"output": ["ParseError", ["Character", "\uD8FF\uDFFF"]]}, - -{"description": "Invalid numeric entity character U+5FFFE", -"input": "", -"output": ["ParseError", ["Character", "\uD93F\uDFFE"]]}, - -{"description": "Invalid numeric entity character U+5FFFF", -"input": "", -"output": ["ParseError", ["Character", "\uD93F\uDFFF"]]}, - -{"description": "Invalid numeric entity character U+6FFFE", -"input": "", -"output": ["ParseError", ["Character", "\uD97F\uDFFE"]]}, - -{"description": "Invalid numeric entity character U+6FFFF", -"input": "", -"output": ["ParseError", ["Character", "\uD97F\uDFFF"]]}, - -{"description": "Invalid numeric entity character U+7FFFE", -"input": "", -"output": ["ParseError", ["Character", "\uD9BF\uDFFE"]]}, - -{"description": "Invalid numeric entity character U+7FFFF", -"input": "", -"output": ["ParseError", ["Character", "\uD9BF\uDFFF"]]}, - -{"description": "Invalid numeric entity character U+8FFFE", -"input": "", -"output": ["ParseError", ["Character", "\uD9FF\uDFFE"]]}, - -{"description": "Invalid numeric entity character U+8FFFF", -"input": "", -"output": ["ParseError", ["Character", "\uD9FF\uDFFF"]]}, - -{"description": "Invalid numeric entity character U+9FFFE", -"input": "", -"output": ["ParseError", ["Character", "\uDA3F\uDFFE"]]}, - -{"description": "Invalid numeric entity character U+9FFFF", -"input": "", -"output": ["ParseError", ["Character", "\uDA3F\uDFFF"]]}, - -{"description": "Invalid numeric entity character U+AFFFE", -"input": "", -"output": ["ParseError", ["Character", "\uDA7F\uDFFE"]]}, - -{"description": "Invalid numeric entity character U+AFFFF", -"input": "", -"output": ["ParseError", ["Character", "\uDA7F\uDFFF"]]}, - -{"description": "Invalid numeric entity character U+BFFFE", -"input": "", -"output": ["ParseError", ["Character", "\uDABF\uDFFE"]]}, - -{"description": "Invalid numeric entity character U+BFFFF", -"input": "", -"output": ["ParseError", ["Character", "\uDABF\uDFFF"]]}, - -{"description": "Invalid numeric entity character U+CFFFE", -"input": "", -"output": ["ParseError", ["Character", "\uDAFF\uDFFE"]]}, - -{"description": "Invalid numeric entity character U+CFFFF", -"input": "", -"output": ["ParseError", ["Character", "\uDAFF\uDFFF"]]}, - -{"description": "Invalid numeric entity character U+DFFFE", -"input": "", -"output": ["ParseError", ["Character", "\uDB3F\uDFFE"]]}, - -{"description": "Invalid numeric entity character U+DFFFF", -"input": "", -"output": ["ParseError", ["Character", "\uDB3F\uDFFF"]]}, - -{"description": "Invalid numeric entity character U+EFFFE", -"input": "", -"output": ["ParseError", ["Character", "\uDB7F\uDFFE"]]}, - -{"description": "Invalid numeric entity character U+EFFFF", -"input": "", -"output": ["ParseError", ["Character", "\uDB7F\uDFFF"]]}, - -{"description": "Invalid numeric entity character U+FFFFE", -"input": "", -"output": ["ParseError", ["Character", "\uDBBF\uDFFE"]]}, - -{"description": "Invalid numeric entity character U+FFFFF", -"input": "", -"output": ["ParseError", ["Character", "\uDBBF\uDFFF"]]}, - -{"description": "Invalid numeric entity character U+10FFFE", -"input": "", -"output": ["ParseError", ["Character", "\uDBFF\uDFFE"]]}, - -{"description": "Invalid numeric entity character U+10FFFF", -"input": "", -"output": ["ParseError", ["Character", "\uDBFF\uDFFF"]]}, - -{"description": "Valid numeric entity character U+0009", -"input": "	", -"output": [["Character", "\u0009"]]}, - -{"description": "Valid numeric entity character U+000A", -"input": "
", -"output": [["Character", "\u000A"]]}, - -{"description": "Valid numeric entity character U+0020", -"input": " ", -"output": [["Character", "\u0020"]]}, - -{"description": "Valid numeric entity character U+0021", -"input": "!", -"output": [["Character", "\u0021"]]}, - -{"description": "Valid numeric entity character U+0022", -"input": """, -"output": [["Character", "\u0022"]]}, - -{"description": "Valid numeric entity character U+0023", -"input": "#", -"output": [["Character", "\u0023"]]}, - -{"description": "Valid numeric entity character U+0024", -"input": "$", -"output": [["Character", "\u0024"]]}, - -{"description": "Valid numeric entity character U+0025", -"input": "%", -"output": [["Character", "\u0025"]]}, - -{"description": "Valid numeric entity character U+0026", -"input": "&", -"output": [["Character", "\u0026"]]}, - -{"description": "Valid numeric entity character U+0027", -"input": "'", -"output": [["Character", "\u0027"]]}, - -{"description": "Valid numeric entity character U+0028", -"input": "(", -"output": [["Character", "\u0028"]]}, - -{"description": "Valid numeric entity character U+0029", -"input": ")", -"output": [["Character", "\u0029"]]}, - -{"description": "Valid numeric entity character U+002A", -"input": "*", -"output": [["Character", "\u002A"]]}, - -{"description": "Valid numeric entity character U+002B", -"input": "+", -"output": [["Character", "\u002B"]]}, - -{"description": "Valid numeric entity character U+002C", -"input": ",", -"output": [["Character", "\u002C"]]}, - -{"description": "Valid numeric entity character U+002D", -"input": "-", -"output": [["Character", "\u002D"]]}, - -{"description": "Valid numeric entity character U+002E", -"input": ".", -"output": [["Character", "\u002E"]]}, - -{"description": "Valid numeric entity character U+002F", -"input": "/", -"output": [["Character", "\u002F"]]}, - -{"description": "Valid numeric entity character U+0030", -"input": "0", -"output": [["Character", "\u0030"]]}, - -{"description": "Valid numeric entity character U+0031", -"input": "1", -"output": [["Character", "\u0031"]]}, - -{"description": "Valid numeric entity character U+0032", -"input": "2", -"output": [["Character", "\u0032"]]}, - -{"description": "Valid numeric entity character U+0033", -"input": "3", -"output": [["Character", "\u0033"]]}, - -{"description": "Valid numeric entity character U+0034", -"input": "4", -"output": [["Character", "\u0034"]]}, - -{"description": "Valid numeric entity character U+0035", -"input": "5", -"output": [["Character", "\u0035"]]}, - -{"description": "Valid numeric entity character U+0036", -"input": "6", -"output": [["Character", "\u0036"]]}, - -{"description": "Valid numeric entity character U+0037", -"input": "7", -"output": [["Character", "\u0037"]]}, - -{"description": "Valid numeric entity character U+0038", -"input": "8", -"output": [["Character", "\u0038"]]}, - -{"description": "Valid numeric entity character U+0039", -"input": "9", -"output": [["Character", "\u0039"]]}, - -{"description": "Valid numeric entity character U+003A", -"input": ":", -"output": [["Character", "\u003A"]]}, - -{"description": "Valid numeric entity character U+003B", -"input": ";", -"output": [["Character", "\u003B"]]}, - -{"description": "Valid numeric entity character U+003C", -"input": "<", -"output": [["Character", "\u003C"]]}, - -{"description": "Valid numeric entity character U+003D", -"input": "=", -"output": [["Character", "\u003D"]]}, - -{"description": "Valid numeric entity character U+003E", -"input": ">", -"output": [["Character", "\u003E"]]}, - -{"description": "Valid numeric entity character U+003F", -"input": "?", -"output": [["Character", "\u003F"]]}, - -{"description": "Valid numeric entity character U+0040", -"input": "@", -"output": [["Character", "\u0040"]]}, - -{"description": "Valid numeric entity character U+0041", -"input": "A", -"output": [["Character", "\u0041"]]}, - -{"description": "Valid numeric entity character U+0042", -"input": "B", -"output": [["Character", "\u0042"]]}, - -{"description": "Valid numeric entity character U+0043", -"input": "C", -"output": [["Character", "\u0043"]]}, - -{"description": "Valid numeric entity character U+0044", -"input": "D", -"output": [["Character", "\u0044"]]}, - -{"description": "Valid numeric entity character U+0045", -"input": "E", -"output": [["Character", "\u0045"]]}, - -{"description": "Valid numeric entity character U+0046", -"input": "F", -"output": [["Character", "\u0046"]]}, - -{"description": "Valid numeric entity character U+0047", -"input": "G", -"output": [["Character", "\u0047"]]}, - -{"description": "Valid numeric entity character U+0048", -"input": "H", -"output": [["Character", "\u0048"]]}, - -{"description": "Valid numeric entity character U+0049", -"input": "I", -"output": [["Character", "\u0049"]]}, - -{"description": "Valid numeric entity character U+004A", -"input": "J", -"output": [["Character", "\u004A"]]}, - -{"description": "Valid numeric entity character U+004B", -"input": "K", -"output": [["Character", "\u004B"]]}, - -{"description": "Valid numeric entity character U+004C", -"input": "L", -"output": [["Character", "\u004C"]]}, - -{"description": "Valid numeric entity character U+004D", -"input": "M", -"output": [["Character", "\u004D"]]}, - -{"description": "Valid numeric entity character U+004E", -"input": "N", -"output": [["Character", "\u004E"]]}, - -{"description": "Valid numeric entity character U+004F", -"input": "O", -"output": [["Character", "\u004F"]]}, - -{"description": "Valid numeric entity character U+0050", -"input": "P", -"output": [["Character", "\u0050"]]}, - -{"description": "Valid numeric entity character U+0051", -"input": "Q", -"output": [["Character", "\u0051"]]}, - -{"description": "Valid numeric entity character U+0052", -"input": "R", -"output": [["Character", "\u0052"]]}, - -{"description": "Valid numeric entity character U+0053", -"input": "S", -"output": [["Character", "\u0053"]]}, - -{"description": "Valid numeric entity character U+0054", -"input": "T", -"output": [["Character", "\u0054"]]}, - -{"description": "Valid numeric entity character U+0055", -"input": "U", -"output": [["Character", "\u0055"]]}, - -{"description": "Valid numeric entity character U+0056", -"input": "V", -"output": [["Character", "\u0056"]]}, - -{"description": "Valid numeric entity character U+0057", -"input": "W", -"output": [["Character", "\u0057"]]}, - -{"description": "Valid numeric entity character U+0058", -"input": "X", -"output": [["Character", "\u0058"]]}, - -{"description": "Valid numeric entity character U+0059", -"input": "Y", -"output": [["Character", "\u0059"]]}, - -{"description": "Valid numeric entity character U+005A", -"input": "Z", -"output": [["Character", "\u005A"]]}, - -{"description": "Valid numeric entity character U+005B", -"input": "[", -"output": [["Character", "\u005B"]]}, - -{"description": "Valid numeric entity character U+005C", -"input": "\", -"output": [["Character", "\u005C"]]}, - -{"description": "Valid numeric entity character U+005D", -"input": "]", -"output": [["Character", "\u005D"]]}, - -{"description": "Valid numeric entity character U+005E", -"input": "^", -"output": [["Character", "\u005E"]]}, - -{"description": "Valid numeric entity character U+005F", -"input": "_", -"output": [["Character", "\u005F"]]}, - -{"description": "Valid numeric entity character U+0060", -"input": "`", -"output": [["Character", "\u0060"]]}, - -{"description": "Valid numeric entity character U+0061", -"input": "a", -"output": [["Character", "\u0061"]]}, - -{"description": "Valid numeric entity character U+0062", -"input": "b", -"output": [["Character", "\u0062"]]}, - -{"description": "Valid numeric entity character U+0063", -"input": "c", -"output": [["Character", "\u0063"]]}, - -{"description": "Valid numeric entity character U+0064", -"input": "d", -"output": [["Character", "\u0064"]]}, - -{"description": "Valid numeric entity character U+0065", -"input": "e", -"output": [["Character", "\u0065"]]}, - -{"description": "Valid numeric entity character U+0066", -"input": "f", -"output": [["Character", "\u0066"]]}, - -{"description": "Valid numeric entity character U+0067", -"input": "g", -"output": [["Character", "\u0067"]]}, - -{"description": "Valid numeric entity character U+0068", -"input": "h", -"output": [["Character", "\u0068"]]}, - -{"description": "Valid numeric entity character U+0069", -"input": "i", -"output": [["Character", "\u0069"]]}, - -{"description": "Valid numeric entity character U+006A", -"input": "j", -"output": [["Character", "\u006A"]]}, - -{"description": "Valid numeric entity character U+006B", -"input": "k", -"output": [["Character", "\u006B"]]}, - -{"description": "Valid numeric entity character U+006C", -"input": "l", -"output": [["Character", "\u006C"]]}, - -{"description": "Valid numeric entity character U+006D", -"input": "m", -"output": [["Character", "\u006D"]]}, - -{"description": "Valid numeric entity character U+006E", -"input": "n", -"output": [["Character", "\u006E"]]}, - -{"description": "Valid numeric entity character U+006F", -"input": "o", -"output": [["Character", "\u006F"]]}, - -{"description": "Valid numeric entity character U+0070", -"input": "p", -"output": [["Character", "\u0070"]]}, - -{"description": "Valid numeric entity character U+0071", -"input": "q", -"output": [["Character", "\u0071"]]}, - -{"description": "Valid numeric entity character U+0072", -"input": "r", -"output": [["Character", "\u0072"]]}, - -{"description": "Valid numeric entity character U+0073", -"input": "s", -"output": [["Character", "\u0073"]]}, - -{"description": "Valid numeric entity character U+0074", -"input": "t", -"output": [["Character", "\u0074"]]}, - -{"description": "Valid numeric entity character U+0075", -"input": "u", -"output": [["Character", "\u0075"]]}, - -{"description": "Valid numeric entity character U+0076", -"input": "v", -"output": [["Character", "\u0076"]]}, - -{"description": "Valid numeric entity character U+0077", -"input": "w", -"output": [["Character", "\u0077"]]}, - -{"description": "Valid numeric entity character U+0078", -"input": "x", -"output": [["Character", "\u0078"]]}, - -{"description": "Valid numeric entity character U+0079", -"input": "y", -"output": [["Character", "\u0079"]]}, - -{"description": "Valid numeric entity character U+007A", -"input": "z", -"output": [["Character", "\u007A"]]}, - -{"description": "Valid numeric entity character U+007B", -"input": "{", -"output": [["Character", "\u007B"]]}, - -{"description": "Valid numeric entity character U+007C", -"input": "|", -"output": [["Character", "\u007C"]]}, - -{"description": "Valid numeric entity character U+007D", -"input": "}", -"output": [["Character", "\u007D"]]}, - -{"description": "Valid numeric entity character U+007E", -"input": "~", -"output": [["Character", "\u007E"]]}, - -{"description": "Valid numeric entity character U+00A0", -"input": " ", -"output": [["Character", "\u00A0"]]}, - -{"description": "Valid numeric entity character U+00A1", -"input": "¡", -"output": [["Character", "\u00A1"]]}, - -{"description": "Valid numeric entity character U+00A2", -"input": "¢", -"output": [["Character", "\u00A2"]]}, - -{"description": "Valid numeric entity character U+00A3", -"input": "£", -"output": [["Character", "\u00A3"]]}, - -{"description": "Valid numeric entity character U+00A4", -"input": "¤", -"output": [["Character", "\u00A4"]]}, - -{"description": "Valid numeric entity character U+00A5", -"input": "¥", -"output": [["Character", "\u00A5"]]}, - -{"description": "Valid numeric entity character U+00A6", -"input": "¦", -"output": [["Character", "\u00A6"]]}, - -{"description": "Valid numeric entity character U+00A7", -"input": "§", -"output": [["Character", "\u00A7"]]}, - -{"description": "Valid numeric entity character U+00A8", -"input": "¨", -"output": [["Character", "\u00A8"]]}, - -{"description": "Valid numeric entity character U+00A9", -"input": "©", -"output": [["Character", "\u00A9"]]}, - -{"description": "Valid numeric entity character U+00AA", -"input": "ª", -"output": [["Character", "\u00AA"]]}, - -{"description": "Valid numeric entity character U+00AB", -"input": "«", -"output": [["Character", "\u00AB"]]}, - -{"description": "Valid numeric entity character U+00AC", -"input": "¬", -"output": [["Character", "\u00AC"]]}, - -{"description": "Valid numeric entity character U+00AD", -"input": "­", -"output": [["Character", "\u00AD"]]}, - -{"description": "Valid numeric entity character U+00AE", -"input": "®", -"output": [["Character", "\u00AE"]]}, - -{"description": "Valid numeric entity character U+00AF", -"input": "¯", -"output": [["Character", "\u00AF"]]}, - -{"description": "Valid numeric entity character U+00B0", -"input": "°", -"output": [["Character", "\u00B0"]]}, - -{"description": "Valid numeric entity character U+00B1", -"input": "±", -"output": [["Character", "\u00B1"]]}, - -{"description": "Valid numeric entity character U+00B2", -"input": "²", -"output": [["Character", "\u00B2"]]}, - -{"description": "Valid numeric entity character U+00B3", -"input": "³", -"output": [["Character", "\u00B3"]]}, - -{"description": "Valid numeric entity character U+00B4", -"input": "´", -"output": [["Character", "\u00B4"]]}, - -{"description": "Valid numeric entity character U+00B5", -"input": "µ", -"output": [["Character", "\u00B5"]]}, - -{"description": "Valid numeric entity character U+00B6", -"input": "¶", -"output": [["Character", "\u00B6"]]}, - -{"description": "Valid numeric entity character U+00B7", -"input": "·", -"output": [["Character", "\u00B7"]]}, - -{"description": "Valid numeric entity character U+00B8", -"input": "¸", -"output": [["Character", "\u00B8"]]}, - -{"description": "Valid numeric entity character U+00B9", -"input": "¹", -"output": [["Character", "\u00B9"]]}, - -{"description": "Valid numeric entity character U+00BA", -"input": "º", -"output": [["Character", "\u00BA"]]}, - -{"description": "Valid numeric entity character U+00BB", -"input": "»", -"output": [["Character", "\u00BB"]]}, - -{"description": "Valid numeric entity character U+00BC", -"input": "¼", -"output": [["Character", "\u00BC"]]}, - -{"description": "Valid numeric entity character U+00BD", -"input": "½", -"output": [["Character", "\u00BD"]]}, - -{"description": "Valid numeric entity character U+00BE", -"input": "¾", -"output": [["Character", "\u00BE"]]}, - -{"description": "Valid numeric entity character U+00BF", -"input": "¿", -"output": [["Character", "\u00BF"]]}, - -{"description": "Valid numeric entity character U+00C0", -"input": "À", -"output": [["Character", "\u00C0"]]}, - -{"description": "Valid numeric entity character U+00C1", -"input": "Á", -"output": [["Character", "\u00C1"]]}, - -{"description": "Valid numeric entity character U+00C2", -"input": "Â", -"output": [["Character", "\u00C2"]]}, - -{"description": "Valid numeric entity character U+00C3", -"input": "Ã", -"output": [["Character", "\u00C3"]]}, - -{"description": "Valid numeric entity character U+00C4", -"input": "Ä", -"output": [["Character", "\u00C4"]]}, - -{"description": "Valid numeric entity character U+00C5", -"input": "Å", -"output": [["Character", "\u00C5"]]}, - -{"description": "Valid numeric entity character U+00C6", -"input": "Æ", -"output": [["Character", "\u00C6"]]}, - -{"description": "Valid numeric entity character U+00C7", -"input": "Ç", -"output": [["Character", "\u00C7"]]}, - -{"description": "Valid numeric entity character U+00C8", -"input": "È", -"output": [["Character", "\u00C8"]]}, - -{"description": "Valid numeric entity character U+00C9", -"input": "É", -"output": [["Character", "\u00C9"]]}, - -{"description": "Valid numeric entity character U+00CA", -"input": "Ê", -"output": [["Character", "\u00CA"]]}, - -{"description": "Valid numeric entity character U+00CB", -"input": "Ë", -"output": [["Character", "\u00CB"]]}, - -{"description": "Valid numeric entity character U+00CC", -"input": "Ì", -"output": [["Character", "\u00CC"]]}, - -{"description": "Valid numeric entity character U+00CD", -"input": "Í", -"output": [["Character", "\u00CD"]]}, - -{"description": "Valid numeric entity character U+00CE", -"input": "Î", -"output": [["Character", "\u00CE"]]}, - -{"description": "Valid numeric entity character U+00CF", -"input": "Ï", -"output": [["Character", "\u00CF"]]}, - -{"description": "Valid numeric entity character U+00D0", -"input": "Ð", -"output": [["Character", "\u00D0"]]}, - -{"description": "Valid numeric entity character U+00D1", -"input": "Ñ", -"output": [["Character", "\u00D1"]]}, - -{"description": "Valid numeric entity character U+00D2", -"input": "Ò", -"output": [["Character", "\u00D2"]]}, - -{"description": "Valid numeric entity character U+00D3", -"input": "Ó", -"output": [["Character", "\u00D3"]]}, - -{"description": "Valid numeric entity character U+00D4", -"input": "Ô", -"output": [["Character", "\u00D4"]]}, - -{"description": "Valid numeric entity character U+00D5", -"input": "Õ", -"output": [["Character", "\u00D5"]]}, - -{"description": "Valid numeric entity character U+00D6", -"input": "Ö", -"output": [["Character", "\u00D6"]]}, - -{"description": "Valid numeric entity character U+00D7", -"input": "×", -"output": [["Character", "\u00D7"]]}, - -{"description": "Valid numeric entity character U+00D8", -"input": "Ø", -"output": [["Character", "\u00D8"]]}, - -{"description": "Valid numeric entity character U+00D9", -"input": "Ù", -"output": [["Character", "\u00D9"]]}, - -{"description": "Valid numeric entity character U+00DA", -"input": "Ú", -"output": [["Character", "\u00DA"]]}, - -{"description": "Valid numeric entity character U+00DB", -"input": "Û", -"output": [["Character", "\u00DB"]]}, - -{"description": "Valid numeric entity character U+00DC", -"input": "Ü", -"output": [["Character", "\u00DC"]]}, - -{"description": "Valid numeric entity character U+00DD", -"input": "Ý", -"output": [["Character", "\u00DD"]]}, - -{"description": "Valid numeric entity character U+00DE", -"input": "Þ", -"output": [["Character", "\u00DE"]]}, - -{"description": "Valid numeric entity character U+00DF", -"input": "ß", -"output": [["Character", "\u00DF"]]}, - -{"description": "Valid numeric entity character U+00E0", -"input": "à", -"output": [["Character", "\u00E0"]]}, - -{"description": "Valid numeric entity character U+00E1", -"input": "á", -"output": [["Character", "\u00E1"]]}, - -{"description": "Valid numeric entity character U+00E2", -"input": "â", -"output": [["Character", "\u00E2"]]}, - -{"description": "Valid numeric entity character U+00E3", -"input": "ã", -"output": [["Character", "\u00E3"]]}, - -{"description": "Valid numeric entity character U+00E4", -"input": "ä", -"output": [["Character", "\u00E4"]]}, - -{"description": "Valid numeric entity character U+00E5", -"input": "å", -"output": [["Character", "\u00E5"]]}, - -{"description": "Valid numeric entity character U+00E6", -"input": "æ", -"output": [["Character", "\u00E6"]]}, - -{"description": "Valid numeric entity character U+00E7", -"input": "ç", -"output": [["Character", "\u00E7"]]}, - -{"description": "Valid numeric entity character U+00E8", -"input": "è", -"output": [["Character", "\u00E8"]]}, - -{"description": "Valid numeric entity character U+00E9", -"input": "é", -"output": [["Character", "\u00E9"]]}, - -{"description": "Valid numeric entity character U+00EA", -"input": "ê", -"output": [["Character", "\u00EA"]]}, - -{"description": "Valid numeric entity character U+00EB", -"input": "ë", -"output": [["Character", "\u00EB"]]}, - -{"description": "Valid numeric entity character U+00EC", -"input": "ì", -"output": [["Character", "\u00EC"]]}, - -{"description": "Valid numeric entity character U+00ED", -"input": "í", -"output": [["Character", "\u00ED"]]}, - -{"description": "Valid numeric entity character U+00EE", -"input": "î", -"output": [["Character", "\u00EE"]]}, - -{"description": "Valid numeric entity character U+00EF", -"input": "ï", -"output": [["Character", "\u00EF"]]}, - -{"description": "Valid numeric entity character U+00F0", -"input": "ð", -"output": [["Character", "\u00F0"]]}, - -{"description": "Valid numeric entity character U+00F1", -"input": "ñ", -"output": [["Character", "\u00F1"]]}, - -{"description": "Valid numeric entity character U+00F2", -"input": "ò", -"output": [["Character", "\u00F2"]]}, - -{"description": "Valid numeric entity character U+00F3", -"input": "ó", -"output": [["Character", "\u00F3"]]}, - -{"description": "Valid numeric entity character U+00F4", -"input": "ô", -"output": [["Character", "\u00F4"]]}, - -{"description": "Valid numeric entity character U+00F5", -"input": "õ", -"output": [["Character", "\u00F5"]]}, - -{"description": "Valid numeric entity character U+00F6", -"input": "ö", -"output": [["Character", "\u00F6"]]}, - -{"description": "Valid numeric entity character U+00F7", -"input": "÷", -"output": [["Character", "\u00F7"]]}, - -{"description": "Valid numeric entity character U+00F8", -"input": "ø", -"output": [["Character", "\u00F8"]]}, - -{"description": "Valid numeric entity character U+00F9", -"input": "ù", -"output": [["Character", "\u00F9"]]}, - -{"description": "Valid numeric entity character U+00FA", -"input": "ú", -"output": [["Character", "\u00FA"]]}, - -{"description": "Valid numeric entity character U+00FB", -"input": "û", -"output": [["Character", "\u00FB"]]}, - -{"description": "Valid numeric entity character U+00FC", -"input": "ü", -"output": [["Character", "\u00FC"]]}, - -{"description": "Valid numeric entity character U+00FD", -"input": "ý", -"output": [["Character", "\u00FD"]]}, - -{"description": "Valid numeric entity character U+00FE", -"input": "þ", -"output": [["Character", "\u00FE"]]}, - -{"description": "Valid numeric entity character U+00FF", -"input": "ÿ", -"output": [["Character", "\u00FF"]]}, - -{"description": "Valid numeric entity character U+D7FF", -"input": "퟿", -"output": [["Character", "\uD7FF"]]}, - -{"description": "Valid numeric entity character U+E000", -"input": "", -"output": [["Character", "\uE000"]]}, - -{"description": "Valid numeric entity character U+FDCF", -"input": "﷏", -"output": [["Character", "\uFDCF"]]}, - -{"description": "Valid numeric entity character U+FDF0", -"input": "ﷰ", -"output": [["Character", "\uFDF0"]]}, - -{"description": "Valid numeric entity character U+FFFD", -"input": "�", -"output": [["Character", "\uFFFD"]]}, - -{"description": "Valid numeric entity character U+10000", -"input": "𐀀", -"output": [["Character", "\uD800\uDC00"]]}, - -{"description": "Valid numeric entity character U+1FFFD", -"input": "🿽", -"output": [["Character", "\uD83F\uDFFD"]]}, - -{"description": "Valid numeric entity character U+20000", -"input": "𠀀", -"output": [["Character", "\uD840\uDC00"]]}, - -{"description": "Valid numeric entity character U+2FFFD", -"input": "𯿽", -"output": [["Character", "\uD87F\uDFFD"]]}, - -{"description": "Valid numeric entity character U+30000", -"input": "𰀀", -"output": [["Character", "\uD880\uDC00"]]}, - -{"description": "Valid numeric entity character U+3FFFD", -"input": "𿿽", -"output": [["Character", "\uD8BF\uDFFD"]]}, - -{"description": "Valid numeric entity character U+40000", -"input": "񀀀", -"output": [["Character", "\uD8C0\uDC00"]]}, - -{"description": "Valid numeric entity character U+4FFFD", -"input": "񏿽", -"output": [["Character", "\uD8FF\uDFFD"]]}, - -{"description": "Valid numeric entity character U+50000", -"input": "񐀀", -"output": [["Character", "\uD900\uDC00"]]}, - -{"description": "Valid numeric entity character U+5FFFD", -"input": "񟿽", -"output": [["Character", "\uD93F\uDFFD"]]}, - -{"description": "Valid numeric entity character U+60000", -"input": "񠀀", -"output": [["Character", "\uD940\uDC00"]]}, - -{"description": "Valid numeric entity character U+6FFFD", -"input": "񯿽", -"output": [["Character", "\uD97F\uDFFD"]]}, - -{"description": "Valid numeric entity character U+70000", -"input": "񰀀", -"output": [["Character", "\uD980\uDC00"]]}, - -{"description": "Valid numeric entity character U+7FFFD", -"input": "񿿽", -"output": [["Character", "\uD9BF\uDFFD"]]}, - -{"description": "Valid numeric entity character U+80000", -"input": "򀀀", -"output": [["Character", "\uD9C0\uDC00"]]}, - -{"description": "Valid numeric entity character U+8FFFD", -"input": "򏿽", -"output": [["Character", "\uD9FF\uDFFD"]]}, - -{"description": "Valid numeric entity character U+90000", -"input": "򐀀", -"output": [["Character", "\uDA00\uDC00"]]}, - -{"description": "Valid numeric entity character U+9FFFD", -"input": "򟿽", -"output": [["Character", "\uDA3F\uDFFD"]]}, - -{"description": "Valid numeric entity character U+A0000", -"input": "򠀀", -"output": [["Character", "\uDA40\uDC00"]]}, - -{"description": "Valid numeric entity character U+AFFFD", -"input": "򯿽", -"output": [["Character", "\uDA7F\uDFFD"]]}, - -{"description": "Valid numeric entity character U+B0000", -"input": "򰀀", -"output": [["Character", "\uDA80\uDC00"]]}, - -{"description": "Valid numeric entity character U+BFFFD", -"input": "򿿽", -"output": [["Character", "\uDABF\uDFFD"]]}, - -{"description": "Valid numeric entity character U+C0000", -"input": "󀀀", -"output": [["Character", "\uDAC0\uDC00"]]}, - -{"description": "Valid numeric entity character U+CFFFD", -"input": "󏿽", -"output": [["Character", "\uDAFF\uDFFD"]]}, - -{"description": "Valid numeric entity character U+D0000", -"input": "󐀀", -"output": [["Character", "\uDB00\uDC00"]]}, - -{"description": "Valid numeric entity character U+DFFFD", -"input": "󟿽", -"output": [["Character", "\uDB3F\uDFFD"]]}, - -{"description": "Valid numeric entity character U+E0000", -"input": "󠀀", -"output": [["Character", "\uDB40\uDC00"]]}, - -{"description": "Valid numeric entity character U+EFFFD", -"input": "󯿽", -"output": [["Character", "\uDB7F\uDFFD"]]}, - -{"description": "Valid numeric entity character U+F0000", -"input": "󰀀", -"output": [["Character", "\uDB80\uDC00"]]}, - -{"description": "Valid numeric entity character U+FFFFD", -"input": "󿿽", -"output": [["Character", "\uDBBF\uDFFD"]]}, - -{"description": "Valid numeric entity character U+100000", -"input": "􀀀", -"output": [["Character", "\uDBC0\uDC00"]]}, - -{"description": "Valid numeric entity character U+10FFFD", -"input": "􏿽", -"output": [["Character", "\uDBFF\uDFFD"]]} - -]} - - diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/pendingSpecChanges.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/pendingSpecChanges.test deleted file mode 100644 index 1b7dc3c7228..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/pendingSpecChanges.test +++ /dev/null @@ -1,7 +0,0 @@ -{"tests": [ - -{"description":"<!---- >", -"input":"<!---- >", -"output":["ParseError", "ParseError", ["Comment","-- >"]]} - -]} diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/test1.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/test1.test deleted file mode 100644 index b97b2cbecf9..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/test1.test +++ /dev/null @@ -1,196 +0,0 @@ -{"tests": [ - -{"description":"Correct Doctype lowercase", -"input":"<!DOCTYPE html>", -"output":[["DOCTYPE", "html", null, null, true]]}, - -{"description":"Correct Doctype uppercase", -"input":"<!DOCTYPE HTML>", -"output":[["DOCTYPE", "html", null, null, true]]}, - -{"description":"Correct Doctype mixed case", -"input":"<!DOCTYPE HtMl>", -"output":[["DOCTYPE", "html", null, null, true]]}, - -{"description":"Correct Doctype case with EOF", -"input":"<!DOCTYPE HtMl", -"output":["ParseError", ["DOCTYPE", "html", null, null, false]]}, - -{"description":"Truncated doctype start", -"input":"<!DOC>", -"output":["ParseError", ["Comment", "DOC"]]}, - -{"description":"Doctype in error", -"input":"<!DOCTYPE foo>", -"output":[["DOCTYPE", "foo", null, null, true]]}, - -{"description":"Single Start Tag", -"input":"<h>", -"output":[["StartTag", "h", {}]]}, - -{"description":"Empty end tag", -"input":"</>", -"output":["ParseError"]}, - -{"description":"Empty start tag", -"input":"<>", -"output":["ParseError", ["Character", "<>"]]}, - -{"description":"Start Tag w/attribute", -"input":"<h a='b'>", -"output":[["StartTag", "h", {"a":"b"}]]}, - -{"description":"Start Tag w/attribute no quotes", -"input":"<h a=b>", -"output":[["StartTag", "h", {"a":"b"}]]}, - -{"description":"Start/End Tag", -"input":"<h></h>", -"output":[["StartTag", "h", {}], ["EndTag", "h"]]}, - -{"description":"Two unclosed start tags", -"input":"<p>One<p>Two", -"output":[["StartTag", "p", {}], ["Character", "One"], ["StartTag", "p", {}], ["Character", "Two"]]}, - -{"description":"End Tag w/attribute", -"input":"<h></h a='b'>", -"output":[["StartTag", "h", {}], "ParseError", ["EndTag", "h"]]}, - -{"description":"Multiple atts", -"input":"<h a='b' c='d'>", -"output":[["StartTag", "h", {"a":"b", "c":"d"}]]}, - -{"description":"Multiple atts no space", -"input":"<h a='b'c='d'>", -"output":["ParseError", ["StartTag", "h", {"a":"b", "c":"d"}]]}, - -{"description":"Repeated attr", - "input":"<h a='b' a='d'>", - "output":["ParseError", ["StartTag", "h", {"a":"b"}]]}, - -{"description":"Simple comment", - "input":"<!--comment-->", - "output":[["Comment", "comment"]]}, - -{"description":"Comment, Central dash no space", - "input":"<!----->", - "output":["ParseError", ["Comment", "-"]]}, - -{"description":"Comment, two central dashes", -"input":"<!-- --comment -->", -"output":["ParseError", ["Comment", " --comment "]]}, - -{"description":"Unfinished comment", -"input":"<!--comment", -"output":["ParseError", ["Comment", "comment"]]}, - -{"description":"Start of a comment", -"input":"<!-", -"output":["ParseError", ["Comment", "-"]]}, - -{"description":"Short comment", - "input":"<!-->", - "output":["ParseError", ["Comment", ""]]}, - -{"description":"Short comment two", - "input":"<!--->", - "output":["ParseError", ["Comment", ""]]}, - -{"description":"Short comment three", - "input":"<!---->", - "output":[["Comment", ""]]}, - - -{"description":"Ampersand EOF", -"input":"&", -"output":[["Character", "&"]]}, - -{"description":"Ampersand ampersand EOF", -"input":"&&", -"output":[["Character", "&&"]]}, - -{"description":"Ampersand space EOF", -"input":"& ", -"output":[["Character", "& "]]}, - -{"description":"Unfinished entity", -"input":"&f", -"output":[["Character", "&f"]]}, - -{"description":"Ampersand, number sign", -"input":"&#", -"output":["ParseError", ["Character", "&#"]]}, - -{"description":"Unfinished numeric entity", -"input":"&#x", -"output":["ParseError", ["Character", "&#x"]]}, - -{"description":"Entity with trailing semicolon (1)", -"input":"I'm ¬it", -"output":[["Character","I'm \u00ACit"]]}, - -{"description":"Entity with trailing semicolon (2)", -"input":"I'm ∉", -"output":[["Character","I'm \u2209"]]}, - -{"description":"Entity without trailing semicolon (1)", -"input":"I'm ¬it", -"output":[["Character","I'm "], "ParseError", ["Character", "\u00ACit"]]}, - -{"description":"Entity without trailing semicolon (2)", -"input":"I'm ¬in", -"output":[["Character","I'm "], "ParseError", ["Character", "\u00ACin"]]}, - -{"description":"Partial entity match at end of file", -"input":"I'm &no", -"output":[["Character","I'm &no"]]}, - -{"description":"Non-ASCII character reference name", -"input":"&\u00AC;", -"output":[["Character", "&\u00AC;"]]}, - -{"description":"ASCII decimal entity", -"input":"$", -"output":[["Character","$"]]}, - -{"description":"ASCII hexadecimal entity", -"input":"?", -"output":[["Character","?"]]}, - -{"description":"Hexadecimal entity in attribute", -"input":"<h a='?'></h>", -"output":[["StartTag", "h", {"a":"?"}], ["EndTag", "h"]]}, - -{"description":"Entity in attribute without semicolon ending in x", -"input":"<h a='¬x'>", -"output":[["StartTag", "h", {"a":"¬x"}]]}, - -{"description":"Entity in attribute without semicolon ending in 1", -"input":"<h a='¬1'>", -"output":[["StartTag", "h", {"a":"¬1"}]]}, - -{"description":"Entity in attribute without semicolon ending in i", -"input":"<h a='¬i'>", -"output":[["StartTag", "h", {"a":"¬i"}]]}, - -{"description":"Entity in attribute without semicolon", -"input":"<h a='©'>", -"output":["ParseError", ["StartTag", "h", {"a":"\u00A9"}]]}, - -{"description":"Unquoted attribute ending in ampersand", -"input":"<s o=& t>", -"output":[["StartTag","s",{"o":"&","t":""}]]}, - -{"description":"Unquoted attribute at end of tag with final character of &, with tag followed by characters", -"input":"<a a=a&>foo", -"output":[["StartTag", "a", {"a":"a&"}], ["Character", "foo"]]}, - -{"description":"plaintext element", - "input":"<plaintext>foobar", - "output":[["StartTag","plaintext",{}], ["Character","foobar"]]}, - -{"description":"Open angled bracket in unquoted attribute value state", - "input":"<a a=f<>", - "output":["ParseError", ["StartTag", "a", {"a":"f<"}]]} - -]} diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/test2.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/test2.test deleted file mode 100644 index 87a8eba3465..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/test2.test +++ /dev/null @@ -1,179 +0,0 @@ -{"tests": [ - -{"description":"DOCTYPE without name", -"input":"<!DOCTYPE>", -"output":["ParseError", "ParseError", ["DOCTYPE", null, null, null, false]]}, - -{"description":"DOCTYPE without space before name", -"input":"<!DOCTYPEhtml>", -"output":["ParseError", ["DOCTYPE", "html", null, null, true]]}, - -{"description":"Incorrect DOCTYPE without a space before name", -"input":"<!DOCTYPEfoo>", -"output":["ParseError", ["DOCTYPE", "foo", null, null, true]]}, - -{"description":"DOCTYPE with publicId", -"input":"<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML Transitional 4.01//EN\">", -"output":[["DOCTYPE", "html", "-//W3C//DTD HTML Transitional 4.01//EN", null, true]]}, - -{"description":"DOCTYPE with EOF after PUBLIC", -"input":"<!DOCTYPE html PUBLIC", -"output":["ParseError", ["DOCTYPE", "html", null, null, false]]}, - -{"description":"DOCTYPE with EOF after PUBLIC '", -"input":"<!DOCTYPE html PUBLIC '", -"output":["ParseError", ["DOCTYPE", "html", "", null, false]]}, - -{"description":"DOCTYPE with EOF after PUBLIC 'x", -"input":"<!DOCTYPE html PUBLIC 'x", -"output":["ParseError", ["DOCTYPE", "html", "x", null, false]]}, - -{"description":"DOCTYPE with systemId", -"input":"<!DOCTYPE html SYSTEM \"-//W3C//DTD HTML Transitional 4.01//EN\">", -"output":[["DOCTYPE", "html", null, "-//W3C//DTD HTML Transitional 4.01//EN", true]]}, - -{"description":"DOCTYPE with publicId and systemId", -"input":"<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML Transitional 4.01//EN\" \"-//W3C//DTD HTML Transitional 4.01//EN\">", -"output":[["DOCTYPE", "html", "-//W3C//DTD HTML Transitional 4.01//EN", "-//W3C//DTD HTML Transitional 4.01//EN", true]]}, - -{"description":"DOCTYPE with > in double-quoted publicId", -"input":"<!DOCTYPE html PUBLIC \">x", -"output":["ParseError", ["DOCTYPE", "html", "", null, false], ["Character", "x"]]}, - -{"description":"DOCTYPE with > in single-quoted publicId", -"input":"<!DOCTYPE html PUBLIC '>x", -"output":["ParseError", ["DOCTYPE", "html", "", null, false], ["Character", "x"]]}, - -{"description":"DOCTYPE with > in double-quoted systemId", -"input":"<!DOCTYPE html PUBLIC \"foo\" \">x", -"output":["ParseError", ["DOCTYPE", "html", "foo", "", false], ["Character", "x"]]}, - -{"description":"DOCTYPE with > in single-quoted systemId", -"input":"<!DOCTYPE html PUBLIC 'foo' '>x", -"output":["ParseError", ["DOCTYPE", "html", "foo", "", false], ["Character", "x"]]}, - -{"description":"Incomplete doctype", -"input":"<!DOCTYPE html ", -"output":["ParseError", ["DOCTYPE", "html", null, null, false]]}, - -{"description":"Numeric entity representing the NUL character", -"input":"�", -"output":["ParseError", ["Character", "\uFFFD"]]}, - -{"description":"Hexadecimal entity representing the NUL character", -"input":"�", -"output":["ParseError", ["Character", "\uFFFD"]]}, - -{"description":"Numeric entity representing a codepoint after 1114111 (U+10FFFF)", -"input":"�", -"output":["ParseError", ["Character", "\uFFFD"]]}, - -{"description":"Hexadecimal entity representing a codepoint after 1114111 (U+10FFFF)", -"input":"�", -"output":["ParseError", ["Character", "\uFFFD"]]}, - -{"description":"Hexadecimal entity pair representing a surrogate pair", -"input":"��", -"output":["ParseError", ["Character", "\uFFFD"], "ParseError", ["Character", "\uFFFD"]]}, - -{"description":"Hexadecimal entity with mixed uppercase and lowercase", -"input":"ꯍ", -"output":[["Character", "\uABCD"]]}, - -{"description":"Entity without a name", -"input":"&;", -"output":[["Character", "&;"]]}, - -{"description":"Unescaped ampersand in attribute value", -"input":"<h a='&'>", -"output":[["StartTag", "h", { "a":"&" }]]}, - -{"description":"StartTag containing <", -"input":"<a<b>", -"output":[["StartTag", "a<b", { }]]}, - -{"description":"Non-void element containing trailing /", -"input":"<h/>", -"output":[["StartTag","h",{},true]]}, - -{"description":"Void element with permitted slash", -"input":"<br/>", -"output":[["StartTag","br",{},true]]}, - -{"description":"Void element with permitted slash (with attribute)", -"input":"<br foo='bar'/>", -"output":[["StartTag","br",{"foo":"bar"},true]]}, - -{"description":"StartTag containing /", -"input":"<h/a='b'>", -"output":["ParseError", ["StartTag", "h", { "a":"b" }]]}, - -{"description":"Double-quoted attribute value", -"input":"<h a=\"b\">", -"output":[["StartTag", "h", { "a":"b" }]]}, - -{"description":"Unescaped </", -"input":"</", -"output":["ParseError", ["Character", "</"]]}, - -{"description":"Illegal end tag name", -"input":"</1>", -"output":["ParseError", ["Comment", "1"]]}, - -{"description":"Simili processing instruction", -"input":"<?namespace>", -"output":["ParseError", ["Comment", "?namespace"]]}, - -{"description":"A bogus comment stops at >, even if preceeded by two dashes", -"input":"<?foo-->", -"output":["ParseError", ["Comment", "?foo--"]]}, - -{"description":"Unescaped <", -"input":"foo < bar", -"output":[["Character", "foo "], "ParseError", ["Character", "< bar"]]}, - -{"description":"Null Byte Replacement", -"input":"\u0000", -"output":["ParseError", ["Character", "\u0000"]]}, - -{"description":"Comment with dash", -"input":"<!---x", -"output":["ParseError", ["Comment", "-x"]]}, - -{"description":"Entity + newline", -"input":"\nx\n>\n", -"output":[["Character","\nx\n>\n"]]}, - -{"description":"Start tag with no attributes but space before the greater-than sign", -"input":"<h >", -"output":[["StartTag", "h", {}]]}, - -{"description":"Empty attribute followed by uppercase attribute", -"input":"<h a B=''>", -"output":[["StartTag", "h", {"a":"", "b":""}]]}, - -{"description":"Double-quote after attribute name", -"input":"<h a \">", -"output":["ParseError", ["StartTag", "h", {"a":"", "\"":""}]]}, - -{"description":"Single-quote after attribute name", -"input":"<h a '>", -"output":["ParseError", ["StartTag", "h", {"a":"", "'":""}]]}, - -{"description":"Empty end tag with following characters", -"input":"a</>bc", -"output":[["Character", "a"], "ParseError", ["Character", "bc"]]}, - -{"description":"Empty end tag with following tag", -"input":"a</><b>c", -"output":[["Character", "a"], "ParseError", ["StartTag", "b", {}], ["Character", "c"]]}, - -{"description":"Empty end tag with following comment", -"input":"a</><!--b-->c", -"output":[["Character", "a"], "ParseError", ["Comment", "b"], ["Character", "c"]]}, - -{"description":"Empty end tag with following end tag", -"input":"a</></b>c", -"output":[["Character", "a"], "ParseError", ["EndTag", "b"], ["Character", "c"]]} - -]} diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/test3.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/test3.test deleted file mode 100644 index 8fc529a2ba4..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/test3.test +++ /dev/null @@ -1,6047 +0,0 @@ -{"tests": [ - -{"description":"", -"input":"", -"output":[]}, - -{"description":"\\u0009", -"input":"\u0009", -"output":[["Character", "\u0009"]]}, - -{"description":"\\u000A", -"input":"\u000A", -"output":[["Character", "\u000A"]]}, - -{"description":"\\u000B", -"input":"\u000B", -"output":["ParseError", ["Character", "\u000B"]]}, - -{"description":"\\u000C", -"input":"\u000C", -"output":[["Character", "\u000C"]]}, - -{"description":" ", -"input":" ", -"output":[["Character", " "]]}, - -{"description":"!", -"input":"!", -"output":[["Character", "!"]]}, - -{"description":"\"", -"input":"\"", -"output":[["Character", "\""]]}, - -{"description":"%", -"input":"%", -"output":[["Character", "%"]]}, - -{"description":"&", -"input":"&", -"output":[["Character", "&"]]}, - -{"description":"'", -"input":"'", -"output":[["Character", "'"]]}, - -{"description":",", -"input":",", -"output":[["Character", ","]]}, - -{"description":"-", -"input":"-", -"output":[["Character", "-"]]}, - -{"description":".", -"input":".", -"output":[["Character", "."]]}, - -{"description":"/", -"input":"/", -"output":[["Character", "/"]]}, - -{"description":"0", -"input":"0", -"output":[["Character", "0"]]}, - -{"description":"1", -"input":"1", -"output":[["Character", "1"]]}, - -{"description":"9", -"input":"9", -"output":[["Character", "9"]]}, - -{"description":";", -"input":";", -"output":[["Character", ";"]]}, - -{"description":"<", -"input":"<", -"output":["ParseError", ["Character", "<"]]}, - -{"description":"<\\u0000", -"input":"<\u0000", -"output":["ParseError", ["Character", "<"], "ParseError", ["Character", "\u0000"]]}, - -{"description":"<\\u0009", -"input":"<\u0009", -"output":["ParseError", ["Character", "<\u0009"]]}, - -{"description":"<\\u000A", -"input":"<\u000A", -"output":["ParseError", ["Character", "<\u000A"]]}, - -{"description":"<\\u000B", -"input":"<\u000B", -"output":["ParseError", "ParseError", ["Character", "<\u000B"]]}, - -{"description":"<\\u000C", -"input":"<\u000C", -"output":["ParseError", ["Character", "<\u000C"]]}, - -{"description":"< ", -"input":"< ", -"output":["ParseError", ["Character", "< "]]}, - -{"description":"<!", -"input":"<!", -"output":["ParseError", ["Comment", ""]]}, - -{"description":"<!\\u0000", -"input":"<!\u0000", -"output":["ParseError", ["Comment", "\uFFFD"]]}, - -{"description":"<!\\u0009", -"input":"<!\u0009", -"output":["ParseError", ["Comment", "\u0009"]]}, - -{"description":"<!\\u000A", -"input":"<!\u000A", -"output":["ParseError", ["Comment", "\u000A"]]}, - -{"description":"<!\\u000B", -"input":"<!\u000B", -"output":["ParseError", "ParseError", ["Comment", "\u000B"]]}, - -{"description":"<!\\u000C", -"input":"<!\u000C", -"output":["ParseError", ["Comment", "\u000C"]]}, - -{"description":"<! ", -"input":"<! ", -"output":["ParseError", ["Comment", " "]]}, - -{"description":"<!!", -"input":"<!!", -"output":["ParseError", ["Comment", "!"]]}, - -{"description":"<!\"", -"input":"<!\"", -"output":["ParseError", ["Comment", "\""]]}, - -{"description":"<!&", -"input":"<!&", -"output":["ParseError", ["Comment", "&"]]}, - -{"description":"<!'", -"input":"<!'", -"output":["ParseError", ["Comment", "'"]]}, - -{"description":"<!-", -"input":"<!-", -"output":["ParseError", ["Comment", "-"]]}, - -{"description":"<!--", -"input":"<!--", -"output":["ParseError", ["Comment", ""]]}, - -{"description":"<!--\\u0000", -"input":"<!--\u0000", -"output":["ParseError", "ParseError", ["Comment", "\uFFFD"]]}, - -{"description":"<!--\\u0009", -"input":"<!--\u0009", -"output":["ParseError", ["Comment", "\u0009"]]}, - -{"description":"<!--\\u000A", -"input":"<!--\u000A", -"output":["ParseError", ["Comment", "\u000A"]]}, - -{"description":"<!--\\u000B", -"input":"<!--\u000B", -"output":["ParseError", "ParseError", ["Comment", "\u000B"]]}, - -{"description":"<!--\\u000C", -"input":"<!--\u000C", -"output":["ParseError", ["Comment", "\u000C"]]}, - -{"description":"<!-- ", -"input":"<!-- ", -"output":["ParseError", ["Comment", " "]]}, - -{"description":"<!-- \\u0000", -"input":"<!-- \u0000", -"output":["ParseError", "ParseError", ["Comment", " \uFFFD"]]}, - -{"description":"<!-- \\u0009", -"input":"<!-- \u0009", -"output":["ParseError", ["Comment", " \u0009"]]}, - -{"description":"<!-- \\u000A", -"input":"<!-- \u000A", -"output":["ParseError", ["Comment", " \u000A"]]}, - -{"description":"<!-- \\u000B", -"input":"<!-- \u000B", -"output":["ParseError", "ParseError", ["Comment", " \u000B"]]}, - -{"description":"<!-- \\u000C", -"input":"<!-- \u000C", -"output":["ParseError", ["Comment", " \u000C"]]}, - -{"description":"<!-- ", -"input":"<!-- ", -"output":["ParseError", ["Comment", " "]]}, - -{"description":"<!-- !", -"input":"<!-- !", -"output":["ParseError", ["Comment", " !"]]}, - -{"description":"<!-- \"", -"input":"<!-- \"", -"output":["ParseError", ["Comment", " \""]]}, - -{"description":"<!-- &", -"input":"<!-- &", -"output":["ParseError", ["Comment", " &"]]}, - -{"description":"<!-- '", -"input":"<!-- '", -"output":["ParseError", ["Comment", " '"]]}, - -{"description":"<!-- ,", -"input":"<!-- ,", -"output":["ParseError", ["Comment", " ,"]]}, - -{"description":"<!-- -", -"input":"<!-- -", -"output":["ParseError", ["Comment", " "]]}, - -{"description":"<!-- -\\u0000", -"input":"<!-- -\u0000", -"output":["ParseError", "ParseError", ["Comment", " -\uFFFD"]]}, - -{"description":"<!-- -\\u0009", -"input":"<!-- -\u0009", -"output":["ParseError", ["Comment", " -\u0009"]]}, - -{"description":"<!-- -\\u000A", -"input":"<!-- -\u000A", -"output":["ParseError", ["Comment", " -\u000A"]]}, - -{"description":"<!-- -\\u000B", -"input":"<!-- -\u000B", -"output":["ParseError", "ParseError", ["Comment", " -\u000B"]]}, - -{"description":"<!-- -\\u000C", -"input":"<!-- -\u000C", -"output":["ParseError", ["Comment", " -\u000C"]]}, - -{"description":"<!-- - ", -"input":"<!-- - ", -"output":["ParseError", ["Comment", " - "]]}, - -{"description":"<!-- -!", -"input":"<!-- -!", -"output":["ParseError", ["Comment", " -!"]]}, - -{"description":"<!-- -\"", -"input":"<!-- -\"", -"output":["ParseError", ["Comment", " -\""]]}, - -{"description":"<!-- -&", -"input":"<!-- -&", -"output":["ParseError", ["Comment", " -&"]]}, - -{"description":"<!-- -'", -"input":"<!-- -'", -"output":["ParseError", ["Comment", " -'"]]}, - -{"description":"<!-- -,", -"input":"<!-- -,", -"output":["ParseError", ["Comment", " -,"]]}, - -{"description":"<!-- --", -"input":"<!-- --", -"output":["ParseError", ["Comment", " "]]}, - -{"description":"<!-- -.", -"input":"<!-- -.", -"output":["ParseError", ["Comment", " -."]]}, - -{"description":"<!-- -/", -"input":"<!-- -/", -"output":["ParseError", ["Comment", " -/"]]}, - -{"description":"<!-- -0", -"input":"<!-- -0", -"output":["ParseError", ["Comment", " -0"]]}, - -{"description":"<!-- -1", -"input":"<!-- -1", -"output":["ParseError", ["Comment", " -1"]]}, - -{"description":"<!-- -9", -"input":"<!-- -9", -"output":["ParseError", ["Comment", " -9"]]}, - -{"description":"<!-- -<", -"input":"<!-- -<", -"output":["ParseError", ["Comment", " -<"]]}, - -{"description":"<!-- -=", -"input":"<!-- -=", -"output":["ParseError", ["Comment", " -="]]}, - -{"description":"<!-- ->", -"input":"<!-- ->", -"output":["ParseError", ["Comment", " ->"]]}, - -{"description":"<!-- -?", -"input":"<!-- -?", -"output":["ParseError", ["Comment", " -?"]]}, - -{"description":"<!-- -@", -"input":"<!-- -@", -"output":["ParseError", ["Comment", " -@"]]}, - -{"description":"<!-- -A", -"input":"<!-- -A", -"output":["ParseError", ["Comment", " -A"]]}, - -{"description":"<!-- -B", -"input":"<!-- -B", -"output":["ParseError", ["Comment", " -B"]]}, - -{"description":"<!-- -Y", -"input":"<!-- -Y", -"output":["ParseError", ["Comment", " -Y"]]}, - -{"description":"<!-- -Z", -"input":"<!-- -Z", -"output":["ParseError", ["Comment", " -Z"]]}, - -{"description":"<!-- -`", -"input":"<!-- -`", -"output":["ParseError", ["Comment", " -`"]]}, - -{"description":"<!-- -a", -"input":"<!-- -a", -"output":["ParseError", ["Comment", " -a"]]}, - -{"description":"<!-- -b", -"input":"<!-- -b", -"output":["ParseError", ["Comment", " -b"]]}, - -{"description":"<!-- -y", -"input":"<!-- -y", -"output":["ParseError", ["Comment", " -y"]]}, - -{"description":"<!-- -z", -"input":"<!-- -z", -"output":["ParseError", ["Comment", " -z"]]}, - -{"description":"<!-- -{", -"input":"<!-- -{", -"output":["ParseError", ["Comment", " -{"]]}, - -{"description":"<!-- -\\uDBC0\\uDC00", -"input":"<!-- -\uDBC0\uDC00", -"output":["ParseError", ["Comment", " -\uDBC0\uDC00"]]}, - -{"description":"<!-- .", -"input":"<!-- .", -"output":["ParseError", ["Comment", " ."]]}, - -{"description":"<!-- /", -"input":"<!-- /", -"output":["ParseError", ["Comment", " /"]]}, - -{"description":"<!-- 0", -"input":"<!-- 0", -"output":["ParseError", ["Comment", " 0"]]}, - -{"description":"<!-- 1", -"input":"<!-- 1", -"output":["ParseError", ["Comment", " 1"]]}, - -{"description":"<!-- 9", -"input":"<!-- 9", -"output":["ParseError", ["Comment", " 9"]]}, - -{"description":"<!-- <", -"input":"<!-- <", -"output":["ParseError", ["Comment", " <"]]}, - -{"description":"<!-- =", -"input":"<!-- =", -"output":["ParseError", ["Comment", " ="]]}, - -{"description":"<!-- >", -"input":"<!-- >", -"output":["ParseError", ["Comment", " >"]]}, - -{"description":"<!-- ?", -"input":"<!-- ?", -"output":["ParseError", ["Comment", " ?"]]}, - -{"description":"<!-- @", -"input":"<!-- @", -"output":["ParseError", ["Comment", " @"]]}, - -{"description":"<!-- A", -"input":"<!-- A", -"output":["ParseError", ["Comment", " A"]]}, - -{"description":"<!-- B", -"input":"<!-- B", -"output":["ParseError", ["Comment", " B"]]}, - -{"description":"<!-- Y", -"input":"<!-- Y", -"output":["ParseError", ["Comment", " Y"]]}, - -{"description":"<!-- Z", -"input":"<!-- Z", -"output":["ParseError", ["Comment", " Z"]]}, - -{"description":"<!-- `", -"input":"<!-- `", -"output":["ParseError", ["Comment", " `"]]}, - -{"description":"<!-- a", -"input":"<!-- a", -"output":["ParseError", ["Comment", " a"]]}, - -{"description":"<!-- b", -"input":"<!-- b", -"output":["ParseError", ["Comment", " b"]]}, - -{"description":"<!-- y", -"input":"<!-- y", -"output":["ParseError", ["Comment", " y"]]}, - -{"description":"<!-- z", -"input":"<!-- z", -"output":["ParseError", ["Comment", " z"]]}, - -{"description":"<!-- {", -"input":"<!-- {", -"output":["ParseError", ["Comment", " {"]]}, - -{"description":"<!-- \\uDBC0\\uDC00", -"input":"<!-- \uDBC0\uDC00", -"output":["ParseError", ["Comment", " \uDBC0\uDC00"]]}, - -{"description":"<!--!", -"input":"<!--!", -"output":["ParseError", ["Comment", "!"]]}, - -{"description":"<!--\"", -"input":"<!--\"", -"output":["ParseError", ["Comment", "\""]]}, - -{"description":"<!--&", -"input":"<!--&", -"output":["ParseError", ["Comment", "&"]]}, - -{"description":"<!--'", -"input":"<!--'", -"output":["ParseError", ["Comment", "'"]]}, - -{"description":"<!--,", -"input":"<!--,", -"output":["ParseError", ["Comment", ","]]}, - -{"description":"<!---", -"input":"<!---", -"output":["ParseError", ["Comment", ""]]}, - -{"description":"<!---\\u0000", -"input":"<!---\u0000", -"output":["ParseError", "ParseError", ["Comment", "-\uFFFD"]]}, - -{"description":"<!---\\u0009", -"input":"<!---\u0009", -"output":["ParseError", ["Comment", "-\u0009"]]}, - -{"description":"<!---\\u000A", -"input":"<!---\u000A", -"output":["ParseError", ["Comment", "-\u000A"]]}, - -{"description":"<!---\\u000B", -"input":"<!---\u000B", -"output":["ParseError", "ParseError", ["Comment", "-\u000B"]]}, - -{"description":"<!---\\u000C", -"input":"<!---\u000C", -"output":["ParseError", ["Comment", "-\u000C"]]}, - -{"description":"<!--- ", -"input":"<!--- ", -"output":["ParseError", ["Comment", "- "]]}, - -{"description":"<!---!", -"input":"<!---!", -"output":["ParseError", ["Comment", "-!"]]}, - -{"description":"<!---\"", -"input":"<!---\"", -"output":["ParseError", ["Comment", "-\""]]}, - -{"description":"<!---&", -"input":"<!---&", -"output":["ParseError", ["Comment", "-&"]]}, - -{"description":"<!---'", -"input":"<!---'", -"output":["ParseError", ["Comment", "-'"]]}, - -{"description":"<!---,", -"input":"<!---,", -"output":["ParseError", ["Comment", "-,"]]}, - -{"description":"<!----", -"input":"<!----", -"output":["ParseError", ["Comment", ""]]}, - -{"description":"<!----\\u0000", -"input":"<!----\u0000", -"output":["ParseError", "ParseError", ["Comment", "--\uFFFD"]]}, - -{"description":"<!----\\u0009", -"input":"<!----\u0009", -"output":["ParseError", "ParseError", ["Comment", "--\u0009"]]}, - -{"description":"<!----\\u000A", -"input":"<!----\u000A", -"output":["ParseError", "ParseError", ["Comment", "--\u000A"]]}, - -{"description":"<!----\\u000B", -"input":"<!----\u000B", -"output":["ParseError", "ParseError", "ParseError", ["Comment", "--\u000B"]]}, - -{"description":"<!----\\u000C", -"input":"<!----\u000C", -"output":["ParseError", "ParseError", ["Comment", "--\u000C"]]}, - -{"description":"<!---- ", -"input":"<!---- ", -"output":["ParseError", "ParseError", ["Comment", "-- "]]}, - -{"description":"<!---- -", -"input":"<!---- -", -"output":["ParseError", "ParseError", ["Comment", "-- "]]}, - -{"description":"<!---- --", -"input":"<!---- --", -"output":["ParseError", "ParseError", ["Comment", "-- "]]}, - -{"description":"<!---- -->", -"input":"<!---- -->", -"output":["ParseError", ["Comment", "-- "]]}, - -{"description":"<!---- -->", -"input":"<!---- -->", -"output":["ParseError", ["Comment", "-- "]]}, - -{"description":"<!---- a-->", -"input":"<!---- a-->", -"output":["ParseError", ["Comment", "-- a"]]}, - -{"description":"<!----!", -"input":"<!----!", -"output":["ParseError", "ParseError", ["Comment", ""]]}, - -{"description":"<!----!>", -"input":"<!----!>", -"output":["ParseError", ["Comment", ""]]}, - -{"description":"<!----!a", -"input":"<!----!a", -"output":["ParseError", "ParseError", ["Comment", "--!a"]]}, - -{"description":"<!----!a-", -"input":"<!----!a-", -"output":["ParseError", "ParseError", ["Comment", "--!a"]]}, - -{"description":"<!----!a--", -"input":"<!----!a--", -"output":["ParseError", "ParseError", ["Comment", "--!a"]]}, - -{"description":"<!----!a-->", -"input":"<!----!a-->", -"output":["ParseError", ["Comment", "--!a"]]}, - -{"description":"<!----!-", -"input":"<!----!-", -"output":["ParseError", "ParseError", ["Comment", "--!"]]}, - -{"description":"<!----!--", -"input":"<!----!--", -"output":["ParseError", "ParseError", ["Comment", "--!"]]}, - -{"description":"<!----!-->", -"input":"<!----!-->", -"output":["ParseError", ["Comment", "--!"]]}, - -{"description":"<!----\"", -"input":"<!----\"", -"output":["ParseError", "ParseError", ["Comment", "--\""]]}, - -{"description":"<!----&", -"input":"<!----&", -"output":["ParseError", "ParseError", ["Comment", "--&"]]}, - -{"description":"<!----'", -"input":"<!----'", -"output":["ParseError", "ParseError", ["Comment", "--'"]]}, - -{"description":"<!----,", -"input":"<!----,", -"output":["ParseError", "ParseError", ["Comment", "--,"]]}, - -{"description":"<!-----", -"input":"<!-----", -"output":["ParseError", "ParseError", ["Comment", "-"]]}, - -{"description":"<!----.", -"input":"<!----.", -"output":["ParseError", "ParseError", ["Comment", "--."]]}, - -{"description":"<!----/", -"input":"<!----/", -"output":["ParseError", "ParseError", ["Comment", "--/"]]}, - -{"description":"<!----0", -"input":"<!----0", -"output":["ParseError", "ParseError", ["Comment", "--0"]]}, - -{"description":"<!----1", -"input":"<!----1", -"output":["ParseError", "ParseError", ["Comment", "--1"]]}, - -{"description":"<!----9", -"input":"<!----9", -"output":["ParseError", "ParseError", ["Comment", "--9"]]}, - -{"description":"<!----<", -"input":"<!----<", -"output":["ParseError", "ParseError", ["Comment", "--<"]]}, - -{"description":"<!----=", -"input":"<!----=", -"output":["ParseError", "ParseError", ["Comment", "--="]]}, - -{"description":"<!---->", -"input":"<!---->", -"output":[["Comment", ""]]}, - -{"description":"<!----?", -"input":"<!----?", -"output":["ParseError", "ParseError", ["Comment", "--?"]]}, - -{"description":"<!----@", -"input":"<!----@", -"output":["ParseError", "ParseError", ["Comment", "--@"]]}, - -{"description":"<!----A", -"input":"<!----A", -"output":["ParseError", "ParseError", ["Comment", "--A"]]}, - -{"description":"<!----B", -"input":"<!----B", -"output":["ParseError", "ParseError", ["Comment", "--B"]]}, - -{"description":"<!----Y", -"input":"<!----Y", -"output":["ParseError", "ParseError", ["Comment", "--Y"]]}, - -{"description":"<!----Z", -"input":"<!----Z", -"output":["ParseError", "ParseError", ["Comment", "--Z"]]}, - -{"description":"<!----`", -"input":"<!----`", -"output":["ParseError", "ParseError", ["Comment", "--`"]]}, - -{"description":"<!----a", -"input":"<!----a", -"output":["ParseError", "ParseError", ["Comment", "--a"]]}, - -{"description":"<!----b", -"input":"<!----b", -"output":["ParseError", "ParseError", ["Comment", "--b"]]}, - -{"description":"<!----y", -"input":"<!----y", -"output":["ParseError", "ParseError", ["Comment", "--y"]]}, - -{"description":"<!----z", -"input":"<!----z", -"output":["ParseError", "ParseError", ["Comment", "--z"]]}, - -{"description":"<!----{", -"input":"<!----{", -"output":["ParseError", "ParseError", ["Comment", "--{"]]}, - -{"description":"<!----\\uDBC0\\uDC00", -"input":"<!----\uDBC0\uDC00", -"output":["ParseError", "ParseError", ["Comment", "--\uDBC0\uDC00"]]}, - -{"description":"<!---.", -"input":"<!---.", -"output":["ParseError", ["Comment", "-."]]}, - -{"description":"<!---/", -"input":"<!---/", -"output":["ParseError", ["Comment", "-/"]]}, - -{"description":"<!---0", -"input":"<!---0", -"output":["ParseError", ["Comment", "-0"]]}, - -{"description":"<!---1", -"input":"<!---1", -"output":["ParseError", ["Comment", "-1"]]}, - -{"description":"<!---9", -"input":"<!---9", -"output":["ParseError", ["Comment", "-9"]]}, - -{"description":"<!---<", -"input":"<!---<", -"output":["ParseError", ["Comment", "-<"]]}, - -{"description":"<!---=", -"input":"<!---=", -"output":["ParseError", ["Comment", "-="]]}, - -{"description":"<!--->", -"input":"<!--->", -"output":["ParseError", ["Comment", ""]]}, - -{"description":"<!---?", -"input":"<!---?", -"output":["ParseError", ["Comment", "-?"]]}, - -{"description":"<!---@", -"input":"<!---@", -"output":["ParseError", ["Comment", "-@"]]}, - -{"description":"<!---A", -"input":"<!---A", -"output":["ParseError", ["Comment", "-A"]]}, - -{"description":"<!---B", -"input":"<!---B", -"output":["ParseError", ["Comment", "-B"]]}, - -{"description":"<!---Y", -"input":"<!---Y", -"output":["ParseError", ["Comment", "-Y"]]}, - -{"description":"<!---Z", -"input":"<!---Z", -"output":["ParseError", ["Comment", "-Z"]]}, - -{"description":"<!---`", -"input":"<!---`", -"output":["ParseError", ["Comment", "-`"]]}, - -{"description":"<!---a", -"input":"<!---a", -"output":["ParseError", ["Comment", "-a"]]}, - -{"description":"<!---b", -"input":"<!---b", -"output":["ParseError", ["Comment", "-b"]]}, - -{"description":"<!---y", -"input":"<!---y", -"output":["ParseError", ["Comment", "-y"]]}, - -{"description":"<!---z", -"input":"<!---z", -"output":["ParseError", ["Comment", "-z"]]}, - -{"description":"<!---{", -"input":"<!---{", -"output":["ParseError", ["Comment", "-{"]]}, - -{"description":"<!---\\uDBC0\\uDC00", -"input":"<!---\uDBC0\uDC00", -"output":["ParseError", ["Comment", "-\uDBC0\uDC00"]]}, - -{"description":"<!--.", -"input":"<!--.", -"output":["ParseError", ["Comment", "."]]}, - -{"description":"<!--/", -"input":"<!--/", -"output":["ParseError", ["Comment", "/"]]}, - -{"description":"<!--0", -"input":"<!--0", -"output":["ParseError", ["Comment", "0"]]}, - -{"description":"<!--1", -"input":"<!--1", -"output":["ParseError", ["Comment", "1"]]}, - -{"description":"<!--9", -"input":"<!--9", -"output":["ParseError", ["Comment", "9"]]}, - -{"description":"<!--<", -"input":"<!--<", -"output":["ParseError", ["Comment", "<"]]}, - -{"description":"<!--=", -"input":"<!--=", -"output":["ParseError", ["Comment", "="]]}, - -{"description":"<!-->", -"input":"<!-->", -"output":["ParseError", ["Comment", ""]]}, - -{"description":"<!--?", -"input":"<!--?", -"output":["ParseError", ["Comment", "?"]]}, - -{"description":"<!--@", -"input":"<!--@", -"output":["ParseError", ["Comment", "@"]]}, - -{"description":"<!--A", -"input":"<!--A", -"output":["ParseError", ["Comment", "A"]]}, - -{"description":"<!--B", -"input":"<!--B", -"output":["ParseError", ["Comment", "B"]]}, - -{"description":"<!--Y", -"input":"<!--Y", -"output":["ParseError", ["Comment", "Y"]]}, - -{"description":"<!--Z", -"input":"<!--Z", -"output":["ParseError", ["Comment", "Z"]]}, - -{"description":"<!--`", -"input":"<!--`", -"output":["ParseError", ["Comment", "`"]]}, - -{"description":"<!--a", -"input":"<!--a", -"output":["ParseError", ["Comment", "a"]]}, - -{"description":"<!--b", -"input":"<!--b", -"output":["ParseError", ["Comment", "b"]]}, - -{"description":"<!--y", -"input":"<!--y", -"output":["ParseError", ["Comment", "y"]]}, - -{"description":"<!--z", -"input":"<!--z", -"output":["ParseError", ["Comment", "z"]]}, - -{"description":"<!--{", -"input":"<!--{", -"output":["ParseError", ["Comment", "{"]]}, - -{"description":"<!--\\uDBC0\\uDC00", -"input":"<!--\uDBC0\uDC00", -"output":["ParseError", ["Comment", "\uDBC0\uDC00"]]}, - -{"description":"<!/", -"input":"<!/", -"output":["ParseError", ["Comment", "/"]]}, - -{"description":"<!0", -"input":"<!0", -"output":["ParseError", ["Comment", "0"]]}, - -{"description":"<!1", -"input":"<!1", -"output":["ParseError", ["Comment", "1"]]}, - -{"description":"<!9", -"input":"<!9", -"output":["ParseError", ["Comment", "9"]]}, - -{"description":"<!<", -"input":"<!<", -"output":["ParseError", ["Comment", "<"]]}, - -{"description":"<!=", -"input":"<!=", -"output":["ParseError", ["Comment", "="]]}, - -{"description":"<!>", -"input":"<!>", -"output":["ParseError", ["Comment", ""]]}, - -{"description":"<!?", -"input":"<!?", -"output":["ParseError", ["Comment", "?"]]}, - -{"description":"<!@", -"input":"<!@", -"output":["ParseError", ["Comment", "@"]]}, - -{"description":"<!A", -"input":"<!A", -"output":["ParseError", ["Comment", "A"]]}, - -{"description":"<!B", -"input":"<!B", -"output":["ParseError", ["Comment", "B"]]}, - -{"description":"<!DOCTYPE", -"input":"<!DOCTYPE", -"output":["ParseError", ["DOCTYPE", null, null, null, false]]}, - -{"description":"<!DOCTYPE\\u0000", -"input":"<!DOCTYPE\u0000", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "\uFFFD", null, null, false]]}, - -{"description":"<!DOCTYPE\\u0008", -"input":"<!DOCTYPE\u0008", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "\u0008", null, null, false]]}, - -{"description":"<!DOCTYPE\\u0009", -"input":"<!DOCTYPE\u0009", -"output":["ParseError", ["DOCTYPE", null, null, null, false]]}, - -{"description":"<!DOCTYPE\\u000A", -"input":"<!DOCTYPE\u000A", -"output":["ParseError", ["DOCTYPE", null, null, null, false]]}, - -{"description":"<!DOCTYPE\\u000B", -"input":"<!DOCTYPE\u000B", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "\u000B", null, null, false]]}, - -{"description":"<!DOCTYPE\\u000C", -"input":"<!DOCTYPE\u000C", -"output":["ParseError", ["DOCTYPE", null, null, null, false]]}, - -{"description":"<!DOCTYPE\\u000D", -"input":"<!DOCTYPE\u000D", -"output":["ParseError", ["DOCTYPE", null, null, null, false]]}, - -{"description":"<!DOCTYPE\\u001F", -"input":"<!DOCTYPE\u001F", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "\u001F", null, null, false]]}, - -{"description":"<!DOCTYPE ", -"input":"<!DOCTYPE ", -"output":["ParseError", ["DOCTYPE", null, null, null, false]]}, - -{"description":"<!DOCTYPE \\u0000", -"input":"<!DOCTYPE \u0000", -"output":["ParseError", "ParseError", ["DOCTYPE", "\uFFFD", null, null, false]]}, - -{"description":"<!DOCTYPE \\u0008", -"input":"<!DOCTYPE \u0008", -"output":["ParseError", "ParseError", ["DOCTYPE", "\u0008", null, null, false]]}, - -{"description":"<!DOCTYPE \\u0009", -"input":"<!DOCTYPE \u0009", -"output":["ParseError", ["DOCTYPE", null, null, null, false]]}, - -{"description":"<!DOCTYPE \\u000A", -"input":"<!DOCTYPE \u000A", -"output":["ParseError", ["DOCTYPE", null, null, null, false]]}, - -{"description":"<!DOCTYPE \\u000B", -"input":"<!DOCTYPE \u000B", -"output":["ParseError", "ParseError", ["DOCTYPE", "\u000B", null, null, false]]}, - -{"description":"<!DOCTYPE \\u000C", -"input":"<!DOCTYPE \u000C", -"output":["ParseError", ["DOCTYPE", null, null, null, false]]}, - -{"description":"<!DOCTYPE \\u000D", -"input":"<!DOCTYPE \u000D", -"output":["ParseError", ["DOCTYPE", null, null, null, false]]}, - -{"description":"<!DOCTYPE \\u001F", -"input":"<!DOCTYPE \u001F", -"output":["ParseError", "ParseError", ["DOCTYPE", "\u001F", null, null, false]]}, - -{"description":"<!DOCTYPE ", -"input":"<!DOCTYPE ", -"output":["ParseError", ["DOCTYPE", null, null, null, false]]}, - -{"description":"<!DOCTYPE !", -"input":"<!DOCTYPE !", -"output":["ParseError", ["DOCTYPE", "!", null, null, false]]}, - -{"description":"<!DOCTYPE \"", -"input":"<!DOCTYPE \"", -"output":["ParseError", ["DOCTYPE", "\"", null, null, false]]}, - -{"description":"<!DOCTYPE &", -"input":"<!DOCTYPE &", -"output":["ParseError", ["DOCTYPE", "&", null, null, false]]}, - -{"description":"<!DOCTYPE '", -"input":"<!DOCTYPE '", -"output":["ParseError", ["DOCTYPE", "'", null, null, false]]}, - -{"description":"<!DOCTYPE -", -"input":"<!DOCTYPE -", -"output":["ParseError", ["DOCTYPE", "-", null, null, false]]}, - -{"description":"<!DOCTYPE /", -"input":"<!DOCTYPE /", -"output":["ParseError", ["DOCTYPE", "/", null, null, false]]}, - -{"description":"<!DOCTYPE 0", -"input":"<!DOCTYPE 0", -"output":["ParseError", ["DOCTYPE", "0", null, null, false]]}, - -{"description":"<!DOCTYPE 1", -"input":"<!DOCTYPE 1", -"output":["ParseError", ["DOCTYPE", "1", null, null, false]]}, - -{"description":"<!DOCTYPE 9", -"input":"<!DOCTYPE 9", -"output":["ParseError", ["DOCTYPE", "9", null, null, false]]}, - -{"description":"<!DOCTYPE <", -"input":"<!DOCTYPE <", -"output":["ParseError", ["DOCTYPE", "<", null, null, false]]}, - -{"description":"<!DOCTYPE =", -"input":"<!DOCTYPE =", -"output":["ParseError", ["DOCTYPE", "=", null, null, false]]}, - -{"description":"<!DOCTYPE >", -"input":"<!DOCTYPE >", -"output":["ParseError", ["DOCTYPE", null, null, null, false]]}, - -{"description":"<!DOCTYPE ?", -"input":"<!DOCTYPE ?", -"output":["ParseError", ["DOCTYPE", "?", null, null, false]]}, - -{"description":"<!DOCTYPE @", -"input":"<!DOCTYPE @", -"output":["ParseError", ["DOCTYPE", "@", null, null, false]]}, - -{"description":"<!DOCTYPE A", -"input":"<!DOCTYPE A", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE B", -"input":"<!DOCTYPE B", -"output":["ParseError", ["DOCTYPE", "b", null, null, false]]}, - -{"description":"<!DOCTYPE Y", -"input":"<!DOCTYPE Y", -"output":["ParseError", ["DOCTYPE", "y", null, null, false]]}, - -{"description":"<!DOCTYPE Z", -"input":"<!DOCTYPE Z", -"output":["ParseError", ["DOCTYPE", "z", null, null, false]]}, - -{"description":"<!DOCTYPE [", -"input":"<!DOCTYPE [", -"output":["ParseError", ["DOCTYPE", "[", null, null, false]]}, - -{"description":"<!DOCTYPE `", -"input":"<!DOCTYPE `", -"output":["ParseError", ["DOCTYPE", "`", null, null, false]]}, - -{"description":"<!DOCTYPE a", -"input":"<!DOCTYPE a", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a\\u0000", -"input":"<!DOCTYPE a\u0000", -"output":["ParseError", "ParseError", ["DOCTYPE", "a\uFFFD", null, null, false]]}, - -{"description":"<!DOCTYPE a\\u0008", -"input":"<!DOCTYPE a\u0008", -"output":["ParseError", "ParseError", ["DOCTYPE", "a\u0008", null, null, false]]}, - -{"description":"<!DOCTYPE a\\u0009", -"input":"<!DOCTYPE a\u0009", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a\\u000A", -"input":"<!DOCTYPE a\u000A", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a\\u000B", -"input":"<!DOCTYPE a\u000B", -"output":["ParseError", "ParseError", ["DOCTYPE", "a\u000B", null, null, false]]}, - -{"description":"<!DOCTYPE a\\u000C", -"input":"<!DOCTYPE a\u000C", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a\\u000D", -"input":"<!DOCTYPE a\u000D", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a\\u001F", -"input":"<!DOCTYPE a\u001F", -"output":["ParseError", "ParseError", ["DOCTYPE", "a\u001F", null, null, false]]}, - -{"description":"<!DOCTYPE a ", -"input":"<!DOCTYPE a ", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a \\u0000", -"input":"<!DOCTYPE a \u0000", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a \\u0008", -"input":"<!DOCTYPE a \u0008", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a \\u0009", -"input":"<!DOCTYPE a \u0009", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a \\u000A", -"input":"<!DOCTYPE a \u000A", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a \\u000B", -"input":"<!DOCTYPE a \u000B", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a \\u000C", -"input":"<!DOCTYPE a \u000C", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a \\u000D", -"input":"<!DOCTYPE a \u000D", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a \\u001F", -"input":"<!DOCTYPE a \u001F", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a ", -"input":"<!DOCTYPE a ", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a !", -"input":"<!DOCTYPE a !", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a \"", -"input":"<!DOCTYPE a \"", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a &", -"input":"<!DOCTYPE a &", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a '", -"input":"<!DOCTYPE a '", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a -", -"input":"<!DOCTYPE a -", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a /", -"input":"<!DOCTYPE a /", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a 0", -"input":"<!DOCTYPE a 0", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a 1", -"input":"<!DOCTYPE a 1", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a 9", -"input":"<!DOCTYPE a 9", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a <", -"input":"<!DOCTYPE a <", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a =", -"input":"<!DOCTYPE a =", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a >", -"input":"<!DOCTYPE a >", -"output":[["DOCTYPE", "a", null, null, true]]}, - -{"description":"<!DOCTYPE a ?", -"input":"<!DOCTYPE a ?", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a @", -"input":"<!DOCTYPE a @", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a A", -"input":"<!DOCTYPE a A", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a B", -"input":"<!DOCTYPE a B", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC", -"input":"<!DOCTYPE a PUBLIC", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\\u0000", -"input":"<!DOCTYPE a PUBLIC\u0000", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\\u0008", -"input":"<!DOCTYPE a PUBLIC\u0008", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\\u0009", -"input":"<!DOCTYPE a PUBLIC\u0009", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\\u000A", -"input":"<!DOCTYPE a PUBLIC\u000A", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\\u000B", -"input":"<!DOCTYPE a PUBLIC\u000B", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\\u000C", -"input":"<!DOCTYPE a PUBLIC\u000C", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\\u000D", -"input":"<!DOCTYPE a PUBLIC\u000D", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\\u001F", -"input":"<!DOCTYPE a PUBLIC\u001F", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC ", -"input":"<!DOCTYPE a PUBLIC ", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC!", -"input":"<!DOCTYPE a PUBLIC!", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\"", -"input":"<!DOCTYPE a PUBLIC\"", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\"\\u0000", -"input":"<!DOCTYPE a PUBLIC\"\u0000", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\uFFFD", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\"\\u0009", -"input":"<!DOCTYPE a PUBLIC\"\u0009", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\u0009", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\"\\u000A", -"input":"<!DOCTYPE a PUBLIC\"\u000A", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\u000A", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\"\\u000B", -"input":"<!DOCTYPE a PUBLIC\"\u000B", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\u000B", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\"\\u000C", -"input":"<!DOCTYPE a PUBLIC\"\u000C", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\u000C", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\" ", -"input":"<!DOCTYPE a PUBLIC\" ", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", " ", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\"!", -"input":"<!DOCTYPE a PUBLIC\"!", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "!", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\"\"", -"input":"<!DOCTYPE a PUBLIC\"\"", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\"#", -"input":"<!DOCTYPE a PUBLIC\"#", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "#", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\"&", -"input":"<!DOCTYPE a PUBLIC\"&", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "&", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\"'", -"input":"<!DOCTYPE a PUBLIC\"'", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "'", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\"-", -"input":"<!DOCTYPE a PUBLIC\"-", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "-", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\"/", -"input":"<!DOCTYPE a PUBLIC\"/", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "/", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\"0", -"input":"<!DOCTYPE a PUBLIC\"0", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "0", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\"1", -"input":"<!DOCTYPE a PUBLIC\"1", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "1", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\"9", -"input":"<!DOCTYPE a PUBLIC\"9", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "9", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\"<", -"input":"<!DOCTYPE a PUBLIC\"<", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "<", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\"=", -"input":"<!DOCTYPE a PUBLIC\"=", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "=", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\">", -"input":"<!DOCTYPE a PUBLIC\">", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\"?", -"input":"<!DOCTYPE a PUBLIC\"?", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "?", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\"@", -"input":"<!DOCTYPE a PUBLIC\"@", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "@", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\"A", -"input":"<!DOCTYPE a PUBLIC\"A", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "A", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\"B", -"input":"<!DOCTYPE a PUBLIC\"B", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "B", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\"Y", -"input":"<!DOCTYPE a PUBLIC\"Y", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "Y", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\"Z", -"input":"<!DOCTYPE a PUBLIC\"Z", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "Z", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\"`", -"input":"<!DOCTYPE a PUBLIC\"`", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "`", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\"a", -"input":"<!DOCTYPE a PUBLIC\"a", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "a", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\"b", -"input":"<!DOCTYPE a PUBLIC\"b", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "b", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\"y", -"input":"<!DOCTYPE a PUBLIC\"y", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "y", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\"z", -"input":"<!DOCTYPE a PUBLIC\"z", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "z", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\"{", -"input":"<!DOCTYPE a PUBLIC\"{", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "{", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\"\\uDBC0\\uDC00", -"input":"<!DOCTYPE a PUBLIC\"\uDBC0\uDC00", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\uDBC0\uDC00", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC#", -"input":"<!DOCTYPE a PUBLIC#", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC&", -"input":"<!DOCTYPE a PUBLIC&", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC'", -"input":"<!DOCTYPE a PUBLIC'", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC'\\u0000", -"input":"<!DOCTYPE a PUBLIC'\u0000", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\uFFFD", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC'\\u0009", -"input":"<!DOCTYPE a PUBLIC'\u0009", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\u0009", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC'\\u000A", -"input":"<!DOCTYPE a PUBLIC'\u000A", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\u000A", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC'\\u000B", -"input":"<!DOCTYPE a PUBLIC'\u000B", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\u000B", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC'\\u000C", -"input":"<!DOCTYPE a PUBLIC'\u000C", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\u000C", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC' ", -"input":"<!DOCTYPE a PUBLIC' ", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", " ", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC'!", -"input":"<!DOCTYPE a PUBLIC'!", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "!", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC'\"", -"input":"<!DOCTYPE a PUBLIC'\"", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\"", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC'&", -"input":"<!DOCTYPE a PUBLIC'&", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "&", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC''", -"input":"<!DOCTYPE a PUBLIC''", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC''\\u0000", -"input":"<!DOCTYPE a PUBLIC''\u0000", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC''\\u0008", -"input":"<!DOCTYPE a PUBLIC''\u0008", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC''\\u0009", -"input":"<!DOCTYPE a PUBLIC''\u0009", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC''\\u000A", -"input":"<!DOCTYPE a PUBLIC''\u000A", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC''\\u000B", -"input":"<!DOCTYPE a PUBLIC''\u000B", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC''\\u000C", -"input":"<!DOCTYPE a PUBLIC''\u000C", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC''\\u000D", -"input":"<!DOCTYPE a PUBLIC''\u000D", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC''\\u001F", -"input":"<!DOCTYPE a PUBLIC''\u001F", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC'' ", -"input":"<!DOCTYPE a PUBLIC'' ", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC''!", -"input":"<!DOCTYPE a PUBLIC''!", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC''\"", -"input":"<!DOCTYPE a PUBLIC''\"", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", "", false]]}, - -{"description":"<!DOCTYPE a PUBLIC''#", -"input":"<!DOCTYPE a PUBLIC''#", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC''&", -"input":"<!DOCTYPE a PUBLIC''&", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC'''", -"input":"<!DOCTYPE a PUBLIC'''", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", "", false]]}, - -{"description":"<!DOCTYPE a PUBLIC''(", -"input":"<!DOCTYPE a PUBLIC''(", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC''-", -"input":"<!DOCTYPE a PUBLIC''-", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC''/", -"input":"<!DOCTYPE a PUBLIC''/", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC''0", -"input":"<!DOCTYPE a PUBLIC''0", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC''1", -"input":"<!DOCTYPE a PUBLIC''1", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC''9", -"input":"<!DOCTYPE a PUBLIC''9", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC''<", -"input":"<!DOCTYPE a PUBLIC''<", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC''=", -"input":"<!DOCTYPE a PUBLIC''=", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC''>", -"input":"<!DOCTYPE a PUBLIC''>", -"output":["ParseError", ["DOCTYPE", "a", "", null, true]]}, - -{"description":"<!DOCTYPE a PUBLIC''?", -"input":"<!DOCTYPE a PUBLIC''?", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC''@", -"input":"<!DOCTYPE a PUBLIC''@", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC''A", -"input":"<!DOCTYPE a PUBLIC''A", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC''B", -"input":"<!DOCTYPE a PUBLIC''B", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC''Y", -"input":"<!DOCTYPE a PUBLIC''Y", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC''Z", -"input":"<!DOCTYPE a PUBLIC''Z", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC''`", -"input":"<!DOCTYPE a PUBLIC''`", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC''a", -"input":"<!DOCTYPE a PUBLIC''a", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC''b", -"input":"<!DOCTYPE a PUBLIC''b", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC''y", -"input":"<!DOCTYPE a PUBLIC''y", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC''z", -"input":"<!DOCTYPE a PUBLIC''z", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC''{", -"input":"<!DOCTYPE a PUBLIC''{", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC''\\uDBC0\\uDC00", -"input":"<!DOCTYPE a PUBLIC''\uDBC0\uDC00", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC'(", -"input":"<!DOCTYPE a PUBLIC'(", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "(", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC'-", -"input":"<!DOCTYPE a PUBLIC'-", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "-", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC'/", -"input":"<!DOCTYPE a PUBLIC'/", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "/", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC'0", -"input":"<!DOCTYPE a PUBLIC'0", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "0", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC'1", -"input":"<!DOCTYPE a PUBLIC'1", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "1", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC'9", -"input":"<!DOCTYPE a PUBLIC'9", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "9", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC'<", -"input":"<!DOCTYPE a PUBLIC'<", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "<", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC'=", -"input":"<!DOCTYPE a PUBLIC'=", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "=", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC'>", -"input":"<!DOCTYPE a PUBLIC'>", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC'?", -"input":"<!DOCTYPE a PUBLIC'?", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "?", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC'@", -"input":"<!DOCTYPE a PUBLIC'@", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "@", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC'A", -"input":"<!DOCTYPE a PUBLIC'A", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "A", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC'B", -"input":"<!DOCTYPE a PUBLIC'B", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "B", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC'Y", -"input":"<!DOCTYPE a PUBLIC'Y", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "Y", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC'Z", -"input":"<!DOCTYPE a PUBLIC'Z", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "Z", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC'`", -"input":"<!DOCTYPE a PUBLIC'`", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "`", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC'a", -"input":"<!DOCTYPE a PUBLIC'a", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "a", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC'b", -"input":"<!DOCTYPE a PUBLIC'b", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "b", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC'y", -"input":"<!DOCTYPE a PUBLIC'y", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "y", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC'z", -"input":"<!DOCTYPE a PUBLIC'z", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "z", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC'{", -"input":"<!DOCTYPE a PUBLIC'{", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "{", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC'\\uDBC0\\uDC00", -"input":"<!DOCTYPE a PUBLIC'\uDBC0\uDC00", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\uDBC0\uDC00", null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC(", -"input":"<!DOCTYPE a PUBLIC(", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC-", -"input":"<!DOCTYPE a PUBLIC-", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC/", -"input":"<!DOCTYPE a PUBLIC/", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC0", -"input":"<!DOCTYPE a PUBLIC0", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC1", -"input":"<!DOCTYPE a PUBLIC1", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC9", -"input":"<!DOCTYPE a PUBLIC9", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC<", -"input":"<!DOCTYPE a PUBLIC<", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC=", -"input":"<!DOCTYPE a PUBLIC=", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC>", -"input":"<!DOCTYPE a PUBLIC>", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC?", -"input":"<!DOCTYPE a PUBLIC?", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC@", -"input":"<!DOCTYPE a PUBLIC@", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a PUBLICA", -"input":"<!DOCTYPE a PUBLICA", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a PUBLICB", -"input":"<!DOCTYPE a PUBLICB", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a PUBLICY", -"input":"<!DOCTYPE a PUBLICY", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a PUBLICZ", -"input":"<!DOCTYPE a PUBLICZ", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC`", -"input":"<!DOCTYPE a PUBLIC`", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a PUBLICa", -"input":"<!DOCTYPE a PUBLICa", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a PUBLICb", -"input":"<!DOCTYPE a PUBLICb", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a PUBLICy", -"input":"<!DOCTYPE a PUBLICy", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a PUBLICz", -"input":"<!DOCTYPE a PUBLICz", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC{", -"input":"<!DOCTYPE a PUBLIC{", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a PUBLIC\\uDBC0\\uDC00", -"input":"<!DOCTYPE a PUBLIC\uDBC0\uDC00", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a SYSTEM", -"input":"<!DOCTYPE a SYSTEM", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a SYSTEM\\u0000", -"input":"<!DOCTYPE a SYSTEM\u0000", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a SYSTEM\\u0008", -"input":"<!DOCTYPE a SYSTEM\u0008", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a SYSTEM\\u0009", -"input":"<!DOCTYPE a SYSTEM\u0009", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a SYSTEM\\u000A", -"input":"<!DOCTYPE a SYSTEM\u000A", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a SYSTEM\\u000B", -"input":"<!DOCTYPE a SYSTEM\u000B", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a SYSTEM\\u000C", -"input":"<!DOCTYPE a SYSTEM\u000C", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a SYSTEM\\u000D", -"input":"<!DOCTYPE a SYSTEM\u000D", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a SYSTEM\\u001F", -"input":"<!DOCTYPE a SYSTEM\u001F", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a SYSTEM ", -"input":"<!DOCTYPE a SYSTEM ", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a SYSTEM!", -"input":"<!DOCTYPE a SYSTEM!", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a SYSTEM\"", -"input":"<!DOCTYPE a SYSTEM\"", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, - -{"description":"<!DOCTYPE a SYSTEM\"\\u0000", -"input":"<!DOCTYPE a SYSTEM\"\u0000", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\uFFFD", false]]}, - -{"description":"<!DOCTYPE a SYSTEM\"\\u0009", -"input":"<!DOCTYPE a SYSTEM\"\u0009", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\u0009", false]]}, - -{"description":"<!DOCTYPE a SYSTEM\"\\u000A", -"input":"<!DOCTYPE a SYSTEM\"\u000A", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000A", false]]}, - -{"description":"<!DOCTYPE a SYSTEM\"\\u000B", -"input":"<!DOCTYPE a SYSTEM\"\u000B", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000B", false]]}, - -{"description":"<!DOCTYPE a SYSTEM\"\\u000C", -"input":"<!DOCTYPE a SYSTEM\"\u000C", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000C", false]]}, - -{"description":"<!DOCTYPE a SYSTEM\" ", -"input":"<!DOCTYPE a SYSTEM\" ", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, " ", false]]}, - -{"description":"<!DOCTYPE a SYSTEM\"!", -"input":"<!DOCTYPE a SYSTEM\"!", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "!", false]]}, - -{"description":"<!DOCTYPE a SYSTEM\"\"", -"input":"<!DOCTYPE a SYSTEM\"\"", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, - -{"description":"<!DOCTYPE a SYSTEM\"#", -"input":"<!DOCTYPE a SYSTEM\"#", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "#", false]]}, - -{"description":"<!DOCTYPE a SYSTEM\"&", -"input":"<!DOCTYPE a SYSTEM\"&", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "&", false]]}, - -{"description":"<!DOCTYPE a SYSTEM\"'", -"input":"<!DOCTYPE a SYSTEM\"'", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "'", false]]}, - -{"description":"<!DOCTYPE a SYSTEM\"-", -"input":"<!DOCTYPE a SYSTEM\"-", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "-", false]]}, - -{"description":"<!DOCTYPE a SYSTEM\"/", -"input":"<!DOCTYPE a SYSTEM\"/", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "/", false]]}, - -{"description":"<!DOCTYPE a SYSTEM\"0", -"input":"<!DOCTYPE a SYSTEM\"0", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "0", false]]}, - -{"description":"<!DOCTYPE a SYSTEM\"1", -"input":"<!DOCTYPE a SYSTEM\"1", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "1", false]]}, - -{"description":"<!DOCTYPE a SYSTEM\"9", -"input":"<!DOCTYPE a SYSTEM\"9", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "9", false]]}, - -{"description":"<!DOCTYPE a SYSTEM\"<", -"input":"<!DOCTYPE a SYSTEM\"<", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "<", false]]}, - -{"description":"<!DOCTYPE a SYSTEM\"=", -"input":"<!DOCTYPE a SYSTEM\"=", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "=", false]]}, - -{"description":"<!DOCTYPE a SYSTEM\">", -"input":"<!DOCTYPE a SYSTEM\">", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, - -{"description":"<!DOCTYPE a SYSTEM\"?", -"input":"<!DOCTYPE a SYSTEM\"?", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "?", false]]}, - -{"description":"<!DOCTYPE a SYSTEM\"@", -"input":"<!DOCTYPE a SYSTEM\"@", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "@", false]]}, - -{"description":"<!DOCTYPE a SYSTEM\"A", -"input":"<!DOCTYPE a SYSTEM\"A", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "A", false]]}, - -{"description":"<!DOCTYPE a SYSTEM\"B", -"input":"<!DOCTYPE a SYSTEM\"B", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "B", false]]}, - -{"description":"<!DOCTYPE a SYSTEM\"Y", -"input":"<!DOCTYPE a SYSTEM\"Y", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "Y", false]]}, - -{"description":"<!DOCTYPE a SYSTEM\"Z", -"input":"<!DOCTYPE a SYSTEM\"Z", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "Z", false]]}, - -{"description":"<!DOCTYPE a SYSTEM\"`", -"input":"<!DOCTYPE a SYSTEM\"`", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "`", false]]}, - -{"description":"<!DOCTYPE a SYSTEM\"a", -"input":"<!DOCTYPE a SYSTEM\"a", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "a", false]]}, - -{"description":"<!DOCTYPE a SYSTEM\"b", -"input":"<!DOCTYPE a SYSTEM\"b", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "b", false]]}, - -{"description":"<!DOCTYPE a SYSTEM\"y", -"input":"<!DOCTYPE a SYSTEM\"y", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "y", false]]}, - -{"description":"<!DOCTYPE a SYSTEM\"z", -"input":"<!DOCTYPE a SYSTEM\"z", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "z", false]]}, - -{"description":"<!DOCTYPE a SYSTEM\"{", -"input":"<!DOCTYPE a SYSTEM\"{", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "{", false]]}, - -{"description":"<!DOCTYPE a SYSTEM\"\\uDBC0\\uDC00", -"input":"<!DOCTYPE a SYSTEM\"\uDBC0\uDC00", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\uDBC0\uDC00", false]]}, - -{"description":"<!DOCTYPE a SYSTEM#", -"input":"<!DOCTYPE a SYSTEM#", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a SYSTEM&", -"input":"<!DOCTYPE a SYSTEM&", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a SYSTEM'", -"input":"<!DOCTYPE a SYSTEM'", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, - -{"description":"<!DOCTYPE a SYSTEM'\\u0000", -"input":"<!DOCTYPE a SYSTEM'\u0000", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\uFFFD", false]]}, - -{"description":"<!DOCTYPE a SYSTEM'\\u0009", -"input":"<!DOCTYPE a SYSTEM'\u0009", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\u0009", false]]}, - -{"description":"<!DOCTYPE a SYSTEM'\\u000A", -"input":"<!DOCTYPE a SYSTEM'\u000A", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000A", false]]}, - -{"description":"<!DOCTYPE a SYSTEM'\\u000B", -"input":"<!DOCTYPE a SYSTEM'\u000B", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000B", false]]}, - -{"description":"<!DOCTYPE a SYSTEM'\\u000C", -"input":"<!DOCTYPE a SYSTEM'\u000C", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000C", false]]}, - -{"description":"<!DOCTYPE a SYSTEM' ", -"input":"<!DOCTYPE a SYSTEM' ", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, " ", false]]}, - -{"description":"<!DOCTYPE a SYSTEM'!", -"input":"<!DOCTYPE a SYSTEM'!", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "!", false]]}, - -{"description":"<!DOCTYPE a SYSTEM'\"", -"input":"<!DOCTYPE a SYSTEM'\"", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\"", false]]}, - -{"description":"<!DOCTYPE a SYSTEM'&", -"input":"<!DOCTYPE a SYSTEM'&", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "&", false]]}, - -{"description":"<!DOCTYPE a SYSTEM''", -"input":"<!DOCTYPE a SYSTEM''", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, - -{"description":"<!DOCTYPE a SYSTEM''\\u0000", -"input":"<!DOCTYPE a SYSTEM''\u0000", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPE a SYSTEM''\\u0008", -"input":"<!DOCTYPE a SYSTEM''\u0008", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPE a SYSTEM''\\u0009", -"input":"<!DOCTYPE a SYSTEM''\u0009", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, - -{"description":"<!DOCTYPE a SYSTEM''\\u000A", -"input":"<!DOCTYPE a SYSTEM''\u000A", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, - -{"description":"<!DOCTYPE a SYSTEM''\\u000B", -"input":"<!DOCTYPE a SYSTEM''\u000B", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPE a SYSTEM''\\u000C", -"input":"<!DOCTYPE a SYSTEM''\u000C", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, - -{"description":"<!DOCTYPE a SYSTEM''\\u000D", -"input":"<!DOCTYPE a SYSTEM''\u000D", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, - -{"description":"<!DOCTYPE a SYSTEM''\\u001F", -"input":"<!DOCTYPE a SYSTEM''\u001F", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPE a SYSTEM'' ", -"input":"<!DOCTYPE a SYSTEM'' ", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, - -{"description":"<!DOCTYPE a SYSTEM''!", -"input":"<!DOCTYPE a SYSTEM''!", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPE a SYSTEM''\"", -"input":"<!DOCTYPE a SYSTEM''\"", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPE a SYSTEM''&", -"input":"<!DOCTYPE a SYSTEM''&", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPE a SYSTEM'''", -"input":"<!DOCTYPE a SYSTEM'''", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPE a SYSTEM''-", -"input":"<!DOCTYPE a SYSTEM''-", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPE a SYSTEM''/", -"input":"<!DOCTYPE a SYSTEM''/", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPE a SYSTEM''0", -"input":"<!DOCTYPE a SYSTEM''0", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPE a SYSTEM''1", -"input":"<!DOCTYPE a SYSTEM''1", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPE a SYSTEM''9", -"input":"<!DOCTYPE a SYSTEM''9", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPE a SYSTEM''<", -"input":"<!DOCTYPE a SYSTEM''<", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPE a SYSTEM''=", -"input":"<!DOCTYPE a SYSTEM''=", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPE a SYSTEM''>", -"input":"<!DOCTYPE a SYSTEM''>", -"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPE a SYSTEM''?", -"input":"<!DOCTYPE a SYSTEM''?", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPE a SYSTEM''@", -"input":"<!DOCTYPE a SYSTEM''@", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPE a SYSTEM''A", -"input":"<!DOCTYPE a SYSTEM''A", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPE a SYSTEM''B", -"input":"<!DOCTYPE a SYSTEM''B", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPE a SYSTEM''Y", -"input":"<!DOCTYPE a SYSTEM''Y", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPE a SYSTEM''Z", -"input":"<!DOCTYPE a SYSTEM''Z", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPE a SYSTEM''`", -"input":"<!DOCTYPE a SYSTEM''`", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPE a SYSTEM''a", -"input":"<!DOCTYPE a SYSTEM''a", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPE a SYSTEM''b", -"input":"<!DOCTYPE a SYSTEM''b", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPE a SYSTEM''y", -"input":"<!DOCTYPE a SYSTEM''y", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPE a SYSTEM''z", -"input":"<!DOCTYPE a SYSTEM''z", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPE a SYSTEM''{", -"input":"<!DOCTYPE a SYSTEM''{", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPE a SYSTEM''\\uDBC0\\uDC00", -"input":"<!DOCTYPE a SYSTEM''\uDBC0\uDC00", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPE a SYSTEM'(", -"input":"<!DOCTYPE a SYSTEM'(", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "(", false]]}, - -{"description":"<!DOCTYPE a SYSTEM'-", -"input":"<!DOCTYPE a SYSTEM'-", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "-", false]]}, - -{"description":"<!DOCTYPE a SYSTEM'/", -"input":"<!DOCTYPE a SYSTEM'/", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "/", false]]}, - -{"description":"<!DOCTYPE a SYSTEM'0", -"input":"<!DOCTYPE a SYSTEM'0", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "0", false]]}, - -{"description":"<!DOCTYPE a SYSTEM'1", -"input":"<!DOCTYPE a SYSTEM'1", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "1", false]]}, - -{"description":"<!DOCTYPE a SYSTEM'9", -"input":"<!DOCTYPE a SYSTEM'9", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "9", false]]}, - -{"description":"<!DOCTYPE a SYSTEM'<", -"input":"<!DOCTYPE a SYSTEM'<", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "<", false]]}, - -{"description":"<!DOCTYPE a SYSTEM'=", -"input":"<!DOCTYPE a SYSTEM'=", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "=", false]]}, - -{"description":"<!DOCTYPE a SYSTEM'>", -"input":"<!DOCTYPE a SYSTEM'>", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, - -{"description":"<!DOCTYPE a SYSTEM'?", -"input":"<!DOCTYPE a SYSTEM'?", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "?", false]]}, - -{"description":"<!DOCTYPE a SYSTEM'@", -"input":"<!DOCTYPE a SYSTEM'@", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "@", false]]}, - -{"description":"<!DOCTYPE a SYSTEM'A", -"input":"<!DOCTYPE a SYSTEM'A", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "A", false]]}, - -{"description":"<!DOCTYPE a SYSTEM'B", -"input":"<!DOCTYPE a SYSTEM'B", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "B", false]]}, - -{"description":"<!DOCTYPE a SYSTEM'Y", -"input":"<!DOCTYPE a SYSTEM'Y", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "Y", false]]}, - -{"description":"<!DOCTYPE a SYSTEM'Z", -"input":"<!DOCTYPE a SYSTEM'Z", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "Z", false]]}, - -{"description":"<!DOCTYPE a SYSTEM'`", -"input":"<!DOCTYPE a SYSTEM'`", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "`", false]]}, - -{"description":"<!DOCTYPE a SYSTEM'a", -"input":"<!DOCTYPE a SYSTEM'a", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "a", false]]}, - -{"description":"<!DOCTYPE a SYSTEM'b", -"input":"<!DOCTYPE a SYSTEM'b", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "b", false]]}, - -{"description":"<!DOCTYPE a SYSTEM'y", -"input":"<!DOCTYPE a SYSTEM'y", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "y", false]]}, - -{"description":"<!DOCTYPE a SYSTEM'z", -"input":"<!DOCTYPE a SYSTEM'z", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "z", false]]}, - -{"description":"<!DOCTYPE a SYSTEM'{", -"input":"<!DOCTYPE a SYSTEM'{", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "{", false]]}, - -{"description":"<!DOCTYPE a SYSTEM'\\uDBC0\\uDC00", -"input":"<!DOCTYPE a SYSTEM'\uDBC0\uDC00", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\uDBC0\uDC00", false]]}, - -{"description":"<!DOCTYPE a SYSTEM(", -"input":"<!DOCTYPE a SYSTEM(", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a SYSTEM-", -"input":"<!DOCTYPE a SYSTEM-", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a SYSTEM/", -"input":"<!DOCTYPE a SYSTEM/", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a SYSTEM0", -"input":"<!DOCTYPE a SYSTEM0", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a SYSTEM1", -"input":"<!DOCTYPE a SYSTEM1", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a SYSTEM9", -"input":"<!DOCTYPE a SYSTEM9", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a SYSTEM<", -"input":"<!DOCTYPE a SYSTEM<", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a SYSTEM=", -"input":"<!DOCTYPE a SYSTEM=", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a SYSTEM>", -"input":"<!DOCTYPE a SYSTEM>", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a SYSTEM?", -"input":"<!DOCTYPE a SYSTEM?", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a SYSTEM@", -"input":"<!DOCTYPE a SYSTEM@", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a SYSTEMA", -"input":"<!DOCTYPE a SYSTEMA", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a SYSTEMB", -"input":"<!DOCTYPE a SYSTEMB", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a SYSTEMY", -"input":"<!DOCTYPE a SYSTEMY", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a SYSTEMZ", -"input":"<!DOCTYPE a SYSTEMZ", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a SYSTEM`", -"input":"<!DOCTYPE a SYSTEM`", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a SYSTEMa", -"input":"<!DOCTYPE a SYSTEMa", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a SYSTEMb", -"input":"<!DOCTYPE a SYSTEMb", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a SYSTEMy", -"input":"<!DOCTYPE a SYSTEMy", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a SYSTEMz", -"input":"<!DOCTYPE a SYSTEMz", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a SYSTEM{", -"input":"<!DOCTYPE a SYSTEM{", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a SYSTEM\\uDBC0\\uDC00", -"input":"<!DOCTYPE a SYSTEM\uDBC0\uDC00", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a Y", -"input":"<!DOCTYPE a Y", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a Z", -"input":"<!DOCTYPE a Z", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a `", -"input":"<!DOCTYPE a `", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a a", -"input":"<!DOCTYPE a a", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a a\\u0000", -"input":"<!DOCTYPE a a\u0000", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a a\\u0009", -"input":"<!DOCTYPE a a\u0009", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a a\\u000A", -"input":"<!DOCTYPE a a\u000A", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a a\\u000B", -"input":"<!DOCTYPE a a\u000B", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a a\\u000C", -"input":"<!DOCTYPE a a\u000C", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a a ", -"input":"<!DOCTYPE a a ", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a a!", -"input":"<!DOCTYPE a a!", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a a\"", -"input":"<!DOCTYPE a a\"", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a a&", -"input":"<!DOCTYPE a a&", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a a'", -"input":"<!DOCTYPE a a'", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a a-", -"input":"<!DOCTYPE a a-", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a a/", -"input":"<!DOCTYPE a a/", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a a0", -"input":"<!DOCTYPE a a0", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a a1", -"input":"<!DOCTYPE a a1", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a a9", -"input":"<!DOCTYPE a a9", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a a<", -"input":"<!DOCTYPE a a<", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a a=", -"input":"<!DOCTYPE a a=", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a a>", -"input":"<!DOCTYPE a a>", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a a?", -"input":"<!DOCTYPE a a?", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a a@", -"input":"<!DOCTYPE a a@", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a aA", -"input":"<!DOCTYPE a aA", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a aB", -"input":"<!DOCTYPE a aB", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a aY", -"input":"<!DOCTYPE a aY", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a aZ", -"input":"<!DOCTYPE a aZ", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a a`", -"input":"<!DOCTYPE a a`", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a aa", -"input":"<!DOCTYPE a aa", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a ab", -"input":"<!DOCTYPE a ab", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a ay", -"input":"<!DOCTYPE a ay", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a az", -"input":"<!DOCTYPE a az", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a a{", -"input":"<!DOCTYPE a a{", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a a\\uDBC0\\uDC00", -"input":"<!DOCTYPE a a\uDBC0\uDC00", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a b", -"input":"<!DOCTYPE a b", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a y", -"input":"<!DOCTYPE a y", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a z", -"input":"<!DOCTYPE a z", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a {", -"input":"<!DOCTYPE a {", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a \\uDBC0\\uDC00", -"input":"<!DOCTYPE a \uDBC0\uDC00", -"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPE a!", -"input":"<!DOCTYPE a!", -"output":["ParseError", ["DOCTYPE", "a!", null, null, false]]}, - -{"description":"<!DOCTYPE a\"", -"input":"<!DOCTYPE a\"", -"output":["ParseError", ["DOCTYPE", "a\"", null, null, false]]}, - -{"description":"<!DOCTYPE a&", -"input":"<!DOCTYPE a&", -"output":["ParseError", ["DOCTYPE", "a&", null, null, false]]}, - -{"description":"<!DOCTYPE a'", -"input":"<!DOCTYPE a'", -"output":["ParseError", ["DOCTYPE", "a'", null, null, false]]}, - -{"description":"<!DOCTYPE a-", -"input":"<!DOCTYPE a-", -"output":["ParseError", ["DOCTYPE", "a-", null, null, false]]}, - -{"description":"<!DOCTYPE a/", -"input":"<!DOCTYPE a/", -"output":["ParseError", ["DOCTYPE", "a/", null, null, false]]}, - -{"description":"<!DOCTYPE a0", -"input":"<!DOCTYPE a0", -"output":["ParseError", ["DOCTYPE", "a0", null, null, false]]}, - -{"description":"<!DOCTYPE a1", -"input":"<!DOCTYPE a1", -"output":["ParseError", ["DOCTYPE", "a1", null, null, false]]}, - -{"description":"<!DOCTYPE a9", -"input":"<!DOCTYPE a9", -"output":["ParseError", ["DOCTYPE", "a9", null, null, false]]}, - -{"description":"<!DOCTYPE a<", -"input":"<!DOCTYPE a<", -"output":["ParseError", ["DOCTYPE", "a<", null, null, false]]}, - -{"description":"<!DOCTYPE a=", -"input":"<!DOCTYPE a=", -"output":["ParseError", ["DOCTYPE", "a=", null, null, false]]}, - -{"description":"<!DOCTYPE a>", -"input":"<!DOCTYPE a>", -"output":[["DOCTYPE", "a", null, null, true]]}, - -{"description":"<!DOCTYPE a?", -"input":"<!DOCTYPE a?", -"output":["ParseError", ["DOCTYPE", "a?", null, null, false]]}, - -{"description":"<!DOCTYPE a@", -"input":"<!DOCTYPE a@", -"output":["ParseError", ["DOCTYPE", "a@", null, null, false]]}, - -{"description":"<!DOCTYPE aA", -"input":"<!DOCTYPE aA", -"output":["ParseError", ["DOCTYPE", "aa", null, null, false]]}, - -{"description":"<!DOCTYPE aB", -"input":"<!DOCTYPE aB", -"output":["ParseError", ["DOCTYPE", "ab", null, null, false]]}, - -{"description":"<!DOCTYPE aY", -"input":"<!DOCTYPE aY", -"output":["ParseError", ["DOCTYPE", "ay", null, null, false]]}, - -{"description":"<!DOCTYPE aZ", -"input":"<!DOCTYPE aZ", -"output":["ParseError", ["DOCTYPE", "az", null, null, false]]}, - -{"description":"<!DOCTYPE a[", -"input":"<!DOCTYPE a[", -"output":["ParseError", ["DOCTYPE", "a[", null, null, false]]}, - -{"description":"<!DOCTYPE a`", -"input":"<!DOCTYPE a`", -"output":["ParseError", ["DOCTYPE", "a`", null, null, false]]}, - -{"description":"<!DOCTYPE aa", -"input":"<!DOCTYPE aa", -"output":["ParseError", ["DOCTYPE", "aa", null, null, false]]}, - -{"description":"<!DOCTYPE ab", -"input":"<!DOCTYPE ab", -"output":["ParseError", ["DOCTYPE", "ab", null, null, false]]}, - -{"description":"<!DOCTYPE ay", -"input":"<!DOCTYPE ay", -"output":["ParseError", ["DOCTYPE", "ay", null, null, false]]}, - -{"description":"<!DOCTYPE az", -"input":"<!DOCTYPE az", -"output":["ParseError", ["DOCTYPE", "az", null, null, false]]}, - -{"description":"<!DOCTYPE a{", -"input":"<!DOCTYPE a{", -"output":["ParseError", ["DOCTYPE", "a{", null, null, false]]}, - -{"description":"<!DOCTYPE a\\uDBC0\\uDC00", -"input":"<!DOCTYPE a\uDBC0\uDC00", -"output":["ParseError", ["DOCTYPE", "a\uDBC0\uDC00", null, null, false]]}, - -{"description":"<!DOCTYPE b", -"input":"<!DOCTYPE b", -"output":["ParseError", ["DOCTYPE", "b", null, null, false]]}, - -{"description":"<!DOCTYPE y", -"input":"<!DOCTYPE y", -"output":["ParseError", ["DOCTYPE", "y", null, null, false]]}, - -{"description":"<!DOCTYPE z", -"input":"<!DOCTYPE z", -"output":["ParseError", ["DOCTYPE", "z", null, null, false]]}, - -{"description":"<!DOCTYPE {", -"input":"<!DOCTYPE {", -"output":["ParseError", ["DOCTYPE", "{", null, null, false]]}, - -{"description":"<!DOCTYPE \\uDBC0\\uDC00", -"input":"<!DOCTYPE \uDBC0\uDC00", -"output":["ParseError", ["DOCTYPE", "\uDBC0\uDC00", null, null, false]]}, - -{"description":"<!DOCTYPE!", -"input":"<!DOCTYPE!", -"output":["ParseError", "ParseError", ["DOCTYPE", "!", null, null, false]]}, - -{"description":"<!DOCTYPE\"", -"input":"<!DOCTYPE\"", -"output":["ParseError", "ParseError", ["DOCTYPE", "\"", null, null, false]]}, - -{"description":"<!DOCTYPE&", -"input":"<!DOCTYPE&", -"output":["ParseError", "ParseError", ["DOCTYPE", "&", null, null, false]]}, - -{"description":"<!DOCTYPE'", -"input":"<!DOCTYPE'", -"output":["ParseError", "ParseError", ["DOCTYPE", "'", null, null, false]]}, - -{"description":"<!DOCTYPE-", -"input":"<!DOCTYPE-", -"output":["ParseError", "ParseError", ["DOCTYPE", "-", null, null, false]]}, - -{"description":"<!DOCTYPE/", -"input":"<!DOCTYPE/", -"output":["ParseError", "ParseError", ["DOCTYPE", "/", null, null, false]]}, - -{"description":"<!DOCTYPE0", -"input":"<!DOCTYPE0", -"output":["ParseError", "ParseError", ["DOCTYPE", "0", null, null, false]]}, - -{"description":"<!DOCTYPE1", -"input":"<!DOCTYPE1", -"output":["ParseError", "ParseError", ["DOCTYPE", "1", null, null, false]]}, - -{"description":"<!DOCTYPE9", -"input":"<!DOCTYPE9", -"output":["ParseError", "ParseError", ["DOCTYPE", "9", null, null, false]]}, - -{"description":"<!DOCTYPE<", -"input":"<!DOCTYPE<", -"output":["ParseError", "ParseError", ["DOCTYPE", "<", null, null, false]]}, - -{"description":"<!DOCTYPE=", -"input":"<!DOCTYPE=", -"output":["ParseError", "ParseError", ["DOCTYPE", "=", null, null, false]]}, - -{"description":"<!DOCTYPE>", -"input":"<!DOCTYPE>", -"output":["ParseError", "ParseError", ["DOCTYPE", null, null, null, false]]}, - -{"description":"<!DOCTYPE?", -"input":"<!DOCTYPE?", -"output":["ParseError", "ParseError", ["DOCTYPE", "?", null, null, false]]}, - -{"description":"<!DOCTYPE@", -"input":"<!DOCTYPE@", -"output":["ParseError", "ParseError", ["DOCTYPE", "@", null, null, false]]}, - -{"description":"<!DOCTYPEA", -"input":"<!DOCTYPEA", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEB", -"input":"<!DOCTYPEB", -"output":["ParseError", "ParseError", ["DOCTYPE", "b", null, null, false]]}, - -{"description":"<!DOCTYPEY", -"input":"<!DOCTYPEY", -"output":["ParseError", "ParseError", ["DOCTYPE", "y", null, null, false]]}, - -{"description":"<!DOCTYPEZ", -"input":"<!DOCTYPEZ", -"output":["ParseError", "ParseError", ["DOCTYPE", "z", null, null, false]]}, - -{"description":"<!DOCTYPE`", -"input":"<!DOCTYPE`", -"output":["ParseError", "ParseError", ["DOCTYPE", "`", null, null, false]]}, - -{"description":"<!DOCTYPEa", -"input":"<!DOCTYPEa", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa\\u0000", -"input":"<!DOCTYPEa\u0000", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a\uFFFD", null, null, false]]}, - -{"description":"<!DOCTYPEa\\u0008", -"input":"<!DOCTYPEa\u0008", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a\u0008", null, null, false]]}, - -{"description":"<!DOCTYPEa\\u0009", -"input":"<!DOCTYPEa\u0009", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa\\u000A", -"input":"<!DOCTYPEa\u000A", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa\\u000B", -"input":"<!DOCTYPEa\u000B", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a\u000B", null, null, false]]}, - -{"description":"<!DOCTYPEa\\u000C", -"input":"<!DOCTYPEa\u000C", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa\\u000D", -"input":"<!DOCTYPEa\u000D", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa\\u001F", -"input":"<!DOCTYPEa\u001F", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a\u001F", null, null, false]]}, - -{"description":"<!DOCTYPEa ", -"input":"<!DOCTYPEa ", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa \\u0000", -"input":"<!DOCTYPEa \u0000", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa \\u0008", -"input":"<!DOCTYPEa \u0008", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa \\u0009", -"input":"<!DOCTYPEa \u0009", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa \\u000A", -"input":"<!DOCTYPEa \u000A", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa \\u000B", -"input":"<!DOCTYPEa \u000B", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa \\u000C", -"input":"<!DOCTYPEa \u000C", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa \\u000D", -"input":"<!DOCTYPEa \u000D", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa \\u001F", -"input":"<!DOCTYPEa \u001F", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa ", -"input":"<!DOCTYPEa ", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa !", -"input":"<!DOCTYPEa !", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa \"", -"input":"<!DOCTYPEa \"", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa &", -"input":"<!DOCTYPEa &", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa '", -"input":"<!DOCTYPEa '", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa -", -"input":"<!DOCTYPEa -", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa /", -"input":"<!DOCTYPEa /", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa 0", -"input":"<!DOCTYPEa 0", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa 1", -"input":"<!DOCTYPEa 1", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa 9", -"input":"<!DOCTYPEa 9", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa <", -"input":"<!DOCTYPEa <", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa =", -"input":"<!DOCTYPEa =", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa >", -"input":"<!DOCTYPEa >", -"output":["ParseError", ["DOCTYPE", "a", null, null, true]]}, - -{"description":"<!DOCTYPEa ?", -"input":"<!DOCTYPEa ?", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa @", -"input":"<!DOCTYPEa @", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa A", -"input":"<!DOCTYPEa A", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa B", -"input":"<!DOCTYPEa B", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC", -"input":"<!DOCTYPEa PUBLIC", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\\u0000", -"input":"<!DOCTYPEa PUBLIC\u0000", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\\u0008", -"input":"<!DOCTYPEa PUBLIC\u0008", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\\u0009", -"input":"<!DOCTYPEa PUBLIC\u0009", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\\u000A", -"input":"<!DOCTYPEa PUBLIC\u000A", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\\u000B", -"input":"<!DOCTYPEa PUBLIC\u000B", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\\u000C", -"input":"<!DOCTYPEa PUBLIC\u000C", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\\u000D", -"input":"<!DOCTYPEa PUBLIC\u000D", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\\u001F", -"input":"<!DOCTYPEa PUBLIC\u001F", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC ", -"input":"<!DOCTYPEa PUBLIC ", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC!", -"input":"<!DOCTYPEa PUBLIC!", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\"", -"input":"<!DOCTYPEa PUBLIC\"", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\"\\u0000", -"input":"<!DOCTYPEa PUBLIC\"\u0000", -"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\uFFFD", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\"\\u0009", -"input":"<!DOCTYPEa PUBLIC\"\u0009", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\u0009", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\"\\u000A", -"input":"<!DOCTYPEa PUBLIC\"\u000A", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\u000A", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\"\\u000B", -"input":"<!DOCTYPEa PUBLIC\"\u000B", -"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\u000B", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\"\\u000C", -"input":"<!DOCTYPEa PUBLIC\"\u000C", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\u000C", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\" ", -"input":"<!DOCTYPEa PUBLIC\" ", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", " ", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\"!", -"input":"<!DOCTYPEa PUBLIC\"!", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "!", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\"\"", -"input":"<!DOCTYPEa PUBLIC\"\"", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\"#", -"input":"<!DOCTYPEa PUBLIC\"#", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "#", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\"&", -"input":"<!DOCTYPEa PUBLIC\"&", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "&", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\"'", -"input":"<!DOCTYPEa PUBLIC\"'", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "'", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\"-", -"input":"<!DOCTYPEa PUBLIC\"-", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "-", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\"/", -"input":"<!DOCTYPEa PUBLIC\"/", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "/", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\"0", -"input":"<!DOCTYPEa PUBLIC\"0", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "0", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\"1", -"input":"<!DOCTYPEa PUBLIC\"1", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "1", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\"9", -"input":"<!DOCTYPEa PUBLIC\"9", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "9", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\"<", -"input":"<!DOCTYPEa PUBLIC\"<", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "<", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\"=", -"input":"<!DOCTYPEa PUBLIC\"=", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "=", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\">", -"input":"<!DOCTYPEa PUBLIC\">", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\"?", -"input":"<!DOCTYPEa PUBLIC\"?", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "?", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\"@", -"input":"<!DOCTYPEa PUBLIC\"@", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "@", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\"A", -"input":"<!DOCTYPEa PUBLIC\"A", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "A", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\"B", -"input":"<!DOCTYPEa PUBLIC\"B", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "B", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\"Y", -"input":"<!DOCTYPEa PUBLIC\"Y", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "Y", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\"Z", -"input":"<!DOCTYPEa PUBLIC\"Z", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "Z", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\"`", -"input":"<!DOCTYPEa PUBLIC\"`", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "`", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\"a", -"input":"<!DOCTYPEa PUBLIC\"a", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "a", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\"b", -"input":"<!DOCTYPEa PUBLIC\"b", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "b", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\"y", -"input":"<!DOCTYPEa PUBLIC\"y", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "y", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\"z", -"input":"<!DOCTYPEa PUBLIC\"z", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "z", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\"{", -"input":"<!DOCTYPEa PUBLIC\"{", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "{", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\"\\uDBC0\\uDC00", -"input":"<!DOCTYPEa PUBLIC\"\uDBC0\uDC00", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\uDBC0\uDC00", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC#", -"input":"<!DOCTYPEa PUBLIC#", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC&", -"input":"<!DOCTYPEa PUBLIC&", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC'", -"input":"<!DOCTYPEa PUBLIC'", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC'\\u0000", -"input":"<!DOCTYPEa PUBLIC'\u0000", -"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\uFFFD", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC'\\u0009", -"input":"<!DOCTYPEa PUBLIC'\u0009", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\u0009", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC'\\u000A", -"input":"<!DOCTYPEa PUBLIC'\u000A", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\u000A", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC'\\u000B", -"input":"<!DOCTYPEa PUBLIC'\u000B", -"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\u000B", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC'\\u000C", -"input":"<!DOCTYPEa PUBLIC'\u000C", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\u000C", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC' ", -"input":"<!DOCTYPEa PUBLIC' ", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", " ", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC'!", -"input":"<!DOCTYPEa PUBLIC'!", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "!", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC'\"", -"input":"<!DOCTYPEa PUBLIC'\"", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\"", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC'&", -"input":"<!DOCTYPEa PUBLIC'&", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "&", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC''", -"input":"<!DOCTYPEa PUBLIC''", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC''\\u0000", -"input":"<!DOCTYPEa PUBLIC''\u0000", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC''\\u0008", -"input":"<!DOCTYPEa PUBLIC''\u0008", -"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC''\\u0009", -"input":"<!DOCTYPEa PUBLIC''\u0009", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC''\\u000A", -"input":"<!DOCTYPEa PUBLIC''\u000A", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC''\\u000B", -"input":"<!DOCTYPEa PUBLIC''\u000B", -"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC''\\u000C", -"input":"<!DOCTYPEa PUBLIC''\u000C", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC''\\u000D", -"input":"<!DOCTYPEa PUBLIC''\u000D", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC''\\u001F", -"input":"<!DOCTYPEa PUBLIC''\u001F", -"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC'' ", -"input":"<!DOCTYPEa PUBLIC'' ", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC''!", -"input":"<!DOCTYPEa PUBLIC''!", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC''\"", -"input":"<!DOCTYPEa PUBLIC''\"", -"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", "", false]]}, - -{"description":"<!DOCTYPEa PUBLIC''#", -"input":"<!DOCTYPEa PUBLIC''#", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC''&", -"input":"<!DOCTYPEa PUBLIC''&", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC'''", -"input":"<!DOCTYPEa PUBLIC'''", -"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", "", false]]}, - -{"description":"<!DOCTYPEa PUBLIC''(", -"input":"<!DOCTYPEa PUBLIC''(", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC''-", -"input":"<!DOCTYPEa PUBLIC''-", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC''/", -"input":"<!DOCTYPEa PUBLIC''/", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC''0", -"input":"<!DOCTYPEa PUBLIC''0", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC''1", -"input":"<!DOCTYPEa PUBLIC''1", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC''9", -"input":"<!DOCTYPEa PUBLIC''9", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC''<", -"input":"<!DOCTYPEa PUBLIC''<", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC''=", -"input":"<!DOCTYPEa PUBLIC''=", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC''>", -"input":"<!DOCTYPEa PUBLIC''>", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, true]]}, - -{"description":"<!DOCTYPEa PUBLIC''?", -"input":"<!DOCTYPEa PUBLIC''?", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC''@", -"input":"<!DOCTYPEa PUBLIC''@", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC''A", -"input":"<!DOCTYPEa PUBLIC''A", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC''B", -"input":"<!DOCTYPEa PUBLIC''B", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC''Y", -"input":"<!DOCTYPEa PUBLIC''Y", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC''Z", -"input":"<!DOCTYPEa PUBLIC''Z", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC''`", -"input":"<!DOCTYPEa PUBLIC''`", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC''a", -"input":"<!DOCTYPEa PUBLIC''a", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC''b", -"input":"<!DOCTYPEa PUBLIC''b", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC''y", -"input":"<!DOCTYPEa PUBLIC''y", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC''z", -"input":"<!DOCTYPEa PUBLIC''z", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC''{", -"input":"<!DOCTYPEa PUBLIC''{", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC''\\uDBC0\\uDC00", -"input":"<!DOCTYPEa PUBLIC''\uDBC0\uDC00", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC'(", -"input":"<!DOCTYPEa PUBLIC'(", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "(", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC'-", -"input":"<!DOCTYPEa PUBLIC'-", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "-", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC'/", -"input":"<!DOCTYPEa PUBLIC'/", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "/", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC'0", -"input":"<!DOCTYPEa PUBLIC'0", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "0", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC'1", -"input":"<!DOCTYPEa PUBLIC'1", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "1", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC'9", -"input":"<!DOCTYPEa PUBLIC'9", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "9", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC'<", -"input":"<!DOCTYPEa PUBLIC'<", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "<", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC'=", -"input":"<!DOCTYPEa PUBLIC'=", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "=", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC'>", -"input":"<!DOCTYPEa PUBLIC'>", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC'?", -"input":"<!DOCTYPEa PUBLIC'?", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "?", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC'@", -"input":"<!DOCTYPEa PUBLIC'@", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "@", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC'A", -"input":"<!DOCTYPEa PUBLIC'A", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "A", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC'B", -"input":"<!DOCTYPEa PUBLIC'B", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "B", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC'Y", -"input":"<!DOCTYPEa PUBLIC'Y", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "Y", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC'Z", -"input":"<!DOCTYPEa PUBLIC'Z", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "Z", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC'`", -"input":"<!DOCTYPEa PUBLIC'`", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "`", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC'a", -"input":"<!DOCTYPEa PUBLIC'a", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "a", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC'b", -"input":"<!DOCTYPEa PUBLIC'b", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "b", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC'y", -"input":"<!DOCTYPEa PUBLIC'y", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "y", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC'z", -"input":"<!DOCTYPEa PUBLIC'z", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "z", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC'{", -"input":"<!DOCTYPEa PUBLIC'{", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "{", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC'\\uDBC0\\uDC00", -"input":"<!DOCTYPEa PUBLIC'\uDBC0\uDC00", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\uDBC0\uDC00", null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC(", -"input":"<!DOCTYPEa PUBLIC(", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC-", -"input":"<!DOCTYPEa PUBLIC-", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC/", -"input":"<!DOCTYPEa PUBLIC/", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC0", -"input":"<!DOCTYPEa PUBLIC0", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC1", -"input":"<!DOCTYPEa PUBLIC1", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC9", -"input":"<!DOCTYPEa PUBLIC9", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC<", -"input":"<!DOCTYPEa PUBLIC<", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC=", -"input":"<!DOCTYPEa PUBLIC=", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC>", -"input":"<!DOCTYPEa PUBLIC>", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC?", -"input":"<!DOCTYPEa PUBLIC?", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC@", -"input":"<!DOCTYPEa PUBLIC@", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa PUBLICA", -"input":"<!DOCTYPEa PUBLICA", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa PUBLICB", -"input":"<!DOCTYPEa PUBLICB", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa PUBLICY", -"input":"<!DOCTYPEa PUBLICY", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa PUBLICZ", -"input":"<!DOCTYPEa PUBLICZ", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC`", -"input":"<!DOCTYPEa PUBLIC`", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa PUBLICa", -"input":"<!DOCTYPEa PUBLICa", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa PUBLICb", -"input":"<!DOCTYPEa PUBLICb", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa PUBLICy", -"input":"<!DOCTYPEa PUBLICy", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa PUBLICz", -"input":"<!DOCTYPEa PUBLICz", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC{", -"input":"<!DOCTYPEa PUBLIC{", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa PUBLIC\\uDBC0\\uDC00", -"input":"<!DOCTYPEa PUBLIC\uDBC0\uDC00", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa SYSTEM", -"input":"<!DOCTYPEa SYSTEM", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa SYSTEM\\u0000", -"input":"<!DOCTYPEa SYSTEM\u0000", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa SYSTEM\\u0008", -"input":"<!DOCTYPEa SYSTEM\u0008", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa SYSTEM\\u0009", -"input":"<!DOCTYPEa SYSTEM\u0009", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa SYSTEM\\u000A", -"input":"<!DOCTYPEa SYSTEM\u000A", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa SYSTEM\\u000B", -"input":"<!DOCTYPEa SYSTEM\u000B", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa SYSTEM\\u000C", -"input":"<!DOCTYPEa SYSTEM\u000C", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa SYSTEM\\u000D", -"input":"<!DOCTYPEa SYSTEM\u000D", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa SYSTEM\\u001F", -"input":"<!DOCTYPEa SYSTEM\u001F", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa SYSTEM ", -"input":"<!DOCTYPEa SYSTEM ", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa SYSTEM!", -"input":"<!DOCTYPEa SYSTEM!", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa SYSTEM\"", -"input":"<!DOCTYPEa SYSTEM\"", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, - -{"description":"<!DOCTYPEa SYSTEM\"\\u0000", -"input":"<!DOCTYPEa SYSTEM\"\u0000", -"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\uFFFD", false]]}, - -{"description":"<!DOCTYPEa SYSTEM\"\\u0009", -"input":"<!DOCTYPEa SYSTEM\"\u0009", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\u0009", false]]}, - -{"description":"<!DOCTYPEa SYSTEM\"\\u000A", -"input":"<!DOCTYPEa SYSTEM\"\u000A", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000A", false]]}, - -{"description":"<!DOCTYPEa SYSTEM\"\\u000B", -"input":"<!DOCTYPEa SYSTEM\"\u000B", -"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000B", false]]}, - -{"description":"<!DOCTYPEa SYSTEM\"\\u000C", -"input":"<!DOCTYPEa SYSTEM\"\u000C", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000C", false]]}, - -{"description":"<!DOCTYPEa SYSTEM\" ", -"input":"<!DOCTYPEa SYSTEM\" ", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, " ", false]]}, - -{"description":"<!DOCTYPEa SYSTEM\"!", -"input":"<!DOCTYPEa SYSTEM\"!", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "!", false]]}, - -{"description":"<!DOCTYPEa SYSTEM\"\"", -"input":"<!DOCTYPEa SYSTEM\"\"", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, - -{"description":"<!DOCTYPEa SYSTEM\"#", -"input":"<!DOCTYPEa SYSTEM\"#", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "#", false]]}, - -{"description":"<!DOCTYPEa SYSTEM\"&", -"input":"<!DOCTYPEa SYSTEM\"&", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "&", false]]}, - -{"description":"<!DOCTYPEa SYSTEM\"'", -"input":"<!DOCTYPEa SYSTEM\"'", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "'", false]]}, - -{"description":"<!DOCTYPEa SYSTEM\"-", -"input":"<!DOCTYPEa SYSTEM\"-", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "-", false]]}, - -{"description":"<!DOCTYPEa SYSTEM\"/", -"input":"<!DOCTYPEa SYSTEM\"/", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "/", false]]}, - -{"description":"<!DOCTYPEa SYSTEM\"0", -"input":"<!DOCTYPEa SYSTEM\"0", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "0", false]]}, - -{"description":"<!DOCTYPEa SYSTEM\"1", -"input":"<!DOCTYPEa SYSTEM\"1", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "1", false]]}, - -{"description":"<!DOCTYPEa SYSTEM\"9", -"input":"<!DOCTYPEa SYSTEM\"9", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "9", false]]}, - -{"description":"<!DOCTYPEa SYSTEM\"<", -"input":"<!DOCTYPEa SYSTEM\"<", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "<", false]]}, - -{"description":"<!DOCTYPEa SYSTEM\"=", -"input":"<!DOCTYPEa SYSTEM\"=", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "=", false]]}, - -{"description":"<!DOCTYPEa SYSTEM\">", -"input":"<!DOCTYPEa SYSTEM\">", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, - -{"description":"<!DOCTYPEa SYSTEM\"?", -"input":"<!DOCTYPEa SYSTEM\"?", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "?", false]]}, - -{"description":"<!DOCTYPEa SYSTEM\"@", -"input":"<!DOCTYPEa SYSTEM\"@", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "@", false]]}, - -{"description":"<!DOCTYPEa SYSTEM\"A", -"input":"<!DOCTYPEa SYSTEM\"A", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "A", false]]}, - -{"description":"<!DOCTYPEa SYSTEM\"B", -"input":"<!DOCTYPEa SYSTEM\"B", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "B", false]]}, - -{"description":"<!DOCTYPEa SYSTEM\"Y", -"input":"<!DOCTYPEa SYSTEM\"Y", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "Y", false]]}, - -{"description":"<!DOCTYPEa SYSTEM\"Z", -"input":"<!DOCTYPEa SYSTEM\"Z", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "Z", false]]}, - -{"description":"<!DOCTYPEa SYSTEM\"`", -"input":"<!DOCTYPEa SYSTEM\"`", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "`", false]]}, - -{"description":"<!DOCTYPEa SYSTEM\"a", -"input":"<!DOCTYPEa SYSTEM\"a", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "a", false]]}, - -{"description":"<!DOCTYPEa SYSTEM\"b", -"input":"<!DOCTYPEa SYSTEM\"b", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "b", false]]}, - -{"description":"<!DOCTYPEa SYSTEM\"y", -"input":"<!DOCTYPEa SYSTEM\"y", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "y", false]]}, - -{"description":"<!DOCTYPEa SYSTEM\"z", -"input":"<!DOCTYPEa SYSTEM\"z", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "z", false]]}, - -{"description":"<!DOCTYPEa SYSTEM\"{", -"input":"<!DOCTYPEa SYSTEM\"{", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "{", false]]}, - -{"description":"<!DOCTYPEa SYSTEM\"\\uDBC0\\uDC00", -"input":"<!DOCTYPEa SYSTEM\"\uDBC0\uDC00", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\uDBC0\uDC00", false]]}, - -{"description":"<!DOCTYPEa SYSTEM#", -"input":"<!DOCTYPEa SYSTEM#", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa SYSTEM&", -"input":"<!DOCTYPEa SYSTEM&", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa SYSTEM'", -"input":"<!DOCTYPEa SYSTEM'", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, - -{"description":"<!DOCTYPEa SYSTEM'\\u0000", -"input":"<!DOCTYPEa SYSTEM'\u0000", -"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\uFFFD", false]]}, - -{"description":"<!DOCTYPEa SYSTEM'\\u0009", -"input":"<!DOCTYPEa SYSTEM'\u0009", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\u0009", false]]}, - -{"description":"<!DOCTYPEa SYSTEM'\\u000A", -"input":"<!DOCTYPEa SYSTEM'\u000A", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000A", false]]}, - -{"description":"<!DOCTYPEa SYSTEM'\\u000B", -"input":"<!DOCTYPEa SYSTEM'\u000B", -"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000B", false]]}, - -{"description":"<!DOCTYPEa SYSTEM'\\u000C", -"input":"<!DOCTYPEa SYSTEM'\u000C", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000C", false]]}, - -{"description":"<!DOCTYPEa SYSTEM' ", -"input":"<!DOCTYPEa SYSTEM' ", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, " ", false]]}, - -{"description":"<!DOCTYPEa SYSTEM'!", -"input":"<!DOCTYPEa SYSTEM'!", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "!", false]]}, - -{"description":"<!DOCTYPEa SYSTEM'\"", -"input":"<!DOCTYPEa SYSTEM'\"", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\"", false]]}, - -{"description":"<!DOCTYPEa SYSTEM'&", -"input":"<!DOCTYPEa SYSTEM'&", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "&", false]]}, - -{"description":"<!DOCTYPEa SYSTEM''", -"input":"<!DOCTYPEa SYSTEM''", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, - -{"description":"<!DOCTYPEa SYSTEM''\\u0000", -"input":"<!DOCTYPEa SYSTEM''\u0000", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPEa SYSTEM''\\u0008", -"input":"<!DOCTYPEa SYSTEM''\u0008", -"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPEa SYSTEM''\\u0009", -"input":"<!DOCTYPEa SYSTEM''\u0009", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, - -{"description":"<!DOCTYPEa SYSTEM''\\u000A", -"input":"<!DOCTYPEa SYSTEM''\u000A", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, - -{"description":"<!DOCTYPEa SYSTEM''\\u000B", -"input":"<!DOCTYPEa SYSTEM''\u000B", -"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPEa SYSTEM''\\u000C", -"input":"<!DOCTYPEa SYSTEM''\u000C", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, - -{"description":"<!DOCTYPEa SYSTEM''\\u000D", -"input":"<!DOCTYPEa SYSTEM''\u000D", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, - -{"description":"<!DOCTYPEa SYSTEM''\\u001F", -"input":"<!DOCTYPEa SYSTEM''\u001F", -"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPEa SYSTEM'' ", -"input":"<!DOCTYPEa SYSTEM'' ", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, - -{"description":"<!DOCTYPEa SYSTEM''!", -"input":"<!DOCTYPEa SYSTEM''!", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPEa SYSTEM''\"", -"input":"<!DOCTYPEa SYSTEM''\"", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPEa SYSTEM''&", -"input":"<!DOCTYPEa SYSTEM''&", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPEa SYSTEM'''", -"input":"<!DOCTYPEa SYSTEM'''", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPEa SYSTEM''-", -"input":"<!DOCTYPEa SYSTEM''-", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPEa SYSTEM''/", -"input":"<!DOCTYPEa SYSTEM''/", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPEa SYSTEM''0", -"input":"<!DOCTYPEa SYSTEM''0", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPEa SYSTEM''1", -"input":"<!DOCTYPEa SYSTEM''1", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPEa SYSTEM''9", -"input":"<!DOCTYPEa SYSTEM''9", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPEa SYSTEM''<", -"input":"<!DOCTYPEa SYSTEM''<", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPEa SYSTEM''=", -"input":"<!DOCTYPEa SYSTEM''=", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPEa SYSTEM''>", -"input":"<!DOCTYPEa SYSTEM''>", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPEa SYSTEM''?", -"input":"<!DOCTYPEa SYSTEM''?", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPEa SYSTEM''@", -"input":"<!DOCTYPEa SYSTEM''@", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPEa SYSTEM''A", -"input":"<!DOCTYPEa SYSTEM''A", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPEa SYSTEM''B", -"input":"<!DOCTYPEa SYSTEM''B", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPEa SYSTEM''Y", -"input":"<!DOCTYPEa SYSTEM''Y", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPEa SYSTEM''Z", -"input":"<!DOCTYPEa SYSTEM''Z", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPEa SYSTEM''`", -"input":"<!DOCTYPEa SYSTEM''`", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPEa SYSTEM''a", -"input":"<!DOCTYPEa SYSTEM''a", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPEa SYSTEM''b", -"input":"<!DOCTYPEa SYSTEM''b", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPEa SYSTEM''y", -"input":"<!DOCTYPEa SYSTEM''y", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPEa SYSTEM''z", -"input":"<!DOCTYPEa SYSTEM''z", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPEa SYSTEM''{", -"input":"<!DOCTYPEa SYSTEM''{", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPEa SYSTEM''\\uDBC0\\uDC00", -"input":"<!DOCTYPEa SYSTEM''\uDBC0\uDC00", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, - -{"description":"<!DOCTYPEa SYSTEM'(", -"input":"<!DOCTYPEa SYSTEM'(", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "(", false]]}, - -{"description":"<!DOCTYPEa SYSTEM'-", -"input":"<!DOCTYPEa SYSTEM'-", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "-", false]]}, - -{"description":"<!DOCTYPEa SYSTEM'/", -"input":"<!DOCTYPEa SYSTEM'/", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "/", false]]}, - -{"description":"<!DOCTYPEa SYSTEM'0", -"input":"<!DOCTYPEa SYSTEM'0", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "0", false]]}, - -{"description":"<!DOCTYPEa SYSTEM'1", -"input":"<!DOCTYPEa SYSTEM'1", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "1", false]]}, - -{"description":"<!DOCTYPEa SYSTEM'9", -"input":"<!DOCTYPEa SYSTEM'9", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "9", false]]}, - -{"description":"<!DOCTYPEa SYSTEM'<", -"input":"<!DOCTYPEa SYSTEM'<", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "<", false]]}, - -{"description":"<!DOCTYPEa SYSTEM'=", -"input":"<!DOCTYPEa SYSTEM'=", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "=", false]]}, - -{"description":"<!DOCTYPEa SYSTEM'>", -"input":"<!DOCTYPEa SYSTEM'>", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, - -{"description":"<!DOCTYPEa SYSTEM'?", -"input":"<!DOCTYPEa SYSTEM'?", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "?", false]]}, - -{"description":"<!DOCTYPEa SYSTEM'@", -"input":"<!DOCTYPEa SYSTEM'@", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "@", false]]}, - -{"description":"<!DOCTYPEa SYSTEM'A", -"input":"<!DOCTYPEa SYSTEM'A", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "A", false]]}, - -{"description":"<!DOCTYPEa SYSTEM'B", -"input":"<!DOCTYPEa SYSTEM'B", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "B", false]]}, - -{"description":"<!DOCTYPEa SYSTEM'Y", -"input":"<!DOCTYPEa SYSTEM'Y", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "Y", false]]}, - -{"description":"<!DOCTYPEa SYSTEM'Z", -"input":"<!DOCTYPEa SYSTEM'Z", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "Z", false]]}, - -{"description":"<!DOCTYPEa SYSTEM'`", -"input":"<!DOCTYPEa SYSTEM'`", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "`", false]]}, - -{"description":"<!DOCTYPEa SYSTEM'a", -"input":"<!DOCTYPEa SYSTEM'a", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "a", false]]}, - -{"description":"<!DOCTYPEa SYSTEM'b", -"input":"<!DOCTYPEa SYSTEM'b", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "b", false]]}, - -{"description":"<!DOCTYPEa SYSTEM'y", -"input":"<!DOCTYPEa SYSTEM'y", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "y", false]]}, - -{"description":"<!DOCTYPEa SYSTEM'z", -"input":"<!DOCTYPEa SYSTEM'z", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "z", false]]}, - -{"description":"<!DOCTYPEa SYSTEM'{", -"input":"<!DOCTYPEa SYSTEM'{", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "{", false]]}, - -{"description":"<!DOCTYPEa SYSTEM'\\uDBC0\\uDC00", -"input":"<!DOCTYPEa SYSTEM'\uDBC0\uDC00", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\uDBC0\uDC00", false]]}, - -{"description":"<!DOCTYPEa SYSTEM(", -"input":"<!DOCTYPEa SYSTEM(", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa SYSTEM-", -"input":"<!DOCTYPEa SYSTEM-", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa SYSTEM/", -"input":"<!DOCTYPEa SYSTEM/", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa SYSTEM0", -"input":"<!DOCTYPEa SYSTEM0", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa SYSTEM1", -"input":"<!DOCTYPEa SYSTEM1", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa SYSTEM9", -"input":"<!DOCTYPEa SYSTEM9", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa SYSTEM<", -"input":"<!DOCTYPEa SYSTEM<", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa SYSTEM=", -"input":"<!DOCTYPEa SYSTEM=", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa SYSTEM>", -"input":"<!DOCTYPEa SYSTEM>", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa SYSTEM?", -"input":"<!DOCTYPEa SYSTEM?", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa SYSTEM@", -"input":"<!DOCTYPEa SYSTEM@", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa SYSTEMA", -"input":"<!DOCTYPEa SYSTEMA", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa SYSTEMB", -"input":"<!DOCTYPEa SYSTEMB", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa SYSTEMY", -"input":"<!DOCTYPEa SYSTEMY", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa SYSTEMZ", -"input":"<!DOCTYPEa SYSTEMZ", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa SYSTEM`", -"input":"<!DOCTYPEa SYSTEM`", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa SYSTEMa", -"input":"<!DOCTYPEa SYSTEMa", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa SYSTEMb", -"input":"<!DOCTYPEa SYSTEMb", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa SYSTEMy", -"input":"<!DOCTYPEa SYSTEMy", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa SYSTEMz", -"input":"<!DOCTYPEa SYSTEMz", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa SYSTEM{", -"input":"<!DOCTYPEa SYSTEM{", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa SYSTEM\\uDBC0\\uDC00", -"input":"<!DOCTYPEa SYSTEM\uDBC0\uDC00", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa Y", -"input":"<!DOCTYPEa Y", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa Z", -"input":"<!DOCTYPEa Z", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa `", -"input":"<!DOCTYPEa `", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa a", -"input":"<!DOCTYPEa a", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa a\\u0000", -"input":"<!DOCTYPEa a\u0000", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa a\\u0009", -"input":"<!DOCTYPEa a\u0009", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa a\\u000A", -"input":"<!DOCTYPEa a\u000A", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa a\\u000B", -"input":"<!DOCTYPEa a\u000B", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa a\\u000C", -"input":"<!DOCTYPEa a\u000C", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa a ", -"input":"<!DOCTYPEa a ", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa a!", -"input":"<!DOCTYPEa a!", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa a\"", -"input":"<!DOCTYPEa a\"", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa a&", -"input":"<!DOCTYPEa a&", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa a'", -"input":"<!DOCTYPEa a'", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa a-", -"input":"<!DOCTYPEa a-", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa a/", -"input":"<!DOCTYPEa a/", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa a0", -"input":"<!DOCTYPEa a0", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa a1", -"input":"<!DOCTYPEa a1", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa a9", -"input":"<!DOCTYPEa a9", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa a<", -"input":"<!DOCTYPEa a<", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa a=", -"input":"<!DOCTYPEa a=", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa a>", -"input":"<!DOCTYPEa a>", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa a?", -"input":"<!DOCTYPEa a?", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa a@", -"input":"<!DOCTYPEa a@", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa aA", -"input":"<!DOCTYPEa aA", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa aB", -"input":"<!DOCTYPEa aB", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa aY", -"input":"<!DOCTYPEa aY", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa aZ", -"input":"<!DOCTYPEa aZ", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa a`", -"input":"<!DOCTYPEa a`", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa aa", -"input":"<!DOCTYPEa aa", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa ab", -"input":"<!DOCTYPEa ab", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa ay", -"input":"<!DOCTYPEa ay", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa az", -"input":"<!DOCTYPEa az", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa a{", -"input":"<!DOCTYPEa a{", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa a\\uDBC0\\uDC00", -"input":"<!DOCTYPEa a\uDBC0\uDC00", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa b", -"input":"<!DOCTYPEa b", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa y", -"input":"<!DOCTYPEa y", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa z", -"input":"<!DOCTYPEa z", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa {", -"input":"<!DOCTYPEa {", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa \\uDBC0\\uDC00", -"input":"<!DOCTYPEa \uDBC0\uDC00", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, - -{"description":"<!DOCTYPEa!", -"input":"<!DOCTYPEa!", -"output":["ParseError", "ParseError", ["DOCTYPE", "a!", null, null, false]]}, - -{"description":"<!DOCTYPEa\"", -"input":"<!DOCTYPEa\"", -"output":["ParseError", "ParseError", ["DOCTYPE", "a\"", null, null, false]]}, - -{"description":"<!DOCTYPEa&", -"input":"<!DOCTYPEa&", -"output":["ParseError", "ParseError", ["DOCTYPE", "a&", null, null, false]]}, - -{"description":"<!DOCTYPEa'", -"input":"<!DOCTYPEa'", -"output":["ParseError", "ParseError", ["DOCTYPE", "a'", null, null, false]]}, - -{"description":"<!DOCTYPEa-", -"input":"<!DOCTYPEa-", -"output":["ParseError", "ParseError", ["DOCTYPE", "a-", null, null, false]]}, - -{"description":"<!DOCTYPEa/", -"input":"<!DOCTYPEa/", -"output":["ParseError", "ParseError", ["DOCTYPE", "a/", null, null, false]]}, - -{"description":"<!DOCTYPEa0", -"input":"<!DOCTYPEa0", -"output":["ParseError", "ParseError", ["DOCTYPE", "a0", null, null, false]]}, - -{"description":"<!DOCTYPEa1", -"input":"<!DOCTYPEa1", -"output":["ParseError", "ParseError", ["DOCTYPE", "a1", null, null, false]]}, - -{"description":"<!DOCTYPEa9", -"input":"<!DOCTYPEa9", -"output":["ParseError", "ParseError", ["DOCTYPE", "a9", null, null, false]]}, - -{"description":"<!DOCTYPEa<", -"input":"<!DOCTYPEa<", -"output":["ParseError", "ParseError", ["DOCTYPE", "a<", null, null, false]]}, - -{"description":"<!DOCTYPEa=", -"input":"<!DOCTYPEa=", -"output":["ParseError", "ParseError", ["DOCTYPE", "a=", null, null, false]]}, - -{"description":"<!DOCTYPEa>", -"input":"<!DOCTYPEa>", -"output":["ParseError", ["DOCTYPE", "a", null, null, true]]}, - -{"description":"<!DOCTYPEa?", -"input":"<!DOCTYPEa?", -"output":["ParseError", "ParseError", ["DOCTYPE", "a?", null, null, false]]}, - -{"description":"<!DOCTYPEa@", -"input":"<!DOCTYPEa@", -"output":["ParseError", "ParseError", ["DOCTYPE", "a@", null, null, false]]}, - -{"description":"<!DOCTYPEaA", -"input":"<!DOCTYPEaA", -"output":["ParseError", "ParseError", ["DOCTYPE", "aa", null, null, false]]}, - -{"description":"<!DOCTYPEaB", -"input":"<!DOCTYPEaB", -"output":["ParseError", "ParseError", ["DOCTYPE", "ab", null, null, false]]}, - -{"description":"<!DOCTYPEaY", -"input":"<!DOCTYPEaY", -"output":["ParseError", "ParseError", ["DOCTYPE", "ay", null, null, false]]}, - -{"description":"<!DOCTYPEaZ", -"input":"<!DOCTYPEaZ", -"output":["ParseError", "ParseError", ["DOCTYPE", "az", null, null, false]]}, - -{"description":"<!DOCTYPEa[", -"input":"<!DOCTYPEa[", -"output":["ParseError", "ParseError", ["DOCTYPE", "a[", null, null, false]]}, - -{"description":"<!DOCTYPEa`", -"input":"<!DOCTYPEa`", -"output":["ParseError", "ParseError", ["DOCTYPE", "a`", null, null, false]]}, - -{"description":"<!DOCTYPEaa", -"input":"<!DOCTYPEaa", -"output":["ParseError", "ParseError", ["DOCTYPE", "aa", null, null, false]]}, - -{"description":"<!DOCTYPEab", -"input":"<!DOCTYPEab", -"output":["ParseError", "ParseError", ["DOCTYPE", "ab", null, null, false]]}, - -{"description":"<!DOCTYPEay", -"input":"<!DOCTYPEay", -"output":["ParseError", "ParseError", ["DOCTYPE", "ay", null, null, false]]}, - -{"description":"<!DOCTYPEaz", -"input":"<!DOCTYPEaz", -"output":["ParseError", "ParseError", ["DOCTYPE", "az", null, null, false]]}, - -{"description":"<!DOCTYPEa{", -"input":"<!DOCTYPEa{", -"output":["ParseError", "ParseError", ["DOCTYPE", "a{", null, null, false]]}, - -{"description":"<!DOCTYPEa\\uDBC0\\uDC00", -"input":"<!DOCTYPEa\uDBC0\uDC00", -"output":["ParseError", "ParseError", ["DOCTYPE", "a\uDBC0\uDC00", null, null, false]]}, - -{"description":"<!DOCTYPEb", -"input":"<!DOCTYPEb", -"output":["ParseError", "ParseError", ["DOCTYPE", "b", null, null, false]]}, - -{"description":"<!DOCTYPEy", -"input":"<!DOCTYPEy", -"output":["ParseError", "ParseError", ["DOCTYPE", "y", null, null, false]]}, - -{"description":"<!DOCTYPEz", -"input":"<!DOCTYPEz", -"output":["ParseError", "ParseError", ["DOCTYPE", "z", null, null, false]]}, - -{"description":"<!DOCTYPE{", -"input":"<!DOCTYPE{", -"output":["ParseError", "ParseError", ["DOCTYPE", "{", null, null, false]]}, - -{"description":"<!DOCTYPE\\uDBC0\\uDC00", -"input":"<!DOCTYPE\uDBC0\uDC00", -"output":["ParseError", "ParseError", ["DOCTYPE", "\uDBC0\uDC00", null, null, false]]}, - -{"description":"<!Y", -"input":"<!Y", -"output":["ParseError", ["Comment", "Y"]]}, - -{"description":"<!Z", -"input":"<!Z", -"output":["ParseError", ["Comment", "Z"]]}, - -{"description":"<!`", -"input":"<!`", -"output":["ParseError", ["Comment", "`"]]}, - -{"description":"<!a", -"input":"<!a", -"output":["ParseError", ["Comment", "a"]]}, - -{"description":"<!b", -"input":"<!b", -"output":["ParseError", ["Comment", "b"]]}, - -{"description":"<!y", -"input":"<!y", -"output":["ParseError", ["Comment", "y"]]}, - -{"description":"<!z", -"input":"<!z", -"output":["ParseError", ["Comment", "z"]]}, - -{"description":"<!{", -"input":"<!{", -"output":["ParseError", ["Comment", "{"]]}, - -{"description":"<!\\uDBC0\\uDC00", -"input":"<!\uDBC0\uDC00", -"output":["ParseError", ["Comment", "\uDBC0\uDC00"]]}, - -{"description":"<\"", -"input":"<\"", -"output":["ParseError", ["Character", "<\""]]}, - -{"description":"<&", -"input":"<&", -"output":["ParseError", ["Character", "<&"]]}, - -{"description":"<'", -"input":"<'", -"output":["ParseError", ["Character", "<'"]]}, - -{"description":"<-", -"input":"<-", -"output":["ParseError", ["Character", "<-"]]}, - -{"description":"<.", -"input":"<.", -"output":["ParseError", ["Character", "<."]]}, - -{"description":"</", -"input":"</", -"output":["ParseError", ["Character", "</"]]}, - -{"description":"</\\u0000", -"input":"</\u0000", -"output":["ParseError", ["Comment", "\uFFFD"]]}, - -{"description":"</\\u0009", -"input":"</\u0009", -"output":["ParseError", ["Comment", "\u0009"]]}, - -{"description":"</\\u000A", -"input":"</\u000A", -"output":["ParseError", ["Comment", "\u000A"]]}, - -{"description":"</\\u000B", -"input":"</\u000B", -"output":["ParseError", "ParseError", ["Comment", "\u000B"]]}, - -{"description":"</\\u000C", -"input":"</\u000C", -"output":["ParseError", ["Comment", "\u000C"]]}, - -{"description":"</ ", -"input":"</ ", -"output":["ParseError", ["Comment", " "]]}, - -{"description":"</!", -"input":"</!", -"output":["ParseError", ["Comment", "!"]]}, - -{"description":"</\"", -"input":"</\"", -"output":["ParseError", ["Comment", "\""]]}, - -{"description":"</&", -"input":"</&", -"output":["ParseError", ["Comment", "&"]]}, - -{"description":"</'", -"input":"</'", -"output":["ParseError", ["Comment", "'"]]}, - -{"description":"</-", -"input":"</-", -"output":["ParseError", ["Comment", "-"]]}, - -{"description":"<//", -"input":"<//", -"output":["ParseError", ["Comment", "/"]]}, - -{"description":"</0", -"input":"</0", -"output":["ParseError", ["Comment", "0"]]}, - -{"description":"</1", -"input":"</1", -"output":["ParseError", ["Comment", "1"]]}, - -{"description":"</9", -"input":"</9", -"output":["ParseError", ["Comment", "9"]]}, - -{"description":"</<", -"input":"</<", -"output":["ParseError", ["Comment", "<"]]}, - -{"description":"</=", -"input":"</=", -"output":["ParseError", ["Comment", "="]]}, - -{"description":"</>", -"input":"</>", -"output":["ParseError"]}, - -{"description":"</?", -"input":"</?", -"output":["ParseError", ["Comment", "?"]]}, - -{"description":"</@", -"input":"</@", -"output":["ParseError", ["Comment", "@"]]}, - -{"description":"</A>", -"input":"</A>", -"output":[["EndTag", "a"]]}, - -{"description":"</B>", -"input":"</B>", -"output":[["EndTag", "b"]]}, - -{"description":"</Y>", -"input":"</Y>", -"output":[["EndTag", "y"]]}, - -{"description":"</Z>", -"input":"</Z>", -"output":[["EndTag", "z"]]}, - -{"description":"</[", -"input":"</[", -"output":["ParseError", ["Comment", "["]]}, - -{"description":"</`", -"input":"</`", -"output":["ParseError", ["Comment", "`"]]}, - -{"description":"</a>", -"input":"</a>", -"output":[["EndTag", "a"]]}, - -{"description":"</b>", -"input":"</b>", -"output":[["EndTag", "b"]]}, - -{"description":"</y>", -"input":"</y>", -"output":[["EndTag", "y"]]}, - -{"description":"</z>", -"input":"</z>", -"output":[["EndTag", "z"]]}, - -{"description":"</{", -"input":"</{", -"output":["ParseError", ["Comment", "{"]]}, - -{"description":"</\\uDBC0\\uDC00", -"input":"</\uDBC0\uDC00", -"output":["ParseError", ["Comment", "\uDBC0\uDC00"]]}, - -{"description":"<0", -"input":"<0", -"output":["ParseError", ["Character", "<0"]]}, - -{"description":"<1", -"input":"<1", -"output":["ParseError", ["Character", "<1"]]}, - -{"description":"<9", -"input":"<9", -"output":["ParseError", ["Character", "<9"]]}, - -{"description":"<<", -"input":"<<", -"output":["ParseError", ["Character", "<"], "ParseError", ["Character", "<"]]}, - -{"description":"<=", -"input":"<=", -"output":["ParseError", ["Character", "<="]]}, - -{"description":"<>", -"input":"<>", -"output":["ParseError", ["Character", "<>"]]}, - -{"description":"<?", -"input":"<?", -"output":["ParseError", ["Comment", "?"]]}, - -{"description":"<?\\u0000", -"input":"<?\u0000", -"output":["ParseError", ["Comment", "?\uFFFD"]]}, - -{"description":"<?\\u0009", -"input":"<?\u0009", -"output":["ParseError", ["Comment", "?\u0009"]]}, - -{"description":"<?\\u000A", -"input":"<?\u000A", -"output":["ParseError", ["Comment", "?\u000A"]]}, - -{"description":"<?\\u000B", -"input":"<?\u000B", -"output":["ParseError", "ParseError", ["Comment", "?\u000B"]]}, - -{"description":"<?\\u000C", -"input":"<?\u000C", -"output":["ParseError", ["Comment", "?\u000C"]]}, - -{"description":"<? ", -"input":"<? ", -"output":["ParseError", ["Comment", "? "]]}, - -{"description":"<?!", -"input":"<?!", -"output":["ParseError", ["Comment", "?!"]]}, - -{"description":"<?\"", -"input":"<?\"", -"output":["ParseError", ["Comment", "?\""]]}, - -{"description":"<?&", -"input":"<?&", -"output":["ParseError", ["Comment", "?&"]]}, - -{"description":"<?'", -"input":"<?'", -"output":["ParseError", ["Comment", "?'"]]}, - -{"description":"<?-", -"input":"<?-", -"output":["ParseError", ["Comment", "?-"]]}, - -{"description":"<?/", -"input":"<?/", -"output":["ParseError", ["Comment", "?/"]]}, - -{"description":"<?0", -"input":"<?0", -"output":["ParseError", ["Comment", "?0"]]}, - -{"description":"<?1", -"input":"<?1", -"output":["ParseError", ["Comment", "?1"]]}, - -{"description":"<?9", -"input":"<?9", -"output":["ParseError", ["Comment", "?9"]]}, - -{"description":"<?<", -"input":"<?<", -"output":["ParseError", ["Comment", "?<"]]}, - -{"description":"<?=", -"input":"<?=", -"output":["ParseError", ["Comment", "?="]]}, - -{"description":"<?>", -"input":"<?>", -"output":["ParseError", ["Comment", "?"]]}, - -{"description":"<??", -"input":"<??", -"output":["ParseError", ["Comment", "??"]]}, - -{"description":"<?@", -"input":"<?@", -"output":["ParseError", ["Comment", "?@"]]}, - -{"description":"<?A", -"input":"<?A", -"output":["ParseError", ["Comment", "?A"]]}, - -{"description":"<?B", -"input":"<?B", -"output":["ParseError", ["Comment", "?B"]]}, - -{"description":"<?Y", -"input":"<?Y", -"output":["ParseError", ["Comment", "?Y"]]}, - -{"description":"<?Z", -"input":"<?Z", -"output":["ParseError", ["Comment", "?Z"]]}, - -{"description":"<?`", -"input":"<?`", -"output":["ParseError", ["Comment", "?`"]]}, - -{"description":"<?a", -"input":"<?a", -"output":["ParseError", ["Comment", "?a"]]}, - -{"description":"<?b", -"input":"<?b", -"output":["ParseError", ["Comment", "?b"]]}, - -{"description":"<?y", -"input":"<?y", -"output":["ParseError", ["Comment", "?y"]]}, - -{"description":"<?z", -"input":"<?z", -"output":["ParseError", ["Comment", "?z"]]}, - -{"description":"<?{", -"input":"<?{", -"output":["ParseError", ["Comment", "?{"]]}, - -{"description":"<?\\uDBC0\\uDC00", -"input":"<?\uDBC0\uDC00", -"output":["ParseError", ["Comment", "?\uDBC0\uDC00"]]}, - -{"description":"<@", -"input":"<@", -"output":["ParseError", ["Character", "<@"]]}, - -{"description":"<A>", -"input":"<A>", -"output":[["StartTag", "a", {}]]}, - -{"description":"<B>", -"input":"<B>", -"output":[["StartTag", "b", {}]]}, - -{"description":"<Y>", -"input":"<Y>", -"output":[["StartTag", "y", {}]]}, - -{"description":"<Z>", -"input":"<Z>", -"output":[["StartTag", "z", {}]]}, - -{"description":"<[", -"input":"<[", -"output":["ParseError", ["Character", "<["]]}, - -{"description":"<`", -"input":"<`", -"output":["ParseError", ["Character", "<`"]]}, - -{"description":"<a>", -"input":"<a>", -"output":[["StartTag", "a", {}]]}, - -{"description":"<a\\u0000>", -"input":"<a\u0000>", -"output":["ParseError", ["StartTag", "a\uFFFD", {}]]}, - -{"description":"<a\\u0008>", -"input":"<a\u0008>", -"output":["ParseError", ["StartTag", "a\u0008", {}]]}, - -{"description":"<a\\u0009>", -"input":"<a\u0009>", -"output":[["StartTag", "a", {}]]}, - -{"description":"<a\\u000A>", -"input":"<a\u000A>", -"output":[["StartTag", "a", {}]]}, - -{"description":"<a\\u000B>", -"input":"<a\u000B>", -"output":["ParseError", ["StartTag", "a\u000B", {}]]}, - -{"description":"<a\\u000C>", -"input":"<a\u000C>", -"output":[["StartTag", "a", {}]]}, - -{"description":"<a\\u000D>", -"input":"<a\u000D>", -"output":[["StartTag", "a", {}]]}, - -{"description":"<a\\u001F>", -"input":"<a\u001F>", -"output":["ParseError", ["StartTag", "a\u001F", {}]]}, - -{"description":"<a >", -"input":"<a >", -"output":[["StartTag", "a", {}]]}, - -{"description":"<a \\u0000>", -"input":"<a \u0000>", -"output":["ParseError", ["StartTag", "a", {"\uFFFD":""}]]}, - -{"description":"<a \\u0008>", -"input":"<a \u0008>", -"output":["ParseError", ["StartTag", "a", {"\u0008":""}]]}, - -{"description":"<a \\u0009>", -"input":"<a \u0009>", -"output":[["StartTag", "a", {}]]}, - -{"description":"<a \\u000A>", -"input":"<a \u000A>", -"output":[["StartTag", "a", {}]]}, - -{"description":"<a \\u000B>", -"input":"<a \u000B>", -"output":["ParseError", ["StartTag", "a", {"\u000B":""}]]}, - -{"description":"<a \\u000C>", -"input":"<a \u000C>", -"output":[["StartTag", "a", {}]]}, - -{"description":"<a \\u000D>", -"input":"<a \u000D>", -"output":[["StartTag", "a", {}]]}, - -{"description":"<a \\u001F>", -"input":"<a \u001F>", -"output":["ParseError", ["StartTag", "a", {"\u001F":""}]]}, - -{"description":"<a >", -"input":"<a >", -"output":[["StartTag", "a", {}]]}, - -{"description":"<a !>", -"input":"<a !>", -"output":[["StartTag", "a", {"!":""}]]}, - -{"description":"<a \">", -"input":"<a \">", -"output":["ParseError", ["StartTag", "a", {"\"":""}]]}, - -{"description":"<a #>", -"input":"<a #>", -"output":[["StartTag", "a", {"#":""}]]}, - -{"description":"<a &>", -"input":"<a &>", -"output":[["StartTag", "a", {"&":""}]]}, - -{"description":"<a '>", -"input":"<a '>", -"output":["ParseError", ["StartTag", "a", {"'":""}]]}, - -{"description":"<a (>", -"input":"<a (>", -"output":[["StartTag", "a", {"(":""}]]}, - -{"description":"<a ->", -"input":"<a ->", -"output":[["StartTag", "a", {"-":""}]]}, - -{"description":"<a .>", -"input":"<a .>", -"output":[["StartTag", "a", {".":""}]]}, - -{"description":"<a />", -"input":"<a />", -"output":[["StartTag", "a", {}, true]]}, - -{"description":"<a 0>", -"input":"<a 0>", -"output":[["StartTag", "a", {"0":""}]]}, - -{"description":"<a 1>", -"input":"<a 1>", -"output":[["StartTag", "a", {"1":""}]]}, - -{"description":"<a 9>", -"input":"<a 9>", -"output":[["StartTag", "a", {"9":""}]]}, - -{"description":"<a <>", -"input":"<a <>", -"output":["ParseError", ["StartTag", "a", {"<":""}]]}, - -{"description":"<a =>", -"input":"<a =>", -"output":["ParseError", ["StartTag", "a", {"=":""}]]}, - -{"description":"<a >", -"input":"<a >", -"output":[["StartTag", "a", {}]]}, - -{"description":"<a ?>", -"input":"<a ?>", -"output":[["StartTag", "a", {"?":""}]]}, - -{"description":"<a @>", -"input":"<a @>", -"output":[["StartTag", "a", {"@":""}]]}, - -{"description":"<a A>", -"input":"<a A>", -"output":[["StartTag", "a", {"a":""}]]}, - -{"description":"<a B>", -"input":"<a B>", -"output":[["StartTag", "a", {"b":""}]]}, - -{"description":"<a Y>", -"input":"<a Y>", -"output":[["StartTag", "a", {"y":""}]]}, - -{"description":"<a Z>", -"input":"<a Z>", -"output":[["StartTag", "a", {"z":""}]]}, - -{"description":"<a [>", -"input":"<a [>", -"output":[["StartTag", "a", {"[":""}]]}, - -{"description":"<a `>", -"input":"<a `>", -"output":[["StartTag", "a", {"`":""}]]}, - -{"description":"<a a>", -"input":"<a a>", -"output":[["StartTag", "a", {"a":""}]]}, - -{"description":"<a a\\u0000>", -"input":"<a a\u0000>", -"output":["ParseError", ["StartTag", "a", {"a\uFFFD":""}]]}, - -{"description":"<a a\\u0008>", -"input":"<a a\u0008>", -"output":["ParseError", ["StartTag", "a", {"a\u0008":""}]]}, - -{"description":"<a a\\u0009>", -"input":"<a a\u0009>", -"output":[["StartTag", "a", {"a":""}]]}, - -{"description":"<a a\\u000A>", -"input":"<a a\u000A>", -"output":[["StartTag", "a", {"a":""}]]}, - -{"description":"<a a\\u000B>", -"input":"<a a\u000B>", -"output":["ParseError", ["StartTag", "a", {"a\u000B":""}]]}, - -{"description":"<a a\\u000C>", -"input":"<a a\u000C>", -"output":[["StartTag", "a", {"a":""}]]}, - -{"description":"<a a\\u000D>", -"input":"<a a\u000D>", -"output":[["StartTag", "a", {"a":""}]]}, - -{"description":"<a a\\u001F>", -"input":"<a a\u001F>", -"output":["ParseError", ["StartTag", "a", {"a\u001F":""}]]}, - -{"description":"<a a >", -"input":"<a a >", -"output":[["StartTag", "a", {"a":""}]]}, - -{"description":"<a a \\u0000>", -"input":"<a a \u0000>", -"output":["ParseError", ["StartTag", "a", {"a":"", "\uFFFD":""}]]}, - -{"description":"<a a \\u0008>", -"input":"<a a \u0008>", -"output":["ParseError", ["StartTag", "a", {"a":"", "\u0008":""}]]}, - -{"description":"<a a \\u0009>", -"input":"<a a \u0009>", -"output":[["StartTag", "a", {"a":""}]]}, - -{"description":"<a a \\u000A>", -"input":"<a a \u000A>", -"output":[["StartTag", "a", {"a":""}]]}, - -{"description":"<a a \\u000B>", -"input":"<a a \u000B>", -"output":["ParseError", ["StartTag", "a", {"a":"", "\u000B":""}]]}, - -{"description":"<a a \\u000C>", -"input":"<a a \u000C>", -"output":[["StartTag", "a", {"a":""}]]}, - -{"description":"<a a \\u000D>", -"input":"<a a \u000D>", -"output":[["StartTag", "a", {"a":""}]]}, - -{"description":"<a a \\u001F>", -"input":"<a a \u001F>", -"output":["ParseError", ["StartTag", "a", {"a":"", "\u001F":""}]]}, - -{"description":"<a a >", -"input":"<a a >", -"output":[["StartTag", "a", {"a":""}]]}, - -{"description":"<a a !>", -"input":"<a a !>", -"output":[["StartTag", "a", {"a":"", "!":""}]]}, - -{"description":"<a a \">", -"input":"<a a \">", -"output":["ParseError", ["StartTag", "a", {"a":"", "\"":""}]]}, - -{"description":"<a a #>", -"input":"<a a #>", -"output":[["StartTag", "a", {"a":"", "#":""}]]}, - -{"description":"<a a &>", -"input":"<a a &>", -"output":[["StartTag", "a", {"a":"", "&":""}]]}, - -{"description":"<a a '>", -"input":"<a a '>", -"output":["ParseError", ["StartTag", "a", {"a":"", "'":""}]]}, - -{"description":"<a a (>", -"input":"<a a (>", -"output":[["StartTag", "a", {"a":"", "(":""}]]}, - -{"description":"<a a ->", -"input":"<a a ->", -"output":[["StartTag", "a", {"a":"", "-":""}]]}, - -{"description":"<a a .>", -"input":"<a a .>", -"output":[["StartTag", "a", {"a":"", ".":""}]]}, - -{"description":"<a a />", -"input":"<a a />", -"output":[["StartTag", "a", {"a":""}, true]]}, - -{"description":"<a a 0>", -"input":"<a a 0>", -"output":[["StartTag", "a", {"a":"", "0":""}]]}, - -{"description":"<a a 1>", -"input":"<a a 1>", -"output":[["StartTag", "a", {"a":"", "1":""}]]}, - -{"description":"<a a 9>", -"input":"<a a 9>", -"output":[["StartTag", "a", {"a":"", "9":""}]]}, - -{"description":"<a a <>", -"input":"<a a <>", -"output":["ParseError", ["StartTag", "a", {"a":"", "<":""}]]}, - -{"description":"<a a =>", -"input":"<a a =>", -"output":["ParseError", ["StartTag", "a", {"a":""}]]}, - -{"description":"<a a >", -"input":"<a a >", -"output":[["StartTag", "a", {"a":""}]]}, - -{"description":"<a a ?>", -"input":"<a a ?>", -"output":[["StartTag", "a", {"a":"", "?":""}]]}, - -{"description":"<a a @>", -"input":"<a a @>", -"output":[["StartTag", "a", {"a":"", "@":""}]]}, - -{"description":"<a a A>", -"input":"<a a A>", -"output":["ParseError", ["StartTag", "a", {"a":""}]]}, - -{"description":"<a a B>", -"input":"<a a B>", -"output":[["StartTag", "a", {"a":"", "b":""}]]}, - -{"description":"<a a Y>", -"input":"<a a Y>", -"output":[["StartTag", "a", {"a":"", "y":""}]]}, - -{"description":"<a a Z>", -"input":"<a a Z>", -"output":[["StartTag", "a", {"a":"", "z":""}]]}, - -{"description":"<a a [>", -"input":"<a a [>", -"output":[["StartTag", "a", {"a":"", "[":""}]]}, - -{"description":"<a a `>", -"input":"<a a `>", -"output":[["StartTag", "a", {"a":"", "`":""}]]}, - -{"description":"<a a a>", -"input":"<a a a>", -"output":["ParseError", ["StartTag", "a", {"a":""}]]}, - -{"description":"<a a b>", -"input":"<a a b>", -"output":[["StartTag", "a", {"a":"", "b":""}]]}, - -{"description":"<a a y>", -"input":"<a a y>", -"output":[["StartTag", "a", {"a":"", "y":""}]]}, - -{"description":"<a a z>", -"input":"<a a z>", -"output":[["StartTag", "a", {"a":"", "z":""}]]}, - -{"description":"<a a {>", -"input":"<a a {>", -"output":[["StartTag", "a", {"a":"", "{":""}]]}, - -{"description":"<a a \\uDBC0\\uDC00>", -"input":"<a a \uDBC0\uDC00>", -"output":[["StartTag", "a", {"a":"", "\uDBC0\uDC00":""}]]}, - -{"description":"<a a!>", -"input":"<a a!>", -"output":[["StartTag", "a", {"a!":""}]]}, - -{"description":"<a a\">", -"input":"<a a\">", -"output":["ParseError", ["StartTag", "a", {"a\"":""}]]}, - -{"description":"<a a#>", -"input":"<a a#>", -"output":[["StartTag", "a", {"a#":""}]]}, - -{"description":"<a a&>", -"input":"<a a&>", -"output":[["StartTag", "a", {"a&":""}]]}, - -{"description":"<a a'>", -"input":"<a a'>", -"output":["ParseError", ["StartTag", "a", {"a'":""}]]}, - -{"description":"<a a(>", -"input":"<a a(>", -"output":[["StartTag", "a", {"a(":""}]]}, - -{"description":"<a a->", -"input":"<a a->", -"output":[["StartTag", "a", {"a-":""}]]}, - -{"description":"<a a.>", -"input":"<a a.>", -"output":[["StartTag", "a", {"a.":""}]]}, - -{"description":"<a a/>", -"input":"<a a/>", -"output":[["StartTag", "a", {"a":""}, true]]}, - -{"description":"<a a0>", -"input":"<a a0>", -"output":[["StartTag", "a", {"a0":""}]]}, - -{"description":"<a a1>", -"input":"<a a1>", -"output":[["StartTag", "a", {"a1":""}]]}, - -{"description":"<a a9>", -"input":"<a a9>", -"output":[["StartTag", "a", {"a9":""}]]}, - -{"description":"<a a<>", -"input":"<a a<>", -"output":["ParseError", ["StartTag", "a", {"a<":""}]]}, - -{"description":"<a a=>", -"input":"<a a=>", -"output":["ParseError", ["StartTag", "a", {"a":""}]]}, - -{"description":"<a a=\\u0000>", -"input":"<a a=\u0000>", -"output":["ParseError", ["StartTag", "a", {"a":"\uFFFD"}]]}, - -{"description":"<a a=\\u0008>", -"input":"<a a=\u0008>", -"output":["ParseError", ["StartTag", "a", {"a":"\u0008"}]]}, - -{"description":"<a a=\\u0009>", -"input":"<a a=\u0009>", -"output":["ParseError", ["StartTag", "a", {"a":""}]]}, - -{"description":"<a a=\\u000A>", -"input":"<a a=\u000A>", -"output":["ParseError", ["StartTag", "a", {"a":""}]]}, - -{"description":"<a a=\\u000B>", -"input":"<a a=\u000B>", -"output":["ParseError", ["StartTag", "a", {"a":"\u000B"}]]}, - -{"description":"<a a=\\u000C>", -"input":"<a a=\u000C>", -"output":["ParseError", ["StartTag", "a", {"a":""}]]}, - -{"description":"<a a=\\u000D>", -"input":"<a a=\u000D>", -"output":["ParseError", ["StartTag", "a", {"a":""}]]}, - -{"description":"<a a=\\u001F>", -"input":"<a a=\u001F>", -"output":["ParseError", ["StartTag", "a", {"a":"\u001F"}]]}, - -{"description":"<a a= >", -"input":"<a a= >", -"output":["ParseError", ["StartTag", "a", {"a":""}]]}, - -{"description":"<a a=!>", -"input":"<a a=!>", -"output":[["StartTag", "a", {"a":"!"}]]}, - -{"description":"<a a=\"\">", -"input":"<a a=\"\">", -"output":[["StartTag", "a", {"a":""}]]}, - -{"description":"<a a=\"\\u0000\">", -"input":"<a a=\"\u0000\">", -"output":["ParseError", ["StartTag", "a", {"a":"\uFFFD"}]]}, - -{"description":"<a a=\"\\u0009\">", -"input":"<a a=\"\u0009\">", -"output":[["StartTag", "a", {"a":"\u0009"}]]}, - -{"description":"<a a=\"\\u000A\">", -"input":"<a a=\"\u000A\">", -"output":[["StartTag", "a", {"a":"\u000A"}]]}, - -{"description":"<a a=\"\\u000B\">", -"input":"<a a=\"\u000B\">", -"output":["ParseError", ["StartTag", "a", {"a":"\u000B"}]]}, - -{"description":"<a a=\"\\u000C\">", -"input":"<a a=\"\u000C\">", -"output":[["StartTag", "a", {"a":"\u000C"}]]}, - -{"description":"<a a=\" \">", -"input":"<a a=\" \">", -"output":[["StartTag", "a", {"a":" "}]]}, - -{"description":"<a a=\"!\">", -"input":"<a a=\"!\">", -"output":[["StartTag", "a", {"a":"!"}]]}, - -{"description":"<a a=\"\">", -"input":"<a a=\"\">", -"output":[["StartTag", "a", {"a":""}]]}, - -{"description":"<a a=\"#\">", -"input":"<a a=\"#\">", -"output":[["StartTag", "a", {"a":"#"}]]}, - -{"description":"<a a=\"%\">", -"input":"<a a=\"%\">", -"output":[["StartTag", "a", {"a":"%"}]]}, - -{"description":"<a a=\"&\">", -"input":"<a a=\"&\">", -"output":[["StartTag", "a", {"a":"&"}]]}, - -{"description":"<a a=\"'\">", -"input":"<a a=\"'\">", -"output":[["StartTag", "a", {"a":"'"}]]}, - -{"description":"<a a=\"-\">", -"input":"<a a=\"-\">", -"output":[["StartTag", "a", {"a":"-"}]]}, - -{"description":"<a a=\"/\">", -"input":"<a a=\"/\">", -"output":[["StartTag", "a", {"a":"/"}]]}, - -{"description":"<a a=\"0\">", -"input":"<a a=\"0\">", -"output":[["StartTag", "a", {"a":"0"}]]}, - -{"description":"<a a=\"1\">", -"input":"<a a=\"1\">", -"output":[["StartTag", "a", {"a":"1"}]]}, - -{"description":"<a a=\"9\">", -"input":"<a a=\"9\">", -"output":[["StartTag", "a", {"a":"9"}]]}, - -{"description":"<a a=\"<\">", -"input":"<a a=\"<\">", -"output":[["StartTag", "a", {"a":"<"}]]}, - -{"description":"<a a=\"=\">", -"input":"<a a=\"=\">", -"output":[["StartTag", "a", {"a":"="}]]}, - -{"description":"<a a=\">\">", -"input":"<a a=\">\">", -"output":[["StartTag", "a", {"a":">"}]]}, - -{"description":"<a a=\"?\">", -"input":"<a a=\"?\">", -"output":[["StartTag", "a", {"a":"?"}]]}, - -{"description":"<a a=\"@\">", -"input":"<a a=\"@\">", -"output":[["StartTag", "a", {"a":"@"}]]}, - -{"description":"<a a=\"A\">", -"input":"<a a=\"A\">", -"output":[["StartTag", "a", {"a":"A"}]]}, - -{"description":"<a a=\"B\">", -"input":"<a a=\"B\">", -"output":[["StartTag", "a", {"a":"B"}]]}, - -{"description":"<a a=\"Y\">", -"input":"<a a=\"Y\">", -"output":[["StartTag", "a", {"a":"Y"}]]}, - -{"description":"<a a=\"Z\">", -"input":"<a a=\"Z\">", -"output":[["StartTag", "a", {"a":"Z"}]]}, - -{"description":"<a a=\"`\">", -"input":"<a a=\"`\">", -"output":[["StartTag", "a", {"a":"`"}]]}, - -{"description":"<a a=\"a\">", -"input":"<a a=\"a\">", -"output":[["StartTag", "a", {"a":"a"}]]}, - -{"description":"<a a=\"b\">", -"input":"<a a=\"b\">", -"output":[["StartTag", "a", {"a":"b"}]]}, - -{"description":"<a a=\"y\">", -"input":"<a a=\"y\">", -"output":[["StartTag", "a", {"a":"y"}]]}, - -{"description":"<a a=\"z\">", -"input":"<a a=\"z\">", -"output":[["StartTag", "a", {"a":"z"}]]}, - -{"description":"<a a=\"{\">", -"input":"<a a=\"{\">", -"output":[["StartTag", "a", {"a":"{"}]]}, - -{"description":"<a a=\"\\uDBC0\\uDC00\">", -"input":"<a a=\"\uDBC0\uDC00\">", -"output":[["StartTag", "a", {"a":"\uDBC0\uDC00"}]]}, - -{"description":"<a a=#>", -"input":"<a a=#>", -"output":[["StartTag", "a", {"a":"#"}]]}, - -{"description":"<a a=%>", -"input":"<a a=%>", -"output":[["StartTag", "a", {"a":"%"}]]}, - -{"description":"<a a=&>", -"input":"<a a=&>", -"output":[["StartTag", "a", {"a":"&"}]]}, - -{"description":"<a a=''>", -"input":"<a a=''>", -"output":[["StartTag", "a", {"a":""}]]}, - -{"description":"<a a='\\u0000'>", -"input":"<a a='\u0000'>", -"output":["ParseError", ["StartTag", "a", {"a":"\uFFFD"}]]}, - -{"description":"<a a='\\u0009'>", -"input":"<a a='\u0009'>", -"output":[["StartTag", "a", {"a":"\u0009"}]]}, - -{"description":"<a a='\\u000A'>", -"input":"<a a='\u000A'>", -"output":[["StartTag", "a", {"a":"\u000A"}]]}, - -{"description":"<a a='\\u000B'>", -"input":"<a a='\u000B'>", -"output":["ParseError", ["StartTag", "a", {"a":"\u000B"}]]}, - -{"description":"<a a='\\u000C'>", -"input":"<a a='\u000C'>", -"output":[["StartTag", "a", {"a":"\u000C"}]]}, - -{"description":"<a a=' '>", -"input":"<a a=' '>", -"output":[["StartTag", "a", {"a":" "}]]}, - -{"description":"<a a='!'>", -"input":"<a a='!'>", -"output":[["StartTag", "a", {"a":"!"}]]}, - -{"description":"<a a='\"'>", -"input":"<a a='\"'>", -"output":[["StartTag", "a", {"a":"\""}]]}, - -{"description":"<a a='%'>", -"input":"<a a='%'>", -"output":[["StartTag", "a", {"a":"%"}]]}, - -{"description":"<a a='&'>", -"input":"<a a='&'>", -"output":[["StartTag", "a", {"a":"&"}]]}, - -{"description":"<a a=''>", -"input":"<a a=''>", -"output":[["StartTag", "a", {"a":""}]]}, - -{"description":"<a a=''\\u0000>", -"input":"<a a=''\u0000>", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "\uFFFD":""}]]}, - -{"description":"<a a=''\\u0008>", -"input":"<a a=''\u0008>", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "\u0008":""}]]}, - -{"description":"<a a=''\\u0009>", -"input":"<a a=''\u0009>", -"output":[["StartTag", "a", {"a":""}]]}, - -{"description":"<a a=''\\u000A>", -"input":"<a a=''\u000A>", -"output":[["StartTag", "a", {"a":""}]]}, - -{"description":"<a a=''\\u000B>", -"input":"<a a=''\u000B>", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "\u000B":""}]]}, - -{"description":"<a a=''\\u000C>", -"input":"<a a=''\u000C>", -"output":[["StartTag", "a", {"a":""}]]}, - -{"description":"<a a=''\\u000D>", -"input":"<a a=''\u000D>", -"output":[["StartTag", "a", {"a":""}]]}, - -{"description":"<a a=''\\u001F>", -"input":"<a a=''\u001F>", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "\u001F":""}]]}, - -{"description":"<a a='' >", -"input":"<a a='' >", -"output":[["StartTag", "a", {"a":""}]]}, - -{"description":"<a a=''!>", -"input":"<a a=''!>", -"output":["ParseError", ["StartTag", "a", {"a":"", "!":""}]]}, - -{"description":"<a a=''\">", -"input":"<a a=''\">", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "\"":""}]]}, - -{"description":"<a a=''&>", -"input":"<a a=''&>", -"output":["ParseError", ["StartTag", "a", {"a":"", "&":""}]]}, - -{"description":"<a a='''>", -"input":"<a a='''>", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "'":""}]]}, - -{"description":"<a a=''->", -"input":"<a a=''->", -"output":["ParseError", ["StartTag", "a", {"a":"", "-":""}]]}, - -{"description":"<a a=''.>", -"input":"<a a=''.>", -"output":["ParseError", ["StartTag", "a", {"a":"", ".":""}]]}, - -{"description":"<a a=''/>", -"input":"<a a=''/>", -"output":[["StartTag", "a", {"a":""}, true]]}, - -{"description":"<a a=''0>", -"input":"<a a=''0>", -"output":["ParseError", ["StartTag", "a", {"a":"", "0":""}]]}, - -{"description":"<a a=''1>", -"input":"<a a=''1>", -"output":["ParseError", ["StartTag", "a", {"a":"", "1":""}]]}, - -{"description":"<a a=''9>", -"input":"<a a=''9>", -"output":["ParseError", ["StartTag", "a", {"a":"", "9":""}]]}, - -{"description":"<a a=''<>", -"input":"<a a=''<>", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "<":""}]]}, - -{"description":"<a a=''=>", -"input":"<a a=''=>", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "=":""}]]}, - -{"description":"<a a=''>", -"input":"<a a=''>", -"output":[["StartTag", "a", {"a":""}]]}, - -{"description":"<a a=''?>", -"input":"<a a=''?>", -"output":["ParseError", ["StartTag", "a", {"a":"", "?":""}]]}, - -{"description":"<a a=''@>", -"input":"<a a=''@>", -"output":["ParseError", ["StartTag", "a", {"a":"", "@":""}]]}, - -{"description":"<a a=''A>", -"input":"<a a=''A>", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":""}]]}, - -{"description":"<a a=''B>", -"input":"<a a=''B>", -"output":["ParseError", ["StartTag", "a", {"a":"", "b":""}]]}, - -{"description":"<a a=''Y>", -"input":"<a a=''Y>", -"output":["ParseError", ["StartTag", "a", {"a":"", "y":""}]]}, - -{"description":"<a a=''Z>", -"input":"<a a=''Z>", -"output":["ParseError", ["StartTag", "a", {"a":"", "z":""}]]}, - -{"description":"<a a=''`>", -"input":"<a a=''`>", -"output":["ParseError", ["StartTag", "a", {"a":"", "`":""}]]}, - -{"description":"<a a=''a>", -"input":"<a a=''a>", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":""}]]}, - -{"description":"<a a=''b>", -"input":"<a a=''b>", -"output":["ParseError", ["StartTag", "a", {"a":"", "b":""}]]}, - -{"description":"<a a=''y>", -"input":"<a a=''y>", -"output":["ParseError", ["StartTag", "a", {"a":"", "y":""}]]}, - -{"description":"<a a=''z>", -"input":"<a a=''z>", -"output":["ParseError", ["StartTag", "a", {"a":"", "z":""}]]}, - -{"description":"<a a=''{>", -"input":"<a a=''{>", -"output":["ParseError", ["StartTag", "a", {"a":"", "{":""}]]}, - -{"description":"<a a=''\\uDBC0\\uDC00>", -"input":"<a a=''\uDBC0\uDC00>", -"output":["ParseError", ["StartTag", "a", {"a":"", "\uDBC0\uDC00":""}]]}, - -{"description":"<a a='('>", -"input":"<a a='('>", -"output":[["StartTag", "a", {"a":"("}]]}, - -{"description":"<a a='-'>", -"input":"<a a='-'>", -"output":[["StartTag", "a", {"a":"-"}]]}, - -{"description":"<a a='/'>", -"input":"<a a='/'>", -"output":[["StartTag", "a", {"a":"/"}]]}, - -{"description":"<a a='0'>", -"input":"<a a='0'>", -"output":[["StartTag", "a", {"a":"0"}]]}, - -{"description":"<a a='1'>", -"input":"<a a='1'>", -"output":[["StartTag", "a", {"a":"1"}]]}, - -{"description":"<a a='9'>", -"input":"<a a='9'>", -"output":[["StartTag", "a", {"a":"9"}]]}, - -{"description":"<a a='<'>", -"input":"<a a='<'>", -"output":[["StartTag", "a", {"a":"<"}]]}, - -{"description":"<a a='='>", -"input":"<a a='='>", -"output":[["StartTag", "a", {"a":"="}]]}, - -{"description":"<a a='>'>", -"input":"<a a='>'>", -"output":[["StartTag", "a", {"a":">"}]]}, - -{"description":"<a a='?'>", -"input":"<a a='?'>", -"output":[["StartTag", "a", {"a":"?"}]]}, - -{"description":"<a a='@'>", -"input":"<a a='@'>", -"output":[["StartTag", "a", {"a":"@"}]]}, - -{"description":"<a a='A'>", -"input":"<a a='A'>", -"output":[["StartTag", "a", {"a":"A"}]]}, - -{"description":"<a a='B'>", -"input":"<a a='B'>", -"output":[["StartTag", "a", {"a":"B"}]]}, - -{"description":"<a a='Y'>", -"input":"<a a='Y'>", -"output":[["StartTag", "a", {"a":"Y"}]]}, - -{"description":"<a a='Z'>", -"input":"<a a='Z'>", -"output":[["StartTag", "a", {"a":"Z"}]]}, - -{"description":"<a a='`'>", -"input":"<a a='`'>", -"output":[["StartTag", "a", {"a":"`"}]]}, - -{"description":"<a a='a'>", -"input":"<a a='a'>", -"output":[["StartTag", "a", {"a":"a"}]]}, - -{"description":"<a a='b'>", -"input":"<a a='b'>", -"output":[["StartTag", "a", {"a":"b"}]]}, - -{"description":"<a a='y'>", -"input":"<a a='y'>", -"output":[["StartTag", "a", {"a":"y"}]]}, - -{"description":"<a a='z'>", -"input":"<a a='z'>", -"output":[["StartTag", "a", {"a":"z"}]]}, - -{"description":"<a a='{'>", -"input":"<a a='{'>", -"output":[["StartTag", "a", {"a":"{"}]]}, - -{"description":"<a a='\\uDBC0\\uDC00'>", -"input":"<a a='\uDBC0\uDC00'>", -"output":[["StartTag", "a", {"a":"\uDBC0\uDC00"}]]}, - -{"description":"<a a=(>", -"input":"<a a=(>", -"output":[["StartTag", "a", {"a":"("}]]}, - -{"description":"<a a=->", -"input":"<a a=->", -"output":[["StartTag", "a", {"a":"-"}]]}, - -{"description":"<a a=/>", -"input":"<a a=/>", -"output":[["StartTag", "a", {"a":"/"}]]}, - -{"description":"<a a=0>", -"input":"<a a=0>", -"output":[["StartTag", "a", {"a":"0"}]]}, - -{"description":"<a a=1>", -"input":"<a a=1>", -"output":[["StartTag", "a", {"a":"1"}]]}, - -{"description":"<a a=9>", -"input":"<a a=9>", -"output":[["StartTag", "a", {"a":"9"}]]}, - -{"description":"<a a=<>", -"input":"<a a=<>", -"output":["ParseError", ["StartTag", "a", {"a":"<"}]]}, - -{"description":"<a a==>", -"input":"<a a==>", -"output":["ParseError", ["StartTag", "a", {"a":"="}]]}, - -{"description":"<a a=>", -"input":"<a a=>", -"output":["ParseError", ["StartTag", "a", {"a":""}]]}, - -{"description":"<a a=?>", -"input":"<a a=?>", -"output":[["StartTag", "a", {"a":"?"}]]}, - -{"description":"<a a=@>", -"input":"<a a=@>", -"output":[["StartTag", "a", {"a":"@"}]]}, - -{"description":"<a a=A>", -"input":"<a a=A>", -"output":[["StartTag", "a", {"a":"A"}]]}, - -{"description":"<a a=B>", -"input":"<a a=B>", -"output":[["StartTag", "a", {"a":"B"}]]}, - -{"description":"<a a=Y>", -"input":"<a a=Y>", -"output":[["StartTag", "a", {"a":"Y"}]]}, - -{"description":"<a a=Z>", -"input":"<a a=Z>", -"output":[["StartTag", "a", {"a":"Z"}]]}, - -{"description":"<a a=`>", -"input":"<a a=`>", -"output":["ParseError", ["StartTag", "a", {"a":"`"}]]}, - -{"description":"<a a=a>", -"input":"<a a=a>", -"output":[["StartTag", "a", {"a":"a"}]]}, - -{"description":"<a a=a\\u0000>", -"input":"<a a=a\u0000>", -"output":["ParseError", ["StartTag", "a", {"a":"a\uFFFD"}]]}, - -{"description":"<a a=a\\u0008>", -"input":"<a a=a\u0008>", -"output":["ParseError", ["StartTag", "a", {"a":"a\u0008"}]]}, - -{"description":"<a a=a\\u0009>", -"input":"<a a=a\u0009>", -"output":[["StartTag", "a", {"a":"a"}]]}, - -{"description":"<a a=a\\u000A>", -"input":"<a a=a\u000A>", -"output":[["StartTag", "a", {"a":"a"}]]}, - -{"description":"<a a=a\\u000B>", -"input":"<a a=a\u000B>", -"output":["ParseError", ["StartTag", "a", {"a":"a\u000B"}]]}, - -{"description":"<a a=a\\u000C>", -"input":"<a a=a\u000C>", -"output":[["StartTag", "a", {"a":"a"}]]}, - -{"description":"<a a=a\\u000D>", -"input":"<a a=a\u000D>", -"output":[["StartTag", "a", {"a":"a"}]]}, - -{"description":"<a a=a\\u001F>", -"input":"<a a=a\u001F>", -"output":["ParseError", ["StartTag", "a", {"a":"a\u001F"}]]}, - -{"description":"<a a=a >", -"input":"<a a=a >", -"output":[["StartTag", "a", {"a":"a"}]]}, - -{"description":"<a a=a!>", -"input":"<a a=a!>", -"output":[["StartTag", "a", {"a":"a!"}]]}, - -{"description":"<a a=a\">", -"input":"<a a=a\">", -"output":["ParseError", ["StartTag", "a", {"a":"a\""}]]}, - -{"description":"<a a=a#>", -"input":"<a a=a#>", -"output":[["StartTag", "a", {"a":"a#"}]]}, - -{"description":"<a a=a%>", -"input":"<a a=a%>", -"output":[["StartTag", "a", {"a":"a%"}]]}, - -{"description":"<a a=a&>", -"input":"<a a=a&>", -"output":[["StartTag", "a", {"a":"a&"}]]}, - -{"description":"<a a=a'>", -"input":"<a a=a'>", -"output":["ParseError", ["StartTag", "a", {"a":"a'"}]]}, - -{"description":"<a a=a(>", -"input":"<a a=a(>", -"output":[["StartTag", "a", {"a":"a("}]]}, - -{"description":"<a a=a->", -"input":"<a a=a->", -"output":[["StartTag", "a", {"a":"a-"}]]}, - -{"description":"<a a=a/>", -"input":"<a a=a/>", -"output":[["StartTag", "a", {"a":"a/"}]]}, - -{"description":"<a a=a0>", -"input":"<a a=a0>", -"output":[["StartTag", "a", {"a":"a0"}]]}, - -{"description":"<a a=a1>", -"input":"<a a=a1>", -"output":[["StartTag", "a", {"a":"a1"}]]}, - -{"description":"<a a=a9>", -"input":"<a a=a9>", -"output":[["StartTag", "a", {"a":"a9"}]]}, - -{"description":"<a a=a<>", -"input":"<a a=a<>", -"output":["ParseError", ["StartTag", "a", {"a":"a<"}]]}, - -{"description":"<a a=a=>", -"input":"<a a=a=>", -"output":["ParseError", ["StartTag", "a", {"a":"a="}]]}, - -{"description":"<a a=a>", -"input":"<a a=a>", -"output":[["StartTag", "a", {"a":"a"}]]}, - -{"description":"<a a=a?>", -"input":"<a a=a?>", -"output":[["StartTag", "a", {"a":"a?"}]]}, - -{"description":"<a a=a@>", -"input":"<a a=a@>", -"output":[["StartTag", "a", {"a":"a@"}]]}, - -{"description":"<a a=aA>", -"input":"<a a=aA>", -"output":[["StartTag", "a", {"a":"aA"}]]}, - -{"description":"<a a=aB>", -"input":"<a a=aB>", -"output":[["StartTag", "a", {"a":"aB"}]]}, - -{"description":"<a a=aY>", -"input":"<a a=aY>", -"output":[["StartTag", "a", {"a":"aY"}]]}, - -{"description":"<a a=aZ>", -"input":"<a a=aZ>", -"output":[["StartTag", "a", {"a":"aZ"}]]}, - -{"description":"<a a=a`>", -"input":"<a a=a`>", -"output":["ParseError", ["StartTag", "a", {"a":"a`"}]]}, - -{"description":"<a a=aa>", -"input":"<a a=aa>", -"output":[["StartTag", "a", {"a":"aa"}]]}, - -{"description":"<a a=ab>", -"input":"<a a=ab>", -"output":[["StartTag", "a", {"a":"ab"}]]}, - -{"description":"<a a=ay>", -"input":"<a a=ay>", -"output":[["StartTag", "a", {"a":"ay"}]]}, - -{"description":"<a a=az>", -"input":"<a a=az>", -"output":[["StartTag", "a", {"a":"az"}]]}, - -{"description":"<a a=a{>", -"input":"<a a=a{>", -"output":[["StartTag", "a", {"a":"a{"}]]}, - -{"description":"<a a=a\\uDBC0\\uDC00>", -"input":"<a a=a\uDBC0\uDC00>", -"output":[["StartTag", "a", {"a":"a\uDBC0\uDC00"}]]}, - -{"description":"<a a=b>", -"input":"<a a=b>", -"output":[["StartTag", "a", {"a":"b"}]]}, - -{"description":"<a a=y>", -"input":"<a a=y>", -"output":[["StartTag", "a", {"a":"y"}]]}, - -{"description":"<a a=z>", -"input":"<a a=z>", -"output":[["StartTag", "a", {"a":"z"}]]}, - -{"description":"<a a={>", -"input":"<a a={>", -"output":[["StartTag", "a", {"a":"{"}]]}, - -{"description":"<a a=\\uDBC0\\uDC00>", -"input":"<a a=\uDBC0\uDC00>", -"output":[["StartTag", "a", {"a":"\uDBC0\uDC00"}]]}, - -{"description":"<a a>", -"input":"<a a>", -"output":[["StartTag", "a", {"a":""}]]}, - -{"description":"<a a?>", -"input":"<a a?>", -"output":[["StartTag", "a", {"a?":""}]]}, - -{"description":"<a a@>", -"input":"<a a@>", -"output":[["StartTag", "a", {"a@":""}]]}, - -{"description":"<a aA>", -"input":"<a aA>", -"output":[["StartTag", "a", {"aa":""}]]}, - -{"description":"<a aB>", -"input":"<a aB>", -"output":[["StartTag", "a", {"ab":""}]]}, - -{"description":"<a aY>", -"input":"<a aY>", -"output":[["StartTag", "a", {"ay":""}]]}, - -{"description":"<a aZ>", -"input":"<a aZ>", -"output":[["StartTag", "a", {"az":""}]]}, - -{"description":"<a a[>", -"input":"<a a[>", -"output":[["StartTag", "a", {"a[":""}]]}, - -{"description":"<a a`>", -"input":"<a a`>", -"output":[["StartTag", "a", {"a`":""}]]}, - -{"description":"<a aa>", -"input":"<a aa>", -"output":[["StartTag", "a", {"aa":""}]]}, - -{"description":"<a ab>", -"input":"<a ab>", -"output":[["StartTag", "a", {"ab":""}]]}, - -{"description":"<a ay>", -"input":"<a ay>", -"output":[["StartTag", "a", {"ay":""}]]}, - -{"description":"<a az>", -"input":"<a az>", -"output":[["StartTag", "a", {"az":""}]]}, - -{"description":"<a a{>", -"input":"<a a{>", -"output":[["StartTag", "a", {"a{":""}]]}, - -{"description":"<a a\\uDBC0\\uDC00>", -"input":"<a a\uDBC0\uDC00>", -"output":[["StartTag", "a", {"a\uDBC0\uDC00":""}]]}, - -{"description":"<a b>", -"input":"<a b>", -"output":[["StartTag", "a", {"b":""}]]}, - -{"description":"<a y>", -"input":"<a y>", -"output":[["StartTag", "a", {"y":""}]]}, - -{"description":"<a z>", -"input":"<a z>", -"output":[["StartTag", "a", {"z":""}]]}, - -{"description":"<a {>", -"input":"<a {>", -"output":[["StartTag", "a", {"{":""}]]}, - -{"description":"<a \\uDBC0\\uDC00>", -"input":"<a \uDBC0\uDC00>", -"output":[["StartTag", "a", {"\uDBC0\uDC00":""}]]}, - -{"description":"<a!>", -"input":"<a!>", -"output":[["StartTag", "a!", {}]]}, - -{"description":"<a\">", -"input":"<a\">", -"output":[["StartTag", "a\"", {}]]}, - -{"description":"<a&>", -"input":"<a&>", -"output":[["StartTag", "a&", {}]]}, - -{"description":"<a'>", -"input":"<a'>", -"output":[["StartTag", "a'", {}]]}, - -{"description":"<a->", -"input":"<a->", -"output":[["StartTag", "a-", {}]]}, - -{"description":"<a.>", -"input":"<a.>", -"output":[["StartTag", "a.", {}]]}, - -{"description":"<a/>", -"input":"<a/>", -"output":[["StartTag", "a", {}, true]]}, - -{"description":"<a/\\u0000>", -"input":"<a/\u0000>", -"output":["ParseError", "ParseError", ["StartTag", "a", {"\uFFFD":""}]]}, - -{"description":"<a/\\u0009>", -"input":"<a/\u0009>", -"output":["ParseError", ["StartTag", "a", {}]]}, - -{"description":"<a/\\u000A>", -"input":"<a/\u000A>", -"output":["ParseError", ["StartTag", "a", {}]]}, - -{"description":"<a/\\u000B>", -"input":"<a/\u000B>", -"output":["ParseError", "ParseError", ["StartTag", "a", {"\u000B":""}]]}, - -{"description":"<a/\\u000C>", -"input":"<a/\u000C>", -"output":["ParseError", ["StartTag", "a", {}]]}, - -{"description":"<a/ >", -"input":"<a/ >", -"output":["ParseError", ["StartTag", "a", {}]]}, - -{"description":"<a/!>", -"input":"<a/!>", -"output":["ParseError", ["StartTag", "a", {"!":""}]]}, - -{"description":"<a/\">", -"input":"<a/\">", -"output":["ParseError", "ParseError", ["StartTag", "a", {"\"":""}]]}, - -{"description":"<a/&>", -"input":"<a/&>", -"output":["ParseError", ["StartTag", "a", {"&":""}]]}, - -{"description":"<a/'>", -"input":"<a/'>", -"output":["ParseError", "ParseError", ["StartTag", "a", {"'":""}]]}, - -{"description":"<a/->", -"input":"<a/->", -"output":["ParseError", ["StartTag", "a", {"-":""}]]}, - -{"description":"<a//>", -"input":"<a//>", -"output":["ParseError", ["StartTag", "a", {}, true]]}, - -{"description":"<a/0>", -"input":"<a/0>", -"output":["ParseError", ["StartTag", "a", {"0":""}]]}, - -{"description":"<a/1>", -"input":"<a/1>", -"output":["ParseError", ["StartTag", "a", {"1":""}]]}, - -{"description":"<a/9>", -"input":"<a/9>", -"output":["ParseError", ["StartTag", "a", {"9":""}]]}, - -{"description":"<a/<>", -"input":"<a/<>", -"output":["ParseError", "ParseError", ["StartTag", "a", {"<":""}]]}, - -{"description":"<a/=>", -"input":"<a/=>", -"output":["ParseError", "ParseError", ["StartTag", "a", {"=":""}]]}, - -{"description":"<a/>", -"input":"<a/>", -"output":[["StartTag", "a", {}, true]]}, - -{"description":"<a/?>", -"input":"<a/?>", -"output":["ParseError", ["StartTag", "a", {"?":""}]]}, - -{"description":"<a/@>", -"input":"<a/@>", -"output":["ParseError", ["StartTag", "a", {"@":""}]]}, - -{"description":"<a/A>", -"input":"<a/A>", -"output":["ParseError", ["StartTag", "a", {"a":""}]]}, - -{"description":"<a/B>", -"input":"<a/B>", -"output":["ParseError", ["StartTag", "a", {"b":""}]]}, - -{"description":"<a/Y>", -"input":"<a/Y>", -"output":["ParseError", ["StartTag", "a", {"y":""}]]}, - -{"description":"<a/Z>", -"input":"<a/Z>", -"output":["ParseError", ["StartTag", "a", {"z":""}]]}, - -{"description":"<a/`>", -"input":"<a/`>", -"output":["ParseError", ["StartTag", "a", {"`":""}]]}, - -{"description":"<a/a>", -"input":"<a/a>", -"output":["ParseError", ["StartTag", "a", {"a":""}]]}, - -{"description":"<a/b>", -"input":"<a/b>", -"output":["ParseError", ["StartTag", "a", {"b":""}]]}, - -{"description":"<a/y>", -"input":"<a/y>", -"output":["ParseError", ["StartTag", "a", {"y":""}]]}, - -{"description":"<a/z>", -"input":"<a/z>", -"output":["ParseError", ["StartTag", "a", {"z":""}]]}, - -{"description":"<a/{>", -"input":"<a/{>", -"output":["ParseError", ["StartTag", "a", {"{":""}]]}, - -{"description":"<a/\\uDBC0\\uDC00>", -"input":"<a/\uDBC0\uDC00>", -"output":["ParseError", ["StartTag", "a", {"\uDBC0\uDC00":""}]]}, - -{"description":"<a0>", -"input":"<a0>", -"output":[["StartTag", "a0", {}]]}, - -{"description":"<a1>", -"input":"<a1>", -"output":[["StartTag", "a1", {}]]}, - -{"description":"<a9>", -"input":"<a9>", -"output":[["StartTag", "a9", {}]]}, - -{"description":"<a<>", -"input":"<a<>", -"output":[["StartTag", "a<", {}]]}, - -{"description":"<a=>", -"input":"<a=>", -"output":[["StartTag", "a=", {}]]}, - -{"description":"<a>", -"input":"<a>", -"output":[["StartTag", "a", {}]]}, - -{"description":"<a?>", -"input":"<a?>", -"output":[["StartTag", "a?", {}]]}, - -{"description":"<a@>", -"input":"<a@>", -"output":[["StartTag", "a@", {}]]}, - -{"description":"<aA>", -"input":"<aA>", -"output":[["StartTag", "aa", {}]]}, - -{"description":"<aB>", -"input":"<aB>", -"output":[["StartTag", "ab", {}]]}, - -{"description":"<aY>", -"input":"<aY>", -"output":[["StartTag", "ay", {}]]}, - -{"description":"<aZ>", -"input":"<aZ>", -"output":[["StartTag", "az", {}]]}, - -{"description":"<a[>", -"input":"<a[>", -"output":[["StartTag", "a[", {}]]}, - -{"description":"<a`>", -"input":"<a`>", -"output":[["StartTag", "a`", {}]]}, - -{"description":"<aa>", -"input":"<aa>", -"output":[["StartTag", "aa", {}]]}, - -{"description":"<ab>", -"input":"<ab>", -"output":[["StartTag", "ab", {}]]}, - -{"description":"<ay>", -"input":"<ay>", -"output":[["StartTag", "ay", {}]]}, - -{"description":"<az>", -"input":"<az>", -"output":[["StartTag", "az", {}]]}, - -{"description":"<a{>", -"input":"<a{>", -"output":[["StartTag", "a{", {}]]}, - -{"description":"<a\\uDBC0\\uDC00>", -"input":"<a\uDBC0\uDC00>", -"output":[["StartTag", "a\uDBC0\uDC00", {}]]}, - -{"description":"<b>", -"input":"<b>", -"output":[["StartTag", "b", {}]]}, - -{"description":"<y>", -"input":"<y>", -"output":[["StartTag", "y", {}]]}, - -{"description":"<z>", -"input":"<z>", -"output":[["StartTag", "z", {}]]}, - -{"description":"<{", -"input":"<{", -"output":["ParseError", ["Character", "<{"]]}, - -{"description":"<\\uDBC0\\uDC00", -"input":"<\uDBC0\uDC00", -"output":["ParseError", ["Character", "<\uDBC0\uDC00"]]}, - -{"description":"=", -"input":"=", -"output":[["Character", "="]]}, - -{"description":">", -"input":">", -"output":[["Character", ">"]]}, - -{"description":"?", -"input":"?", -"output":[["Character", "?"]]}, - -{"description":"@", -"input":"@", -"output":[["Character", "@"]]}, - -{"description":"A", -"input":"A", -"output":[["Character", "A"]]}, - -{"description":"B", -"input":"B", -"output":[["Character", "B"]]}, - -{"description":"Y", -"input":"Y", -"output":[["Character", "Y"]]}, - -{"description":"Z", -"input":"Z", -"output":[["Character", "Z"]]}, - -{"description":"`", -"input":"`", -"output":[["Character", "`"]]}, - -{"description":"a", -"input":"a", -"output":[["Character", "a"]]}, - -{"description":"b", -"input":"b", -"output":[["Character", "b"]]}, - -{"description":"y", -"input":"y", -"output":[["Character", "y"]]}, - -{"description":"z", -"input":"z", -"output":[["Character", "z"]]}, - -{"description":"{", -"input":"{", -"output":[["Character", "{"]]}, - -{"description":"\\uDBC0\\uDC00", -"input":"\uDBC0\uDC00", -"output":[["Character", "\uDBC0\uDC00"]]} - -]} diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/test4.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/test4.test deleted file mode 100644 index 4be94b0c7e4..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/test4.test +++ /dev/null @@ -1,344 +0,0 @@ -{"tests": [ - -{"description":"< in attribute name", -"input":"<z/0 <>", -"output":["ParseError", "ParseError", ["StartTag", "z", {"0": "", "<": ""}]]}, - -{"description":"< in attribute value", -"input":"<z x=<>", -"output":["ParseError", ["StartTag", "z", {"x": "<"}]]}, - -{"description":"= in unquoted attribute value", -"input":"<z z=z=z>", -"output":["ParseError", ["StartTag", "z", {"z": "z=z"}]]}, - -{"description":"= attribute", -"input":"<z =>", -"output":["ParseError", ["StartTag", "z", {"=": ""}]]}, - -{"description":"== attribute", -"input":"<z ==>", -"output":["ParseError", "ParseError", ["StartTag", "z", {"=": ""}]]}, - -{"description":"=== attribute", -"input":"<z ===>", -"output":["ParseError", "ParseError", ["StartTag", "z", {"=": "="}]]}, - -{"description":"==== attribute", -"input":"<z ====>", -"output":["ParseError", "ParseError", "ParseError", ["StartTag", "z", {"=": "=="}]]}, - -{"description":"\" after ampersand in double-quoted attribute value", -"input":"<z z=\"&\">", -"output":[["StartTag", "z", {"z": "&"}]]}, - -{"description":"' after ampersand in double-quoted attribute value", -"input":"<z z=\"&'\">", -"output":[["StartTag", "z", {"z": "&'"}]]}, - -{"description":"' after ampersand in single-quoted attribute value", -"input":"<z z='&'>", -"output":[["StartTag", "z", {"z": "&"}]]}, - -{"description":"\" after ampersand in single-quoted attribute value", -"input":"<z z='&\"'>", -"output":[["StartTag", "z", {"z": "&\""}]]}, - -{"description":"Text after bogus character reference", -"input":"<z z='&xlink_xmlns;'>bar<z>", -"output":[["StartTag","z",{"z":"&xlink_xmlns;"}],["Character","bar"],["StartTag","z",{}]]}, - -{"description":"Text after hex character reference", -"input":"<z z='  foo'>bar<z>", -"output":[["StartTag","z",{"z":" foo"}],["Character","bar"],["StartTag","z",{}]]}, - -{"description":"Attribute name starting with \"", -"input":"<foo \"='bar'>", -"output":["ParseError", ["StartTag", "foo", {"\"": "bar"}]]}, - -{"description":"Attribute name starting with '", -"input":"<foo '='bar'>", -"output":["ParseError", ["StartTag", "foo", {"'": "bar"}]]}, - -{"description":"Attribute name containing \"", -"input":"<foo a\"b='bar'>", -"output":["ParseError", ["StartTag", "foo", {"a\"b": "bar"}]]}, - -{"description":"Attribute name containing '", -"input":"<foo a'b='bar'>", -"output":["ParseError", ["StartTag", "foo", {"a'b": "bar"}]]}, - -{"description":"Unquoted attribute value containing '", -"input":"<foo a=b'c>", -"output":["ParseError", ["StartTag", "foo", {"a": "b'c"}]]}, - -{"description":"Unquoted attribute value containing \"", -"input":"<foo a=b\"c>", -"output":["ParseError", ["StartTag", "foo", {"a": "b\"c"}]]}, - -{"description":"Double-quoted attribute value not followed by whitespace", -"input":"<foo a=\"b\"c>", -"output":["ParseError", ["StartTag", "foo", {"a": "b", "c": ""}]]}, - -{"description":"Single-quoted attribute value not followed by whitespace", -"input":"<foo a='b'c>", -"output":["ParseError", ["StartTag", "foo", {"a": "b", "c": ""}]]}, - -{"description":"Quoted attribute followed by permitted /", -"input":"<br a='b'/>", -"output":[["StartTag","br",{"a":"b"},true]]}, - -{"description":"Quoted attribute followed by non-permitted /", -"input":"<bar a='b'/>", -"output":[["StartTag","bar",{"a":"b"},true]]}, - -{"description":"CR EOF after doctype name", -"input":"<!doctype html \r", -"output":["ParseError", ["DOCTYPE", "html", null, null, false]]}, - -{"description":"CR EOF in tag name", -"input":"<z\r", -"output":["ParseError"]}, - -{"description":"Slash EOF in tag name", -"input":"<z/", -"output":["ParseError"]}, - -{"description":"Zero hex numeric entity", -"input":"�", -"output":["ParseError", "ParseError", ["Character", "\uFFFD"]]}, - -{"description":"Zero decimal numeric entity", -"input":"�", -"output":["ParseError", "ParseError", ["Character", "\uFFFD"]]}, - -{"description":"Zero-prefixed hex numeric entity", -"input":"A", -"output":[["Character", "A"]]}, - -{"description":"Zero-prefixed decimal numeric entity", -"input":"A", -"output":[["Character", "A"]]}, - -{"description":"Empty hex numeric entities", -"input":"&#x &#X ", -"output":["ParseError", ["Character", "&#x "], "ParseError", ["Character", "&#X "]]}, - -{"description":"Empty decimal numeric entities", -"input":"&# &#; ", -"output":["ParseError", ["Character", "&# "], "ParseError", ["Character", "&#; "]]}, - -{"description":"Non-BMP numeric entity", -"input":"𐀀", -"output":[["Character", "\uD800\uDC00"]]}, - -{"description":"Maximum non-BMP numeric entity", -"input":"", -"output":["ParseError", ["Character", "\uDBFF\uDFFF"]]}, - -{"description":"Above maximum numeric entity", -"input":"�", -"output":["ParseError", ["Character", "\uFFFD"]]}, - -{"description":"32-bit hex numeric entity", -"input":"�", -"output":["ParseError", ["Character", "\uFFFD"]]}, - -{"description":"33-bit hex numeric entity", -"input":"�", -"output":["ParseError", ["Character", "\uFFFD"]]}, - -{"description":"33-bit decimal numeric entity", -"input":"�", -"output":["ParseError", ["Character", "\uFFFD"]]}, - -{"description":"65-bit hex numeric entity", -"input":"�", -"output":["ParseError", ["Character", "\uFFFD"]]}, - -{"description":"65-bit decimal numeric entity", -"input":"�", -"output":["ParseError", ["Character", "\uFFFD"]]}, - -{"description":"Surrogate code point edge cases", -"input":"퟿����", -"output":[["Character", "\uD7FF"], "ParseError", ["Character", "\uFFFD"], "ParseError", ["Character", "\uFFFD"], "ParseError", ["Character", "\uFFFD"], "ParseError", ["Character", "\uFFFD\uE000"]]}, - -{"description":"Uppercase start tag name", -"input":"<X>", -"output":[["StartTag", "x", {}]]}, - -{"description":"Uppercase end tag name", -"input":"</X>", -"output":[["EndTag", "x"]]}, - -{"description":"Uppercase attribute name", -"input":"<x X>", -"output":[["StartTag", "x", { "x":"" }]]}, - -{"description":"Tag/attribute name case edge values", -"input":"<x@AZ[`az{ @AZ[`az{>", -"output":[["StartTag", "x@az[`az{", { "@az[`az{":"" }]]}, - -{"description":"Duplicate different-case attributes", -"input":"<x x=1 x=2 X=3>", -"output":["ParseError", "ParseError", ["StartTag", "x", { "x":"1" }]]}, - -{"description":"Uppercase close tag attributes", -"input":"</x X>", -"output":["ParseError", ["EndTag", "x"]]}, - -{"description":"Duplicate close tag attributes", -"input":"</x x x>", -"output":["ParseError", "ParseError", ["EndTag", "x"]]}, - -{"description":"Permitted slash", -"input":"<br/>", -"output":[["StartTag","br",{},true]]}, - -{"description":"Non-permitted slash", -"input":"<xr/>", -"output":[["StartTag","xr",{},true]]}, - -{"description":"Permitted slash but in close tag", -"input":"</br/>", -"output":["ParseError", ["EndTag", "br"]]}, - -{"description":"Doctype public case-sensitivity (1)", -"input":"<!DoCtYpE HtMl PuBlIc \"AbC\" \"XyZ\">", -"output":[["DOCTYPE", "html", "AbC", "XyZ", true]]}, - -{"description":"Doctype public case-sensitivity (2)", -"input":"<!dOcTyPe hTmL pUbLiC \"aBc\" \"xYz\">", -"output":[["DOCTYPE", "html", "aBc", "xYz", true]]}, - -{"description":"Doctype system case-sensitivity (1)", -"input":"<!DoCtYpE HtMl SyStEm \"XyZ\">", -"output":[["DOCTYPE", "html", null, "XyZ", true]]}, - -{"description":"Doctype system case-sensitivity (2)", -"input":"<!dOcTyPe hTmL sYsTeM \"xYz\">", -"output":[["DOCTYPE", "html", null, "xYz", true]]}, - -{"description":"U+0000 in lookahead region after non-matching character", -"input":"<!doc>\u0000", -"output":["ParseError", ["Comment", "doc"], "ParseError", ["Character", "\u0000"]], -"ignoreErrorOrder":true}, - -{"description":"U+0000 in lookahead region", -"input":"<!doc\u0000", -"output":["ParseError", ["Comment", "doc\uFFFD"]], -"ignoreErrorOrder":true}, - -{"description":"U+0080 in lookahead region", -"input":"<!doc\u0080", -"output":["ParseError", "ParseError", ["Comment", "doc\u0080"]], -"ignoreErrorOrder":true}, - -{"description":"U+FDD1 in lookahead region", -"input":"<!doc\uFDD1", -"output":["ParseError", "ParseError", ["Comment", "doc\uFDD1"]], -"ignoreErrorOrder":true}, - -{"description":"U+1FFFF in lookahead region", -"input":"<!doc\uD83F\uDFFF", -"output":["ParseError", "ParseError", ["Comment", "doc\uD83F\uDFFF"]], -"ignoreErrorOrder":true}, - -{"description":"CR followed by non-LF", -"input":"\r?", -"output":[["Character", "\n?"]]}, - -{"description":"CR at EOF", -"input":"\r", -"output":[["Character", "\n"]]}, - -{"description":"LF at EOF", -"input":"\n", -"output":[["Character", "\n"]]}, - -{"description":"CR LF", -"input":"\r\n", -"output":[["Character", "\n"]]}, - -{"description":"CR CR", -"input":"\r\r", -"output":[["Character", "\n\n"]]}, - -{"description":"LF LF", -"input":"\n\n", -"output":[["Character", "\n\n"]]}, - -{"description":"LF CR", -"input":"\n\r", -"output":[["Character", "\n\n"]]}, - -{"description":"text CR CR CR text", -"input":"text\r\r\rtext", -"output":[["Character", "text\n\n\ntext"]]}, - -{"description":"Doctype publik", -"input":"<!DOCTYPE html PUBLIK \"AbC\" \"XyZ\">", -"output":["ParseError", ["DOCTYPE", "html", null, null, false]]}, - -{"description":"Doctype publi", -"input":"<!DOCTYPE html PUBLI", -"output":["ParseError", ["DOCTYPE", "html", null, null, false]]}, - -{"description":"Doctype sistem", -"input":"<!DOCTYPE html SISTEM \"AbC\">", -"output":["ParseError", ["DOCTYPE", "html", null, null, false]]}, - -{"description":"Doctype sys", -"input":"<!DOCTYPE html SYS", -"output":["ParseError", ["DOCTYPE", "html", null, null, false]]}, - -{"description":"Doctype html x>text", -"input":"<!DOCTYPE html x>text", -"output":["ParseError", ["DOCTYPE", "html", null, null, false], ["Character", "text"]]}, - -{"description":"Grave accent in unquoted attribute", -"input":"<a a=aa`>", -"output":["ParseError", ["StartTag", "a", {"a":"aa`"}]]}, - -{"description":"EOF in tag name state ", -"input":"<a", -"output":["ParseError"]}, - -{"description":"EOF in tag name state", -"input":"<a", -"output":["ParseError"]}, - -{"description":"EOF in before attribute name state", -"input":"<a ", -"output":["ParseError"]}, - -{"description":"EOF in attribute name state", -"input":"<a a", -"output":["ParseError"]}, - -{"description":"EOF in after attribute name state", -"input":"<a a ", -"output":["ParseError"]}, - -{"description":"EOF in before attribute value state", -"input":"<a a =", -"output":["ParseError"]}, - -{"description":"EOF in attribute value (double quoted) state", -"input":"<a a =\"a", -"output":["ParseError"]}, - -{"description":"EOF in attribute value (single quoted) state", -"input":"<a a ='a", -"output":["ParseError"]}, - -{"description":"EOF in attribute value (unquoted) state", -"input":"<a a =a", -"output":["ParseError"]}, - -{"description":"EOF in after attribute value state", -"input":"<a a ='a'", -"output":["ParseError"]} - -]} diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/unicodeChars.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/unicodeChars.test deleted file mode 100644 index c7786682cbd..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/unicodeChars.test +++ /dev/null @@ -1,1295 +0,0 @@ -{"tests": [ - -{"description": "Invalid Unicode character U+0001", -"input": "\u0001", -"output": ["ParseError", ["Character", "\u0001"]]}, - -{"description": "Invalid Unicode character U+0002", -"input": "\u0002", -"output": ["ParseError", ["Character", "\u0002"]]}, - -{"description": "Invalid Unicode character U+0003", -"input": "\u0003", -"output": ["ParseError", ["Character", "\u0003"]]}, - -{"description": "Invalid Unicode character U+0004", -"input": "\u0004", -"output": ["ParseError", ["Character", "\u0004"]]}, - -{"description": "Invalid Unicode character U+0005", -"input": "\u0005", -"output": ["ParseError", ["Character", "\u0005"]]}, - -{"description": "Invalid Unicode character U+0006", -"input": "\u0006", -"output": ["ParseError", ["Character", "\u0006"]]}, - -{"description": "Invalid Unicode character U+0007", -"input": "\u0007", -"output": ["ParseError", ["Character", "\u0007"]]}, - -{"description": "Invalid Unicode character U+0008", -"input": "\u0008", -"output": ["ParseError", ["Character", "\u0008"]]}, - -{"description": "Invalid Unicode character U+000B", -"input": "\u000B", -"output": ["ParseError", ["Character", "\u000B"]]}, - -{"description": "Invalid Unicode character U+000E", -"input": "\u000E", -"output": ["ParseError", ["Character", "\u000E"]]}, - -{"description": "Invalid Unicode character U+000F", -"input": "\u000F", -"output": ["ParseError", ["Character", "\u000F"]]}, - -{"description": "Invalid Unicode character U+0010", -"input": "\u0010", -"output": ["ParseError", ["Character", "\u0010"]]}, - -{"description": "Invalid Unicode character U+0011", -"input": "\u0011", -"output": ["ParseError", ["Character", "\u0011"]]}, - -{"description": "Invalid Unicode character U+0012", -"input": "\u0012", -"output": ["ParseError", ["Character", "\u0012"]]}, - -{"description": "Invalid Unicode character U+0013", -"input": "\u0013", -"output": ["ParseError", ["Character", "\u0013"]]}, - -{"description": "Invalid Unicode character U+0014", -"input": "\u0014", -"output": ["ParseError", ["Character", "\u0014"]]}, - -{"description": "Invalid Unicode character U+0015", -"input": "\u0015", -"output": ["ParseError", ["Character", "\u0015"]]}, - -{"description": "Invalid Unicode character U+0016", -"input": "\u0016", -"output": ["ParseError", ["Character", "\u0016"]]}, - -{"description": "Invalid Unicode character U+0017", -"input": "\u0017", -"output": ["ParseError", ["Character", "\u0017"]]}, - -{"description": "Invalid Unicode character U+0018", -"input": "\u0018", -"output": ["ParseError", ["Character", "\u0018"]]}, - -{"description": "Invalid Unicode character U+0019", -"input": "\u0019", -"output": ["ParseError", ["Character", "\u0019"]]}, - -{"description": "Invalid Unicode character U+001A", -"input": "\u001A", -"output": ["ParseError", ["Character", "\u001A"]]}, - -{"description": "Invalid Unicode character U+001B", -"input": "\u001B", -"output": ["ParseError", ["Character", "\u001B"]]}, - -{"description": "Invalid Unicode character U+001C", -"input": "\u001C", -"output": ["ParseError", ["Character", "\u001C"]]}, - -{"description": "Invalid Unicode character U+001D", -"input": "\u001D", -"output": ["ParseError", ["Character", "\u001D"]]}, - -{"description": "Invalid Unicode character U+001E", -"input": "\u001E", -"output": ["ParseError", ["Character", "\u001E"]]}, - -{"description": "Invalid Unicode character U+001F", -"input": "\u001F", -"output": ["ParseError", ["Character", "\u001F"]]}, - -{"description": "Invalid Unicode character U+007F", -"input": "\u007F", -"output": ["ParseError", ["Character", "\u007F"]]}, - -{"description": "Invalid Unicode character U+FDD0", -"input": "\uFDD0", -"output": ["ParseError", ["Character", "\uFDD0"]]}, - -{"description": "Invalid Unicode character U+FDD1", -"input": "\uFDD1", -"output": ["ParseError", ["Character", "\uFDD1"]]}, - -{"description": "Invalid Unicode character U+FDD2", -"input": "\uFDD2", -"output": ["ParseError", ["Character", "\uFDD2"]]}, - -{"description": "Invalid Unicode character U+FDD3", -"input": "\uFDD3", -"output": ["ParseError", ["Character", "\uFDD3"]]}, - -{"description": "Invalid Unicode character U+FDD4", -"input": "\uFDD4", -"output": ["ParseError", ["Character", "\uFDD4"]]}, - -{"description": "Invalid Unicode character U+FDD5", -"input": "\uFDD5", -"output": ["ParseError", ["Character", "\uFDD5"]]}, - -{"description": "Invalid Unicode character U+FDD6", -"input": "\uFDD6", -"output": ["ParseError", ["Character", "\uFDD6"]]}, - -{"description": "Invalid Unicode character U+FDD7", -"input": "\uFDD7", -"output": ["ParseError", ["Character", "\uFDD7"]]}, - -{"description": "Invalid Unicode character U+FDD8", -"input": "\uFDD8", -"output": ["ParseError", ["Character", "\uFDD8"]]}, - -{"description": "Invalid Unicode character U+FDD9", -"input": "\uFDD9", -"output": ["ParseError", ["Character", "\uFDD9"]]}, - -{"description": "Invalid Unicode character U+FDDA", -"input": "\uFDDA", -"output": ["ParseError", ["Character", "\uFDDA"]]}, - -{"description": "Invalid Unicode character U+FDDB", -"input": "\uFDDB", -"output": ["ParseError", ["Character", "\uFDDB"]]}, - -{"description": "Invalid Unicode character U+FDDC", -"input": "\uFDDC", -"output": ["ParseError", ["Character", "\uFDDC"]]}, - -{"description": "Invalid Unicode character U+FDDD", -"input": "\uFDDD", -"output": ["ParseError", ["Character", "\uFDDD"]]}, - -{"description": "Invalid Unicode character U+FDDE", -"input": "\uFDDE", -"output": ["ParseError", ["Character", "\uFDDE"]]}, - -{"description": "Invalid Unicode character U+FDDF", -"input": "\uFDDF", -"output": ["ParseError", ["Character", "\uFDDF"]]}, - -{"description": "Invalid Unicode character U+FDE0", -"input": "\uFDE0", -"output": ["ParseError", ["Character", "\uFDE0"]]}, - -{"description": "Invalid Unicode character U+FDE1", -"input": "\uFDE1", -"output": ["ParseError", ["Character", "\uFDE1"]]}, - -{"description": "Invalid Unicode character U+FDE2", -"input": "\uFDE2", -"output": ["ParseError", ["Character", "\uFDE2"]]}, - -{"description": "Invalid Unicode character U+FDE3", -"input": "\uFDE3", -"output": ["ParseError", ["Character", "\uFDE3"]]}, - -{"description": "Invalid Unicode character U+FDE4", -"input": "\uFDE4", -"output": ["ParseError", ["Character", "\uFDE4"]]}, - -{"description": "Invalid Unicode character U+FDE5", -"input": "\uFDE5", -"output": ["ParseError", ["Character", "\uFDE5"]]}, - -{"description": "Invalid Unicode character U+FDE6", -"input": "\uFDE6", -"output": ["ParseError", ["Character", "\uFDE6"]]}, - -{"description": "Invalid Unicode character U+FDE7", -"input": "\uFDE7", -"output": ["ParseError", ["Character", "\uFDE7"]]}, - -{"description": "Invalid Unicode character U+FDE8", -"input": "\uFDE8", -"output": ["ParseError", ["Character", "\uFDE8"]]}, - -{"description": "Invalid Unicode character U+FDE9", -"input": "\uFDE9", -"output": ["ParseError", ["Character", "\uFDE9"]]}, - -{"description": "Invalid Unicode character U+FDEA", -"input": "\uFDEA", -"output": ["ParseError", ["Character", "\uFDEA"]]}, - -{"description": "Invalid Unicode character U+FDEB", -"input": "\uFDEB", -"output": ["ParseError", ["Character", "\uFDEB"]]}, - -{"description": "Invalid Unicode character U+FDEC", -"input": "\uFDEC", -"output": ["ParseError", ["Character", "\uFDEC"]]}, - -{"description": "Invalid Unicode character U+FDED", -"input": "\uFDED", -"output": ["ParseError", ["Character", "\uFDED"]]}, - -{"description": "Invalid Unicode character U+FDEE", -"input": "\uFDEE", -"output": ["ParseError", ["Character", "\uFDEE"]]}, - -{"description": "Invalid Unicode character U+FDEF", -"input": "\uFDEF", -"output": ["ParseError", ["Character", "\uFDEF"]]}, - -{"description": "Invalid Unicode character U+FFFE", -"input": "\uFFFE", -"output": ["ParseError", ["Character", "\uFFFE"]]}, - -{"description": "Invalid Unicode character U+FFFF", -"input": "\uFFFF", -"output": ["ParseError", ["Character", "\uFFFF"]]}, - -{"description": "Invalid Unicode character U+1FFFE", -"input": "\uD83F\uDFFE", -"output": ["ParseError", ["Character", "\uD83F\uDFFE"]]}, - -{"description": "Invalid Unicode character U+1FFFF", -"input": "\uD83F\uDFFF", -"output": ["ParseError", ["Character", "\uD83F\uDFFF"]]}, - -{"description": "Invalid Unicode character U+2FFFE", -"input": "\uD87F\uDFFE", -"output": ["ParseError", ["Character", "\uD87F\uDFFE"]]}, - -{"description": "Invalid Unicode character U+2FFFF", -"input": "\uD87F\uDFFF", -"output": ["ParseError", ["Character", "\uD87F\uDFFF"]]}, - -{"description": "Invalid Unicode character U+3FFFE", -"input": "\uD8BF\uDFFE", -"output": ["ParseError", ["Character", "\uD8BF\uDFFE"]]}, - -{"description": "Invalid Unicode character U+3FFFF", -"input": "\uD8BF\uDFFF", -"output": ["ParseError", ["Character", "\uD8BF\uDFFF"]]}, - -{"description": "Invalid Unicode character U+4FFFE", -"input": "\uD8FF\uDFFE", -"output": ["ParseError", ["Character", "\uD8FF\uDFFE"]]}, - -{"description": "Invalid Unicode character U+4FFFF", -"input": "\uD8FF\uDFFF", -"output": ["ParseError", ["Character", "\uD8FF\uDFFF"]]}, - -{"description": "Invalid Unicode character U+5FFFE", -"input": "\uD93F\uDFFE", -"output": ["ParseError", ["Character", "\uD93F\uDFFE"]]}, - -{"description": "Invalid Unicode character U+5FFFF", -"input": "\uD93F\uDFFF", -"output": ["ParseError", ["Character", "\uD93F\uDFFF"]]}, - -{"description": "Invalid Unicode character U+6FFFE", -"input": "\uD97F\uDFFE", -"output": ["ParseError", ["Character", "\uD97F\uDFFE"]]}, - -{"description": "Invalid Unicode character U+6FFFF", -"input": "\uD97F\uDFFF", -"output": ["ParseError", ["Character", "\uD97F\uDFFF"]]}, - -{"description": "Invalid Unicode character U+7FFFE", -"input": "\uD9BF\uDFFE", -"output": ["ParseError", ["Character", "\uD9BF\uDFFE"]]}, - -{"description": "Invalid Unicode character U+7FFFF", -"input": "\uD9BF\uDFFF", -"output": ["ParseError", ["Character", "\uD9BF\uDFFF"]]}, - -{"description": "Invalid Unicode character U+8FFFE", -"input": "\uD9FF\uDFFE", -"output": ["ParseError", ["Character", "\uD9FF\uDFFE"]]}, - -{"description": "Invalid Unicode character U+8FFFF", -"input": "\uD9FF\uDFFF", -"output": ["ParseError", ["Character", "\uD9FF\uDFFF"]]}, - -{"description": "Invalid Unicode character U+9FFFE", -"input": "\uDA3F\uDFFE", -"output": ["ParseError", ["Character", "\uDA3F\uDFFE"]]}, - -{"description": "Invalid Unicode character U+9FFFF", -"input": "\uDA3F\uDFFF", -"output": ["ParseError", ["Character", "\uDA3F\uDFFF"]]}, - -{"description": "Invalid Unicode character U+AFFFE", -"input": "\uDA7F\uDFFE", -"output": ["ParseError", ["Character", "\uDA7F\uDFFE"]]}, - -{"description": "Invalid Unicode character U+AFFFF", -"input": "\uDA7F\uDFFF", -"output": ["ParseError", ["Character", "\uDA7F\uDFFF"]]}, - -{"description": "Invalid Unicode character U+BFFFE", -"input": "\uDABF\uDFFE", -"output": ["ParseError", ["Character", "\uDABF\uDFFE"]]}, - -{"description": "Invalid Unicode character U+BFFFF", -"input": "\uDABF\uDFFF", -"output": ["ParseError", ["Character", "\uDABF\uDFFF"]]}, - -{"description": "Invalid Unicode character U+CFFFE", -"input": "\uDAFF\uDFFE", -"output": ["ParseError", ["Character", "\uDAFF\uDFFE"]]}, - -{"description": "Invalid Unicode character U+CFFFF", -"input": "\uDAFF\uDFFF", -"output": ["ParseError", ["Character", "\uDAFF\uDFFF"]]}, - -{"description": "Invalid Unicode character U+DFFFE", -"input": "\uDB3F\uDFFE", -"output": ["ParseError", ["Character", "\uDB3F\uDFFE"]]}, - -{"description": "Invalid Unicode character U+DFFFF", -"input": "\uDB3F\uDFFF", -"output": ["ParseError", ["Character", "\uDB3F\uDFFF"]]}, - -{"description": "Invalid Unicode character U+EFFFE", -"input": "\uDB7F\uDFFE", -"output": ["ParseError", ["Character", "\uDB7F\uDFFE"]]}, - -{"description": "Invalid Unicode character U+EFFFF", -"input": "\uDB7F\uDFFF", -"output": ["ParseError", ["Character", "\uDB7F\uDFFF"]]}, - -{"description": "Invalid Unicode character U+FFFFE", -"input": "\uDBBF\uDFFE", -"output": ["ParseError", ["Character", "\uDBBF\uDFFE"]]}, - -{"description": "Invalid Unicode character U+FFFFF", -"input": "\uDBBF\uDFFF", -"output": ["ParseError", ["Character", "\uDBBF\uDFFF"]]}, - -{"description": "Invalid Unicode character U+10FFFE", -"input": "\uDBFF\uDFFE", -"output": ["ParseError", ["Character", "\uDBFF\uDFFE"]]}, - -{"description": "Invalid Unicode character U+10FFFF", -"input": "\uDBFF\uDFFF", -"output": ["ParseError", ["Character", "\uDBFF\uDFFF"]]}, - -{"description": "Valid Unicode character U+0009", -"input": "\u0009", -"output": [["Character", "\u0009"]]}, - -{"description": "Valid Unicode character U+000A", -"input": "\u000A", -"output": [["Character", "\u000A"]]}, - -{"description": "Valid Unicode character U+0020", -"input": "\u0020", -"output": [["Character", "\u0020"]]}, - -{"description": "Valid Unicode character U+0021", -"input": "\u0021", -"output": [["Character", "\u0021"]]}, - -{"description": "Valid Unicode character U+0022", -"input": "\u0022", -"output": [["Character", "\u0022"]]}, - -{"description": "Valid Unicode character U+0023", -"input": "\u0023", -"output": [["Character", "\u0023"]]}, - -{"description": "Valid Unicode character U+0024", -"input": "\u0024", -"output": [["Character", "\u0024"]]}, - -{"description": "Valid Unicode character U+0025", -"input": "\u0025", -"output": [["Character", "\u0025"]]}, - -{"description": "Valid Unicode character U+0026", -"input": "\u0026", -"output": [["Character", "\u0026"]]}, - -{"description": "Valid Unicode character U+0027", -"input": "\u0027", -"output": [["Character", "\u0027"]]}, - -{"description": "Valid Unicode character U+0028", -"input": "\u0028", -"output": [["Character", "\u0028"]]}, - -{"description": "Valid Unicode character U+0029", -"input": "\u0029", -"output": [["Character", "\u0029"]]}, - -{"description": "Valid Unicode character U+002A", -"input": "\u002A", -"output": [["Character", "\u002A"]]}, - -{"description": "Valid Unicode character U+002B", -"input": "\u002B", -"output": [["Character", "\u002B"]]}, - -{"description": "Valid Unicode character U+002C", -"input": "\u002C", -"output": [["Character", "\u002C"]]}, - -{"description": "Valid Unicode character U+002D", -"input": "\u002D", -"output": [["Character", "\u002D"]]}, - -{"description": "Valid Unicode character U+002E", -"input": "\u002E", -"output": [["Character", "\u002E"]]}, - -{"description": "Valid Unicode character U+002F", -"input": "\u002F", -"output": [["Character", "\u002F"]]}, - -{"description": "Valid Unicode character U+0030", -"input": "\u0030", -"output": [["Character", "\u0030"]]}, - -{"description": "Valid Unicode character U+0031", -"input": "\u0031", -"output": [["Character", "\u0031"]]}, - -{"description": "Valid Unicode character U+0032", -"input": "\u0032", -"output": [["Character", "\u0032"]]}, - -{"description": "Valid Unicode character U+0033", -"input": "\u0033", -"output": [["Character", "\u0033"]]}, - -{"description": "Valid Unicode character U+0034", -"input": "\u0034", -"output": [["Character", "\u0034"]]}, - -{"description": "Valid Unicode character U+0035", -"input": "\u0035", -"output": [["Character", "\u0035"]]}, - -{"description": "Valid Unicode character U+0036", -"input": "\u0036", -"output": [["Character", "\u0036"]]}, - -{"description": "Valid Unicode character U+0037", -"input": "\u0037", -"output": [["Character", "\u0037"]]}, - -{"description": "Valid Unicode character U+0038", -"input": "\u0038", -"output": [["Character", "\u0038"]]}, - -{"description": "Valid Unicode character U+0039", -"input": "\u0039", -"output": [["Character", "\u0039"]]}, - -{"description": "Valid Unicode character U+003A", -"input": "\u003A", -"output": [["Character", "\u003A"]]}, - -{"description": "Valid Unicode character U+003B", -"input": "\u003B", -"output": [["Character", "\u003B"]]}, - -{"description": "Valid Unicode character U+003D", -"input": "\u003D", -"output": [["Character", "\u003D"]]}, - -{"description": "Valid Unicode character U+003E", -"input": "\u003E", -"output": [["Character", "\u003E"]]}, - -{"description": "Valid Unicode character U+003F", -"input": "\u003F", -"output": [["Character", "\u003F"]]}, - -{"description": "Valid Unicode character U+0040", -"input": "\u0040", -"output": [["Character", "\u0040"]]}, - -{"description": "Valid Unicode character U+0041", -"input": "\u0041", -"output": [["Character", "\u0041"]]}, - -{"description": "Valid Unicode character U+0042", -"input": "\u0042", -"output": [["Character", "\u0042"]]}, - -{"description": "Valid Unicode character U+0043", -"input": "\u0043", -"output": [["Character", "\u0043"]]}, - -{"description": "Valid Unicode character U+0044", -"input": "\u0044", -"output": [["Character", "\u0044"]]}, - -{"description": "Valid Unicode character U+0045", -"input": "\u0045", -"output": [["Character", "\u0045"]]}, - -{"description": "Valid Unicode character U+0046", -"input": "\u0046", -"output": [["Character", "\u0046"]]}, - -{"description": "Valid Unicode character U+0047", -"input": "\u0047", -"output": [["Character", "\u0047"]]}, - -{"description": "Valid Unicode character U+0048", -"input": "\u0048", -"output": [["Character", "\u0048"]]}, - -{"description": "Valid Unicode character U+0049", -"input": "\u0049", -"output": [["Character", "\u0049"]]}, - -{"description": "Valid Unicode character U+004A", -"input": "\u004A", -"output": [["Character", "\u004A"]]}, - -{"description": "Valid Unicode character U+004B", -"input": "\u004B", -"output": [["Character", "\u004B"]]}, - -{"description": "Valid Unicode character U+004C", -"input": "\u004C", -"output": [["Character", "\u004C"]]}, - -{"description": "Valid Unicode character U+004D", -"input": "\u004D", -"output": [["Character", "\u004D"]]}, - -{"description": "Valid Unicode character U+004E", -"input": "\u004E", -"output": [["Character", "\u004E"]]}, - -{"description": "Valid Unicode character U+004F", -"input": "\u004F", -"output": [["Character", "\u004F"]]}, - -{"description": "Valid Unicode character U+0050", -"input": "\u0050", -"output": [["Character", "\u0050"]]}, - -{"description": "Valid Unicode character U+0051", -"input": "\u0051", -"output": [["Character", "\u0051"]]}, - -{"description": "Valid Unicode character U+0052", -"input": "\u0052", -"output": [["Character", "\u0052"]]}, - -{"description": "Valid Unicode character U+0053", -"input": "\u0053", -"output": [["Character", "\u0053"]]}, - -{"description": "Valid Unicode character U+0054", -"input": "\u0054", -"output": [["Character", "\u0054"]]}, - -{"description": "Valid Unicode character U+0055", -"input": "\u0055", -"output": [["Character", "\u0055"]]}, - -{"description": "Valid Unicode character U+0056", -"input": "\u0056", -"output": [["Character", "\u0056"]]}, - -{"description": "Valid Unicode character U+0057", -"input": "\u0057", -"output": [["Character", "\u0057"]]}, - -{"description": "Valid Unicode character U+0058", -"input": "\u0058", -"output": [["Character", "\u0058"]]}, - -{"description": "Valid Unicode character U+0059", -"input": "\u0059", -"output": [["Character", "\u0059"]]}, - -{"description": "Valid Unicode character U+005A", -"input": "\u005A", -"output": [["Character", "\u005A"]]}, - -{"description": "Valid Unicode character U+005B", -"input": "\u005B", -"output": [["Character", "\u005B"]]}, - -{"description": "Valid Unicode character U+005C", -"input": "\u005C", -"output": [["Character", "\u005C"]]}, - -{"description": "Valid Unicode character U+005D", -"input": "\u005D", -"output": [["Character", "\u005D"]]}, - -{"description": "Valid Unicode character U+005E", -"input": "\u005E", -"output": [["Character", "\u005E"]]}, - -{"description": "Valid Unicode character U+005F", -"input": "\u005F", -"output": [["Character", "\u005F"]]}, - -{"description": "Valid Unicode character U+0060", -"input": "\u0060", -"output": [["Character", "\u0060"]]}, - -{"description": "Valid Unicode character U+0061", -"input": "\u0061", -"output": [["Character", "\u0061"]]}, - -{"description": "Valid Unicode character U+0062", -"input": "\u0062", -"output": [["Character", "\u0062"]]}, - -{"description": "Valid Unicode character U+0063", -"input": "\u0063", -"output": [["Character", "\u0063"]]}, - -{"description": "Valid Unicode character U+0064", -"input": "\u0064", -"output": [["Character", "\u0064"]]}, - -{"description": "Valid Unicode character U+0065", -"input": "\u0065", -"output": [["Character", "\u0065"]]}, - -{"description": "Valid Unicode character U+0066", -"input": "\u0066", -"output": [["Character", "\u0066"]]}, - -{"description": "Valid Unicode character U+0067", -"input": "\u0067", -"output": [["Character", "\u0067"]]}, - -{"description": "Valid Unicode character U+0068", -"input": "\u0068", -"output": [["Character", "\u0068"]]}, - -{"description": "Valid Unicode character U+0069", -"input": "\u0069", -"output": [["Character", "\u0069"]]}, - -{"description": "Valid Unicode character U+006A", -"input": "\u006A", -"output": [["Character", "\u006A"]]}, - -{"description": "Valid Unicode character U+006B", -"input": "\u006B", -"output": [["Character", "\u006B"]]}, - -{"description": "Valid Unicode character U+006C", -"input": "\u006C", -"output": [["Character", "\u006C"]]}, - -{"description": "Valid Unicode character U+006D", -"input": "\u006D", -"output": [["Character", "\u006D"]]}, - -{"description": "Valid Unicode character U+006E", -"input": "\u006E", -"output": [["Character", "\u006E"]]}, - -{"description": "Valid Unicode character U+006F", -"input": "\u006F", -"output": [["Character", "\u006F"]]}, - -{"description": "Valid Unicode character U+0070", -"input": "\u0070", -"output": [["Character", "\u0070"]]}, - -{"description": "Valid Unicode character U+0071", -"input": "\u0071", -"output": [["Character", "\u0071"]]}, - -{"description": "Valid Unicode character U+0072", -"input": "\u0072", -"output": [["Character", "\u0072"]]}, - -{"description": "Valid Unicode character U+0073", -"input": "\u0073", -"output": [["Character", "\u0073"]]}, - -{"description": "Valid Unicode character U+0074", -"input": "\u0074", -"output": [["Character", "\u0074"]]}, - -{"description": "Valid Unicode character U+0075", -"input": "\u0075", -"output": [["Character", "\u0075"]]}, - -{"description": "Valid Unicode character U+0076", -"input": "\u0076", -"output": [["Character", "\u0076"]]}, - -{"description": "Valid Unicode character U+0077", -"input": "\u0077", -"output": [["Character", "\u0077"]]}, - -{"description": "Valid Unicode character U+0078", -"input": "\u0078", -"output": [["Character", "\u0078"]]}, - -{"description": "Valid Unicode character U+0079", -"input": "\u0079", -"output": [["Character", "\u0079"]]}, - -{"description": "Valid Unicode character U+007A", -"input": "\u007A", -"output": [["Character", "\u007A"]]}, - -{"description": "Valid Unicode character U+007B", -"input": "\u007B", -"output": [["Character", "\u007B"]]}, - -{"description": "Valid Unicode character U+007C", -"input": "\u007C", -"output": [["Character", "\u007C"]]}, - -{"description": "Valid Unicode character U+007D", -"input": "\u007D", -"output": [["Character", "\u007D"]]}, - -{"description": "Valid Unicode character U+007E", -"input": "\u007E", -"output": [["Character", "\u007E"]]}, - -{"description": "Valid Unicode character U+00A0", -"input": "\u00A0", -"output": [["Character", "\u00A0"]]}, - -{"description": "Valid Unicode character U+00A1", -"input": "\u00A1", -"output": [["Character", "\u00A1"]]}, - -{"description": "Valid Unicode character U+00A2", -"input": "\u00A2", -"output": [["Character", "\u00A2"]]}, - -{"description": "Valid Unicode character U+00A3", -"input": "\u00A3", -"output": [["Character", "\u00A3"]]}, - -{"description": "Valid Unicode character U+00A4", -"input": "\u00A4", -"output": [["Character", "\u00A4"]]}, - -{"description": "Valid Unicode character U+00A5", -"input": "\u00A5", -"output": [["Character", "\u00A5"]]}, - -{"description": "Valid Unicode character U+00A6", -"input": "\u00A6", -"output": [["Character", "\u00A6"]]}, - -{"description": "Valid Unicode character U+00A7", -"input": "\u00A7", -"output": [["Character", "\u00A7"]]}, - -{"description": "Valid Unicode character U+00A8", -"input": "\u00A8", -"output": [["Character", "\u00A8"]]}, - -{"description": "Valid Unicode character U+00A9", -"input": "\u00A9", -"output": [["Character", "\u00A9"]]}, - -{"description": "Valid Unicode character U+00AA", -"input": "\u00AA", -"output": [["Character", "\u00AA"]]}, - -{"description": "Valid Unicode character U+00AB", -"input": "\u00AB", -"output": [["Character", "\u00AB"]]}, - -{"description": "Valid Unicode character U+00AC", -"input": "\u00AC", -"output": [["Character", "\u00AC"]]}, - -{"description": "Valid Unicode character U+00AD", -"input": "\u00AD", -"output": [["Character", "\u00AD"]]}, - -{"description": "Valid Unicode character U+00AE", -"input": "\u00AE", -"output": [["Character", "\u00AE"]]}, - -{"description": "Valid Unicode character U+00AF", -"input": "\u00AF", -"output": [["Character", "\u00AF"]]}, - -{"description": "Valid Unicode character U+00B0", -"input": "\u00B0", -"output": [["Character", "\u00B0"]]}, - -{"description": "Valid Unicode character U+00B1", -"input": "\u00B1", -"output": [["Character", "\u00B1"]]}, - -{"description": "Valid Unicode character U+00B2", -"input": "\u00B2", -"output": [["Character", "\u00B2"]]}, - -{"description": "Valid Unicode character U+00B3", -"input": "\u00B3", -"output": [["Character", "\u00B3"]]}, - -{"description": "Valid Unicode character U+00B4", -"input": "\u00B4", -"output": [["Character", "\u00B4"]]}, - -{"description": "Valid Unicode character U+00B5", -"input": "\u00B5", -"output": [["Character", "\u00B5"]]}, - -{"description": "Valid Unicode character U+00B6", -"input": "\u00B6", -"output": [["Character", "\u00B6"]]}, - -{"description": "Valid Unicode character U+00B7", -"input": "\u00B7", -"output": [["Character", "\u00B7"]]}, - -{"description": "Valid Unicode character U+00B8", -"input": "\u00B8", -"output": [["Character", "\u00B8"]]}, - -{"description": "Valid Unicode character U+00B9", -"input": "\u00B9", -"output": [["Character", "\u00B9"]]}, - -{"description": "Valid Unicode character U+00BA", -"input": "\u00BA", -"output": [["Character", "\u00BA"]]}, - -{"description": "Valid Unicode character U+00BB", -"input": "\u00BB", -"output": [["Character", "\u00BB"]]}, - -{"description": "Valid Unicode character U+00BC", -"input": "\u00BC", -"output": [["Character", "\u00BC"]]}, - -{"description": "Valid Unicode character U+00BD", -"input": "\u00BD", -"output": [["Character", "\u00BD"]]}, - -{"description": "Valid Unicode character U+00BE", -"input": "\u00BE", -"output": [["Character", "\u00BE"]]}, - -{"description": "Valid Unicode character U+00BF", -"input": "\u00BF", -"output": [["Character", "\u00BF"]]}, - -{"description": "Valid Unicode character U+00C0", -"input": "\u00C0", -"output": [["Character", "\u00C0"]]}, - -{"description": "Valid Unicode character U+00C1", -"input": "\u00C1", -"output": [["Character", "\u00C1"]]}, - -{"description": "Valid Unicode character U+00C2", -"input": "\u00C2", -"output": [["Character", "\u00C2"]]}, - -{"description": "Valid Unicode character U+00C3", -"input": "\u00C3", -"output": [["Character", "\u00C3"]]}, - -{"description": "Valid Unicode character U+00C4", -"input": "\u00C4", -"output": [["Character", "\u00C4"]]}, - -{"description": "Valid Unicode character U+00C5", -"input": "\u00C5", -"output": [["Character", "\u00C5"]]}, - -{"description": "Valid Unicode character U+00C6", -"input": "\u00C6", -"output": [["Character", "\u00C6"]]}, - -{"description": "Valid Unicode character U+00C7", -"input": "\u00C7", -"output": [["Character", "\u00C7"]]}, - -{"description": "Valid Unicode character U+00C8", -"input": "\u00C8", -"output": [["Character", "\u00C8"]]}, - -{"description": "Valid Unicode character U+00C9", -"input": "\u00C9", -"output": [["Character", "\u00C9"]]}, - -{"description": "Valid Unicode character U+00CA", -"input": "\u00CA", -"output": [["Character", "\u00CA"]]}, - -{"description": "Valid Unicode character U+00CB", -"input": "\u00CB", -"output": [["Character", "\u00CB"]]}, - -{"description": "Valid Unicode character U+00CC", -"input": "\u00CC", -"output": [["Character", "\u00CC"]]}, - -{"description": "Valid Unicode character U+00CD", -"input": "\u00CD", -"output": [["Character", "\u00CD"]]}, - -{"description": "Valid Unicode character U+00CE", -"input": "\u00CE", -"output": [["Character", "\u00CE"]]}, - -{"description": "Valid Unicode character U+00CF", -"input": "\u00CF", -"output": [["Character", "\u00CF"]]}, - -{"description": "Valid Unicode character U+00D0", -"input": "\u00D0", -"output": [["Character", "\u00D0"]]}, - -{"description": "Valid Unicode character U+00D1", -"input": "\u00D1", -"output": [["Character", "\u00D1"]]}, - -{"description": "Valid Unicode character U+00D2", -"input": "\u00D2", -"output": [["Character", "\u00D2"]]}, - -{"description": "Valid Unicode character U+00D3", -"input": "\u00D3", -"output": [["Character", "\u00D3"]]}, - -{"description": "Valid Unicode character U+00D4", -"input": "\u00D4", -"output": [["Character", "\u00D4"]]}, - -{"description": "Valid Unicode character U+00D5", -"input": "\u00D5", -"output": [["Character", "\u00D5"]]}, - -{"description": "Valid Unicode character U+00D6", -"input": "\u00D6", -"output": [["Character", "\u00D6"]]}, - -{"description": "Valid Unicode character U+00D7", -"input": "\u00D7", -"output": [["Character", "\u00D7"]]}, - -{"description": "Valid Unicode character U+00D8", -"input": "\u00D8", -"output": [["Character", "\u00D8"]]}, - -{"description": "Valid Unicode character U+00D9", -"input": "\u00D9", -"output": [["Character", "\u00D9"]]}, - -{"description": "Valid Unicode character U+00DA", -"input": "\u00DA", -"output": [["Character", "\u00DA"]]}, - -{"description": "Valid Unicode character U+00DB", -"input": "\u00DB", -"output": [["Character", "\u00DB"]]}, - -{"description": "Valid Unicode character U+00DC", -"input": "\u00DC", -"output": [["Character", "\u00DC"]]}, - -{"description": "Valid Unicode character U+00DD", -"input": "\u00DD", -"output": [["Character", "\u00DD"]]}, - -{"description": "Valid Unicode character U+00DE", -"input": "\u00DE", -"output": [["Character", "\u00DE"]]}, - -{"description": "Valid Unicode character U+00DF", -"input": "\u00DF", -"output": [["Character", "\u00DF"]]}, - -{"description": "Valid Unicode character U+00E0", -"input": "\u00E0", -"output": [["Character", "\u00E0"]]}, - -{"description": "Valid Unicode character U+00E1", -"input": "\u00E1", -"output": [["Character", "\u00E1"]]}, - -{"description": "Valid Unicode character U+00E2", -"input": "\u00E2", -"output": [["Character", "\u00E2"]]}, - -{"description": "Valid Unicode character U+00E3", -"input": "\u00E3", -"output": [["Character", "\u00E3"]]}, - -{"description": "Valid Unicode character U+00E4", -"input": "\u00E4", -"output": [["Character", "\u00E4"]]}, - -{"description": "Valid Unicode character U+00E5", -"input": "\u00E5", -"output": [["Character", "\u00E5"]]}, - -{"description": "Valid Unicode character U+00E6", -"input": "\u00E6", -"output": [["Character", "\u00E6"]]}, - -{"description": "Valid Unicode character U+00E7", -"input": "\u00E7", -"output": [["Character", "\u00E7"]]}, - -{"description": "Valid Unicode character U+00E8", -"input": "\u00E8", -"output": [["Character", "\u00E8"]]}, - -{"description": "Valid Unicode character U+00E9", -"input": "\u00E9", -"output": [["Character", "\u00E9"]]}, - -{"description": "Valid Unicode character U+00EA", -"input": "\u00EA", -"output": [["Character", "\u00EA"]]}, - -{"description": "Valid Unicode character U+00EB", -"input": "\u00EB", -"output": [["Character", "\u00EB"]]}, - -{"description": "Valid Unicode character U+00EC", -"input": "\u00EC", -"output": [["Character", "\u00EC"]]}, - -{"description": "Valid Unicode character U+00ED", -"input": "\u00ED", -"output": [["Character", "\u00ED"]]}, - -{"description": "Valid Unicode character U+00EE", -"input": "\u00EE", -"output": [["Character", "\u00EE"]]}, - -{"description": "Valid Unicode character U+00EF", -"input": "\u00EF", -"output": [["Character", "\u00EF"]]}, - -{"description": "Valid Unicode character U+00F0", -"input": "\u00F0", -"output": [["Character", "\u00F0"]]}, - -{"description": "Valid Unicode character U+00F1", -"input": "\u00F1", -"output": [["Character", "\u00F1"]]}, - -{"description": "Valid Unicode character U+00F2", -"input": "\u00F2", -"output": [["Character", "\u00F2"]]}, - -{"description": "Valid Unicode character U+00F3", -"input": "\u00F3", -"output": [["Character", "\u00F3"]]}, - -{"description": "Valid Unicode character U+00F4", -"input": "\u00F4", -"output": [["Character", "\u00F4"]]}, - -{"description": "Valid Unicode character U+00F5", -"input": "\u00F5", -"output": [["Character", "\u00F5"]]}, - -{"description": "Valid Unicode character U+00F6", -"input": "\u00F6", -"output": [["Character", "\u00F6"]]}, - -{"description": "Valid Unicode character U+00F7", -"input": "\u00F7", -"output": [["Character", "\u00F7"]]}, - -{"description": "Valid Unicode character U+00F8", -"input": "\u00F8", -"output": [["Character", "\u00F8"]]}, - -{"description": "Valid Unicode character U+00F9", -"input": "\u00F9", -"output": [["Character", "\u00F9"]]}, - -{"description": "Valid Unicode character U+00FA", -"input": "\u00FA", -"output": [["Character", "\u00FA"]]}, - -{"description": "Valid Unicode character U+00FB", -"input": "\u00FB", -"output": [["Character", "\u00FB"]]}, - -{"description": "Valid Unicode character U+00FC", -"input": "\u00FC", -"output": [["Character", "\u00FC"]]}, - -{"description": "Valid Unicode character U+00FD", -"input": "\u00FD", -"output": [["Character", "\u00FD"]]}, - -{"description": "Valid Unicode character U+00FE", -"input": "\u00FE", -"output": [["Character", "\u00FE"]]}, - -{"description": "Valid Unicode character U+00FF", -"input": "\u00FF", -"output": [["Character", "\u00FF"]]}, - -{"description": "Valid Unicode character U+D7FF", -"input": "\uD7FF", -"output": [["Character", "\uD7FF"]]}, - -{"description": "Valid Unicode character U+E000", -"input": "\uE000", -"output": [["Character", "\uE000"]]}, - -{"description": "Valid Unicode character U+FDCF", -"input": "\uFDCF", -"output": [["Character", "\uFDCF"]]}, - -{"description": "Valid Unicode character U+FDF0", -"input": "\uFDF0", -"output": [["Character", "\uFDF0"]]}, - -{"description": "Valid Unicode character U+FFFD", -"input": "\uFFFD", -"output": [["Character", "\uFFFD"]]}, - -{"description": "Valid Unicode character U+10000", -"input": "\uD800\uDC00", -"output": [["Character", "\uD800\uDC00"]]}, - -{"description": "Valid Unicode character U+1FFFD", -"input": "\uD83F\uDFFD", -"output": [["Character", "\uD83F\uDFFD"]]}, - -{"description": "Valid Unicode character U+20000", -"input": "\uD840\uDC00", -"output": [["Character", "\uD840\uDC00"]]}, - -{"description": "Valid Unicode character U+2FFFD", -"input": "\uD87F\uDFFD", -"output": [["Character", "\uD87F\uDFFD"]]}, - -{"description": "Valid Unicode character U+30000", -"input": "\uD880\uDC00", -"output": [["Character", "\uD880\uDC00"]]}, - -{"description": "Valid Unicode character U+3FFFD", -"input": "\uD8BF\uDFFD", -"output": [["Character", "\uD8BF\uDFFD"]]}, - -{"description": "Valid Unicode character U+40000", -"input": "\uD8C0\uDC00", -"output": [["Character", "\uD8C0\uDC00"]]}, - -{"description": "Valid Unicode character U+4FFFD", -"input": "\uD8FF\uDFFD", -"output": [["Character", "\uD8FF\uDFFD"]]}, - -{"description": "Valid Unicode character U+50000", -"input": "\uD900\uDC00", -"output": [["Character", "\uD900\uDC00"]]}, - -{"description": "Valid Unicode character U+5FFFD", -"input": "\uD93F\uDFFD", -"output": [["Character", "\uD93F\uDFFD"]]}, - -{"description": "Valid Unicode character U+60000", -"input": "\uD940\uDC00", -"output": [["Character", "\uD940\uDC00"]]}, - -{"description": "Valid Unicode character U+6FFFD", -"input": "\uD97F\uDFFD", -"output": [["Character", "\uD97F\uDFFD"]]}, - -{"description": "Valid Unicode character U+70000", -"input": "\uD980\uDC00", -"output": [["Character", "\uD980\uDC00"]]}, - -{"description": "Valid Unicode character U+7FFFD", -"input": "\uD9BF\uDFFD", -"output": [["Character", "\uD9BF\uDFFD"]]}, - -{"description": "Valid Unicode character U+80000", -"input": "\uD9C0\uDC00", -"output": [["Character", "\uD9C0\uDC00"]]}, - -{"description": "Valid Unicode character U+8FFFD", -"input": "\uD9FF\uDFFD", -"output": [["Character", "\uD9FF\uDFFD"]]}, - -{"description": "Valid Unicode character U+90000", -"input": "\uDA00\uDC00", -"output": [["Character", "\uDA00\uDC00"]]}, - -{"description": "Valid Unicode character U+9FFFD", -"input": "\uDA3F\uDFFD", -"output": [["Character", "\uDA3F\uDFFD"]]}, - -{"description": "Valid Unicode character U+A0000", -"input": "\uDA40\uDC00", -"output": [["Character", "\uDA40\uDC00"]]}, - -{"description": "Valid Unicode character U+AFFFD", -"input": "\uDA7F\uDFFD", -"output": [["Character", "\uDA7F\uDFFD"]]}, - -{"description": "Valid Unicode character U+B0000", -"input": "\uDA80\uDC00", -"output": [["Character", "\uDA80\uDC00"]]}, - -{"description": "Valid Unicode character U+BFFFD", -"input": "\uDABF\uDFFD", -"output": [["Character", "\uDABF\uDFFD"]]}, - -{"description": "Valid Unicode character U+C0000", -"input": "\uDAC0\uDC00", -"output": [["Character", "\uDAC0\uDC00"]]}, - -{"description": "Valid Unicode character U+CFFFD", -"input": "\uDAFF\uDFFD", -"output": [["Character", "\uDAFF\uDFFD"]]}, - -{"description": "Valid Unicode character U+D0000", -"input": "\uDB00\uDC00", -"output": [["Character", "\uDB00\uDC00"]]}, - -{"description": "Valid Unicode character U+DFFFD", -"input": "\uDB3F\uDFFD", -"output": [["Character", "\uDB3F\uDFFD"]]}, - -{"description": "Valid Unicode character U+E0000", -"input": "\uDB40\uDC00", -"output": [["Character", "\uDB40\uDC00"]]}, - -{"description": "Valid Unicode character U+EFFFD", -"input": "\uDB7F\uDFFD", -"output": [["Character", "\uDB7F\uDFFD"]]}, - -{"description": "Valid Unicode character U+F0000", -"input": "\uDB80\uDC00", -"output": [["Character", "\uDB80\uDC00"]]}, - -{"description": "Valid Unicode character U+FFFFD", -"input": "\uDBBF\uDFFD", -"output": [["Character", "\uDBBF\uDFFD"]]}, - -{"description": "Valid Unicode character U+100000", -"input": "\uDBC0\uDC00", -"output": [["Character", "\uDBC0\uDC00"]]}, - -{"description": "Valid Unicode character U+10FFFD", -"input": "\uDBFF\uDFFD", -"output": [["Character", "\uDBFF\uDFFD"]]} - -]} diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/unicodeCharsProblematic.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/unicodeCharsProblematic.test deleted file mode 100644 index 8fb54c411f7..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/unicodeCharsProblematic.test +++ /dev/null @@ -1,27 +0,0 @@ -{"tests" : [ -{"description": "Invalid Unicode character U+DFFF", -"doubleEscaped":true, -"input": "\\uDFFF", -"output":["ParseError", ["Character", "\\uDFFF"]]}, - -{"description": "Invalid Unicode character U+D800", -"doubleEscaped":true, -"input": "\\uD800", -"output":["ParseError", ["Character", "\\uD800"]]}, - -{"description": "Invalid Unicode character U+DFFF with valid preceding character", -"doubleEscaped":true, -"input": "a\\uDFFF", -"output":[["Character", "a"], "ParseError", ["Character", "\\uDFFF"]]}, - -{"description": "Invalid Unicode character U+D800 with valid following character", -"doubleEscaped":true, -"input": "\\uD800a", -"output":["ParseError", ["Character", "\\uD800a"]]}, - -{"description":"CR followed by U+0000", -"input":"\r\u0000", -"output":[["Character", "\n"], "ParseError", ["Character", "\u0000"]], -"ignoreErrorOrder":true} -] -}
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/xmlViolation.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/xmlViolation.test deleted file mode 100644 index 137d964295d..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/xmlViolation.test +++ /dev/null @@ -1,22 +0,0 @@ -{"xmlViolationTests": [ - -{"description":"Non-XML character", -"input":"a\uFFFFb", -"ignoreErrorOrder":true, -"output":["ParseError",["Character","a\uFFFDb"]]}, - -{"description":"Non-XML space", -"input":"a\u000Cb", -"ignoreErrorOrder":true, -"output":[["Character","a b"]]}, - -{"description":"Double hyphen in comment", -"input":"<!-- foo -- bar -->", -"output":["ParseError",["Comment"," foo - - bar "]]}, - -{"description":"FF between attributes", -"input":"<a b=''\u000Cc=''>", -"output":[["StartTag","a",{"b":"","c":""}]]} -]} - - diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/README.md b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/README.md deleted file mode 100644 index 2aba4bf860a..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/README.md +++ /dev/null @@ -1,98 +0,0 @@ -Tree Construction Tests -======================= - -Each file containing tree construction tests consists of any number of -tests separated by two newlines (LF) and a single newline before the end -of the file. For instance: - - [TEST]LF - LF - [TEST]LF - LF - [TEST]LF - -Where [TEST] is the following format: - -Each test must begin with a string "\#data" followed by a newline (LF). -All subsequent lines until a line that says "\#errors" are the test data -and must be passed to the system being tested unchanged, except with the -final newline (on the last line) removed. - -Then there must be a line that says "\#errors". It must be followed by -one line per parse error that a conformant checker would return. It -doesn't matter what those lines are, although they can't be -"\#document-fragment", "\#document", "\#script-off", "\#script-on", or -empty, the only thing that matters is that there be the right number -of parse errors. - -Then there \*may\* be a line that says "\#document-fragment", which must -be followed by a newline (LF), followed by a string of characters that -indicates the context element, followed by a newline (LF). If this line -is present the "\#data" must be parsed using the HTML fragment parsing -algorithm with the context element as context. - -Then there \*may\* be a line that says "\#script-off" or -"\#script-in". If a line that says "\#script-off" is present, the -parser must set the scripting flag to disabled. If a line that says -"\#script-on" is present, it must set it to enabled. Otherwise, the -test should be run in both modes. - -Then there must be a line that says "\#document", which must be followed -by a dump of the tree of the parsed DOM. Each node must be represented -by a single line. Each line must start with "| ", followed by two spaces -per parent node that the node has before the root document node. - -- Element nodes must be represented by a "`<`" then the *tag name - string* "`>`", and all the attributes must be given, sorted - lexicographically by UTF-16 code unit according to their *attribute - name string*, on subsequent lines, as if they were children of the - element node. -- Attribute nodes must have the *attribute name string*, then an "=" - sign, then the attribute value in double quotes ("). -- Text nodes must be the string, in double quotes. Newlines aren't - escaped. -- Comments must be "`<`" then "`!-- `" then the data then "` -->`". -- DOCTYPEs must be "`<!DOCTYPE `" then the name then if either of the - system id or public id is non-empty a space, public id in - double-quotes, another space an the system id in double-quotes, and - then in any case "`>`". -- Processing instructions must be "`<?`", then the target, then a - space, then the data and then "`>`". (The HTML parser cannot emit - processing instructions, but scripts can, and the WebVTT to DOM - rules can emit them.) -- Template contents are represented by the string "content" with the - children below it. - -The *tag name string* is the local name prefixed by a namespace -designator. For the HTML namespace, the namespace designator is the -empty string, i.e. there's no prefix. For the SVG namespace, the -namespace designator is "svg ". For the MathML namespace, the namespace -designator is "math ". - -The *attribute name string* is the local name prefixed by a namespace -designator. For no namespace, the namespace designator is the empty -string, i.e. there's no prefix. For the XLink namespace, the namespace -designator is "xlink ". For the XML namespace, the namespace designator -is "xml ". For the XMLNS namespace, the namespace designator is "xmlns -". Note the difference between "xlink:href" which is an attribute in no -namespace with the local name "xlink:href" and "xlink href" which is an -attribute in the xlink namespace with the local name "href". - -If there is also a "\#document-fragment" the bit following "\#document" -must be a representation of the HTML fragment serialization for the -context element given by "\#document-fragment". - -For example: - - #data - <p>One<p>Two - #errors - 3: Missing document type declaration - #document - | <html> - | <head> - | <body> - | <p> - | "One" - | <p> - | "Two" diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/adoption01.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/adoption01.dat deleted file mode 100644 index 2e1127e5178..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/adoption01.dat +++ /dev/null @@ -1,337 +0,0 @@ -#data -<a><p></a></p> -#errors -(1,3): expected-doctype-but-got-start-tag -(1,10): adoption-agency-1.3 -#document -| <html> -| <head> -| <body> -| <a> -| <p> -| <a> - -#data -<a>1<p>2</a>3</p> -#errors -(1,3): expected-doctype-but-got-start-tag -(1,12): adoption-agency-1.3 -#document -| <html> -| <head> -| <body> -| <a> -| "1" -| <p> -| <a> -| "2" -| "3" - -#data -<a>1<button>2</a>3</button> -#errors -(1,3): expected-doctype-but-got-start-tag -(1,17): adoption-agency-1.3 -#document -| <html> -| <head> -| <body> -| <a> -| "1" -| <button> -| <a> -| "2" -| "3" - -#data -<a>1<b>2</a>3</b> -#errors -(1,3): expected-doctype-but-got-start-tag -(1,12): adoption-agency-1.3 -#document -| <html> -| <head> -| <body> -| <a> -| "1" -| <b> -| "2" -| <b> -| "3" - -#data -<a>1<div>2<div>3</a>4</div>5</div> -#errors -(1,3): expected-doctype-but-got-start-tag -(1,20): adoption-agency-1.3 -(1,20): adoption-agency-1.3 -#document -| <html> -| <head> -| <body> -| <a> -| "1" -| <div> -| <a> -| "2" -| <div> -| <a> -| "3" -| "4" -| "5" - -#data -<table><a>1<p>2</a>3</p> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,10): unexpected-start-tag-implies-table-voodoo -(1,11): unexpected-character-implies-table-voodoo -(1,14): unexpected-start-tag-implies-table-voodoo -(1,15): unexpected-character-implies-table-voodoo -(1,19): unexpected-end-tag-implies-table-voodoo -(1,19): adoption-agency-1.3 -(1,20): unexpected-character-implies-table-voodoo -(1,24): unexpected-end-tag-implies-table-voodoo -(1,24): eof-in-table -#document -| <html> -| <head> -| <body> -| <a> -| "1" -| <p> -| <a> -| "2" -| "3" -| <table> - -#data -<b><b><a><p></a> -#errors -(1,3): expected-doctype-but-got-start-tag -(1,16): adoption-agency-1.3 -(1,16): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <b> -| <b> -| <a> -| <p> -| <a> - -#data -<b><a><b><p></a> -#errors -(1,3): expected-doctype-but-got-start-tag -(1,16): adoption-agency-1.3 -(1,16): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <b> -| <a> -| <b> -| <b> -| <p> -| <a> - -#data -<a><b><b><p></a> -#errors -(1,3): expected-doctype-but-got-start-tag -(1,16): adoption-agency-1.3 -(1,16): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <a> -| <b> -| <b> -| <b> -| <b> -| <p> -| <a> - -#data -<p>1<s id="A">2<b id="B">3</p>4</s>5</b> -#errors -(1,3): expected-doctype-but-got-start-tag -(1,30): unexpected-end-tag -(1,35): adoption-agency-1.3 -#document -| <html> -| <head> -| <body> -| <p> -| "1" -| <s> -| id="A" -| "2" -| <b> -| id="B" -| "3" -| <s> -| id="A" -| <b> -| id="B" -| "4" -| <b> -| id="B" -| "5" - -#data -<table><a>1<td>2</td>3</table> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,10): unexpected-start-tag-implies-table-voodoo -(1,11): unexpected-character-implies-table-voodoo -(1,15): unexpected-cell-in-table-body -(1,30): unexpected-implied-end-tag-in-table-view -#document -| <html> -| <head> -| <body> -| <a> -| "1" -| <a> -| "3" -| <table> -| <tbody> -| <tr> -| <td> -| "2" - -#data -<table>A<td>B</td>C</table> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,8): unexpected-character-implies-table-voodoo -(1,12): unexpected-cell-in-table-body -(1,22): unexpected-character-implies-table-voodoo -#document -| <html> -| <head> -| <body> -| "AC" -| <table> -| <tbody> -| <tr> -| <td> -| "B" - -#data -<a><svg><tr><input></a> -#errors -(1,3): expected-doctype-but-got-start-tag -(1,23): unexpected-end-tag -(1,23): adoption-agency-1.3 -#document -| <html> -| <head> -| <body> -| <a> -| <svg svg> -| <svg tr> -| <svg input> - -#data -<div><a><b><div><div><div><div><div><div><div><div><div><div></a> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,65): adoption-agency-1.3 -(1,65): adoption-agency-1.3 -(1,65): adoption-agency-1.3 -(1,65): adoption-agency-1.3 -(1,65): adoption-agency-1.3 -(1,65): adoption-agency-1.3 -(1,65): adoption-agency-1.3 -(1,65): adoption-agency-1.3 -(1,65): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <div> -| <a> -| <b> -| <b> -| <div> -| <a> -| <div> -| <a> -| <div> -| <a> -| <div> -| <a> -| <div> -| <a> -| <div> -| <a> -| <div> -| <a> -| <div> -| <a> -| <div> -| <div> - -#data -<div><a><b><u><i><code><div></a> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,32): adoption-agency-1.3 -(1,32): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <div> -| <a> -| <b> -| <u> -| <i> -| <code> -| <u> -| <i> -| <code> -| <div> -| <a> - -#data -<b><b><b><b>x</b></b></b></b>y -#errors -(1,3): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <b> -| <b> -| <b> -| <b> -| "x" -| "y" - -#data -<p><b><b><b><b><p>x -#errors -(1,3): expected-doctype-but-got-start-tag -(1,18): unexpected-end-tag -(1,19): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <p> -| <b> -| <b> -| <b> -| <b> -| <p> -| <b> -| <b> -| <b> -| "x" diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/adoption02.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/adoption02.dat deleted file mode 100644 index e54d8033bac..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/adoption02.dat +++ /dev/null @@ -1,39 +0,0 @@ -#data -<b>1<i>2<p>3</b>4 -#errors -(1,3): expected-doctype-but-got-start-tag -(1,16): adoption-agency-1.3 -(1,17): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <b> -| "1" -| <i> -| "2" -| <i> -| <p> -| <b> -| "3" -| "4" - -#data -<a><div><style></style><address><a> -#errors -(1,3): expected-doctype-but-got-start-tag -(1,35): unexpected-start-tag-implies-end-tag -(1,35): adoption-agency-1.3 -(1,35): adoption-agency-1.3 -(1,35): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <a> -| <div> -| <a> -| <style> -| <address> -| <a> -| <a> diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/comments01.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/comments01.dat deleted file mode 100644 index 35ec6cced63..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/comments01.dat +++ /dev/null @@ -1,178 +0,0 @@ -#data -FOO<!-- BAR -->BAZ -#errors -(1,3): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "FOO" -| <!-- BAR --> -| "BAZ" - -#data -FOO<!-- BAR --!>BAZ -#errors -(1,3): expected-doctype-but-got-chars -(1,15): unexpected-bang-after-double-dash-in-comment -#document -| <html> -| <head> -| <body> -| "FOO" -| <!-- BAR --> -| "BAZ" - -#data -FOO<!-- BAR -- >BAZ -#errors -(1,3): expected-doctype-but-got-chars -(1,15): unexpected-char-in-comment -(1,21): eof-in-comment -#document -| <html> -| <head> -| <body> -| "FOO" -| <!-- BAR -- >BAZ --> - -#data -FOO<!-- BAR -- <QUX> -- MUX -->BAZ -#errors -(1,3): expected-doctype-but-got-chars -(1,15): unexpected-char-in-comment -(1,24): unexpected-char-in-comment -#document -| <html> -| <head> -| <body> -| "FOO" -| <!-- BAR -- <QUX> -- MUX --> -| "BAZ" - -#data -FOO<!-- BAR -- <QUX> -- MUX --!>BAZ -#errors -(1,3): expected-doctype-but-got-chars -(1,15): unexpected-char-in-comment -(1,24): unexpected-char-in-comment -(1,31): unexpected-bang-after-double-dash-in-comment -#document -| <html> -| <head> -| <body> -| "FOO" -| <!-- BAR -- <QUX> -- MUX --> -| "BAZ" - -#data -FOO<!-- BAR -- <QUX> -- MUX -- >BAZ -#errors -(1,3): expected-doctype-but-got-chars -(1,15): unexpected-char-in-comment -(1,24): unexpected-char-in-comment -(1,31): unexpected-char-in-comment -(1,35): eof-in-comment -#document -| <html> -| <head> -| <body> -| "FOO" -| <!-- BAR -- <QUX> -- MUX -- >BAZ --> - -#data -FOO<!---->BAZ -#errors -(1,3): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "FOO" -| <!-- --> -| "BAZ" - -#data -FOO<!--->BAZ -#errors -(1,3): expected-doctype-but-got-chars -(1,9): incorrect-comment -#document -| <html> -| <head> -| <body> -| "FOO" -| <!-- --> -| "BAZ" - -#data -FOO<!-->BAZ -#errors -(1,3): expected-doctype-but-got-chars -(1,8): incorrect-comment -#document -| <html> -| <head> -| <body> -| "FOO" -| <!-- --> -| "BAZ" - -#data -<?xml version="1.0">Hi -#errors -(1,1): expected-tag-name-but-got-question-mark -(1,22): expected-doctype-but-got-chars -#document -| <!-- ?xml version="1.0" --> -| <html> -| <head> -| <body> -| "Hi" - -#data -<?xml version="1.0"> -#errors -(1,1): expected-tag-name-but-got-question-mark -(1,20): expected-doctype-but-got-eof -#document -| <!-- ?xml version="1.0" --> -| <html> -| <head> -| <body> - -#data -<?xml version -#errors -(1,1): expected-tag-name-but-got-question-mark -(1,13): expected-doctype-but-got-eof -#document -| <!-- ?xml version --> -| <html> -| <head> -| <body> - -#data -FOO<!----->BAZ -#errors -(1,3): expected-doctype-but-got-chars -(1,10): unexpected-dash-after-double-dash-in-comment -#document -| <html> -| <head> -| <body> -| "FOO" -| <!-- - --> -| "BAZ" - -#data -<html><!-- comment --><title>Comment before head</title> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <!-- comment --> -| <head> -| <title> -| "Comment before head" -| <body> diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/doctype01.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/doctype01.dat deleted file mode 100644 index cec66389710..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/doctype01.dat +++ /dev/null @@ -1,424 +0,0 @@ -#data -<!DOCTYPE html>Hello -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!dOctYpE HtMl>Hello -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPEhtml>Hello -#errors -(1,9): need-space-after-doctype -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE>Hello -#errors -(1,9): need-space-after-doctype -(1,10): expected-doctype-name-but-got-right-bracket -(1,10): unknown-doctype -#document -| <!DOCTYPE > -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE >Hello -#errors -(1,11): expected-doctype-name-but-got-right-bracket -(1,11): unknown-doctype -#document -| <!DOCTYPE > -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato>Hello -#errors -(1,17): unknown-doctype -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato >Hello -#errors -(1,18): unknown-doctype -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato taco>Hello -#errors -(1,17): expected-space-or-right-bracket-in-doctype -(1,22): unknown-doctype -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato taco "ddd>Hello -#errors -(1,17): expected-space-or-right-bracket-in-doctype -(1,27): unknown-doctype -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato sYstEM>Hello -#errors -(1,24): unexpected-char-in-doctype -(1,24): unknown-doctype -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato sYstEM >Hello -#errors -(1,28): unexpected-char-in-doctype -(1,28): unknown-doctype -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato sYstEM ggg>Hello -#errors -(1,34): unexpected-char-in-doctype -(1,37): unknown-doctype -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato SYSTEM taco >Hello -#errors -(1,25): unexpected-char-in-doctype -(1,31): unknown-doctype -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato SYSTEM 'taco"'>Hello -#errors -(1,32): unknown-doctype -#document -| <!DOCTYPE potato "" "taco""> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato SYSTEM "taco">Hello -#errors -(1,31): unknown-doctype -#document -| <!DOCTYPE potato "" "taco"> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato SYSTEM "tai'co">Hello -#errors -(1,33): unknown-doctype -#document -| <!DOCTYPE potato "" "tai'co"> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato SYSTEMtaco "ddd">Hello -#errors -(1,24): unexpected-char-in-doctype -(1,34): unknown-doctype -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato grass SYSTEM taco>Hello -#errors -(1,17): expected-space-or-right-bracket-in-doctype -(1,35): unknown-doctype -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato pUbLIc>Hello -#errors -(1,24): unexpected-end-of-doctype -(1,24): unknown-doctype -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato pUbLIc >Hello -#errors -(1,25): unexpected-end-of-doctype -(1,25): unknown-doctype -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato pUbLIcgoof>Hello -#errors -(1,24): unexpected-char-in-doctype -(1,28): unknown-doctype -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato PUBLIC goof>Hello -#errors -(1,25): unexpected-char-in-doctype -(1,29): unknown-doctype -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato PUBLIC "go'of">Hello -#errors -(1,32): unknown-doctype -#document -| <!DOCTYPE potato "go'of" ""> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato PUBLIC 'go'of'>Hello -#errors -(1,29): unexpected-char-in-doctype -(1,32): unknown-doctype -#document -| <!DOCTYPE potato "go" ""> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato PUBLIC 'go:hh of' >Hello -#errors -(1,38): unknown-doctype -#document -| <!DOCTYPE potato "go:hh of" ""> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato PUBLIC "W3C-//dfdf" SYSTEM ggg>Hello -#errors -(1,38): unexpected-char-in-doctype -(1,48): unknown-doctype -#document -| <!DOCTYPE potato "W3C-//dfdf" ""> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" - "http://www.w3.org/TR/html4/strict.dtd">Hello -#errors -#document -| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE ...>Hello -#errors -(1,14): unknown-doctype -#document -| <!DOCTYPE ...> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" -"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -#errors -(2,58): unknown-doctype -#document -| <!DOCTYPE html "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" -"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> -#errors -(2,54): unknown-doctype -#document -| <!DOCTYPE html "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE root-element [SYSTEM OR PUBLIC FPI] "uri" [ -<!-- internal declarations --> -]> -#errors -(1,23): expected-space-or-right-bracket-in-doctype -(2,30): unknown-doctype -#document -| <!DOCTYPE root-element> -| <html> -| <head> -| <body> -| "]>" - -#data -<!DOCTYPE html PUBLIC - "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" - "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"> -#errors -(3,53): unknown-doctype -#document -| <!DOCTYPE html "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE HTML SYSTEM "http://www.w3.org/DTD/HTML4-strict.dtd"><body><b>Mine!</b></body> -#errors -(1,63): unknown-doctype -#document -| <!DOCTYPE html "" "http://www.w3.org/DTD/HTML4-strict.dtd"> -| <html> -| <head> -| <body> -| <b> -| "Mine!" - -#data -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd"> -#errors -(1,50): unexpected-char-in-doctype -#document -| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"'http://www.w3.org/TR/html4/strict.dtd'> -#errors -(1,50): unexpected-char-in-doctype -#document -| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01//EN"'http://www.w3.org/TR/html4/strict.dtd'> -#errors -(1,21): unexpected-char-in-doctype -(1,49): unexpected-char-in-doctype -#document -| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE HTML PUBLIC'-//W3C//DTD HTML 4.01//EN''http://www.w3.org/TR/html4/strict.dtd'> -#errors -(1,21): unexpected-char-in-doctype -(1,49): unexpected-char-in-doctype -#document -| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> -| <html> -| <head> -| <body> diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/domjs-unsafe.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/domjs-unsafe.dat Binary files differdeleted file mode 100644 index 34b4e62716e..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/domjs-unsafe.dat +++ /dev/null diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/entities01.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/entities01.dat deleted file mode 100644 index 20d53a0fd5a..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/entities01.dat +++ /dev/null @@ -1,723 +0,0 @@ -#data -FOO>BAR -#errors -(1,3): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "FOO>BAR" - -#data -FOO>BAR -#errors -(1,3): expected-doctype-but-got-chars -(1,6): named-entity-without-semicolon -#document -| <html> -| <head> -| <body> -| "FOO>BAR" - -#data -FOO> BAR -#errors -(1,3): expected-doctype-but-got-chars -(1,6): named-entity-without-semicolon -#document -| <html> -| <head> -| <body> -| "FOO> BAR" - -#data -FOO>;;BAR -#errors -(1,3): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "FOO>;;BAR" - -#data -I'm ¬it; I tell you -#errors -(1,4): expected-doctype-but-got-chars -(1,9): named-entity-without-semicolon -#document -| <html> -| <head> -| <body> -| "I'm ¬it; I tell you" - -#data -I'm ∉ I tell you -#errors -(1,4): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "I'm ∉ I tell you" - -#data -FOO& BAR -#errors -(1,3): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "FOO& BAR" - -#data -FOO&<BAR> -#errors -(1,3): expected-doctype-but-got-chars -(1,9): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| "FOO&" -| <bar> - -#data -FOO&&&>BAR -#errors -(1,3): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "FOO&&&>BAR" - -#data -FOO)BAR -#errors -(1,3): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "FOO)BAR" - -#data -FOOABAR -#errors -(1,3): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "FOOABAR" - -#data -FOOABAR -#errors -(1,3): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "FOOABAR" - -#data -FOO&#BAR -#errors -(1,3): expected-doctype-but-got-chars -(1,5): expected-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOO&#BAR" - -#data -FOO&#ZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,5): expected-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOO&#ZOO" - -#data -FOOºR -#errors -(1,3): expected-doctype-but-got-chars -(1,7): expected-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOOºR" - -#data -FOO&#xZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,6): expected-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOO&#xZOO" - -#data -FOO&#XZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,6): expected-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOO&#XZOO" - -#data -FOO)BAR -#errors -(1,3): expected-doctype-but-got-chars -(1,7): numeric-entity-without-semicolon -#document -| <html> -| <head> -| <body> -| "FOO)BAR" - -#data -FOO䆺R -#errors -(1,3): expected-doctype-but-got-chars -(1,10): numeric-entity-without-semicolon -#document -| <html> -| <head> -| <body> -| "FOO䆺R" - -#data -FOOAZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,8): numeric-entity-without-semicolon -#document -| <html> -| <head> -| <body> -| "FOOAZOO" - -#data -FOO�ZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOO�ZOO" - -#data -FOOxZOO -#errors -(1,3): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "FOOxZOO" - -#data -FOOyZOO -#errors -(1,3): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "FOOyZOO" - -#data -FOO€ZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOO€ZOO" - -#data -FOOZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOOZOO" - -#data -FOO‚ZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOO‚ZOO" - -#data -FOOƒZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOOƒZOO" - -#data -FOO„ZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOO„ZOO" - -#data -FOO…ZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOO…ZOO" - -#data -FOO†ZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOO†ZOO" - -#data -FOO‡ZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOO‡ZOO" - -#data -FOOˆZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOOˆZOO" - -#data -FOO‰ZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOO‰ZOO" - -#data -FOOŠZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOOŠZOO" - -#data -FOO‹ZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOO‹ZOO" - -#data -FOOŒZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOOŒZOO" - -#data -FOOZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOOZOO" - -#data -FOOŽZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOOŽZOO" - -#data -FOOZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOOZOO" - -#data -FOOZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOOZOO" - -#data -FOO‘ZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOO‘ZOO" - -#data -FOO’ZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOO’ZOO" - -#data -FOO“ZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOO“ZOO" - -#data -FOO”ZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOO”ZOO" - -#data -FOO•ZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOO•ZOO" - -#data -FOO–ZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOO–ZOO" - -#data -FOO—ZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOO—ZOO" - -#data -FOO˜ZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOO˜ZOO" - -#data -FOO™ZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOO™ZOO" - -#data -FOOšZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOOšZOO" - -#data -FOO›ZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOO›ZOO" - -#data -FOOœZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOOœZOO" - -#data -FOOZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOOZOO" - -#data -FOOžZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOOžZOO" - -#data -FOOŸZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOOŸZOO" - -#data -FOO ZOO -#errors -(1,3): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "FOO ZOO" - -#data -FOO퟿ZOO -#errors -(1,3): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "FOOZOO" - -#data -FOO�ZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOO�ZOO" - -#data -FOO�ZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOO�ZOO" - -#data -FOO�ZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOO�ZOO" - -#data -FOO�ZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,11): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOO�ZOO" - -#data -FOOZOO -#errors -(1,3): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "FOOZOO" - -#data -FOOZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,13): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOOZOO" - -#data -FOO􈟔ZOO -#errors -(1,3): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "FOOZOO" - -#data -FOOZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,13): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOOZOO" - -#data -FOO�ZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,13): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOO�ZOO" - -#data -FOO�ZOO -#errors -(1,3): expected-doctype-but-got-chars -(1,13): illegal-codepoint-for-numeric-entity -#document -| <html> -| <head> -| <body> -| "FOO�ZOO" diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/entities02.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/entities02.dat deleted file mode 100644 index f117f068a01..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/entities02.dat +++ /dev/null @@ -1,283 +0,0 @@ -#data -<div bar="ZZ>YY"></div> -#errors -(1,20): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ>YY" - -#data -<div bar="ZZ&"></div> -#errors -(1,15): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ&" - -#data -<div bar='ZZ&'></div> -#errors -(1,15): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ&" - -#data -<div bar=ZZ&></div> -#errors -(1,13): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ&" - -#data -<div bar="ZZ>=YY"></div> -#errors -(1,15): named-entity-without-semicolon -(1,20): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ>=YY" - -#data -<div bar="ZZ>0YY"></div> -#errors -(1,20): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ>0YY" - -#data -<div bar="ZZ>9YY"></div> -#errors -(1,20): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ>9YY" - -#data -<div bar="ZZ>aYY"></div> -#errors -(1,20): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ>aYY" - -#data -<div bar="ZZ>ZYY"></div> -#errors -(1,20): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ>ZYY" - -#data -<div bar="ZZ> YY"></div> -#errors -(1,15): named-entity-without-semicolon -(1,20): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ> YY" - -#data -<div bar="ZZ>"></div> -#errors -(1,15): named-entity-without-semicolon -(1,17): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ>" - -#data -<div bar='ZZ>'></div> -#errors -(1,15): named-entity-without-semicolon -(1,17): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ>" - -#data -<div bar=ZZ>></div> -#errors -(1,14): named-entity-without-semicolon -(1,15): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ>" - -#data -<div bar="ZZ£_id=23"></div> -#errors -(1,18): named-entity-without-semicolon -(1,26): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ£_id=23" - -#data -<div bar="ZZ&prod_id=23"></div> -#errors -(1,25): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ&prod_id=23" - -#data -<div bar="ZZ£_id=23"></div> -#errors -(1,27): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ£_id=23" - -#data -<div bar="ZZ∏_id=23"></div> -#errors -(1,26): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ∏_id=23" - -#data -<div bar="ZZ£=23"></div> -#errors -(1,18): named-entity-without-semicolon -(1,23): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ£=23" - -#data -<div bar="ZZ&prod=23"></div> -#errors -(1,22): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ&prod=23" - -#data -<div>ZZ£_id=23</div> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,13): named-entity-without-semicolon -#document -| <html> -| <head> -| <body> -| <div> -| "ZZ£_id=23" - -#data -<div>ZZ&prod_id=23</div> -#errors -(1,5): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <div> -| "ZZ&prod_id=23" - -#data -<div>ZZ£_id=23</div> -#errors -(1,5): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <div> -| "ZZ£_id=23" - -#data -<div>ZZ∏_id=23</div> -#errors -(1,5): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <div> -| "ZZ∏_id=23" - -#data -<div>ZZ£=23</div> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,13): named-entity-without-semicolon -#document -| <html> -| <head> -| <body> -| <div> -| "ZZ£=23" - -#data -<div>ZZ&prod=23</div> -#errors -(1,5): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <div> -| "ZZ&prod=23" diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/html5test-com.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/html5test-com.dat deleted file mode 100644 index 8c6ec40cd74..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/html5test-com.dat +++ /dev/null @@ -1,291 +0,0 @@ -#data -<div<div> -#errors -(1,9): expected-doctype-but-got-start-tag -(1,9): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <div<div> - -#data -<div foo<bar=''> -#errors -(1,9): invalid-character-in-attribute-name -(1,16): expected-doctype-but-got-start-tag -(1,16): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <div> -| foo<bar="" - -#data -<div foo=`bar`> -#errors -(1,10): equals-in-unquoted-attribute-value -(1,14): unexpected-character-in-unquoted-attribute-value -(1,15): expected-doctype-but-got-start-tag -(1,15): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <div> -| foo="`bar`" - -#data -<div \"foo=''> -#errors -(1,7): invalid-character-in-attribute-name -(1,14): expected-doctype-but-got-start-tag -(1,14): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <div> -| \"foo="" - -#data -<a href='\nbar'></a> -#errors -(1,16): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <a> -| href="\nbar" - -#data -<!DOCTYPE html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> - -#data -⟨⟩ -#errors -(1,6): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "⟨⟩" - -#data -' -#errors -(1,6): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "'" - -#data -ⅈ -#errors -(1,12): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "ⅈ" - -#data -𝕂 -#errors -(1,6): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "𝕂" - -#data -∉ -#errors -(1,9): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "∉" - -#data -<?import namespace="foo" implementation="#bar"> -#errors -(1,1): expected-tag-name-but-got-question-mark -(1,47): expected-doctype-but-got-eof -#document -| <!-- ?import namespace="foo" implementation="#bar" --> -| <html> -| <head> -| <body> - -#data -<!--foo--bar--> -#errors -(1,10): unexpected-char-in-comment -(1,15): expected-doctype-but-got-eof -#document -| <!-- foo--bar --> -| <html> -| <head> -| <body> - -#data -<![CDATA[x]]> -#errors -(1,2): expected-dashes-or-doctype -(1,13): expected-doctype-but-got-eof -#document -| <!-- [CDATA[x]] --> -| <html> -| <head> -| <body> - -#data -<textarea><!--</textarea>--></textarea> -#errors -(1,10): expected-doctype-but-got-start-tag -(1,39): unexpected-end-tag -#document -| <html> -| <head> -| <body> -| <textarea> -| "<!--" -| "-->" - -#data -<textarea><!--</textarea>--> -#errors -(1,10): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <textarea> -| "<!--" -| "-->" - -#data -<style><!--</style>--></style> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,30): unexpected-end-tag -#document -| <html> -| <head> -| <style> -| "<!--" -| <body> -| "-->" - -#data -<style><!--</style>--> -#errors -(1,7): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <style> -| "<!--" -| <body> -| "-->" - -#data -<ul><li>A </li> <li>B</li></ul> -#errors -(1,4): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <ul> -| <li> -| "A " -| " " -| <li> -| "B" - -#data -<table><form><input type=hidden><input></form><div></div></table> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,13): unexpected-form-in-table -(1,32): unexpected-hidden-input-in-table -(1,39): unexpected-start-tag-implies-table-voodoo -(1,46): unexpected-end-tag-implies-table-voodoo -(1,46): unexpected-end-tag -(1,51): unexpected-start-tag-implies-table-voodoo -(1,57): unexpected-end-tag-implies-table-voodoo -#document -| <html> -| <head> -| <body> -| <input> -| <div> -| <table> -| <form> -| <input> -| type="hidden" - -#data -<i>A<b>B<p></i>C</b>D -#errors -(1,3): expected-doctype-but-got-start-tag -(1,15): adoption-agency-1.3 -(1,20): adoption-agency-1.3 -#document -| <html> -| <head> -| <body> -| <i> -| "A" -| <b> -| "B" -| <b> -| <p> -| <b> -| <i> -| "C" -| "D" - -#data -<div></div> -#errors -(1,5): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <div> - -#data -<svg></svg> -#errors -(1,5): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <svg svg> - -#data -<math></math> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <math math> diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/inbody01.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/inbody01.dat deleted file mode 100644 index 10f6520f6fe..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/inbody01.dat +++ /dev/null @@ -1,54 +0,0 @@ -#data -<button>1</foo> -#errors -(1,8): expected-doctype-but-got-start-tag -(1,15): unexpected-end-tag -(1,15): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <button> -| "1" - -#data -<foo>1<p>2</foo> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,16): unexpected-end-tag -(1,16): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <foo> -| "1" -| <p> -| "2" - -#data -<dd>1</foo> -#errors -(1,4): expected-doctype-but-got-start-tag -(1,11): unexpected-end-tag -#document -| <html> -| <head> -| <body> -| <dd> -| "1" - -#data -<foo>1<dd>2</foo> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,17): unexpected-end-tag -(1,17): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <foo> -| "1" -| <dd> -| "2" diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/isindex.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/isindex.dat deleted file mode 100644 index 42ef997f7ff..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/isindex.dat +++ /dev/null @@ -1,47 +0,0 @@ -#data -<isindex> -#errors -(1,9): expected-doctype-but-got-start-tag -(1,9): deprecated-tag -#document -| <html> -| <head> -| <body> -| <form> -| <hr> -| <label> -| "This is a searchable index. Enter search keywords: " -| <input> -| name="isindex" -| <hr> - -#data -<isindex name="A" action="B" prompt="C" foo="D"> -#errors -(1,48): expected-doctype-but-got-start-tag -(1,48): deprecated-tag -#document -| <html> -| <head> -| <body> -| <form> -| action="B" -| <hr> -| <label> -| "C" -| <input> -| foo="D" -| name="isindex" -| <hr> - -#data -<form><isindex> -#errors -(1,6): expected-doctype-but-got-start-tag -(1,15): deprecated-tag -(1,15): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <form> diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/main-element.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/main-element.dat deleted file mode 100644 index 4b103bb0fa3..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/main-element.dat +++ /dev/null @@ -1,46 +0,0 @@ -#data -<!doctype html><p>foo<main>bar<p>baz -#errors -(1,36): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| "foo" -| <main> -| "bar" -| <p> -| "baz" - -#data -<!doctype html><main><p>foo</main>bar -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <main> -| <p> -| "foo" -| "bar" - -#data -<!DOCTYPE html>xxx<svg><x><g><a><main><b> -#errors - * (1,42) unexpected HTML-like start tag token in foreign content - * (1,42) unexpected end of file -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "xxx" -| <svg svg> -| <svg x> -| <svg g> -| <svg a> -| <svg main> -| <b> diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/pending-spec-changes-plain-text-unsafe.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/pending-spec-changes-plain-text-unsafe.dat Binary files differdeleted file mode 100644 index 3ee8cec904f..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/pending-spec-changes-plain-text-unsafe.dat +++ /dev/null diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/pending-spec-changes.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/pending-spec-changes.dat deleted file mode 100644 index 1647d7f23a9..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/pending-spec-changes.dat +++ /dev/null @@ -1,46 +0,0 @@ -#data -<input type="hidden"><frameset> -#errors -(1,21): expected-doctype-but-got-start-tag -(1,31): unexpected-start-tag -(1,31): eof-in-frameset -#document -| <html> -| <head> -| <frameset> - -#data -<!DOCTYPE html><table><caption><svg>foo</table>bar -#errors -(1,47): unexpected-end-tag -(1,47): end-table-tag-in-caption -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| <svg svg> -| "foo" -| "bar" - -#data -<table><tr><td><svg><desc><td></desc><circle> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,30): unexpected-cell-end-tag -(1,37): unexpected-end-tag -(1,45): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <svg svg> -| <svg desc> -| <td> -| <circle> diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/plain-text-unsafe.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/plain-text-unsafe.dat Binary files differdeleted file mode 100644 index f40dd57607a..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/plain-text-unsafe.dat +++ /dev/null diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/ruby.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/ruby.dat deleted file mode 100644 index 80d0c53313c..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/ruby.dat +++ /dev/null @@ -1,298 +0,0 @@ -#data -<html><ruby>a<rb>b<rb></ruby></html> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <ruby> -| "a" -| <rb> -| "b" -| <rb> - -#data -<html><ruby>a<rb>b<rt></ruby></html> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <ruby> -| "a" -| <rb> -| "b" -| <rt> - -#data -<html><ruby>a<rb>b<rtc></ruby></html> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <ruby> -| "a" -| <rb> -| "b" -| <rtc> - -#data -<html><ruby>a<rb>b<rp></ruby></html> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <ruby> -| "a" -| <rb> -| "b" -| <rp> - -#data -<html><ruby>a<rb>b<span></ruby></html> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <ruby> -| "a" -| <rb> -| "b" -| <span> - -#data -<html><ruby>a<rt>b<rb></ruby></html> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <ruby> -| "a" -| <rt> -| "b" -| <rb> - -#data -<html><ruby>a<rt>b<rt></ruby></html> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <ruby> -| "a" -| <rt> -| "b" -| <rt> - -#data -<html><ruby>a<rt>b<rtc></ruby></html> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <ruby> -| "a" -| <rt> -| "b" -| <rtc> - -#data -<html><ruby>a<rt>b<rp></ruby></html> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <ruby> -| "a" -| <rt> -| "b" -| <rp> - -#data -<html><ruby>a<rt>b<span></ruby></html> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <ruby> -| "a" -| <rt> -| "b" -| <span> - -#data -<html><ruby>a<rtc>b<rb></ruby></html> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <ruby> -| "a" -| <rtc> -| "b" -| <rb> - -#data -<html><ruby>a<rtc>b<rt>c<rt>d</ruby></html> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <ruby> -| "a" -| <rtc> -| "b" -| <rt> -| "c" -| <rt> -| "d" - -#data -<html><ruby>a<rtc>b<rtc></ruby></html> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <ruby> -| "a" -| <rtc> -| "b" -| <rtc> - -#data -<html><ruby>a<rtc>b<rp></ruby></html> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <ruby> -| "a" -| <rtc> -| "b" -| <rp> - -#data -<html><ruby>a<rtc>b<span></ruby></html> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <ruby> -| "a" -| <rtc> -| "b" -| <span> - -#data -<html><ruby>a<rp>b<rb></ruby></html> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <ruby> -| "a" -| <rp> -| "b" -| <rb> - -#data -<html><ruby>a<rp>b<rt></ruby></html> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <ruby> -| "a" -| <rp> -| "b" -| <rt> - -#data -<html><ruby>a<rp>b<rtc></ruby></html> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <ruby> -| "a" -| <rp> -| "b" -| <rtc> - -#data -<html><ruby>a<rp>b<rp></ruby></html> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <ruby> -| "a" -| <rp> -| "b" -| <rp> - -#data -<html><ruby>a<rp>b<span></ruby></html> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <ruby> -| "a" -| <rp> -| "b" -| <span> - -#data -<html><ruby><rtc><ruby>a<rb>b<rt></ruby></ruby></html> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <ruby> -| <rtc> -| <ruby> -| "a" -| <rb> -| "b" -| <rt> diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/scriptdata01.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/scriptdata01.dat deleted file mode 100644 index ac698d282ff..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/scriptdata01.dat +++ /dev/null @@ -1,365 +0,0 @@ -#data -FOO<script>'Hello'</script>BAR -#errors -(1,3): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "'Hello'" -| "BAR" - -#data -FOO<script></script>BAR -#errors -(1,3): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "BAR" - -#data -FOO<script></script >BAR -#errors -(1,3): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "BAR" - -#data -FOO<script></script/>BAR -#errors -(1,3): expected-doctype-but-got-chars -(1,21): self-closing-flag-on-end-tag -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "BAR" - -#data -FOO<script></script/ >BAR -#errors -(1,3): expected-doctype-but-got-chars -(1,20): unexpected-character-after-solidus-in-tag -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "BAR" - -#data -FOO<script type="text/plain"></scriptx>BAR -#errors -(1,3): expected-doctype-but-got-chars -(1,42): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| type="text/plain" -| "</scriptx>BAR" - -#data -FOO<script></script foo=">" dd>BAR -#errors -(1,3): expected-doctype-but-got-chars -(1,31): attributes-in-end-tag -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "BAR" - -#data -FOO<script>'<'</script>BAR -#errors -(1,3): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "'<'" -| "BAR" - -#data -FOO<script>'<!'</script>BAR -#errors -(1,3): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "'<!'" -| "BAR" - -#data -FOO<script>'<!-'</script>BAR -#errors -(1,3): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "'<!-'" -| "BAR" - -#data -FOO<script>'<!--'</script>BAR -#errors -(1,3): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "'<!--'" -| "BAR" - -#data -FOO<script>'<!---'</script>BAR -#errors -(1,3): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "'<!---'" -| "BAR" - -#data -FOO<script>'<!-->'</script>BAR -#errors -(1,3): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "'<!-->'" -| "BAR" - -#data -FOO<script>'<!-->'</script>BAR -#errors -(1,3): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "'<!-->'" -| "BAR" - -#data -FOO<script>'<!-- potato'</script>BAR -#errors -(1,3): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "'<!-- potato'" -| "BAR" - -#data -FOO<script>'<!-- <sCrIpt'</script>BAR -#errors -(1,3): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "'<!-- <sCrIpt'" -| "BAR" - -#data -FOO<script type="text/plain">'<!-- <sCrIpt>'</script>BAR -#errors -(1,3): expected-doctype-but-got-chars -(1,56): expected-script-data-but-got-eof -(1,56): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| type="text/plain" -| "'<!-- <sCrIpt>'</script>BAR" - -#data -FOO<script type="text/plain">'<!-- <sCrIpt> -'</script>BAR -#errors -(1,3): expected-doctype-but-got-chars -(1,58): expected-script-data-but-got-eof -(1,58): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| type="text/plain" -| "'<!-- <sCrIpt> -'</script>BAR" - -#data -FOO<script type="text/plain">'<!-- <sCrIpt> --'</script>BAR -#errors -(1,3): expected-doctype-but-got-chars -(1,59): expected-script-data-but-got-eof -(1,59): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| type="text/plain" -| "'<!-- <sCrIpt> --'</script>BAR" - -#data -FOO<script>'<!-- <sCrIpt> -->'</script>BAR -#errors -(1,3): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "'<!-- <sCrIpt> -->'" -| "BAR" - -#data -FOO<script type="text/plain">'<!-- <sCrIpt> --!>'</script>BAR -#errors -(1,3): expected-doctype-but-got-chars -(1,61): expected-script-data-but-got-eof -(1,61): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| type="text/plain" -| "'<!-- <sCrIpt> --!>'</script>BAR" - -#data -FOO<script type="text/plain">'<!-- <sCrIpt> -- >'</script>BAR -#errors -(1,3): expected-doctype-but-got-chars -(1,61): expected-script-data-but-got-eof -(1,61): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| type="text/plain" -| "'<!-- <sCrIpt> -- >'</script>BAR" - -#data -FOO<script type="text/plain">'<!-- <sCrIpt '</script>BAR -#errors -(1,3): expected-doctype-but-got-chars -(1,56): expected-script-data-but-got-eof -(1,56): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| type="text/plain" -| "'<!-- <sCrIpt '</script>BAR" - -#data -FOO<script type="text/plain">'<!-- <sCrIpt/'</script>BAR -#errors -(1,3): expected-doctype-but-got-chars -(1,56): expected-script-data-but-got-eof -(1,56): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| type="text/plain" -| "'<!-- <sCrIpt/'</script>BAR" - -#data -FOO<script type="text/plain">'<!-- <sCrIpt\'</script>BAR -#errors -(1,3): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| type="text/plain" -| "'<!-- <sCrIpt\'" -| "BAR" - -#data -FOO<script type="text/plain">'<!-- <sCrIpt/'</script>BAR</script>QUX -#errors -(1,3): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| type="text/plain" -| "'<!-- <sCrIpt/'</script>BAR" -| "QUX" - -#data -FOO<script><!--<script>-></script>--></script>QUX -#errors -(1,3): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "<!--<script>-></script>-->" -| "QUX" diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/scripted/adoption01.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/scripted/adoption01.dat deleted file mode 100644 index 4e08d0e84a0..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/scripted/adoption01.dat +++ /dev/null @@ -1,15 +0,0 @@ -#data -<p><b id="A"><script>document.getElementById("A").id = "B"</script></p>TEXT</b> -#errors -#document -| <html> -| <head> -| <body> -| <p> -| <b> -| id="B" -| <script> -| "document.getElementById("A").id = "B"" -| <b> -| id="A" -| "TEXT" diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/scripted/ark.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/scripted/ark.dat deleted file mode 100644 index acbac41df16..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/scripted/ark.dat +++ /dev/null @@ -1,26 +0,0 @@ -#data -<p><font size=4><font size=4><font size=4><script>document.getElementsByTagName("font")[2].setAttribute("size", "5");</script><font size=4><p>X -#errors -#document -| <html> -| <head> -| <body> -| <p> -| <font> -| size="4" -| <font> -| size="4" -| <font> -| size="5" -| <script> -| "document.getElementsByTagName("font")[2].setAttribute("size", "5");" -| <font> -| size="4" -| <p> -| <font> -| size="4" -| <font> -| size="4" -| <font> -| size="4" -| "X" diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/scripted/webkit01.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/scripted/webkit01.dat deleted file mode 100644 index ef4a41ca00b..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/scripted/webkit01.dat +++ /dev/null @@ -1,28 +0,0 @@ -#data -1<script>document.write("2")</script>3 -#errors -#document -| <html> -| <head> -| <body> -| "1" -| <script> -| "document.write("2")" -| "23" - -#data -1<script>document.write("<script>document.write('2')</scr"+ "ipt><script>document.write('3')</scr" + "ipt>")</script>4 -#errors -#document -| <html> -| <head> -| <body> -| "1" -| <script> -| "document.write("<script>document.write('2')</scr"+ "ipt><script>document.write('3')</scr" + "ipt>")" -| <script> -| "document.write('2')" -| "2" -| <script> -| "document.write('3')" -| "34" diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tables01.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tables01.dat deleted file mode 100644 index f0caaa3c5fc..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tables01.dat +++ /dev/null @@ -1,286 +0,0 @@ -#data -<table><th> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,11): unexpected-cell-in-table-body -(1,11): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <th> - -#data -<table><td> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,11): unexpected-cell-in-table-body -(1,11): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> - -#data -<table><col foo='bar'> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,22): eof-in-table -#document -| <html> -| <head> -| <body> -| <table> -| <colgroup> -| <col> -| foo="bar" - -#data -<table><colgroup></html>foo -#errors -(1,7): expected-doctype-but-got-start-tag -(1,24): unexpected-end-tag -(1,27): foster-parenting-character-in-table -(1,27): foster-parenting-character-in-table -(1,27): foster-parenting-character-in-table -(1,27): eof-in-table -#document -| <html> -| <head> -| <body> -| "foo" -| <table> -| <colgroup> - -#data -<table></table><p>foo -#errors -(1,7): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <table> -| <p> -| "foo" - -#data -<table></body></caption></col></colgroup></html></tbody></td></tfoot></th></thead></tr><td> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,14): unexpected-end-tag -(1,24): unexpected-end-tag -(1,30): unexpected-end-tag -(1,41): unexpected-end-tag -(1,48): unexpected-end-tag -(1,56): unexpected-end-tag -(1,61): unexpected-end-tag -(1,69): unexpected-end-tag -(1,74): unexpected-end-tag -(1,82): unexpected-end-tag -(1,87): unexpected-end-tag -(1,91): unexpected-cell-in-table-body -(1,91): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> - -#data -<table><select><option>3</select></table> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,15): unexpected-start-tag-implies-table-voodoo -#document -| <html> -| <head> -| <body> -| <select> -| <option> -| "3" -| <table> - -#data -<table><select><table></table></select></table> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,15): unexpected-start-tag-implies-table-voodoo -(1,22): unexpected-table-element-start-tag-in-select-in-table -(1,22): unexpected-start-tag-implies-end-tag -(1,39): unexpected-end-tag -(1,47): unexpected-end-tag -#document -| <html> -| <head> -| <body> -| <select> -| <table> -| <table> - -#data -<table><select></table> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,15): unexpected-start-tag-implies-table-voodoo -(1,23): unexpected-table-element-end-tag-in-select-in-table -#document -| <html> -| <head> -| <body> -| <select> -| <table> - -#data -<table><select><option>A<tr><td>B</td></tr></table> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,15): unexpected-start-tag-implies-table-voodoo -(1,28): unexpected-table-element-start-tag-in-select-in-table -#document -| <html> -| <head> -| <body> -| <select> -| <option> -| "A" -| <table> -| <tbody> -| <tr> -| <td> -| "B" - -#data -<table><td></body></caption></col></colgroup></html>foo -#errors -(1,7): expected-doctype-but-got-start-tag -(1,11): unexpected-cell-in-table-body -(1,18): unexpected-end-tag -(1,28): unexpected-end-tag -(1,34): unexpected-end-tag -(1,45): unexpected-end-tag -(1,52): unexpected-end-tag -(1,55): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| "foo" - -#data -<table><td>A</table>B -#errors -(1,7): expected-doctype-but-got-start-tag -(1,11): unexpected-cell-in-table-body -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| "A" -| "B" - -#data -<table><tr><caption> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,20): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <caption> - -#data -<table><tr></body></caption></col></colgroup></html></td></th><td>foo -#errors -(1,7): expected-doctype-but-got-start-tag -(1,18): unexpected-end-tag-in-table-row -(1,28): unexpected-end-tag-in-table-row -(1,34): unexpected-end-tag-in-table-row -(1,45): unexpected-end-tag-in-table-row -(1,52): unexpected-end-tag-in-table-row -(1,57): unexpected-end-tag-in-table-row -(1,62): unexpected-end-tag-in-table-row -(1,69): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| "foo" - -#data -<table><td><tr> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,11): unexpected-cell-in-table-body -(1,15): eof-in-table -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <tr> - -#data -<table><td><button><td> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,11): unexpected-cell-in-table-body -(1,23): unexpected-cell-end-tag -(1,23): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <button> -| <td> - -#data -<table><tr><td><svg><desc><td> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,30): unexpected-cell-end-tag -(1,30): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <svg svg> -| <svg desc> -| <td> diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/template.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/template.dat deleted file mode 100644 index f370cc18607..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/template.dat +++ /dev/null @@ -1,1591 +0,0 @@ -#data -<body><template>Hello</template> -#errors -no doctype -#document -| <html> -| <head> -| <body> -| <template> -| content -| "Hello" - -#data -<template>Hello</template> -#errors -no doctype -#document -| <html> -| <head> -| <template> -| content -| "Hello" -| <body> - -#data -<template></template><div></div> -#errors -no doctype -#document -| <html> -| <head> -| <template> -| content -| <body> -| <div> - -#data -<html><template>Hello</template> -#errors -no doctype -#document -| <html> -| <head> -| <template> -| content -| "Hello" -| <body> - -#data -<head><template><div></div></template></head> -#errors -no doctype -#document -| <html> -| <head> -| <template> -| content -| <div> -| <body> - -#data -<div><template><div><span></template><b> -#errors - * (1,6) missing DOCTYPE - * (1,38) mismatched template end tag - * (1,41) unexpected end of file -#document -| <html> -| <head> -| <body> -| <div> -| <template> -| content -| <div> -| <span> -| <b> - -#data -<div><template></div>Hello -#errors - * (1,6) missing DOCTYPE - * (1,22) unexpected token in template - * (1,27) unexpected end of file in template - * (1,27) unexpected end of file -#document -| <html> -| <head> -| <body> -| <div> -| <template> -| content -| "Hello" - -#data -<div></template></div> -#errors - * (1,6) missing DOCTYPE - * (1,17) unexpected template end tag -#document -| <html> -| <head> -| <body> -| <div> - -#data -<table><template></template></table> -#errors -no doctype -#document -| <html> -| <head> -| <body> -| <table> -| <template> -| content - -#data -<table><template></template></div> -#errors - * (1,8) missing DOCTYPE - * (1,35) unexpected token in table - foster parenting - * (1,35) unexpected end tag - * (1,35) unexpected end of file -#document -| <html> -| <head> -| <body> -| <table> -| <template> -| content - -#data -<table><div><template></template></div> -#errors - * (1,8) missing DOCTYPE - * (1,13) unexpected token in table - foster parenting - * (1,40) unexpected token in table - foster parenting - * (1,40) unexpected end of file -#document -| <html> -| <head> -| <body> -| <div> -| <template> -| content -| <table> - -#data -<table><template></template><div></div> -#errors -no doctype -bad div in table -bad /div in table -eof in table -#document -| <html> -| <head> -| <body> -| <div> -| <table> -| <template> -| content - -#data -<table> <template></template></table> -#errors -no doctype -#document -| <html> -| <head> -| <body> -| <table> -| " " -| <template> -| content - -#data -<table><tbody><template></template></tbody> -#errors -no doctype -eof in table -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <template> -| content - -#data -<table><tbody><template></tbody></template> -#errors -no doctype -bad /tbody -eof in table -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <template> -| content - -#data -<table><tbody><template></template></tbody></table> -#errors -no doctype -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <template> -| content - -#data -<table><thead><template></template></thead> -#errors -no doctype -eof in table -#document -| <html> -| <head> -| <body> -| <table> -| <thead> -| <template> -| content - -#data -<table><tfoot><template></template></tfoot> -#errors -no doctype -eof in table -#document -| <html> -| <head> -| <body> -| <table> -| <tfoot> -| <template> -| content - -#data -<select><template></template></select> -#errors -no doctype -#document -| <html> -| <head> -| <body> -| <select> -| <template> -| content - -#data -<select><template><option></option></template></select> -#errors -no doctype -#document -| <html> -| <head> -| <body> -| <select> -| <template> -| content -| <option> - -#data -<template><option></option></select><option></option></template> -#errors -no doctype -bad /select -#document -| <html> -| <head> -| <template> -| content -| <option> -| <option> -| <body> - -#data -<select><template></template><option></select> -#errors -no doctype -#document -| <html> -| <head> -| <body> -| <select> -| <template> -| content -| <option> - -#data -<select><option><template></template></select> -#errors -no doctype -#document -| <html> -| <head> -| <body> -| <select> -| <option> -| <template> -| content - -#data -<select><template> -#errors -no doctype -eof in template -eof in select -#document -| <html> -| <head> -| <body> -| <select> -| <template> -| content - -#data -<select><option></option><template> -#errors -no doctype -eof in template -eof in select -#document -| <html> -| <head> -| <body> -| <select> -| <option> -| <template> -| content - -#data -<select><option></option><template><option> -#errors -no doctype -eof in template -eof in select -#document -| <html> -| <head> -| <body> -| <select> -| <option> -| <template> -| content -| <option> - -#data -<table><thead><template><td></template></table> -#errors - * (1,8) missing DOCTYPE -#document -| <html> -| <head> -| <body> -| <table> -| <thead> -| <template> -| content -| <td> - -#data -<table><template><thead></template></table> -#errors -no doctype -#document -| <html> -| <head> -| <body> -| <table> -| <template> -| content -| <thead> - -#data -<body><table><template><td></tr><div></template></table> -#errors -no doctype -bad </tr> -missing </div> -#document -| <html> -| <head> -| <body> -| <table> -| <template> -| content -| <td> -| <div> - -#data -<table><template><thead></template></thead></table> -#errors -no doctype -bad /thead after /template -#document -| <html> -| <head> -| <body> -| <table> -| <template> -| content -| <thead> - -#data -<table><thead><template><tr></template></table> -#errors -no doctype -#document -| <html> -| <head> -| <body> -| <table> -| <thead> -| <template> -| content -| <tr> - -#data -<table><template><tr></template></table> -#errors -no doctype -#document -| <html> -| <head> -| <body> -| <table> -| <template> -| content -| <tr> - -#data -<table><tr><template><td> -#errors -no doctype -eof in template -eof in table -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <template> -| content -| <td> - -#data -<table><template><tr><template><td></template></tr></template></table> -#errors -no doctype -#document -| <html> -| <head> -| <body> -| <table> -| <template> -| content -| <tr> -| <template> -| content -| <td> - -#data -<table><template><tr><template><td></td></template></tr></template></table> -#errors -no doctype -#document -| <html> -| <head> -| <body> -| <table> -| <template> -| content -| <tr> -| <template> -| content -| <td> - -#data -<table><template><td></template> -#errors -no doctype -eof in table -#document -| <html> -| <head> -| <body> -| <table> -| <template> -| content -| <td> - -#data -<body><template><td></td></template> -#errors -no doctype -#document -| <html> -| <head> -| <body> -| <template> -| content -| <td> - -#data -<body><template><template><tr></tr></template><td></td></template> -#errors -no doctype -#document -| <html> -| <head> -| <body> -| <template> -| content -| <template> -| content -| <tr> -| <td> - -#data -<table><colgroup><template><col> -#errors -no doctype -eof in template -eof in table -#document -| <html> -| <head> -| <body> -| <table> -| <colgroup> -| <template> -| content -| <col> - -#data -<frameset><template><frame></frame></template></frameset> -#errors - * (1,11) missing DOCTYPE - * (1,21) unexpected start tag token - * (1,36) unexpected end tag token - * (1,47) unexpected end tag token -#document -| <html> -| <head> -| <frameset> -| <frame> - -#data -<template><frame></frame></frameset><frame></frame></template> -#errors - * (1,11) missing DOCTYPE - * (1,18) unexpected start tag - * (1,26) unexpected end tag - * (1,37) unexpected end tag - * (1,44) unexpected start tag - * (1,52) unexpected end tag -#document -| <html> -| <head> -| <template> -| content -| <body> - -#data -<template><div><frameset><span></span></div><span></span></template> -#errors -no doctype -bad frameset -#document -| <html> -| <head> -| <template> -| content -| <div> -| <span> -| <span> -| <body> - -#data -<body><template><div><frameset><span></span></div><span></span></template></body> -#errors -no doctype -bad frameset -#document -| <html> -| <head> -| <body> -| <template> -| content -| <div> -| <span> -| <span> - -#data -<body><template><script>var i = 1;</script><td></td></template> -#errors -no doctype -#document -| <html> -| <head> -| <body> -| <template> -| content -| <script> -| "var i = 1;" -| <td> - -#data -<body><template><tr><div></div></tr></template> -#errors -no doctype -foster-parented div -foster-parented /div -#document -| <html> -| <head> -| <body> -| <template> -| content -| <tr> -| <div> - -#data -<body><template><tr></tr><td></td></template> -#errors -no doctype -unexpected <td> -#document -| <html> -| <head> -| <body> -| <template> -| content -| <tr> -| <tr> -| <td> - -#data -<body><template><td></td></tr><td></td></template> -#errors -no doctype -bad </tr> -#document -| <html> -| <head> -| <body> -| <template> -| content -| <td> -| <td> - -#data -<body><template><td></td><tbody><td></td></template> -#errors -no doctype -bad <tbody> -#document -| <html> -| <head> -| <body> -| <template> -| content -| <td> -| <td> - -#data -<body><template><td></td><caption></caption><td></td></template> -#errors - * (1,7) missing DOCTYPE - * (1,35) unexpected start tag in table row - * (1,45) unexpected end tag in table row -#document -| <html> -| <head> -| <body> -| <template> -| content -| <td> -| <td> - -#data -<body><template><td></td><colgroup></caption><td></td></template> -#errors - * (1,7) missing DOCTYPE - * (1,36) unexpected start tag in table row - * (1,46) unexpected end tag in table row -#document -| <html> -| <head> -| <body> -| <template> -| content -| <td> -| <td> - -#data -<body><template><td></td></table><td></td></template> -#errors -no doctype -bad </table> -#document -| <html> -| <head> -| <body> -| <template> -| content -| <td> -| <td> - -#data -<body><template><tr></tr><tbody><tr></tr></template> -#errors -no doctype -bad <tbody> -#document -| <html> -| <head> -| <body> -| <template> -| content -| <tr> -| <tr> - -#data -<body><template><tr></tr><caption><tr></tr></template> -#errors -no doctype -bad <caption> -#document -| <html> -| <head> -| <body> -| <template> -| content -| <tr> -| <tr> - -#data -<body><template><tr></tr></table><tr></tr></template> -#errors -no doctype -bad </table> -#document -| <html> -| <head> -| <body> -| <template> -| content -| <tr> -| <tr> - -#data -<body><template><thead></thead><caption></caption><tbody></tbody></template> -#errors -no doctype -#document -| <html> -| <head> -| <body> -| <template> -| content -| <thead> -| <caption> -| <tbody> - -#data -<body><template><thead></thead></table><tbody></tbody></template></body> -#errors -no doctype -bad </table> -#document -| <html> -| <head> -| <body> -| <template> -| content -| <thead> -| <tbody> - -#data -<body><template><div><tr></tr></div></template> -#errors -no doctype -bad tr -bad /tr -#document -| <html> -| <head> -| <body> -| <template> -| content -| <div> - -#data -<body><template><em>Hello</em></template> -#errors -no doctype -#document -| <html> -| <head> -| <body> -| <template> -| content -| <em> -| "Hello" - -#data -<body><template><!--comment--></template> -#errors -no doctype -#document -| <html> -| <head> -| <body> -| <template> -| content -| <!-- comment --> - -#data -<body><template><style></style><td></td></template> -#errors -no doctype -#document -| <html> -| <head> -| <body> -| <template> -| content -| <style> -| <td> - -#data -<body><template><meta><td></td></template> -#errors -no doctype -#document -| <html> -| <head> -| <body> -| <template> -| content -| <meta> -| <td> - -#data -<body><template><link><td></td></template> -#errors -no doctype -#document -| <html> -| <head> -| <body> -| <template> -| content -| <link> -| <td> - -#data -<body><template><template><tr></tr></template><td></td></template> -#errors -no doctype -#document -| <html> -| <head> -| <body> -| <template> -| content -| <template> -| content -| <tr> -| <td> - -#data -<body><table><colgroup><template><col></col></template></colgroup></table></body> -#errors -no doctype -bad /col -#document -| <html> -| <head> -| <body> -| <table> -| <colgroup> -| <template> -| content -| <col> - -#data -<body a=b><template><div></div><body c=d><div></div></body></template></body> -#errors -no doctype -bad <body> -bad </body> -#document -| <html> -| <head> -| <body> -| a="b" -| <template> -| content -| <div> -| <div> - -#data -<html a=b><template><div><html b=c><span></template> -#errors -no doctype -bad <html> -missing end tags in template -#document -| <html> -| a="b" -| <head> -| <template> -| content -| <div> -| <span> -| <body> - -#data -<html a=b><template><col></col><html b=c><col></col></template> -#errors -no doctype -bad /col -bad html -bad /col -#document -| <html> -| a="b" -| <head> -| <template> -| content -| <col> -| <col> -| <body> - -#data -<html a=b><template><frame></frame><html b=c><frame></frame></template> -#errors -no doctype -bad frame -bad /frame -bad html -bad frame -bad /frame -#document -| <html> -| a="b" -| <head> -| <template> -| content -| <body> - -#data -<body><template><tr></tr><template></template><td></td></template> -#errors -no doctype -unexpected <td> -#document -| <html> -| <head> -| <body> -| <template> -| content -| <tr> -| <template> -| content -| <tr> -| <td> - -#data -<body><template><thead></thead><template><tr></tr></template><tr></tr><tfoot></tfoot></template> -#errors -no doctype -#document -| <html> -| <head> -| <body> -| <template> -| content -| <thead> -| <template> -| content -| <tr> -| <tbody> -| <tr> -| <tfoot> - -#data -<body><template><template><b><template></template></template>text</template> -#errors -no doctype -missing </b> -#document -| <html> -| <head> -| <body> -| <template> -| content -| <template> -| content -| <b> -| <template> -| content -| "text" - -#data -<body><template><col><colgroup> -#errors -no doctype -bad colgroup -eof in template -#document -| <html> -| <head> -| <body> -| <template> -| content -| <col> - -#data -<body><template><col></colgroup> -#errors -no doctype -bogus /colgroup -eof in template -#document -| <html> -| <head> -| <body> -| <template> -| content -| <col> - -#data -<body><template><col><colgroup></template></body> -#errors -no doctype -bad colgroup -#document -| <html> -| <head> -| <body> -| <template> -| content -| <col> - -#data -<body><template><col><div> -#errors - * (1,7) missing DOCTYPE - * (1,27) unexpected token - * (1,27) unexpected end of file in template -#document -| <html> -| <head> -| <body> -| <template> -| content -| <col> - -#data -<body><template><col></div> -#errors -no doctype -bad /div -eof in template -#document -| <html> -| <head> -| <body> -| <template> -| content -| <col> - -#data -<body><template><col>Hello -#errors -no doctype -unexpected text -eof in template -#document -| <html> -| <head> -| <body> -| <template> -| content -| <col> - -#data -<body><template><i><menu>Foo</i> -#errors -no doctype -mising /menu -eof in template -#document -| <html> -| <head> -| <body> -| <template> -| content -| <i> -| <menu> -| <i> -| "Foo" - -#data -<body><template></div><div>Foo</div><template></template><tr></tr> -#errors -no doctype -bogus /div -bogus tr -bogus /tr -eof in template -#document -| <html> -| <head> -| <body> -| <template> -| content -| <div> -| "Foo" -| <template> -| content - -#data -<body><div><template></div><tr><td>Foo</td></tr></template> -#errors - * (1,7) missing DOCTYPE - * (1,28) unexpected token in template - * (1,60) unexpected end of file -#document -| <html> -| <head> -| <body> -| <div> -| <template> -| content -| <tr> -| <td> -| "Foo" - -#data -<template></figcaption><sub><table></table> -#errors -no doctype -bad /figcaption -eof in template -#document -| <html> -| <head> -| <template> -| content -| <sub> -| <table> -| <body> - -#data -<template><template> -#errors -no doctype -eof in template -eof in template -#document -| <html> -| <head> -| <template> -| content -| <template> -| content -| <body> - -#data -<template><div> -#errors -no doctype -eof in template -#document -| <html> -| <head> -| <template> -| content -| <div> -| <body> - -#data -<template><template><div> -#errors -no doctype -eof in template -eof in template -#document -| <html> -| <head> -| <template> -| content -| <template> -| content -| <div> -| <body> - -#data -<template><template><table> -#errors -no doctype -eof in template -eof in template -#document -| <html> -| <head> -| <template> -| content -| <template> -| content -| <table> -| <body> - -#data -<template><template><tbody> -#errors -no doctype -eof in template -eof in template -#document -| <html> -| <head> -| <template> -| content -| <template> -| content -| <tbody> -| <body> - -#data -<template><template><tr> -#errors -no doctype -eof in template -eof in template -#document -| <html> -| <head> -| <template> -| content -| <template> -| content -| <tr> -| <body> - -#data -<template><template><td> -#errors -no doctype -eof in template -eof in template -#document -| <html> -| <head> -| <template> -| content -| <template> -| content -| <td> -| <body> - -#data -<template><template><caption> -#errors -no doctype -eof in template -eof in template -#document -| <html> -| <head> -| <template> -| content -| <template> -| content -| <caption> -| <body> - -#data -<template><template><colgroup> -#errors -no doctype -eof in template -eof in template -#document -| <html> -| <head> -| <template> -| content -| <template> -| content -| <colgroup> -| <body> - -#data -<template><template><col> -#errors -no doctype -eof in template -eof in template -#document -| <html> -| <head> -| <template> -| content -| <template> -| content -| <col> -| <body> - -#data -<template><template><tbody><select> -#errors - * (1,11) missing DOCTYPE - * (1,36) unexpected token in table - foster parenting - * (1,36) unexpected end of file in template - * (1,36) unexpected end of file in template -#document -| <html> -| <head> -| <template> -| content -| <template> -| content -| <tbody> -| <select> -| <body> - -#data -<template><template><table>Foo -#errors -no doctype -foster-parenting text F -foster-parenting text o -foster-parenting text o -eof -eof -#document -| <html> -| <head> -| <template> -| content -| <template> -| content -| "Foo" -| <table> -| <body> - -#data -<template><template><frame> -#errors -no doctype -bad tag -eof -eof -#document -| <html> -| <head> -| <template> -| content -| <template> -| content -| <body> - -#data -<template><template><script>var i -#errors -no doctype -eof in script -eof in template -eof in template -#document -| <html> -| <head> -| <template> -| content -| <template> -| content -| <script> -| "var i" -| <body> - -#data -<template><template><style>var i -#errors -no doctype -eof in style -eof in template -eof in template -#document -| <html> -| <head> -| <template> -| content -| <template> -| content -| <style> -| "var i" -| <body> - -#data -<template><table></template><body><span>Foo -#errors -no doctype -missing /table -bad eof -#document -| <html> -| <head> -| <template> -| content -| <table> -| <body> -| <span> -| "Foo" - -#data -<template><td></template><body><span>Foo -#errors -no doctype -bad eof -#document -| <html> -| <head> -| <template> -| content -| <td> -| <body> -| <span> -| "Foo" - -#data -<template><object></template><body><span>Foo -#errors -no doctype -missing /object -bad eof -#document -| <html> -| <head> -| <template> -| content -| <object> -| <body> -| <span> -| "Foo" - -#data -<template><svg><template> -#errors -no doctype -eof in template -#document -| <html> -| <head> -| <template> -| content -| <svg svg> -| <svg template> -| <body> - -#data -<template><svg><foo><template><foreignObject><div></template><div> -#errors -no doctype -ugly template closure -bad eof -#document -| <html> -| <head> -| <template> -| content -| <svg svg> -| <svg foo> -| <svg template> -| <svg foreignObject> -| <div> -| <body> -| <div> - -#data -<dummy><template><span></dummy> -#errors -no doctype -bad end tag </dummy> -eof in template -eof in dummy -#document -| <html> -| <head> -| <body> -| <dummy> -| <template> -| content -| <span> - -#data -<body><table><tr><td><select><template>Foo</template><caption>A</table> -#errors -no doctype -(1,62): unexpected-caption-in-select-in-table -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <select> -| <template> -| content -| "Foo" -| <caption> -| "A" - -#data -<body></body><template> -#errors -no doctype -(1,23): template-after-body -(1,24): eof-in-template -#document -| <html> -| <head> -| <body> -| <template> -| content - -#data -<head></head><template> -#errors -no doctype -(1,23): template-after-head -(1,24): eof-in-template -#document -| <html> -| <head> -| <template> -| content -| <body> - -#data -<head></head><template>Foo</template> -#errors -no doctype -(1,23): template-after-head -#document -| <html> -| <head> -| <template> -| content -| "Foo" -| <body> - -#data -<!DOCTYPE HTML><dummy><table><template><table><template><table><script> -#errors -eof script -eof template -eof template -eof table -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <dummy> -| <table> -| <template> -| content -| <table> -| <template> -| content -| <table> -| <script> diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests1.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests1.dat deleted file mode 100644 index d6726e305ce..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests1.dat +++ /dev/null @@ -1,1959 +0,0 @@ -#data -Test -#errors -(1,0): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "Test" - -#data -<p>One<p>Two -#errors -(1,3): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <p> -| "One" -| <p> -| "Two" - -#data -Line1<br>Line2<br>Line3<br>Line4 -#errors -(1,0): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "Line1" -| <br> -| "Line2" -| <br> -| "Line3" -| <br> -| "Line4" - -#data -<html> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> - -#data -<head> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> - -#data -<body> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> - -#data -<html><head> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> - -#data -<html><head></head> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> - -#data -<html><head></head><body> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> - -#data -<html><head></head><body></body> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> - -#data -<html><head><body></body></html> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> - -#data -<html><head></body></html> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> - -#data -<html><head><body></html> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> - -#data -<html><body></html> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> - -#data -<body></html> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> - -#data -<head></html> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> - -#data -</head> -#errors -(1,7): expected-doctype-but-got-end-tag -#document -| <html> -| <head> -| <body> - -#data -</body> -#errors -(1,7): expected-doctype-but-got-end-tag element. -#document -| <html> -| <head> -| <body> - -#data -</html> -#errors -(1,7): expected-doctype-but-got-end-tag element. -#document -| <html> -| <head> -| <body> - -#data -<b><table><td><i></table> -#errors -(1,3): expected-doctype-but-got-start-tag -(1,14): unexpected-cell-in-table-body -(1,25): unexpected-cell-end-tag -(1,25): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <b> -| <table> -| <tbody> -| <tr> -| <td> -| <i> - -#data -<b><table><td></b><i></table>X -#errors -(1,3): expected-doctype-but-got-start-tag -(1,14): unexpected-cell-in-table-body -(1,18): unexpected-end-tag -(1,29): unexpected-cell-end-tag -(1,30): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <b> -| <table> -| <tbody> -| <tr> -| <td> -| <i> -| "X" - -#data -<h1>Hello<h2>World -#errors -(1,4): expected-doctype-but-got-start-tag -(1,13): unexpected-start-tag -(1,18): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <h1> -| "Hello" -| <h2> -| "World" - -#data -<a><p>X<a>Y</a>Z</p></a> -#errors -(1,3): expected-doctype-but-got-start-tag -(1,10): unexpected-start-tag-implies-end-tag -(1,10): adoption-agency-1.3 -(1,24): unexpected-end-tag -#document -| <html> -| <head> -| <body> -| <a> -| <p> -| <a> -| "X" -| <a> -| "Y" -| "Z" - -#data -<b><button>foo</b>bar -#errors -(1,3): expected-doctype-but-got-start-tag -(1,18): adoption-agency-1.3 -(1,21): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <b> -| <button> -| <b> -| "foo" -| "bar" - -#data -<!DOCTYPE html><span><button>foo</span>bar -#errors -(1,39): unexpected-end-tag -(1,42): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <span> -| <button> -| "foobar" - -#data -<p><b><div><marquee></p></b></div>X -#errors -(1,3): expected-doctype-but-got-start-tag -(1,11): unexpected-end-tag -(1,24): unexpected-end-tag -(1,28): unexpected-end-tag -(1,34): end-tag-too-early -(1,35): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <p> -| <b> -| <div> -| <b> -| <marquee> -| <p> -| "X" - -#data -<script><div></script></div><title><p></title><p><p> -#errors -(1,8): expected-doctype-but-got-start-tag -(1,28): unexpected-end-tag -#document -| <html> -| <head> -| <script> -| "<div>" -| <title> -| "<p>" -| <body> -| <p> -| <p> - -#data -<!--><div>--<!--> -#errors -(1,5): incorrect-comment -(1,10): expected-doctype-but-got-start-tag -(1,17): incorrect-comment -(1,17): expected-closing-tag-but-got-eof -#document -| <!-- --> -| <html> -| <head> -| <body> -| <div> -| "--" -| <!-- --> - -#data -<p><hr></p> -#errors -(1,3): expected-doctype-but-got-start-tag -(1,11): unexpected-end-tag -#document -| <html> -| <head> -| <body> -| <p> -| <hr> -| <p> - -#data -<select><b><option><select><option></b></select>X -#errors -(1,8): expected-doctype-but-got-start-tag -(1,11): unexpected-start-tag-in-select -(1,27): unexpected-select-in-select -(1,39): unexpected-end-tag -(1,48): unexpected-end-tag -(1,49): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <select> -| <option> -| <option> -| "X" - -#data -<a><table><td><a><table></table><a></tr><a></table><b>X</b>C<a>Y -#errors -(1,3): expected-doctype-but-got-start-tag -(1,14): unexpected-cell-in-table-body -(1,35): unexpected-start-tag-implies-end-tag -(1,40): unexpected-cell-end-tag -(1,43): unexpected-start-tag-implies-table-voodoo -(1,43): unexpected-start-tag-implies-end-tag -(1,43): unexpected-end-tag -(1,63): unexpected-start-tag-implies-end-tag -(1,64): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <a> -| <a> -| <table> -| <tbody> -| <tr> -| <td> -| <a> -| <table> -| <a> -| <a> -| <b> -| "X" -| "C" -| <a> -| "Y" - -#data -<a X>0<b>1<a Y>2 -#errors -(1,5): expected-doctype-but-got-start-tag -(1,15): unexpected-start-tag-implies-end-tag -(1,15): adoption-agency-1.3 -(1,16): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <a> -| x="" -| "0" -| <b> -| "1" -| <b> -| <a> -| y="" -| "2" - -#data -<!-----><font><div>hello<table>excite!<b>me!<th><i>please!</tr><!--X--> -#errors -(1,7): unexpected-dash-after-double-dash-in-comment -(1,14): expected-doctype-but-got-start-tag -(1,41): unexpected-start-tag-implies-table-voodoo -(1,48): foster-parenting-character-in-table -(1,48): foster-parenting-character-in-table -(1,48): foster-parenting-character-in-table -(1,48): foster-parenting-character-in-table -(1,48): foster-parenting-character-in-table -(1,48): foster-parenting-character-in-table -(1,48): foster-parenting-character-in-table -(1,48): foster-parenting-character-in-table -(1,48): foster-parenting-character-in-table -(1,48): foster-parenting-character-in-table -(1,48): unexpected-cell-in-table-body -(1,63): unexpected-cell-end-tag -(1,71): eof-in-table -#document -| <!-- - --> -| <html> -| <head> -| <body> -| <font> -| <div> -| "helloexcite!" -| <b> -| "me!" -| <table> -| <tbody> -| <tr> -| <th> -| <i> -| "please!" -| <!-- X --> - -#data -<!DOCTYPE html><li>hello<li>world<ul>how<li>do</ul>you</body><!--do--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <li> -| "hello" -| <li> -| "world" -| <ul> -| "how" -| <li> -| "do" -| "you" -| <!-- do --> - -#data -<!DOCTYPE html>A<option>B<optgroup>C<select>D</option>E -#errors -(1,54): unexpected-end-tag-in-select -(1,55): eof-in-select -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "A" -| <option> -| "B" -| <optgroup> -| "C" -| <select> -| "DE" - -#data -< -#errors -(1,1): expected-tag-name -(1,1): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "<" - -#data -<# -#errors -(1,1): expected-tag-name -(1,1): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "<#" - -#data -</ -#errors -(1,2): expected-closing-tag-but-got-eof -(1,2): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "</" - -#data -</# -#errors -(1,2): expected-closing-tag-but-got-char -(1,3): expected-doctype-but-got-eof -#document -| <!-- # --> -| <html> -| <head> -| <body> - -#data -<? -#errors -(1,1): expected-tag-name-but-got-question-mark -(1,2): expected-doctype-but-got-eof -#document -| <!-- ? --> -| <html> -| <head> -| <body> - -#data -<?# -#errors -(1,1): expected-tag-name-but-got-question-mark -(1,3): expected-doctype-but-got-eof -#document -| <!-- ?# --> -| <html> -| <head> -| <body> - -#data -<! -#errors -(1,2): expected-dashes-or-doctype -(1,2): expected-doctype-but-got-eof -#document -| <!-- --> -| <html> -| <head> -| <body> - -#data -<!# -#errors -(1,2): expected-dashes-or-doctype -(1,3): expected-doctype-but-got-eof -#document -| <!-- # --> -| <html> -| <head> -| <body> - -#data -<?COMMENT?> -#errors -(1,1): expected-tag-name-but-got-question-mark -(1,11): expected-doctype-but-got-eof -#document -| <!-- ?COMMENT? --> -| <html> -| <head> -| <body> - -#data -<!COMMENT> -#errors -(1,2): expected-dashes-or-doctype -(1,10): expected-doctype-but-got-eof -#document -| <!-- COMMENT --> -| <html> -| <head> -| <body> - -#data -</ COMMENT > -#errors -(1,2): expected-closing-tag-but-got-char -(1,12): expected-doctype-but-got-eof -#document -| <!-- COMMENT --> -| <html> -| <head> -| <body> - -#data -<?COM--MENT?> -#errors -(1,1): expected-tag-name-but-got-question-mark -(1,13): expected-doctype-but-got-eof -#document -| <!-- ?COM--MENT? --> -| <html> -| <head> -| <body> - -#data -<!COM--MENT> -#errors -(1,2): expected-dashes-or-doctype -(1,12): expected-doctype-but-got-eof -#document -| <!-- COM--MENT --> -| <html> -| <head> -| <body> - -#data -</ COM--MENT > -#errors -(1,2): expected-closing-tag-but-got-char -(1,14): expected-doctype-but-got-eof -#document -| <!-- COM--MENT --> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html><style> EOF -#errors -(1,26): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| " EOF" -| <body> - -#data -<!DOCTYPE html><script> <!-- </script> --> </script> EOF -#errors -(1,52): unexpected-end-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| " <!-- " -| " " -| <body> -| "--> EOF" - -#data -<b><p></b>TEST -#errors -(1,3): expected-doctype-but-got-start-tag -(1,10): adoption-agency-1.3 -#document -| <html> -| <head> -| <body> -| <b> -| <p> -| <b> -| "TEST" - -#data -<p id=a><b><p id=b></b>TEST -#errors -(1,8): expected-doctype-but-got-start-tag -(1,19): unexpected-end-tag -(1,23): adoption-agency-1.2 -#document -| <html> -| <head> -| <body> -| <p> -| id="a" -| <b> -| <p> -| id="b" -| "TEST" - -#data -<b id=a><p><b id=b></p></b>TEST -#errors -(1,8): expected-doctype-but-got-start-tag -(1,23): unexpected-end-tag -(1,27): adoption-agency-1.2 -(1,31): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <b> -| id="a" -| <p> -| <b> -| id="b" -| "TEST" - -#data -<!DOCTYPE html><title>U-test</title><body><div><p>Test<u></p></div></body> -#errors -(1,61): unexpected-end-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <title> -| "U-test" -| <body> -| <div> -| <p> -| "Test" -| <u> - -#data -<!DOCTYPE html><font><table></font></table></font> -#errors -(1,35): unexpected-end-tag-implies-table-voodoo -(1,35): unexpected-end-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <font> -| <table> - -#data -<font><p>hello<b>cruel</font>world -#errors -(1,6): expected-doctype-but-got-start-tag -(1,29): adoption-agency-1.3 -(1,29): adoption-agency-1.3 -(1,34): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <font> -| <p> -| <font> -| "hello" -| <b> -| "cruel" -| <b> -| "world" - -#data -<b>Test</i>Test -#errors -(1,3): expected-doctype-but-got-start-tag -(1,11): unexpected-end-tag -(1,15): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <b> -| "TestTest" - -#data -<b>A<cite>B<div>C -#errors -(1,3): expected-doctype-but-got-start-tag -(1,17): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <b> -| "A" -| <cite> -| "B" -| <div> -| "C" - -#data -<b>A<cite>B<div>C</cite>D -#errors -(1,3): expected-doctype-but-got-start-tag -(1,24): unexpected-end-tag -(1,25): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <b> -| "A" -| <cite> -| "B" -| <div> -| "CD" - -#data -<b>A<cite>B<div>C</b>D -#errors -(1,3): expected-doctype-but-got-start-tag -(1,21): adoption-agency-1.3 -(1,22): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <b> -| "A" -| <cite> -| "B" -| <div> -| <b> -| "C" -| "D" - -#data - -#errors -(1,0): expected-doctype-but-got-eof -#document -| <html> -| <head> -| <body> - -#data -<DIV> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,5): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <div> - -#data -<DIV> abc -#errors -(1,5): expected-doctype-but-got-start-tag -(1,9): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <div> -| " abc" - -#data -<DIV> abc <B> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,13): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <div> -| " abc " -| <b> - -#data -<DIV> abc <B> def -#errors -(1,5): expected-doctype-but-got-start-tag -(1,17): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <div> -| " abc " -| <b> -| " def" - -#data -<DIV> abc <B> def <I> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,21): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <div> -| " abc " -| <b> -| " def " -| <i> - -#data -<DIV> abc <B> def <I> ghi -#errors -(1,5): expected-doctype-but-got-start-tag -(1,25): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <div> -| " abc " -| <b> -| " def " -| <i> -| " ghi" - -#data -<DIV> abc <B> def <I> ghi <P> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,29): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <div> -| " abc " -| <b> -| " def " -| <i> -| " ghi " -| <p> - -#data -<DIV> abc <B> def <I> ghi <P> jkl -#errors -(1,5): expected-doctype-but-got-start-tag -(1,33): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <div> -| " abc " -| <b> -| " def " -| <i> -| " ghi " -| <p> -| " jkl" - -#data -<DIV> abc <B> def <I> ghi <P> jkl </B> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,38): adoption-agency-1.3 -(1,38): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <div> -| " abc " -| <b> -| " def " -| <i> -| " ghi " -| <i> -| <p> -| <b> -| " jkl " - -#data -<DIV> abc <B> def <I> ghi <P> jkl </B> mno -#errors -(1,5): expected-doctype-but-got-start-tag -(1,38): adoption-agency-1.3 -(1,42): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <div> -| " abc " -| <b> -| " def " -| <i> -| " ghi " -| <i> -| <p> -| <b> -| " jkl " -| " mno" - -#data -<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,38): adoption-agency-1.3 -(1,47): adoption-agency-1.3 -(1,47): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <div> -| " abc " -| <b> -| " def " -| <i> -| " ghi " -| <i> -| <p> -| <i> -| <b> -| " jkl " -| " mno " - -#data -<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr -#errors -(1,5): expected-doctype-but-got-start-tag -(1,38): adoption-agency-1.3 -(1,47): adoption-agency-1.3 -(1,51): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <div> -| " abc " -| <b> -| " def " -| <i> -| " ghi " -| <i> -| <p> -| <i> -| <b> -| " jkl " -| " mno " -| " pqr" - -#data -<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr </P> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,38): adoption-agency-1.3 -(1,47): adoption-agency-1.3 -(1,56): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <div> -| " abc " -| <b> -| " def " -| <i> -| " ghi " -| <i> -| <p> -| <i> -| <b> -| " jkl " -| " mno " -| " pqr " - -#data -<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr </P> stu -#errors -(1,5): expected-doctype-but-got-start-tag -(1,38): adoption-agency-1.3 -(1,47): adoption-agency-1.3 -(1,60): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <div> -| " abc " -| <b> -| " def " -| <i> -| " ghi " -| <i> -| <p> -| <i> -| <b> -| " jkl " -| " mno " -| " pqr " -| " stu" - -#data -<test attribute----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> -#errors -(1,1040): expected-doctype-but-got-start-tag -(1,1040): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <test> -| attribute----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------="" - -#data -<a href="blah">aba<table><a href="foo">br<tr><td></td></tr>x</table>aoe -#errors -(1,15): expected-doctype-but-got-start-tag -(1,39): unexpected-start-tag-implies-table-voodoo -(1,39): unexpected-start-tag-implies-end-tag -(1,39): unexpected-end-tag -(1,45): foster-parenting-character-in-table -(1,45): foster-parenting-character-in-table -(1,68): foster-parenting-character-in-table -(1,71): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <a> -| href="blah" -| "aba" -| <a> -| href="foo" -| "br" -| <a> -| href="foo" -| "x" -| <table> -| <tbody> -| <tr> -| <td> -| <a> -| href="foo" -| "aoe" - -#data -<a href="blah">aba<table><tr><td><a href="foo">br</td></tr>x</table>aoe -#errors -(1,15): expected-doctype-but-got-start-tag -(1,54): unexpected-cell-end-tag -(1,68): unexpected text in table -(1,71): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <a> -| href="blah" -| "abax" -| <table> -| <tbody> -| <tr> -| <td> -| <a> -| href="foo" -| "br" -| "aoe" - -#data -<table><a href="blah">aba<tr><td><a href="foo">br</td></tr>x</table>aoe -#errors -(1,7): expected-doctype-but-got-start-tag -(1,22): unexpected-start-tag-implies-table-voodoo -(1,29): foster-parenting-character-in-table -(1,29): foster-parenting-character-in-table -(1,29): foster-parenting-character-in-table -(1,54): unexpected-cell-end-tag -(1,68): foster-parenting-character-in-table -(1,71): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <a> -| href="blah" -| "aba" -| <a> -| href="blah" -| "x" -| <table> -| <tbody> -| <tr> -| <td> -| <a> -| href="foo" -| "br" -| <a> -| href="blah" -| "aoe" - -#data -<a href=a>aa<marquee>aa<a href=b>bb</marquee>aa -#errors -(1,10): expected-doctype-but-got-start-tag -(1,45): end-tag-too-early -(1,47): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <a> -| href="a" -| "aa" -| <marquee> -| "aa" -| <a> -| href="b" -| "bb" -| "aa" - -#data -<wbr><strike><code></strike><code><strike></code> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,28): adoption-agency-1.3 -(1,49): adoption-agency-1.3 -(1,49): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <wbr> -| <strike> -| <code> -| <code> -| <code> -| <strike> - -#data -<!DOCTYPE html><spacer>foo -#errors -(1,26): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <spacer> -| "foo" - -#data -<title><meta></title><link><title><meta></title> -#errors -(1,7): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <title> -| "<meta>" -| <link> -| <title> -| "<meta>" -| <body> - -#data -<style><!--</style><meta><script>--><link></script> -#errors -(1,7): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <style> -| "<!--" -| <meta> -| <script> -| "--><link>" -| <body> - -#data -<head><meta></head><link> -#errors -(1,6): expected-doctype-but-got-start-tag -(1,25): unexpected-start-tag-out-of-my-head -#document -| <html> -| <head> -| <meta> -| <link> -| <body> - -#data -<table><tr><tr><td><td><span><th><span>X</table> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,33): unexpected-cell-end-tag -(1,48): unexpected-cell-end-tag -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <tr> -| <td> -| <td> -| <span> -| <th> -| <span> -| "X" - -#data -<body><body><base><link><meta><title><p></title><body><p></body> -#errors -(1,6): expected-doctype-but-got-start-tag -(1,12): unexpected-start-tag -(1,54): unexpected-start-tag -#document -| <html> -| <head> -| <body> -| <base> -| <link> -| <meta> -| <title> -| "<p>" -| <p> - -#data -<textarea><p></textarea> -#errors -(1,10): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <textarea> -| "<p>" - -#data -<p><image></p> -#errors -(1,3): expected-doctype-but-got-start-tag -(1,10): unexpected-start-tag-treated-as -#document -| <html> -| <head> -| <body> -| <p> -| <img> - -#data -<a><table><a></table><p><a><div><a> -#errors -(1,3): expected-doctype-but-got-start-tag -(1,13): unexpected-start-tag-implies-table-voodoo -(1,13): unexpected-start-tag-implies-end-tag -(1,13): adoption-agency-1.3 -(1,27): unexpected-start-tag-implies-end-tag -(1,27): adoption-agency-1.2 -(1,32): unexpected-end-tag -(1,35): unexpected-start-tag-implies-end-tag -(1,35): adoption-agency-1.2 -(1,35): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <a> -| <a> -| <table> -| <p> -| <a> -| <div> -| <a> - -#data -<head></p><meta><p> -#errors -(1,6): expected-doctype-but-got-start-tag -(1,10): unexpected-end-tag -#document -| <html> -| <head> -| <meta> -| <body> -| <p> - -#data -<head></html><meta><p> -#errors -(1,6): expected-doctype-but-got-start-tag -(1,19): expected-eof-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <meta> -| <p> - -#data -<b><table><td><i></table> -#errors -(1,3): expected-doctype-but-got-start-tag -(1,14): unexpected-cell-in-table-body -(1,25): unexpected-cell-end-tag -(1,25): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <b> -| <table> -| <tbody> -| <tr> -| <td> -| <i> - -#data -<b><table><td></b><i></table> -#errors -(1,3): expected-doctype-but-got-start-tag -(1,14): unexpected-cell-in-table-body -(1,18): unexpected-end-tag -(1,29): unexpected-cell-end-tag -(1,29): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <b> -| <table> -| <tbody> -| <tr> -| <td> -| <i> - -#data -<h1><h2> -#errors -(1,4): expected-doctype-but-got-start-tag -(1,8): unexpected-start-tag -(1,8): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <h1> -| <h2> - -#data -<a><p><a></a></p></a> -#errors -(1,3): expected-doctype-but-got-start-tag -(1,9): unexpected-start-tag-implies-end-tag -(1,9): adoption-agency-1.3 -(1,21): unexpected-end-tag -#document -| <html> -| <head> -| <body> -| <a> -| <p> -| <a> -| <a> - -#data -<b><button></b></button></b> -#errors -(1,3): expected-doctype-but-got-start-tag -(1,15): adoption-agency-1.3 -(1,28): unexpected-end-tag -#document -| <html> -| <head> -| <body> -| <b> -| <button> -| <b> - -#data -<p><b><div><marquee></p></b></div> -#errors -(1,3): expected-doctype-but-got-start-tag -(1,11): unexpected-end-tag -(1,24): unexpected-end-tag -(1,28): unexpected-end-tag -(1,34): end-tag-too-early -(1,34): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <p> -| <b> -| <div> -| <b> -| <marquee> -| <p> - -#data -<script></script></div><title></title><p><p> -#errors -(1,8): expected-doctype-but-got-start-tag -(1,23): unexpected-end-tag -#document -| <html> -| <head> -| <script> -| <title> -| <body> -| <p> -| <p> - -#data -<p><hr></p> -#errors -(1,3): expected-doctype-but-got-start-tag -(1,11): unexpected-end-tag -#document -| <html> -| <head> -| <body> -| <p> -| <hr> -| <p> - -#data -<select><b><option><select><option></b></select> -#errors -(1,8): expected-doctype-but-got-start-tag -(1,11): unexpected-start-tag-in-select -(1,27): unexpected-select-in-select -(1,39): unexpected-end-tag -(1,48): unexpected-end-tag -(1,48): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <select> -| <option> -| <option> - -#data -<html><head><title></title><body></body></html> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <title> -| <body> - -#data -<a><table><td><a><table></table><a></tr><a></table><a> -#errors -(1,3): expected-doctype-but-got-start-tag -(1,14): unexpected-cell-in-table-body -(1,35): unexpected-start-tag-implies-end-tag -(1,40): unexpected-cell-end-tag -(1,43): unexpected-start-tag-implies-table-voodoo -(1,43): unexpected-start-tag-implies-end-tag -(1,43): unexpected-end-tag -(1,54): unexpected-start-tag-implies-end-tag -(1,54): adoption-agency-1.2 -(1,54): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <a> -| <a> -| <table> -| <tbody> -| <tr> -| <td> -| <a> -| <table> -| <a> -| <a> - -#data -<ul><li></li><div><li></div><li><li><div><li><address><li><b><em></b><li></ul> -#errors -(1,4): expected-doctype-but-got-start-tag -(1,45): end-tag-too-early -(1,58): end-tag-too-early -(1,69): adoption-agency-1.3 -#document -| <html> -| <head> -| <body> -| <ul> -| <li> -| <div> -| <li> -| <li> -| <li> -| <div> -| <li> -| <address> -| <li> -| <b> -| <em> -| <li> - -#data -<ul><li><ul></li><li>a</li></ul></li></ul> -#errors -(1,4): expected-doctype-but-got-start-tag -(1,17): unexpected-end-tag -#document -| <html> -| <head> -| <body> -| <ul> -| <li> -| <ul> -| <li> -| "a" - -#data -<frameset><frame><frameset><frame></frameset><noframes></noframes></frameset> -#errors -(1,10): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <frameset> -| <frame> -| <frameset> -| <frame> -| <noframes> - -#data -<h1><table><td><h3></table><h3></h1> -#errors -(1,4): expected-doctype-but-got-start-tag -(1,15): unexpected-cell-in-table-body -(1,27): unexpected-cell-end-tag -(1,31): unexpected-start-tag -(1,36): end-tag-too-early -#document -| <html> -| <head> -| <body> -| <h1> -| <table> -| <tbody> -| <tr> -| <td> -| <h3> -| <h3> - -#data -<table><colgroup><col><colgroup><col><col><col><colgroup><col><col><thead><tr><td></table> -#errors -(1,7): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <table> -| <colgroup> -| <col> -| <colgroup> -| <col> -| <col> -| <col> -| <colgroup> -| <col> -| <col> -| <thead> -| <tr> -| <td> - -#data -<table><col><tbody><col><tr><col><td><col></table><col> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,37): unexpected-cell-in-table-body -(1,55): unexpected-start-tag-ignored -#document -| <html> -| <head> -| <body> -| <table> -| <colgroup> -| <col> -| <tbody> -| <colgroup> -| <col> -| <tbody> -| <tr> -| <colgroup> -| <col> -| <tbody> -| <tr> -| <td> -| <colgroup> -| <col> - -#data -<table><colgroup><tbody><colgroup><tr><colgroup><td><colgroup></table><colgroup> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,52): unexpected-cell-in-table-body -(1,80): unexpected-start-tag-ignored -#document -| <html> -| <head> -| <body> -| <table> -| <colgroup> -| <tbody> -| <colgroup> -| <tbody> -| <tr> -| <colgroup> -| <tbody> -| <tr> -| <td> -| <colgroup> - -#data -</strong></b></em></i></u></strike></s></blink></tt></pre></big></small></font></select></h1></h2></h3></h4></h5></h6></body></br></a></img></title></span></style></script></table></th></td></tr></frame></area></link></param></hr></input></col></base></meta></basefont></bgsound></embed></spacer></p></dd></dt></caption></colgroup></tbody></tfoot></thead></address></blockquote></center></dir></div></dl></fieldset></listing></menu></ol></ul></li></nobr></wbr></form></button></marquee></object></html></frameset></head></iframe></image></isindex></noembed></noframes></noscript></optgroup></option></plaintext></textarea> -#errors -(1,9): expected-doctype-but-got-end-tag -(1,9): unexpected-end-tag-before-html -(1,13): unexpected-end-tag-before-html -(1,18): unexpected-end-tag-before-html -(1,22): unexpected-end-tag-before-html -(1,26): unexpected-end-tag-before-html -(1,35): unexpected-end-tag-before-html -(1,39): unexpected-end-tag-before-html -(1,47): unexpected-end-tag-before-html -(1,52): unexpected-end-tag-before-html -(1,58): unexpected-end-tag-before-html -(1,64): unexpected-end-tag-before-html -(1,72): unexpected-end-tag-before-html -(1,79): unexpected-end-tag-before-html -(1,88): unexpected-end-tag-before-html -(1,93): unexpected-end-tag-before-html -(1,98): unexpected-end-tag-before-html -(1,103): unexpected-end-tag-before-html -(1,108): unexpected-end-tag-before-html -(1,113): unexpected-end-tag-before-html -(1,118): unexpected-end-tag-before-html -(1,130): unexpected-end-tag-after-body -(1,130): unexpected-end-tag-treated-as -(1,134): unexpected-end-tag -(1,140): unexpected-end-tag -(1,148): unexpected-end-tag -(1,155): unexpected-end-tag -(1,163): unexpected-end-tag -(1,172): unexpected-end-tag -(1,180): unexpected-end-tag -(1,185): unexpected-end-tag -(1,190): unexpected-end-tag -(1,195): unexpected-end-tag -(1,203): unexpected-end-tag -(1,210): unexpected-end-tag -(1,217): unexpected-end-tag -(1,225): unexpected-end-tag -(1,230): unexpected-end-tag -(1,238): unexpected-end-tag -(1,244): unexpected-end-tag -(1,251): unexpected-end-tag -(1,258): unexpected-end-tag -(1,269): unexpected-end-tag -(1,279): unexpected-end-tag -(1,287): unexpected-end-tag -(1,296): unexpected-end-tag -(1,300): unexpected-end-tag -(1,305): unexpected-end-tag -(1,310): unexpected-end-tag -(1,320): unexpected-end-tag -(1,331): unexpected-end-tag -(1,339): unexpected-end-tag -(1,347): unexpected-end-tag -(1,355): unexpected-end-tag -(1,365): end-tag-too-early -(1,378): end-tag-too-early -(1,387): end-tag-too-early -(1,393): end-tag-too-early -(1,399): end-tag-too-early -(1,404): end-tag-too-early -(1,415): end-tag-too-early -(1,425): end-tag-too-early -(1,432): end-tag-too-early -(1,437): end-tag-too-early -(1,442): end-tag-too-early -(1,447): unexpected-end-tag -(1,454): unexpected-end-tag -(1,460): unexpected-end-tag -(1,467): unexpected-end-tag -(1,476): end-tag-too-early -(1,486): end-tag-too-early -(1,495): end-tag-too-early -(1,513): expected-eof-but-got-end-tag -(1,513): unexpected-end-tag -(1,520): unexpected-end-tag -(1,529): unexpected-end-tag -(1,537): unexpected-end-tag -(1,547): unexpected-end-tag -(1,557): unexpected-end-tag -(1,568): unexpected-end-tag -(1,579): unexpected-end-tag -(1,590): unexpected-end-tag -(1,599): unexpected-end-tag -(1,611): unexpected-end-tag -(1,622): unexpected-end-tag -#document -| <html> -| <head> -| <body> -| <br> -| <p> - -#data -<table><tr></strong></b></em></i></u></strike></s></blink></tt></pre></big></small></font></select></h1></h2></h3></h4></h5></h6></body></br></a></img></title></span></style></script></table></th></td></tr></frame></area></link></param></hr></input></col></base></meta></basefont></bgsound></embed></spacer></p></dd></dt></caption></colgroup></tbody></tfoot></thead></address></blockquote></center></dir></div></dl></fieldset></listing></menu></ol></ul></li></nobr></wbr></form></button></marquee></object></html></frameset></head></iframe></image></isindex></noembed></noframes></noscript></optgroup></option></plaintext></textarea> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,20): unexpected-end-tag-implies-table-voodoo -(1,20): unexpected-end-tag -(1,24): unexpected-end-tag-implies-table-voodoo -(1,24): unexpected-end-tag -(1,29): unexpected-end-tag-implies-table-voodoo -(1,29): unexpected-end-tag -(1,33): unexpected-end-tag-implies-table-voodoo -(1,33): unexpected-end-tag -(1,37): unexpected-end-tag-implies-table-voodoo -(1,37): unexpected-end-tag -(1,46): unexpected-end-tag-implies-table-voodoo -(1,46): unexpected-end-tag -(1,50): unexpected-end-tag-implies-table-voodoo -(1,50): unexpected-end-tag -(1,58): unexpected-end-tag-implies-table-voodoo -(1,58): unexpected-end-tag -(1,63): unexpected-end-tag-implies-table-voodoo -(1,63): unexpected-end-tag -(1,69): unexpected-end-tag-implies-table-voodoo -(1,69): end-tag-too-early -(1,75): unexpected-end-tag-implies-table-voodoo -(1,75): unexpected-end-tag -(1,83): unexpected-end-tag-implies-table-voodoo -(1,83): unexpected-end-tag -(1,90): unexpected-end-tag-implies-table-voodoo -(1,90): unexpected-end-tag -(1,99): unexpected-end-tag-implies-table-voodoo -(1,99): unexpected-end-tag -(1,104): unexpected-end-tag-implies-table-voodoo -(1,104): end-tag-too-early -(1,109): unexpected-end-tag-implies-table-voodoo -(1,109): end-tag-too-early -(1,114): unexpected-end-tag-implies-table-voodoo -(1,114): end-tag-too-early -(1,119): unexpected-end-tag-implies-table-voodoo -(1,119): end-tag-too-early -(1,124): unexpected-end-tag-implies-table-voodoo -(1,124): end-tag-too-early -(1,129): unexpected-end-tag-implies-table-voodoo -(1,129): end-tag-too-early -(1,136): unexpected-end-tag-in-table-row -(1,141): unexpected-end-tag-implies-table-voodoo -(1,141): unexpected-end-tag-treated-as -(1,145): unexpected-end-tag-implies-table-voodoo -(1,145): unexpected-end-tag -(1,151): unexpected-end-tag-implies-table-voodoo -(1,151): unexpected-end-tag -(1,159): unexpected-end-tag-implies-table-voodoo -(1,159): unexpected-end-tag -(1,166): unexpected-end-tag-implies-table-voodoo -(1,166): unexpected-end-tag -(1,174): unexpected-end-tag-implies-table-voodoo -(1,174): unexpected-end-tag -(1,183): unexpected-end-tag-implies-table-voodoo -(1,183): unexpected-end-tag -(1,196): unexpected-end-tag -(1,201): unexpected-end-tag -(1,206): unexpected-end-tag -(1,214): unexpected-end-tag -(1,221): unexpected-end-tag -(1,228): unexpected-end-tag -(1,236): unexpected-end-tag -(1,241): unexpected-end-tag -(1,249): unexpected-end-tag -(1,255): unexpected-end-tag -(1,262): unexpected-end-tag -(1,269): unexpected-end-tag -(1,280): unexpected-end-tag -(1,290): unexpected-end-tag -(1,298): unexpected-end-tag -(1,307): unexpected-end-tag -(1,311): unexpected-end-tag -(1,316): unexpected-end-tag -(1,321): unexpected-end-tag -(1,331): unexpected-end-tag -(1,342): unexpected-end-tag -(1,350): unexpected-end-tag -(1,358): unexpected-end-tag -(1,366): unexpected-end-tag -(1,376): end-tag-too-early -(1,389): end-tag-too-early -(1,398): end-tag-too-early -(1,404): end-tag-too-early -(1,410): end-tag-too-early -(1,415): end-tag-too-early -(1,426): end-tag-too-early -(1,436): end-tag-too-early -(1,443): end-tag-too-early -(1,448): end-tag-too-early -(1,453): end-tag-too-early -(1,458): unexpected-end-tag -(1,465): unexpected-end-tag -(1,471): unexpected-end-tag -(1,478): unexpected-end-tag -(1,487): end-tag-too-early -(1,497): end-tag-too-early -(1,506): end-tag-too-early -(1,524): expected-eof-but-got-end-tag -(1,524): unexpected-end-tag -(1,531): unexpected-end-tag -(1,540): unexpected-end-tag -(1,548): unexpected-end-tag -(1,558): unexpected-end-tag -(1,568): unexpected-end-tag -(1,579): unexpected-end-tag -(1,590): unexpected-end-tag -(1,601): unexpected-end-tag -(1,610): unexpected-end-tag -(1,622): unexpected-end-tag -(1,633): unexpected-end-tag -#document -| <html> -| <head> -| <body> -| <br> -| <table> -| <tbody> -| <tr> -| <p> - -#data -<frameset> -#errors -(1,10): expected-doctype-but-got-start-tag -(1,10): eof-in-frameset -#document -| <html> -| <head> -| <frameset> diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests10.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests10.dat deleted file mode 100644 index 3e9a9f19b9c..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests10.dat +++ /dev/null @@ -1,847 +0,0 @@ -#data -<!DOCTYPE html><svg></svg> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> - -#data -<!DOCTYPE html><svg></svg><![CDATA[a]]> -#errors -(1,28) expected-dashes-or-doctype -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <!-- [CDATA[a]] --> - -#data -<!DOCTYPE html><body><svg></svg> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> - -#data -<!DOCTYPE html><body><select><svg></svg></select> -#errors -(1,34) unexpected-start-tag-in-select -(1,40) unexpected-end-tag-in-select -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!DOCTYPE html><body><select><option><svg></svg></option></select> -#errors -(1,42) unexpected-start-tag-in-select -(1,48) unexpected-end-tag-in-select -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <option> - -#data -<!DOCTYPE html><body><table><svg></svg></table> -#errors -(1,33) foster-parenting-start-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <table> - -#data -<!DOCTYPE html><body><table><svg><g>foo</g></svg></table> -#errors -(1,33) foster-parenting-start-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg g> -| "foo" -| <table> - -#data -<!DOCTYPE html><body><table><svg><g>foo</g><g>bar</g></svg></table> -#errors -(1,33) foster-parenting-start-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg g> -| "foo" -| <svg g> -| "bar" -| <table> - -#data -<!DOCTYPE html><body><table><tbody><svg><g>foo</g><g>bar</g></svg></tbody></table> -#errors -(1,40) foster-parenting-start-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg g> -| "foo" -| <svg g> -| "bar" -| <table> -| <tbody> - -#data -<!DOCTYPE html><body><table><tbody><tr><svg><g>foo</g><g>bar</g></svg></tr></tbody></table> -#errors -(1,44) foster-parenting-start-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg g> -| "foo" -| <svg g> -| "bar" -| <table> -| <tbody> -| <tr> - -#data -<!DOCTYPE html><body><table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg></td></tr></tbody></table> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <svg svg> -| <svg g> -| "foo" -| <svg g> -| "bar" - -#data -<!DOCTYPE html><body><table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg><p>baz</td></tr></tbody></table> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <svg svg> -| <svg g> -| "foo" -| <svg g> -| "bar" -| <p> -| "baz" - -#data -<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g></svg><p>baz</caption></table> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| <svg svg> -| <svg g> -| "foo" -| <svg g> -| "bar" -| <p> -| "baz" - -#data -<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g><p>baz</table><p>quux -#errors -(1,65) unexpected-html-element-in-foreign-content -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| <svg svg> -| <svg g> -| "foo" -| <svg g> -| "bar" -| <p> -| "baz" -| <p> -| "quux" - -#data -<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g>baz</table><p>quux -#errors -(1,73) unexpected-end-tag -(1,73) expected-one-end-tag-but-got-another -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| <svg svg> -| <svg g> -| "foo" -| <svg g> -| "bar" -| "baz" -| <p> -| "quux" - -#data -<!DOCTYPE html><body><table><colgroup><svg><g>foo</g><g>bar</g><p>baz</table><p>quux -#errors -(1,43) foster-parenting-start-tag svg -(1,66) unexpected HTML-like start tag token in foreign content -(1,66) foster-parenting-start-tag -(1,67) foster-parenting-character -(1,68) foster-parenting-character -(1,69) foster-parenting-character -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg g> -| "foo" -| <svg g> -| "bar" -| <p> -| "baz" -| <table> -| <colgroup> -| <p> -| "quux" - -#data -<!DOCTYPE html><body><table><tr><td><select><svg><g>foo</g><g>bar</g><p>baz</table><p>quux -#errors -(1,49) unexpected-start-tag-in-select -(1,52) unexpected-start-tag-in-select -(1,59) unexpected-end-tag-in-select -(1,62) unexpected-start-tag-in-select -(1,69) unexpected-end-tag-in-select -(1,72) unexpected-start-tag-in-select -(1,83) unexpected-table-element-end-tag-in-select-in-table -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <select> -| "foobarbaz" -| <p> -| "quux" - -#data -<!DOCTYPE html><body><table><select><svg><g>foo</g><g>bar</g><p>baz</table><p>quux -#errors -(1,36) unexpected-start-tag-implies-table-voodoo -(1,41) unexpected-start-tag-in-select -(1,44) unexpected-start-tag-in-select -(1,51) unexpected-end-tag-in-select -(1,54) unexpected-start-tag-in-select -(1,61) unexpected-end-tag-in-select -(1,64) unexpected-start-tag-in-select -(1,75) unexpected-table-element-end-tag-in-select-in-table -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| "foobarbaz" -| <table> -| <p> -| "quux" - -#data -<!DOCTYPE html><body></body></html><svg><g>foo</g><g>bar</g><p>baz -#errors -(1,40) expected-eof-but-got-start-tag -(1,63) unexpected-html-element-in-foreign-content -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg g> -| "foo" -| <svg g> -| "bar" -| <p> -| "baz" - -#data -<!DOCTYPE html><body></body><svg><g>foo</g><g>bar</g><p>baz -#errors -(1,33) unexpected-start-tag-after-body -(1,56) unexpected-html-element-in-foreign-content -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg g> -| "foo" -| <svg g> -| "bar" -| <p> -| "baz" - -#data -<!DOCTYPE html><frameset><svg><g></g><g></g><p><span> -#errors -(1,30) unexpected-start-tag-in-frameset -(1,33) unexpected-start-tag-in-frameset -(1,37) unexpected-end-tag-in-frameset -(1,40) unexpected-start-tag-in-frameset -(1,44) unexpected-end-tag-in-frameset -(1,47) unexpected-start-tag-in-frameset -(1,53) unexpected-start-tag-in-frameset -(1,53) eof-in-frameset -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!DOCTYPE html><frameset></frameset><svg><g></g><g></g><p><span> -#errors -(1,41) unexpected-start-tag-after-frameset -(1,44) unexpected-start-tag-after-frameset -(1,48) unexpected-end-tag-after-frameset -(1,51) unexpected-start-tag-after-frameset -(1,55) unexpected-end-tag-after-frameset -(1,58) unexpected-start-tag-after-frameset -(1,64) unexpected-start-tag-after-frameset -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!DOCTYPE html><body xlink:href=foo><svg xlink:href=foo></svg> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| xlink:href="foo" -| <svg svg> -| xlink href="foo" - -#data -<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo></g></svg> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| xlink:href="foo" -| xml:lang="en" -| <svg svg> -| <svg g> -| xlink href="foo" -| xml lang="en" - -#data -<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo /></svg> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| xlink:href="foo" -| xml:lang="en" -| <svg svg> -| <svg g> -| xlink href="foo" -| xml lang="en" - -#data -<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo />bar</svg> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| xlink:href="foo" -| xml:lang="en" -| <svg svg> -| <svg g> -| xlink href="foo" -| xml lang="en" -| "bar" - -#data -<svg></path> -#errors -(1,5) expected-doctype-but-got-start-tag -(1,12) unexpected-end-tag -(1,12) unexpected-end-tag -(1,12) expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <svg svg> - -#data -<div><svg></div>a -#errors -(1,5) expected-doctype-but-got-start-tag -(1,16) unexpected-end-tag -(1,16) end-tag-too-early -#document -| <html> -| <head> -| <body> -| <div> -| <svg svg> -| "a" - -#data -<div><svg><path></div>a -#errors -(1,5) expected-doctype-but-got-start-tag -(1,22) unexpected-end-tag -(1,22) end-tag-too-early -#document -| <html> -| <head> -| <body> -| <div> -| <svg svg> -| <svg path> -| "a" - -#data -<div><svg><path></svg><path> -#errors -(1,5) expected-doctype-but-got-start-tag -(1,22) unexpected-end-tag -(1,28) expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <div> -| <svg svg> -| <svg path> -| <path> - -#data -<div><svg><path><foreignObject><math></div>a -#errors -(1,5) expected-doctype-but-got-start-tag -(1,43) unexpected-end-tag -(1,43) end-tag-too-early -(1,44) expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <div> -| <svg svg> -| <svg path> -| <svg foreignObject> -| <math math> -| "a" - -#data -<div><svg><path><foreignObject><p></div>a -#errors -(1,5) expected-doctype-but-got-start-tag -(1,40) end-tag-too-early -(1,41) expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <div> -| <svg svg> -| <svg path> -| <svg foreignObject> -| <p> -| "a" - -#data -<!DOCTYPE html><svg><desc><div><svg><ul>a -#errors -(1,40) unexpected-html-element-in-foreign-content -(1,41) expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg desc> -| <div> -| <svg svg> -| <ul> -| "a" - -#data -<!DOCTYPE html><svg><desc><svg><ul>a -#errors -(1,35) unexpected-html-element-in-foreign-content -(1,36) expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg desc> -| <svg svg> -| <ul> -| "a" - -#data -<!DOCTYPE html><p><svg><desc><p> -#errors -(1,32) expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <svg svg> -| <svg desc> -| <p> - -#data -<!DOCTYPE html><p><svg><title><p> -#errors -(1,33) expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <svg svg> -| <svg title> -| <p> - -#data -<div><svg><path><foreignObject><p></foreignObject><p> -#errors -(1,5) expected-doctype-but-got-start-tag -(1,50) unexpected-end-tag -(1,53) expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <div> -| <svg svg> -| <svg path> -| <svg foreignObject> -| <p> -| <p> - -#data -<math><mi><div><object><div><span></span></div></object></div></mi><mi> -#errors -(1,6) expected-doctype-but-got-start-tag -(1,71) expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <math math> -| <math mi> -| <div> -| <object> -| <div> -| <span> -| <math mi> - -#data -<math><mi><svg><foreignObject><div><div></div></div></foreignObject></svg></mi><mi> -#errors -(1,6) expected-doctype-but-got-start-tag -(1,83) expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <math math> -| <math mi> -| <svg svg> -| <svg foreignObject> -| <div> -| <div> -| <math mi> - -#data -<svg><script></script><path> -#errors -(1,5) expected-doctype-but-got-start-tag -(1,28) expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <svg svg> -| <svg script> -| <svg path> - -#data -<table><svg></svg><tr> -#errors -(1,7) expected-doctype-but-got-start-tag -(1,12) unexpected-start-tag-implies-table-voodoo -(1,22) eof-in-table -#document -| <html> -| <head> -| <body> -| <svg svg> -| <table> -| <tbody> -| <tr> - -#data -<math><mi><mglyph> -#errors -(1,6) expected-doctype-but-got-start-tag -(1,18) expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <math math> -| <math mi> -| <math mglyph> - -#data -<math><mi><malignmark> -#errors -(1,6) expected-doctype-but-got-start-tag -(1,22) expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <math math> -| <math mi> -| <math malignmark> - -#data -<math><mo><mglyph> -#errors -(1,6) expected-doctype-but-got-start-tag -(1,18) expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <math math> -| <math mo> -| <math mglyph> - -#data -<math><mo><malignmark> -#errors -(1,6) expected-doctype-but-got-start-tag -(1,22) expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <math math> -| <math mo> -| <math malignmark> - -#data -<math><mn><mglyph> -#errors -(1,6) expected-doctype-but-got-start-tag -(1,18) expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <math math> -| <math mn> -| <math mglyph> - -#data -<math><mn><malignmark> -#errors -(1,6) expected-doctype-but-got-start-tag -(1,22) expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <math math> -| <math mn> -| <math malignmark> - -#data -<math><ms><mglyph> -#errors -(1,6) expected-doctype-but-got-start-tag -(1,18) expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <math math> -| <math ms> -| <math mglyph> - -#data -<math><ms><malignmark> -#errors -(1,6) expected-doctype-but-got-start-tag -(1,22) expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <math math> -| <math ms> -| <math malignmark> - -#data -<math><mtext><mglyph> -#errors -(1,6) expected-doctype-but-got-start-tag -(1,21) expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <math math> -| <math mtext> -| <math mglyph> - -#data -<math><mtext><malignmark> -#errors -(1,6) expected-doctype-but-got-start-tag -(1,25) expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <math math> -| <math mtext> -| <math malignmark> - -#data -<math><annotation-xml><svg></svg></annotation-xml><mi> -#errors -(1,6) expected-doctype-but-got-start-tag -(1,54) expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <math math> -| <math annotation-xml> -| <svg svg> -| <math mi> - -#data -<math><annotation-xml><svg><foreignObject><div><math><mi></mi></math><span></span></div></foreignObject><path></path></svg></annotation-xml><mi> -#errors -(1,6) expected-doctype-but-got-start-tag -(1,144) expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <math math> -| <math annotation-xml> -| <svg svg> -| <svg foreignObject> -| <div> -| <math math> -| <math mi> -| <span> -| <svg path> -| <math mi> - -#data -<math><annotation-xml><svg><foreignObject><math><mi><svg></svg></mi><mo></mo></math><span></span></foreignObject><path></path></svg></annotation-xml><mi> -#errors -(1,6) expected-doctype-but-got-start-tag -(1,153) expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <math math> -| <math annotation-xml> -| <svg svg> -| <svg foreignObject> -| <math math> -| <math mi> -| <svg svg> -| <math mo> -| <span> -| <svg path> -| <math mi> diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests11.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests11.dat deleted file mode 100644 index ad62cdf659b..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests11.dat +++ /dev/null @@ -1,482 +0,0 @@ -#data -<!DOCTYPE html><body><svg attributeName='' attributeType='' baseFrequency='' baseProfile='' calcMode='' clipPathUnits='' contentScriptType='' contentStyleType='' diffuseConstant='' edgeMode='' externalResourcesRequired='' filterRes='' filterUnits='' glyphRef='' gradientTransform='' gradientUnits='' kernelMatrix='' kernelUnitLength='' keyPoints='' keySplines='' keyTimes='' lengthAdjust='' limitingConeAngle='' markerHeight='' markerUnits='' markerWidth='' maskContentUnits='' maskUnits='' numOctaves='' pathLength='' patternContentUnits='' patternTransform='' patternUnits='' pointsAtX='' pointsAtY='' pointsAtZ='' preserveAlpha='' preserveAspectRatio='' primitiveUnits='' refX='' refY='' repeatCount='' repeatDur='' requiredExtensions='' requiredFeatures='' specularConstant='' specularExponent='' spreadMethod='' startOffset='' stdDeviation='' stitchTiles='' surfaceScale='' systemLanguage='' tableValues='' targetX='' targetY='' textLength='' viewBox='' viewTarget='' xChannelSelector='' yChannelSelector='' zoomAndPan=''></svg> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| attributeName="" -| attributeType="" -| baseFrequency="" -| baseProfile="" -| calcMode="" -| clipPathUnits="" -| contentscripttype="" -| contentstyletype="" -| diffuseConstant="" -| edgeMode="" -| externalresourcesrequired="" -| filterUnits="" -| filterres="" -| glyphRef="" -| gradientTransform="" -| gradientUnits="" -| kernelMatrix="" -| kernelUnitLength="" -| keyPoints="" -| keySplines="" -| keyTimes="" -| lengthAdjust="" -| limitingConeAngle="" -| markerHeight="" -| markerUnits="" -| markerWidth="" -| maskContentUnits="" -| maskUnits="" -| numOctaves="" -| pathLength="" -| patternContentUnits="" -| patternTransform="" -| patternUnits="" -| pointsAtX="" -| pointsAtY="" -| pointsAtZ="" -| preserveAlpha="" -| preserveAspectRatio="" -| primitiveUnits="" -| refX="" -| refY="" -| repeatCount="" -| repeatDur="" -| requiredExtensions="" -| requiredFeatures="" -| specularConstant="" -| specularExponent="" -| spreadMethod="" -| startOffset="" -| stdDeviation="" -| stitchTiles="" -| surfaceScale="" -| systemLanguage="" -| tableValues="" -| targetX="" -| targetY="" -| textLength="" -| viewBox="" -| viewTarget="" -| xChannelSelector="" -| yChannelSelector="" -| zoomAndPan="" - -#data -<!DOCTYPE html><BODY><SVG ATTRIBUTENAME='' ATTRIBUTETYPE='' BASEFREQUENCY='' BASEPROFILE='' CALCMODE='' CLIPPATHUNITS='' CONTENTSCRIPTTYPE='' CONTENTSTYLETYPE='' DIFFUSECONSTANT='' EDGEMODE='' EXTERNALRESOURCESREQUIRED='' FILTERRES='' FILTERUNITS='' GLYPHREF='' GRADIENTTRANSFORM='' GRADIENTUNITS='' KERNELMATRIX='' KERNELUNITLENGTH='' KEYPOINTS='' KEYSPLINES='' KEYTIMES='' LENGTHADJUST='' LIMITINGCONEANGLE='' MARKERHEIGHT='' MARKERUNITS='' MARKERWIDTH='' MASKCONTENTUNITS='' MASKUNITS='' NUMOCTAVES='' PATHLENGTH='' PATTERNCONTENTUNITS='' PATTERNTRANSFORM='' PATTERNUNITS='' POINTSATX='' POINTSATY='' POINTSATZ='' PRESERVEALPHA='' PRESERVEASPECTRATIO='' PRIMITIVEUNITS='' REFX='' REFY='' REPEATCOUNT='' REPEATDUR='' REQUIREDEXTENSIONS='' REQUIREDFEATURES='' SPECULARCONSTANT='' SPECULAREXPONENT='' SPREADMETHOD='' STARTOFFSET='' STDDEVIATION='' STITCHTILES='' SURFACESCALE='' SYSTEMLANGUAGE='' TABLEVALUES='' TARGETX='' TARGETY='' TEXTLENGTH='' VIEWBOX='' VIEWTARGET='' XCHANNELSELECTOR='' YCHANNELSELECTOR='' ZOOMANDPAN=''></SVG> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| attributeName="" -| attributeType="" -| baseFrequency="" -| baseProfile="" -| calcMode="" -| clipPathUnits="" -| contentscripttype="" -| contentstyletype="" -| diffuseConstant="" -| edgeMode="" -| externalresourcesrequired="" -| filterUnits="" -| filterres="" -| glyphRef="" -| gradientTransform="" -| gradientUnits="" -| kernelMatrix="" -| kernelUnitLength="" -| keyPoints="" -| keySplines="" -| keyTimes="" -| lengthAdjust="" -| limitingConeAngle="" -| markerHeight="" -| markerUnits="" -| markerWidth="" -| maskContentUnits="" -| maskUnits="" -| numOctaves="" -| pathLength="" -| patternContentUnits="" -| patternTransform="" -| patternUnits="" -| pointsAtX="" -| pointsAtY="" -| pointsAtZ="" -| preserveAlpha="" -| preserveAspectRatio="" -| primitiveUnits="" -| refX="" -| refY="" -| repeatCount="" -| repeatDur="" -| requiredExtensions="" -| requiredFeatures="" -| specularConstant="" -| specularExponent="" -| spreadMethod="" -| startOffset="" -| stdDeviation="" -| stitchTiles="" -| surfaceScale="" -| systemLanguage="" -| tableValues="" -| targetX="" -| targetY="" -| textLength="" -| viewBox="" -| viewTarget="" -| xChannelSelector="" -| yChannelSelector="" -| zoomAndPan="" - -#data -<!DOCTYPE html><body><svg attributename='' attributetype='' basefrequency='' baseprofile='' calcmode='' clippathunits='' contentscripttype='' contentstyletype='' diffuseconstant='' edgemode='' externalresourcesrequired='' filterres='' filterunits='' glyphref='' gradienttransform='' gradientunits='' kernelmatrix='' kernelunitlength='' keypoints='' keysplines='' keytimes='' lengthadjust='' limitingconeangle='' markerheight='' markerunits='' markerwidth='' maskcontentunits='' maskunits='' numoctaves='' pathlength='' patterncontentunits='' patterntransform='' patternunits='' pointsatx='' pointsaty='' pointsatz='' preservealpha='' preserveaspectratio='' primitiveunits='' refx='' refy='' repeatcount='' repeatdur='' requiredextensions='' requiredfeatures='' specularconstant='' specularexponent='' spreadmethod='' startoffset='' stddeviation='' stitchtiles='' surfacescale='' systemlanguage='' tablevalues='' targetx='' targety='' textlength='' viewbox='' viewtarget='' xchannelselector='' ychannelselector='' zoomandpan=''></svg> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| attributeName="" -| attributeType="" -| baseFrequency="" -| baseProfile="" -| calcMode="" -| clipPathUnits="" -| contentscripttype="" -| contentstyletype="" -| diffuseConstant="" -| edgeMode="" -| externalresourcesrequired="" -| filterUnits="" -| filterres="" -| glyphRef="" -| gradientTransform="" -| gradientUnits="" -| kernelMatrix="" -| kernelUnitLength="" -| keyPoints="" -| keySplines="" -| keyTimes="" -| lengthAdjust="" -| limitingConeAngle="" -| markerHeight="" -| markerUnits="" -| markerWidth="" -| maskContentUnits="" -| maskUnits="" -| numOctaves="" -| pathLength="" -| patternContentUnits="" -| patternTransform="" -| patternUnits="" -| pointsAtX="" -| pointsAtY="" -| pointsAtZ="" -| preserveAlpha="" -| preserveAspectRatio="" -| primitiveUnits="" -| refX="" -| refY="" -| repeatCount="" -| repeatDur="" -| requiredExtensions="" -| requiredFeatures="" -| specularConstant="" -| specularExponent="" -| spreadMethod="" -| startOffset="" -| stdDeviation="" -| stitchTiles="" -| surfaceScale="" -| systemLanguage="" -| tableValues="" -| targetX="" -| targetY="" -| textLength="" -| viewBox="" -| viewTarget="" -| xChannelSelector="" -| yChannelSelector="" -| zoomAndPan="" - -#data -<!DOCTYPE html><body><math attributeName='' attributeType='' baseFrequency='' baseProfile='' calcMode='' clipPathUnits='' contentScriptType='' contentStyleType='' diffuseConstant='' edgeMode='' externalResourcesRequired='' filterRes='' filterUnits='' glyphRef='' gradientTransform='' gradientUnits='' kernelMatrix='' kernelUnitLength='' keyPoints='' keySplines='' keyTimes='' lengthAdjust='' limitingConeAngle='' markerHeight='' markerUnits='' markerWidth='' maskContentUnits='' maskUnits='' numOctaves='' pathLength='' patternContentUnits='' patternTransform='' patternUnits='' pointsAtX='' pointsAtY='' pointsAtZ='' preserveAlpha='' preserveAspectRatio='' primitiveUnits='' refX='' refY='' repeatCount='' repeatDur='' requiredExtensions='' requiredFeatures='' specularConstant='' specularExponent='' spreadMethod='' startOffset='' stdDeviation='' stitchTiles='' surfaceScale='' systemLanguage='' tableValues='' targetX='' targetY='' textLength='' viewBox='' viewTarget='' xChannelSelector='' yChannelSelector='' zoomAndPan=''></math> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| attributename="" -| attributetype="" -| basefrequency="" -| baseprofile="" -| calcmode="" -| clippathunits="" -| contentscripttype="" -| contentstyletype="" -| diffuseconstant="" -| edgemode="" -| externalresourcesrequired="" -| filterres="" -| filterunits="" -| glyphref="" -| gradienttransform="" -| gradientunits="" -| kernelmatrix="" -| kernelunitlength="" -| keypoints="" -| keysplines="" -| keytimes="" -| lengthadjust="" -| limitingconeangle="" -| markerheight="" -| markerunits="" -| markerwidth="" -| maskcontentunits="" -| maskunits="" -| numoctaves="" -| pathlength="" -| patterncontentunits="" -| patterntransform="" -| patternunits="" -| pointsatx="" -| pointsaty="" -| pointsatz="" -| preservealpha="" -| preserveaspectratio="" -| primitiveunits="" -| refx="" -| refy="" -| repeatcount="" -| repeatdur="" -| requiredextensions="" -| requiredfeatures="" -| specularconstant="" -| specularexponent="" -| spreadmethod="" -| startoffset="" -| stddeviation="" -| stitchtiles="" -| surfacescale="" -| systemlanguage="" -| tablevalues="" -| targetx="" -| targety="" -| textlength="" -| viewbox="" -| viewtarget="" -| xchannelselector="" -| ychannelselector="" -| zoomandpan="" - -#data -<!DOCTYPE html><body><svg><altGlyph /><altGlyphDef /><altGlyphItem /><animateColor /><animateMotion /><animateTransform /><clipPath /><feBlend /><feColorMatrix /><feComponentTransfer /><feComposite /><feConvolveMatrix /><feDiffuseLighting /><feDisplacementMap /><feDistantLight /><feFlood /><feFuncA /><feFuncB /><feFuncG /><feFuncR /><feGaussianBlur /><feImage /><feMerge /><feMergeNode /><feMorphology /><feOffset /><fePointLight /><feSpecularLighting /><feSpotLight /><feTile /><feTurbulence /><foreignObject /><glyphRef /><linearGradient /><radialGradient /><textPath /></svg> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg altGlyph> -| <svg altGlyphDef> -| <svg altGlyphItem> -| <svg animateColor> -| <svg animateMotion> -| <svg animateTransform> -| <svg clipPath> -| <svg feBlend> -| <svg feColorMatrix> -| <svg feComponentTransfer> -| <svg feComposite> -| <svg feConvolveMatrix> -| <svg feDiffuseLighting> -| <svg feDisplacementMap> -| <svg feDistantLight> -| <svg feFlood> -| <svg feFuncA> -| <svg feFuncB> -| <svg feFuncG> -| <svg feFuncR> -| <svg feGaussianBlur> -| <svg feImage> -| <svg feMerge> -| <svg feMergeNode> -| <svg feMorphology> -| <svg feOffset> -| <svg fePointLight> -| <svg feSpecularLighting> -| <svg feSpotLight> -| <svg feTile> -| <svg feTurbulence> -| <svg foreignObject> -| <svg glyphRef> -| <svg linearGradient> -| <svg radialGradient> -| <svg textPath> - -#data -<!DOCTYPE html><body><svg><altglyph /><altglyphdef /><altglyphitem /><animatecolor /><animatemotion /><animatetransform /><clippath /><feblend /><fecolormatrix /><fecomponenttransfer /><fecomposite /><feconvolvematrix /><fediffuselighting /><fedisplacementmap /><fedistantlight /><feflood /><fefunca /><fefuncb /><fefuncg /><fefuncr /><fegaussianblur /><feimage /><femerge /><femergenode /><femorphology /><feoffset /><fepointlight /><fespecularlighting /><fespotlight /><fetile /><feturbulence /><foreignobject /><glyphref /><lineargradient /><radialgradient /><textpath /></svg> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg altGlyph> -| <svg altGlyphDef> -| <svg altGlyphItem> -| <svg animateColor> -| <svg animateMotion> -| <svg animateTransform> -| <svg clipPath> -| <svg feBlend> -| <svg feColorMatrix> -| <svg feComponentTransfer> -| <svg feComposite> -| <svg feConvolveMatrix> -| <svg feDiffuseLighting> -| <svg feDisplacementMap> -| <svg feDistantLight> -| <svg feFlood> -| <svg feFuncA> -| <svg feFuncB> -| <svg feFuncG> -| <svg feFuncR> -| <svg feGaussianBlur> -| <svg feImage> -| <svg feMerge> -| <svg feMergeNode> -| <svg feMorphology> -| <svg feOffset> -| <svg fePointLight> -| <svg feSpecularLighting> -| <svg feSpotLight> -| <svg feTile> -| <svg feTurbulence> -| <svg foreignObject> -| <svg glyphRef> -| <svg linearGradient> -| <svg radialGradient> -| <svg textPath> - -#data -<!DOCTYPE html><BODY><SVG><ALTGLYPH /><ALTGLYPHDEF /><ALTGLYPHITEM /><ANIMATECOLOR /><ANIMATEMOTION /><ANIMATETRANSFORM /><CLIPPATH /><FEBLEND /><FECOLORMATRIX /><FECOMPONENTTRANSFER /><FECOMPOSITE /><FECONVOLVEMATRIX /><FEDIFFUSELIGHTING /><FEDISPLACEMENTMAP /><FEDISTANTLIGHT /><FEFLOOD /><FEFUNCA /><FEFUNCB /><FEFUNCG /><FEFUNCR /><FEGAUSSIANBLUR /><FEIMAGE /><FEMERGE /><FEMERGENODE /><FEMORPHOLOGY /><FEOFFSET /><FEPOINTLIGHT /><FESPECULARLIGHTING /><FESPOTLIGHT /><FETILE /><FETURBULENCE /><FOREIGNOBJECT /><GLYPHREF /><LINEARGRADIENT /><RADIALGRADIENT /><TEXTPATH /></SVG> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg altGlyph> -| <svg altGlyphDef> -| <svg altGlyphItem> -| <svg animateColor> -| <svg animateMotion> -| <svg animateTransform> -| <svg clipPath> -| <svg feBlend> -| <svg feColorMatrix> -| <svg feComponentTransfer> -| <svg feComposite> -| <svg feConvolveMatrix> -| <svg feDiffuseLighting> -| <svg feDisplacementMap> -| <svg feDistantLight> -| <svg feFlood> -| <svg feFuncA> -| <svg feFuncB> -| <svg feFuncG> -| <svg feFuncR> -| <svg feGaussianBlur> -| <svg feImage> -| <svg feMerge> -| <svg feMergeNode> -| <svg feMorphology> -| <svg feOffset> -| <svg fePointLight> -| <svg feSpecularLighting> -| <svg feSpotLight> -| <svg feTile> -| <svg feTurbulence> -| <svg foreignObject> -| <svg glyphRef> -| <svg linearGradient> -| <svg radialGradient> -| <svg textPath> - -#data -<!DOCTYPE html><body><math><altGlyph /><altGlyphDef /><altGlyphItem /><animateColor /><animateMotion /><animateTransform /><clipPath /><feBlend /><feColorMatrix /><feComponentTransfer /><feComposite /><feConvolveMatrix /><feDiffuseLighting /><feDisplacementMap /><feDistantLight /><feFlood /><feFuncA /><feFuncB /><feFuncG /><feFuncR /><feGaussianBlur /><feImage /><feMerge /><feMergeNode /><feMorphology /><feOffset /><fePointLight /><feSpecularLighting /><feSpotLight /><feTile /><feTurbulence /><foreignObject /><glyphRef /><linearGradient /><radialGradient /><textPath /></math> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math altglyph> -| <math altglyphdef> -| <math altglyphitem> -| <math animatecolor> -| <math animatemotion> -| <math animatetransform> -| <math clippath> -| <math feblend> -| <math fecolormatrix> -| <math fecomponenttransfer> -| <math fecomposite> -| <math feconvolvematrix> -| <math fediffuselighting> -| <math fedisplacementmap> -| <math fedistantlight> -| <math feflood> -| <math fefunca> -| <math fefuncb> -| <math fefuncg> -| <math fefuncr> -| <math fegaussianblur> -| <math feimage> -| <math femerge> -| <math femergenode> -| <math femorphology> -| <math feoffset> -| <math fepointlight> -| <math fespecularlighting> -| <math fespotlight> -| <math fetile> -| <math feturbulence> -| <math foreignobject> -| <math glyphref> -| <math lineargradient> -| <math radialgradient> -| <math textpath> - -#data -<!DOCTYPE html><body><svg><solidColor /></svg> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg solidcolor> diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests12.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests12.dat deleted file mode 100644 index 63107d277b6..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests12.dat +++ /dev/null @@ -1,62 +0,0 @@ -#data -<!DOCTYPE html><body><p>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><P>spam<TABLE><tr><td><img></td></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| "foo" -| <math math> -| <math mtext> -| <i> -| "baz" -| <math annotation-xml> -| <svg svg> -| <svg desc> -| <b> -| "eggs" -| <svg g> -| <svg foreignObject> -| <p> -| "spam" -| <table> -| <tbody> -| <tr> -| <td> -| <img> -| <svg g> -| "quux" -| "bar" - -#data -<!DOCTYPE html><body>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><P>spam<TABLE><tr><td><img></td></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "foo" -| <math math> -| <math mtext> -| <i> -| "baz" -| <math annotation-xml> -| <svg svg> -| <svg desc> -| <b> -| "eggs" -| <svg g> -| <svg foreignObject> -| <p> -| "spam" -| <table> -| <tbody> -| <tr> -| <td> -| <img> -| <svg g> -| "quux" -| "bar" diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests14.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests14.dat deleted file mode 100644 index a08b7649eba..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests14.dat +++ /dev/null @@ -1,75 +0,0 @@ -#data -<!DOCTYPE html><html><body><xyz:abc></xyz:abc> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <xyz:abc> - -#data -<!DOCTYPE html><html><body><xyz:abc></xyz:abc><span></span> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <xyz:abc> -| <span> - -#data -<!DOCTYPE html><html><html abc:def=gh><xyz:abc></xyz:abc> -#errors -(1,38): non-html-root -#document -| <!DOCTYPE html> -| <html> -| abc:def="gh" -| <head> -| <body> -| <xyz:abc> - -#data -<!DOCTYPE html><html xml:lang=bar><html xml:lang=foo> -#errors -(1,53): non-html-root -#document -| <!DOCTYPE html> -| <html> -| xml:lang="bar" -| <head> -| <body> - -#data -<!DOCTYPE html><html 123=456> -#errors -#document -| <!DOCTYPE html> -| <html> -| 123="456" -| <head> -| <body> - -#data -<!DOCTYPE html><html 123=456><html 789=012> -#errors -(1,43): non-html-root -#document -| <!DOCTYPE html> -| <html> -| 123="456" -| 789="012" -| <head> -| <body> - -#data -<!DOCTYPE html><html><body 789=012> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| 789="012" diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests15.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests15.dat deleted file mode 100644 index 93d06a87170..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests15.dat +++ /dev/null @@ -1,216 +0,0 @@ -#data -<!DOCTYPE html><p><b><i><u></p> <p>X -#errors -(1,31): unexpected-end-tag -(1,36): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <b> -| <i> -| <u> -| <b> -| <i> -| <u> -| " " -| <p> -| "X" - -#data -<p><b><i><u></p> -<p>X -#errors -(1,3): expected-doctype-but-got-start-tag -(1,16): unexpected-end-tag -(2,4): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <p> -| <b> -| <i> -| <u> -| <b> -| <i> -| <u> -| " -" -| <p> -| "X" - -#data -<!doctype html></html> <head> -#errors -(1,29): expected-eof-but-got-start-tag -(1,29): unexpected-start-tag-ignored -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| " " - -#data -<!doctype html></body><meta> -#errors -(1,28): unexpected-start-tag-after-body -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <meta> - -#data -<html></html><!-- foo --> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <!-- foo --> - -#data -<!doctype html></body><title>X</title> -#errors -(1,29): unexpected-start-tag-after-body -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <title> -| "X" - -#data -<!doctype html><table> X<meta></table> -#errors -(1,23): foster-parenting-character -(1,24): foster-parenting-character -(1,30): foster-parenting-start-character -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| " X" -| <meta> -| <table> - -#data -<!doctype html><table> x</table> -#errors -(1,23): foster-parenting-character -(1,24): foster-parenting-character -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| " x" -| <table> - -#data -<!doctype html><table> x </table> -#errors -(1,23): foster-parenting-character -(1,24): foster-parenting-character -(1,25): foster-parenting-character -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| " x " -| <table> - -#data -<!doctype html><table><tr> x</table> -#errors -(1,27): foster-parenting-character -(1,28): foster-parenting-character -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| " x" -| <table> -| <tbody> -| <tr> - -#data -<!doctype html><table>X<style> <tr>x </style> </table> -#errors -(1,23): foster-parenting-character -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "X" -| <table> -| <style> -| " <tr>x " -| " " - -#data -<!doctype html><div><table><a>foo</a> <tr><td>bar</td> </tr></table></div> -#errors -(1,30): foster-parenting-start-tag -(1,31): foster-parenting-character -(1,32): foster-parenting-character -(1,33): foster-parenting-character -(1,37): foster-parenting-end-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <div> -| <a> -| "foo" -| <table> -| " " -| <tbody> -| <tr> -| <td> -| "bar" -| " " - -#data -<frame></frame></frame><frameset><frame><frameset><frame></frameset><noframes></frameset><noframes> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,7): unexpected-start-tag-ignored -(1,15): unexpected-end-tag -(1,23): unexpected-end-tag -(1,33): unexpected-start-tag -(1,99): expected-named-closing-tag-but-got-eof -(1,99): eof-in-frameset -#document -| <html> -| <head> -| <frameset> -| <frame> -| <frameset> -| <frame> -| <noframes> -| "</frameset><noframes>" - -#data -<!DOCTYPE html><object></html> -#errors -(1,30): expected-body-in-scope -(1,30): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <object> diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests16.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests16.dat deleted file mode 100644 index 12191577761..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests16.dat +++ /dev/null @@ -1,2458 +0,0 @@ -#data -<!doctype html><script> -#errors -(1,23): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| <body> - -#data -<!doctype html><script>a -#errors -(1,24): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "a" -| <body> - -#data -<!doctype html><script>< -#errors -(1,24): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<" -| <body> - -#data -<!doctype html><script></ -#errors -(1,25): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</" -| <body> - -#data -<!doctype html><script></S -#errors -(1,26): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</S" -| <body> - -#data -<!doctype html><script></SC -#errors -(1,27): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</SC" -| <body> - -#data -<!doctype html><script></SCR -#errors -(1,28): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</SCR" -| <body> - -#data -<!doctype html><script></SCRI -#errors -(1,29): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</SCRI" -| <body> - -#data -<!doctype html><script></SCRIP -#errors -(1,30): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</SCRIP" -| <body> - -#data -<!doctype html><script></SCRIPT -#errors -(1,31): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</SCRIPT" -| <body> - -#data -<!doctype html><script></SCRIPT -#errors -(1,32): expected-attribute-name-but-got-eof -(1,32): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| <body> - -#data -<!doctype html><script></s -#errors -(1,26): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</s" -| <body> - -#data -<!doctype html><script></sc -#errors -(1,27): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</sc" -| <body> - -#data -<!doctype html><script></scr -#errors -(1,28): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</scr" -| <body> - -#data -<!doctype html><script></scri -#errors -(1,29): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</scri" -| <body> - -#data -<!doctype html><script></scrip -#errors -(1,30): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</scrip" -| <body> - -#data -<!doctype html><script></script -#errors -(1,31): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</script" -| <body> - -#data -<!doctype html><script></script -#errors -(1,32): expected-attribute-name-but-got-eof -(1,32): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| <body> - -#data -<!doctype html><script><! -#errors -(1,25): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!" -| <body> - -#data -<!doctype html><script><!a -#errors -(1,26): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!a" -| <body> - -#data -<!doctype html><script><!- -#errors -(1,26): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!-" -| <body> - -#data -<!doctype html><script><!-a -#errors -(1,27): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!-a" -| <body> - -#data -<!doctype html><script><!-- -#errors -(1,27): expected-named-closing-tag-but-got-eof -(1,27): unexpected-eof-in-text-mode -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--" -| <body> - -#data -<!doctype html><script><!--a -#errors -(1,28): expected-named-closing-tag-but-got-eof -(1,28): unexpected-eof-in-text-mode -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--a" -| <body> - -#data -<!doctype html><script><!--< -#errors -(1,28): expected-named-closing-tag-but-got-eof -(1,28): unexpected-eof-in-text-mode -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<" -| <body> - -#data -<!doctype html><script><!--<a -#errors -(1,29): expected-named-closing-tag-but-got-eof -(1,29): unexpected-eof-in-text-mode -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<a" -| <body> - -#data -<!doctype html><script><!--</ -#errors -(1,29): expected-named-closing-tag-but-got-eof -(1,29): unexpected-eof-in-text-mode -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--</" -| <body> - -#data -<!doctype html><script><!--</script -#errors -(1,35): expected-named-closing-tag-but-got-eof -(1,35): unexpected-eof-in-text-mode -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--</script" -| <body> - -#data -<!doctype html><script><!--</script -#errors -(1,36): expected-attribute-name-but-got-eof -(1,36): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--" -| <body> - -#data -<!doctype html><script><!--<s -#errors -(1,29): expected-named-closing-tag-but-got-eof -(1,29): unexpected-eof-in-text-mode -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<s" -| <body> - -#data -<!doctype html><script><!--<script -#errors -(1,34): expected-named-closing-tag-but-got-eof -(1,34): unexpected-eof-in-text-mode -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script" -| <body> - -#data -<!doctype html><script><!--<script -#errors -(1,35): eof-in-script-in-script -(1,35): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script " -| <body> - -#data -<!doctype html><script><!--<script < -#errors -(1,36): eof-in-script-in-script -(1,36): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script <" -| <body> - -#data -<!doctype html><script><!--<script <a -#errors -(1,37): eof-in-script-in-script -(1,37): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script <a" -| <body> - -#data -<!doctype html><script><!--<script </ -#errors -(1,37): eof-in-script-in-script -(1,37): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </" -| <body> - -#data -<!doctype html><script><!--<script </s -#errors -(1,38): eof-in-script-in-script -(1,38): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </s" -| <body> - -#data -<!doctype html><script><!--<script </script -#errors -(1,43): eof-in-script-in-script -(1,43): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script" -| <body> - -#data -<!doctype html><script><!--<script </scripta -#errors -(1,44): eof-in-script-in-script -(1,44): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </scripta" -| <body> - -#data -<!doctype html><script><!--<script </script -#errors -(1,44): expected-named-closing-tag-but-got-eof -(1,44): unexpected-eof-in-text-mode -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<!doctype html><script><!--<script </script> -#errors -(1,44): expected-named-closing-tag-but-got-eof -(1,44): unexpected-eof-in-text-mode -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script>" -| <body> - -#data -<!doctype html><script><!--<script </script/ -#errors -(1,44): expected-named-closing-tag-but-got-eof -(1,44): unexpected-eof-in-text-mode -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script/" -| <body> - -#data -<!doctype html><script><!--<script </script < -#errors -(1,45): expected-named-closing-tag-but-got-eof -(1,45): unexpected-eof-in-text-mode -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script <" -| <body> - -#data -<!doctype html><script><!--<script </script <a -#errors -(1,46): expected-named-closing-tag-but-got-eof -(1,46): unexpected-eof-in-text-mode -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script <a" -| <body> - -#data -<!doctype html><script><!--<script </script </ -#errors -(1,46): expected-named-closing-tag-but-got-eof -(1,46): unexpected-eof-in-text-mode -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script </" -| <body> - -#data -<!doctype html><script><!--<script </script </script -#errors -(1,52): expected-named-closing-tag-but-got-eof -(1,52): unexpected-eof-in-text-mode -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script </script" -| <body> - -#data -<!doctype html><script><!--<script </script </script -#errors -(1,53): expected-attribute-name-but-got-eof -(1,53): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<!doctype html><script><!--<script </script </script/ -#errors -(1,53): unexpected-EOF-after-solidus-in-tag -(1,53): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<!doctype html><script><!--<script </script </script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<!doctype html><script><!--<script - -#errors -(1,36): eof-in-script-in-script -(1,36): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script -" -| <body> - -#data -<!doctype html><script><!--<script -a -#errors -(1,37): eof-in-script-in-script -(1,37): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script -a" -| <body> - -#data -<!doctype html><script><!--<script -< -#errors -(1,37): eof-in-script-in-script -(1,37): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script -<" -| <body> - -#data -<!doctype html><script><!--<script -- -#errors -(1,37): eof-in-script-in-script -(1,37): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script --" -| <body> - -#data -<!doctype html><script><!--<script --a -#errors -(1,38): eof-in-script-in-script -(1,38): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script --a" -| <body> - -#data -<!doctype html><script><!--<script --< -#errors -(1,38): eof-in-script-in-script -(1,38): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script --<" -| <body> - -#data -<!doctype html><script><!--<script --> -#errors -(1,38): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<!doctype html><script><!--<script -->< -#errors -(1,39): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script --><" -| <body> - -#data -<!doctype html><script><!--<script --></ -#errors -(1,40): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script --></" -| <body> - -#data -<!doctype html><script><!--<script --></script -#errors -(1,46): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script --></script" -| <body> - -#data -<!doctype html><script><!--<script --></script -#errors -(1,47): expected-attribute-name-but-got-eof -(1,47): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<!doctype html><script><!--<script --></script/ -#errors -(1,47): unexpected-EOF-after-solidus-in-tag -(1,47): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<!doctype html><script><!--<script --></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<!doctype html><script><!--<script><\/script>--></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script><\/script>-->" -| <body> - -#data -<!doctype html><script><!--<script></scr'+'ipt>--></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></scr'+'ipt>-->" -| <body> - -#data -<!doctype html><script><!--<script></script><script></script></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>" -| <body> - -#data -<!doctype html><script><!--<script></script><script></script>--><!--</script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>--><!--" -| <body> - -#data -<!doctype html><script><!--<script></script><script></script>-- ></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>-- >" -| <body> - -#data -<!doctype html><script><!--<script></script><script></script>- -></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>- ->" -| <body> - -#data -<!doctype html><script><!--<script></script><script></script>- - ></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>- - >" -| <body> - -#data -<!doctype html><script><!--<script></script><script></script>-></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>->" -| <body> - -#data -<!doctype html><script><!--<script>--!></script>X -#errors -(1,49): expected-named-closing-tag-but-got-eof -(1,49): unexpected-EOF-in-text-mode -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script>--!></script>X" -| <body> - -#data -<!doctype html><script><!--<scr'+'ipt></script>--></script> -#errors -(1,59): unexpected-end-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<scr'+'ipt>" -| <body> -| "-->" - -#data -<!doctype html><script><!--<script></scr'+'ipt></script>X -#errors -(1,57): expected-named-closing-tag-but-got-eof -(1,57): unexpected-eof-in-text-mode -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></scr'+'ipt></script>X" -| <body> - -#data -<!doctype html><style><!--<style></style>--></style> -#errors -(1,52): unexpected-end-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "<!--<style>" -| <body> -| "-->" - -#data -<!doctype html><style><!--</style>X -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "<!--" -| <body> -| "X" - -#data -<!doctype html><style><!--...</style>...--></style> -#errors -(1,51): unexpected-end-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "<!--..." -| <body> -| "...-->" - -#data -<!doctype html><style><!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style></style>X -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "<!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style>" -| <body> -| "X" - -#data -<!doctype html><style><!--...<style><!--...--!></style>--></style> -#errors -(1,66): unexpected-end-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "<!--...<style><!--...--!>" -| <body> -| "-->" - -#data -<!doctype html><style><!--...</style><!-- --><style>@import ...</style> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "<!--..." -| <!-- --> -| <style> -| "@import ..." -| <body> - -#data -<!doctype html><style>...<style><!--...</style><!-- --></style> -#errors -(1,63): unexpected-end-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "...<style><!--..." -| <!-- --> -| <body> - -#data -<!doctype html><style>...<!--[if IE]><style>...</style>X -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "...<!--[if IE]><style>..." -| <body> -| "X" - -#data -<!doctype html><title><!--<title></title>--></title> -#errors -(1,52): unexpected-end-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <title> -| "<!--<title>" -| <body> -| "-->" - -#data -<!doctype html><title></title></title> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <title> -| "</title>" -| <body> - -#data -<!doctype html><title>foo/title><link></head><body>X -#errors -(1,52): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <title> -| "foo/title><link></head><body>X" -| <body> - -#data -<!doctype html><noscript><!--<noscript></noscript>--></noscript> -#errors -(1,64): unexpected-end-tag -#script-on -#document -| <!DOCTYPE html> -| <html> -| <head> -| <noscript> -| "<!--<noscript>" -| <body> -| "-->" - -#data -<!doctype html><noscript><!--<noscript></noscript>--></noscript> -#errors -#script-off -#document -| <!DOCTYPE html> -| <html> -| <head> -| <noscript> -| <!-- <noscript></noscript> --> -| <body> - -#data -<!doctype html><noscript><!--</noscript>X<noscript>--></noscript> -#errors -#script-on -#document -| <!DOCTYPE html> -| <html> -| <head> -| <noscript> -| "<!--" -| <body> -| "X" -| <noscript> -| "-->" - -#data -<!doctype html><noscript><!--</noscript>X<noscript>--></noscript> -#errors -#script-off -#document -| <!DOCTYPE html> -| <html> -| <head> -| <noscript> -| <!-- </noscript>X<noscript> --> -| <body> - -#data -<!doctype html><noscript><iframe></noscript>X -#errors -#script-on -#document -| <!DOCTYPE html> -| <html> -| <head> -| <noscript> -| "<iframe>" -| <body> -| "X" - -#data -<!doctype html><noscript><iframe></noscript>X -#errors - * (1,34) unexpected token in head noscript - * (1,46) unexpected EOF -#script-off -#document -| <!DOCTYPE html> -| <html> -| <head> -| <noscript> -| <body> -| <iframe> -| "</noscript>X" - -#data -<!doctype html><noframes><!--<noframes></noframes>--></noframes> -#errors -(1,64): unexpected-end-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <noframes> -| "<!--<noframes>" -| <body> -| "-->" - -#data -<!doctype html><noframes><body><script><!--...</script></body></noframes></html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <noframes> -| "<body><script><!--...</script></body>" -| <body> - -#data -<!doctype html><textarea><!--<textarea></textarea>--></textarea> -#errors -(1,64): unexpected-end-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <textarea> -| "<!--<textarea>" -| "-->" - -#data -<!doctype html><textarea></textarea></textarea> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <textarea> -| "</textarea>" - -#data -<!doctype html><textarea><</textarea> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <textarea> -| "<" - -#data -<!doctype html><textarea>a<b</textarea> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <textarea> -| "a<b" - -#data -<!doctype html><iframe><!--<iframe></iframe>--></iframe> -#errors -(1,56): unexpected-end-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <iframe> -| "<!--<iframe>" -| "-->" - -#data -<!doctype html><iframe>...<!--X->...<!--/X->...</iframe> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <iframe> -| "...<!--X->...<!--/X->..." - -#data -<!doctype html><xmp><!--<xmp></xmp>--></xmp> -#errors -(1,44): unexpected-end-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <xmp> -| "<!--<xmp>" -| "-->" - -#data -<!doctype html><noembed><!--<noembed></noembed>--></noembed> -#errors -(1,60): unexpected-end-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <noembed> -| "<!--<noembed>" -| "-->" - -#data -<script> -#errors -(1,8): expected-doctype-but-got-start-tag -(1,8): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| <body> - -#data -<script>a -#errors -(1,8): expected-doctype-but-got-start-tag -(1,9): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "a" -| <body> - -#data -<script>< -#errors -(1,8): expected-doctype-but-got-start-tag -(1,9): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "<" -| <body> - -#data -<script></ -#errors -(1,8): expected-doctype-but-got-start-tag -(1,10): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "</" -| <body> - -#data -<script></S -#errors -(1,8): expected-doctype-but-got-start-tag -(1,11): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "</S" -| <body> - -#data -<script></SC -#errors -(1,8): expected-doctype-but-got-start-tag -(1,12): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "</SC" -| <body> - -#data -<script></SCR -#errors -(1,8): expected-doctype-but-got-start-tag -(1,13): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "</SCR" -| <body> - -#data -<script></SCRI -#errors -(1,8): expected-doctype-but-got-start-tag -(1,14): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "</SCRI" -| <body> - -#data -<script></SCRIP -#errors -(1,8): expected-doctype-but-got-start-tag -(1,15): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "</SCRIP" -| <body> - -#data -<script></SCRIPT -#errors -(1,8): expected-doctype-but-got-start-tag -(1,16): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "</SCRIPT" -| <body> - -#data -<script></SCRIPT -#errors -(1,8): expected-doctype-but-got-start-tag -(1,17): expected-attribute-name-but-got-eof -(1,17): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| <body> - -#data -<script></s -#errors -(1,8): expected-doctype-but-got-start-tag -(1,11): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "</s" -| <body> - -#data -<script></sc -#errors -(1,8): expected-doctype-but-got-start-tag -(1,12): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "</sc" -| <body> - -#data -<script></scr -#errors -(1,8): expected-doctype-but-got-start-tag -(1,13): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "</scr" -| <body> - -#data -<script></scri -#errors -(1,8): expected-doctype-but-got-start-tag -(1,14): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "</scri" -| <body> - -#data -<script></scrip -#errors -(1,8): expected-doctype-but-got-start-tag -(1,15): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "</scrip" -| <body> - -#data -<script></script -#errors -(1,8): expected-doctype-but-got-start-tag -(1,16): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "</script" -| <body> - -#data -<script></script -#errors -(1,8): expected-doctype-but-got-start-tag -(1,17): expected-attribute-name-but-got-eof -(1,17): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| <body> - -#data -<script><! -#errors -(1,8): expected-doctype-but-got-start-tag -(1,10): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "<!" -| <body> - -#data -<script><!a -#errors -(1,8): expected-doctype-but-got-start-tag -(1,11): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "<!a" -| <body> - -#data -<script><!- -#errors -(1,8): expected-doctype-but-got-start-tag -(1,11): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "<!-" -| <body> - -#data -<script><!-a -#errors -(1,8): expected-doctype-but-got-start-tag -(1,12): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "<!-a" -| <body> - -#data -<script><!-- -#errors -(1,8): expected-doctype-but-got-start-tag -(1,12): expected-named-closing-tag-but-got-eof -(1,12): unexpected-eof-in-text-mode -#document -| <html> -| <head> -| <script> -| "<!--" -| <body> - -#data -<script><!--a -#errors -(1,8): expected-doctype-but-got-start-tag -(1,13): expected-named-closing-tag-but-got-eof -(1,13): unexpected-eof-in-text-mode -#document -| <html> -| <head> -| <script> -| "<!--a" -| <body> - -#data -<script><!--< -#errors -(1,8): expected-doctype-but-got-start-tag -(1,13): expected-named-closing-tag-but-got-eof -(1,13): unexpected-eof-in-text-mode -#document -| <html> -| <head> -| <script> -| "<!--<" -| <body> - -#data -<script><!--<a -#errors -(1,8): expected-doctype-but-got-start-tag -(1,14): expected-named-closing-tag-but-got-eof -(1,14): unexpected-eof-in-text-mode -#document -| <html> -| <head> -| <script> -| "<!--<a" -| <body> - -#data -<script><!--</ -#errors -(1,8): expected-doctype-but-got-start-tag -(1,14): expected-named-closing-tag-but-got-eof -(1,14): unexpected-eof-in-text-mode -#document -| <html> -| <head> -| <script> -| "<!--</" -| <body> - -#data -<script><!--</script -#errors -(1,8): expected-doctype-but-got-start-tag -(1,20): expected-named-closing-tag-but-got-eof -(1,20): unexpected-eof-in-text-mode -#document -| <html> -| <head> -| <script> -| "<!--</script" -| <body> - -#data -<script><!--</script -#errors -(1,8): expected-doctype-but-got-start-tag -(1,21): expected-attribute-name-but-got-eof -(1,21): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "<!--" -| <body> - -#data -<script><!--<s -#errors -(1,8): expected-doctype-but-got-start-tag -(1,14): expected-named-closing-tag-but-got-eof -(1,14): unexpected-eof-in-text-mode -#document -| <html> -| <head> -| <script> -| "<!--<s" -| <body> - -#data -<script><!--<script -#errors -(1,8): expected-doctype-but-got-start-tag -(1,19): expected-named-closing-tag-but-got-eof -(1,19): unexpected-eof-in-text-mode -#document -| <html> -| <head> -| <script> -| "<!--<script" -| <body> - -#data -<script><!--<script -#errors -(1,8): expected-doctype-but-got-start-tag -(1,20): eof-in-script-in-script -(1,20): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "<!--<script " -| <body> - -#data -<script><!--<script < -#errors -(1,8): expected-doctype-but-got-start-tag -(1,21): eof-in-script-in-script -(1,21): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "<!--<script <" -| <body> - -#data -<script><!--<script <a -#errors -(1,8): expected-doctype-but-got-start-tag -(1,22): eof-in-script-in-script -(1,22): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "<!--<script <a" -| <body> - -#data -<script><!--<script </ -#errors -(1,8): expected-doctype-but-got-start-tag -(1,22): eof-in-script-in-script -(1,22): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "<!--<script </" -| <body> - -#data -<script><!--<script </s -#errors -(1,8): expected-doctype-but-got-start-tag -(1,23): eof-in-script-in-script -(1,23): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "<!--<script </s" -| <body> - -#data -<script><!--<script </script -#errors -(1,8): expected-doctype-but-got-start-tag -(1,28): eof-in-script-in-script -(1,28): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "<!--<script </script" -| <body> - -#data -<script><!--<script </scripta -#errors -(1,8): expected-doctype-but-got-start-tag -(1,29): eof-in-script-in-script -(1,29): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "<!--<script </scripta" -| <body> - -#data -<script><!--<script </script -#errors -(1,8): expected-doctype-but-got-start-tag -(1,29): expected-named-closing-tag-but-got-eof -(1,29): unexpected-eof-in-text-mode -#document -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<script><!--<script </script> -#errors -(1,8): expected-doctype-but-got-start-tag -(1,29): expected-named-closing-tag-but-got-eof -(1,29): unexpected-eof-in-text-mode -#document -| <html> -| <head> -| <script> -| "<!--<script </script>" -| <body> - -#data -<script><!--<script </script/ -#errors -(1,8): expected-doctype-but-got-start-tag -(1,29): expected-named-closing-tag-but-got-eof -(1,29): unexpected-eof-in-text-mode -#document -| <html> -| <head> -| <script> -| "<!--<script </script/" -| <body> - -#data -<script><!--<script </script < -#errors -(1,8): expected-doctype-but-got-start-tag -(1,30): expected-named-closing-tag-but-got-eof -(1,30): unexpected-eof-in-text-mode -#document -| <html> -| <head> -| <script> -| "<!--<script </script <" -| <body> - -#data -<script><!--<script </script <a -#errors -(1,8): expected-doctype-but-got-start-tag -(1,31): expected-named-closing-tag-but-got-eof -(1,31): unexpected-eof-in-text-mode -#document -| <html> -| <head> -| <script> -| "<!--<script </script <a" -| <body> - -#data -<script><!--<script </script </ -#errors -(1,8): expected-doctype-but-got-start-tag -(1,31): expected-named-closing-tag-but-got-eof -(1,31): unexpected-eof-in-text-mode -#document -| <html> -| <head> -| <script> -| "<!--<script </script </" -| <body> - -#data -<script><!--<script </script </script -#errors -(1,8): expected-doctype-but-got-start-tag -(1,37): expected-named-closing-tag-but-got-eof -(1,37): unexpected-eof-in-text-mode -#document -| <html> -| <head> -| <script> -| "<!--<script </script </script" -| <body> - -#data -<script><!--<script </script </script -#errors -(1,8): expected-doctype-but-got-start-tag -(1,38): expected-attribute-name-but-got-eof -(1,38): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<script><!--<script </script </script/ -#errors -(1,8): expected-doctype-but-got-start-tag -(1,38): unexpected-EOF-after-solidus-in-tag -(1,38): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<script><!--<script </script </script> -#errors -(1,8): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<script><!--<script - -#errors -(1,8): expected-doctype-but-got-start-tag -(1,21): eof-in-script-in-script -(1,21): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "<!--<script -" -| <body> - -#data -<script><!--<script -a -#errors -(1,8): expected-doctype-but-got-start-tag -(1,22): eof-in-script-in-script -(1,22): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "<!--<script -a" -| <body> - -#data -<script><!--<script -- -#errors -(1,8): expected-doctype-but-got-start-tag -(1,22): eof-in-script-in-script -(1,22): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "<!--<script --" -| <body> - -#data -<script><!--<script --a -#errors -(1,8): expected-doctype-but-got-start-tag -(1,23): eof-in-script-in-script -(1,23): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "<!--<script --a" -| <body> - -#data -<script><!--<script --> -#errors -(1,8): expected-doctype-but-got-start-tag -(1,23): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<script><!--<script -->< -#errors -(1,8): expected-doctype-but-got-start-tag -(1,24): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "<!--<script --><" -| <body> - -#data -<script><!--<script --></ -#errors -(1,8): expected-doctype-but-got-start-tag -(1,25): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "<!--<script --></" -| <body> - -#data -<script><!--<script --></script -#errors -(1,8): expected-doctype-but-got-start-tag -(1,31): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "<!--<script --></script" -| <body> - -#data -<script><!--<script --></script -#errors -(1,8): expected-doctype-but-got-start-tag -(1,32): expected-attribute-name-but-got-eof -(1,32): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<script><!--<script --></script/ -#errors -(1,8): expected-doctype-but-got-start-tag -(1,32): unexpected-EOF-after-solidus-in-tag -(1,32): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<script><!--<script --></script> -#errors -(1,8): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<script><!--<script><\/script>--></script> -#errors -(1,8): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <script> -| "<!--<script><\/script>-->" -| <body> - -#data -<script><!--<script></scr'+'ipt>--></script> -#errors -(1,8): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <script> -| "<!--<script></scr'+'ipt>-->" -| <body> - -#data -<script><!--<script></script><script></script></script> -#errors -(1,8): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>" -| <body> - -#data -<script><!--<script></script><script></script>--><!--</script> -#errors -(1,8): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>--><!--" -| <body> - -#data -<script><!--<script></script><script></script>-- ></script> -#errors -(1,8): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>-- >" -| <body> - -#data -<script><!--<script></script><script></script>- -></script> -#errors -(1,8): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>- ->" -| <body> - -#data -<script><!--<script></script><script></script>- - ></script> -#errors -(1,8): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>- - >" -| <body> - -#data -<script><!--<script></script><script></script>-></script> -#errors -(1,8): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>->" -| <body> - -#data -<script><!--<script>--!></script>X -#errors -(1,8): expected-doctype-but-got-start-tag -(1,34): expected-named-closing-tag-but-got-eof -(1,34): unexpected-eof-in-text-mode -#document -| <html> -| <head> -| <script> -| "<!--<script>--!></script>X" -| <body> - -#data -<script><!--<scr'+'ipt></script>--></script> -#errors -(1,8): expected-doctype-but-got-start-tag -(1,44): unexpected-end-tag -#document -| <html> -| <head> -| <script> -| "<!--<scr'+'ipt>" -| <body> -| "-->" - -#data -<script><!--<script></scr'+'ipt></script>X -#errors -(1,8): expected-doctype-but-got-start-tag -(1,42): expected-named-closing-tag-but-got-eof -(1,42): unexpected-eof-in-text-mode -#document -| <html> -| <head> -| <script> -| "<!--<script></scr'+'ipt></script>X" -| <body> - -#data -<style><!--<style></style>--></style> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,37): unexpected-end-tag -#document -| <html> -| <head> -| <style> -| "<!--<style>" -| <body> -| "-->" - -#data -<style><!--</style>X -#errors -(1,7): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <style> -| "<!--" -| <body> -| "X" - -#data -<style><!--...</style>...--></style> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,36): unexpected-end-tag -#document -| <html> -| <head> -| <style> -| "<!--..." -| <body> -| "...-->" - -#data -<style><!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style></style>X -#errors -(1,7): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <style> -| "<!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style>" -| <body> -| "X" - -#data -<style><!--...<style><!--...--!></style>--></style> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,51): unexpected-end-tag -#document -| <html> -| <head> -| <style> -| "<!--...<style><!--...--!>" -| <body> -| "-->" - -#data -<style><!--...</style><!-- --><style>@import ...</style> -#errors -(1,7): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <style> -| "<!--..." -| <!-- --> -| <style> -| "@import ..." -| <body> - -#data -<style>...<style><!--...</style><!-- --></style> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,48): unexpected-end-tag -#document -| <html> -| <head> -| <style> -| "...<style><!--..." -| <!-- --> -| <body> - -#data -<style>...<!--[if IE]><style>...</style>X -#errors -(1,7): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <style> -| "...<!--[if IE]><style>..." -| <body> -| "X" - -#data -<title><!--<title></title>--></title> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,37): unexpected-end-tag -#document -| <html> -| <head> -| <title> -| "<!--<title>" -| <body> -| "-->" - -#data -<title></title></title> -#errors -(1,7): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <title> -| "</title>" -| <body> - -#data -<title>foo/title><link></head><body>X -#errors -(1,7): expected-doctype-but-got-start-tag -(1,37): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <title> -| "foo/title><link></head><body>X" -| <body> - -#data -<noscript><!--<noscript></noscript>--></noscript> -#errors -(1,10): expected-doctype-but-got-start-tag -(1,49): unexpected-end-tag -#script-on -#document -| <html> -| <head> -| <noscript> -| "<!--<noscript>" -| <body> -| "-->" - -#data -<noscript><!--<noscript></noscript>--></noscript> -#errors - * (1,11) missing DOCTYPE -#script-off -#document -| <html> -| <head> -| <noscript> -| <!-- <noscript></noscript> --> -| <body> - -#data -<noscript><!--</noscript>X<noscript>--></noscript> -#errors -(1,10): expected-doctype-but-got-start-tag -#script-on -#document -| <html> -| <head> -| <noscript> -| "<!--" -| <body> -| "X" -| <noscript> -| "-->" - -#data -<noscript><!--</noscript>X<noscript>--></noscript> -#errors -(1,10): expected-doctype-but-got-start-tag -#script-off -#document -| <html> -| <head> -| <noscript> -| <!-- </noscript>X<noscript> --> -| <body> - -#data -<noscript><iframe></noscript>X -#errors -(1,10): expected-doctype-but-got-start-tag -#script-on -#document -| <html> -| <head> -| <noscript> -| "<iframe>" -| <body> -| "X" - -#data -<noscript><iframe></noscript>X -#errors - * (1,11) missing DOCTYPE - * (1,19) unexpected token in head noscript - * (1,31) unexpected EOF -#script-off -#document -| <html> -| <head> -| <noscript> -| <body> -| <iframe> -| "</noscript>X" - -#data -<noframes><!--<noframes></noframes>--></noframes> -#errors -(1,10): expected-doctype-but-got-start-tag -(1,49): unexpected-end-tag -#document -| <html> -| <head> -| <noframes> -| "<!--<noframes>" -| <body> -| "-->" - -#data -<noframes><body><script><!--...</script></body></noframes></html> -#errors -(1,10): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <noframes> -| "<body><script><!--...</script></body>" -| <body> - -#data -<textarea><!--<textarea></textarea>--></textarea> -#errors -(1,10): expected-doctype-but-got-start-tag -(1,49): unexpected-end-tag -#document -| <html> -| <head> -| <body> -| <textarea> -| "<!--<textarea>" -| "-->" - -#data -<textarea></textarea></textarea> -#errors -(1,10): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <textarea> -| "</textarea>" - -#data -<iframe><!--<iframe></iframe>--></iframe> -#errors -(1,8): expected-doctype-but-got-start-tag -(1,41): unexpected-end-tag -#document -| <html> -| <head> -| <body> -| <iframe> -| "<!--<iframe>" -| "-->" - -#data -<iframe>...<!--X->...<!--/X->...</iframe> -#errors -(1,8): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <iframe> -| "...<!--X->...<!--/X->..." - -#data -<xmp><!--<xmp></xmp>--></xmp> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,29): unexpected-end-tag -#document -| <html> -| <head> -| <body> -| <xmp> -| "<!--<xmp>" -| "-->" - -#data -<noembed><!--<noembed></noembed>--></noembed> -#errors -(1,9): expected-doctype-but-got-start-tag -(1,45): unexpected-end-tag -#document -| <html> -| <head> -| <body> -| <noembed> -| "<!--<noembed>" -| "-->" - -#data -<!doctype html><table> - -#errors -(2,0): eof-in-table -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| " -" - -#data -<!doctype html><table><td><span><font></span><span> -#errors -(1,26): unexpected-cell-in-table-body -(1,45): unexpected-end-tag -(1,51): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <span> -| <font> -| <font> -| <span> - -#data -<!doctype html><form><table></form><form></table></form> -#errors -(1,35): unexpected-end-tag-implies-table-voodoo -(1,35): unexpected-end-tag -(1,41): unexpected-form-in-table -(1,56): unexpected-end-tag -(1,56): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <form> -| <table> -| <form> diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests17.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests17.dat deleted file mode 100644 index e49bcf03142..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests17.dat +++ /dev/null @@ -1,179 +0,0 @@ -#data -<!doctype html><table><tbody><select><tr> -#errors -(1,37): unexpected-start-tag-implies-table-voodoo -(1,41): unexpected-table-element-start-tag-in-select-in-table -(1,41): eof-in-table -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <table> -| <tbody> -| <tr> - -#data -<!doctype html><table><tr><select><td> -#errors -(1,34): unexpected-start-tag-implies-table-voodoo -(1,38): unexpected-table-element-start-tag-in-select-in-table -(1,38): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <table> -| <tbody> -| <tr> -| <td> - -#data -<!doctype html><table><tr><td><select><td> -#errors -(1,42): unexpected-table-element-start-tag-in-select-in-table -(1,42): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <select> -| <td> - -#data -<!doctype html><table><tr><th><select><td> -#errors -(1,42): unexpected-table-element-start-tag-in-select-in-table -(1,42): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <th> -| <select> -| <td> - -#data -<!doctype html><table><caption><select><tr> -#errors -(1,43): unexpected-table-element-start-tag-in-select-in-table -(1,43): eof-in-table -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| <select> -| <tbody> -| <tr> - -#data -<!doctype html><select><tr> -#errors -(1,27): unexpected-start-tag-in-select -(1,27): eof-in-select -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><select><td> -#errors -(1,27): unexpected-start-tag-in-select -(1,27): eof-in-select -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><select><th> -#errors -(1,27): unexpected-start-tag-in-select -(1,27): eof-in-select -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><select><tbody> -#errors -(1,30): unexpected-start-tag-in-select -(1,30): eof-in-select -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><select><thead> -#errors -(1,30): unexpected-start-tag-in-select -(1,30): eof-in-select -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><select><tfoot> -#errors -(1,30): unexpected-start-tag-in-select -(1,30): eof-in-select -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><select><caption> -#errors -(1,32): unexpected-start-tag-in-select -(1,32): eof-in-select -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><table><tr></table>a -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| "a" diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests18.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests18.dat deleted file mode 100644 index 926bccb3875..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests18.dat +++ /dev/null @@ -1,322 +0,0 @@ -#data -<!doctype html><plaintext></plaintext> -#errors -(1,38): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <plaintext> -| "</plaintext>" - -#data -<!doctype html><table><plaintext></plaintext> -#errors -(1,33): foster-parenting-start-tag -(1,34): foster-parenting-character -(1,35): foster-parenting-character -(1,36): foster-parenting-character -(1,37): foster-parenting-character -(1,38): foster-parenting-character -(1,39): foster-parenting-character -(1,40): foster-parenting-character -(1,41): foster-parenting-character -(1,42): foster-parenting-character -(1,43): foster-parenting-character -(1,44): foster-parenting-character -(1,45): foster-parenting-character -(1,45): eof-in-table -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <plaintext> -| "</plaintext>" -| <table> - -#data -<!doctype html><table><tbody><plaintext></plaintext> -#errors -(1,40): foster-parenting-start-tag -(1,41): foster-parenting-character -(1,41): foster-parenting-character -(1,41): foster-parenting-character -(1,41): foster-parenting-character -(1,41): foster-parenting-character -(1,41): foster-parenting-character -(1,41): foster-parenting-character -(1,41): foster-parenting-character -(1,41): foster-parenting-character -(1,41): foster-parenting-character -(1,41): foster-parenting-character -(1,41): foster-parenting-character -(1,52): eof-in-table -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <plaintext> -| "</plaintext>" -| <table> -| <tbody> - -#data -<!doctype html><table><tbody><tr><plaintext></plaintext> -#errors -(1,44): foster-parenting-start-tag -(1,45): foster-parenting-character -(1,46): foster-parenting-character -(1,47): foster-parenting-character -(1,48): foster-parenting-character -(1,49): foster-parenting-character -(1,50): foster-parenting-character -(1,51): foster-parenting-character -(1,52): foster-parenting-character -(1,53): foster-parenting-character -(1,54): foster-parenting-character -(1,55): foster-parenting-character -(1,56): foster-parenting-character -(1,56): eof-in-table -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <plaintext> -| "</plaintext>" -| <table> -| <tbody> -| <tr> - -#data -<!doctype html><table><td><plaintext></plaintext> -#errors -(1,26): unexpected-cell-in-table-body -(1,49): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <plaintext> -| "</plaintext>" - -#data -<!doctype html><table><caption><plaintext></plaintext> -#errors -(1,54): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| <plaintext> -| "</plaintext>" - -#data -<!doctype html><table><tr><style></script></style>abc -#errors -(1,51): foster-parenting-character -(1,52): foster-parenting-character -(1,53): foster-parenting-character -(1,53): eof-in-table -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "abc" -| <table> -| <tbody> -| <tr> -| <style> -| "</script>" - -#data -<!doctype html><table><tr><script></style></script>abc -#errors -(1,52): foster-parenting-character -(1,53): foster-parenting-character -(1,54): foster-parenting-character -(1,54): eof-in-table -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "abc" -| <table> -| <tbody> -| <tr> -| <script> -| "</style>" - -#data -<!doctype html><table><caption><style></script></style>abc -#errors -(1,58): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| <style> -| "</script>" -| "abc" - -#data -<!doctype html><table><td><style></script></style>abc -#errors -(1,26): unexpected-cell-in-table-body -(1,53): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <style> -| "</script>" -| "abc" - -#data -<!doctype html><select><script></style></script>abc -#errors -(1,51): eof-in-select -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <script> -| "</style>" -| "abc" - -#data -<!doctype html><table><select><script></style></script>abc -#errors -(1,30): unexpected-start-tag-implies-table-voodoo -(1,58): eof-in-select -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <script> -| "</style>" -| "abc" -| <table> - -#data -<!doctype html><table><tr><select><script></style></script>abc -#errors -(1,34): unexpected-start-tag-implies-table-voodoo -(1,62): eof-in-select -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <script> -| "</style>" -| "abc" -| <table> -| <tbody> -| <tr> - -#data -<!doctype html><frameset></frameset><noframes>abc -#errors -(1,49): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <noframes> -| "abc" - -#data -<!doctype html><frameset></frameset><noframes>abc</noframes><!--abc--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <noframes> -| "abc" -| <!-- abc --> - -#data -<!doctype html><frameset></frameset></html><noframes>abc -#errors -(1,56): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <noframes> -| "abc" - -#data -<!doctype html><frameset></frameset></html><noframes>abc</noframes><!--abc--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <noframes> -| "abc" -| <!-- abc --> - -#data -<!doctype html><table><tr></tbody><tfoot> -#errors -(1,41): eof-in-table -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <tfoot> - -#data -<!doctype html><table><td><svg></svg>abc<td> -#errors -(1,26): unexpected-cell-in-table-body -(1,44): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <svg svg> -| "abc" -| <td> diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests19.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests19.dat deleted file mode 100644 index 02158c8bba8..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests19.dat +++ /dev/null @@ -1,1524 +0,0 @@ -#data -<!doctype html><math><mn DefinitionUrl="foo"> -#errors -(1,45): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math mn> -| definitionURL="foo" - -#data -<!doctype html><html></p><!--foo--> -#errors -(1,25): end-tag-after-implied-root -#document -| <!DOCTYPE html> -| <html> -| <!-- foo --> -| <head> -| <body> - -#data -<!doctype html><head></head></p><!--foo--> -#errors -(1,32): unexpected-end-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <!-- foo --> -| <body> - -#data -<!doctype html><body><p><pre> -#errors -(1,29): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <pre> - -#data -<!doctype html><body><p><listing> -#errors -(1,33): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <listing> - -#data -<!doctype html><p><plaintext> -#errors -(1,29): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <plaintext> - -#data -<!doctype html><p><h1> -#errors -(1,22): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <h1> - -#data -<!doctype html><form><isindex> -#errors -(1,30): deprecated-tag -(1,30): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <form> - -#data -<!doctype html><isindex action="POST"> -#errors -(1,38): deprecated-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <form> -| action="POST" -| <hr> -| <label> -| "This is a searchable index. Enter search keywords: " -| <input> -| name="isindex" -| <hr> - -#data -<!doctype html><isindex prompt="this is isindex"> -#errors -(1,49): deprecated-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <form> -| <hr> -| <label> -| "this is isindex" -| <input> -| name="isindex" -| <hr> - -#data -<!doctype html><isindex type="hidden"> -#errors -(1,38): deprecated-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <form> -| <hr> -| <label> -| "This is a searchable index. Enter search keywords: " -| <input> -| name="isindex" -| type="hidden" -| <hr> - -#data -<!doctype html><isindex name="foo"> -#errors -(1,35): deprecated-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <form> -| <hr> -| <label> -| "This is a searchable index. Enter search keywords: " -| <input> -| name="isindex" -| <hr> - -#data -<!doctype html><ruby><p><rp> -#errors -(1,28): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <ruby> -| <p> -| <rp> - -#data -<!doctype html><ruby><div><span><rp> -#errors -(1,36): XXX-undefined-error -(1,36): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <ruby> -| <div> -| <span> -| <rp> - -#data -<!doctype html><ruby><div><p><rp> -#errors -(1,33): XXX-undefined-error -(1,33): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <ruby> -| <div> -| <p> -| <rp> - -#data -<!doctype html><ruby><p><rt> -#errors -(1,28): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <ruby> -| <p> -| <rt> - -#data -<!doctype html><ruby><div><span><rt> -#errors -(1,36): XXX-undefined-error -(1,36): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <ruby> -| <div> -| <span> -| <rt> - -#data -<!doctype html><ruby><div><p><rt> -#errors -(1,33): XXX-undefined-error -(1,33): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <ruby> -| <div> -| <p> -| <rt> - -#data -<html><ruby>a<rb>b<rt></ruby></html> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <ruby> -| "a" -| <rb> -| "b" -| <rt> - -#data -<html><ruby>a<rp>b<rt></ruby></html> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <ruby> -| "a" -| <rp> -| "b" -| <rt> - -#data -<html><ruby>a<rt>b<rt></ruby></html> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <ruby> -| "a" -| <rt> -| "b" -| <rt> - -#data -<html><ruby>a<rtc>b<rt>c<rb>d</ruby></html> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <ruby> -| "a" -| <rtc> -| "b" -| <rt> -| "c" -| <rb> -| "d" - -#data -<!doctype html><math/><foo> -#errors -(1,27): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <foo> - -#data -<!doctype html><svg/><foo> -#errors -(1,26): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <foo> - -#data -<!doctype html><div></body><!--foo--> -#errors -(1,27): expected-one-end-tag-but-got-another -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <div> -| <!-- foo --> - -#data -<!doctype html><h1><div><h3><span></h1>foo -#errors -(1,39): end-tag-too-early -(1,42): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <h1> -| <div> -| <h3> -| <span> -| "foo" - -#data -<!doctype html><p></h3>foo -#errors -(1,23): end-tag-too-early -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| "foo" - -#data -<!doctype html><h3><li>abc</h2>foo -#errors -(1,31): end-tag-too-early -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <h3> -| <li> -| "abc" -| "foo" - -#data -<!doctype html><table>abc<!--foo--> -#errors -(1,23): foster-parenting-character -(1,24): foster-parenting-character -(1,25): foster-parenting-character -(1,35): eof-in-table -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "abc" -| <table> -| <!-- foo --> - -#data -<!doctype html><table> <!--foo--> -#errors -(1,34): eof-in-table -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| " " -| <!-- foo --> - -#data -<!doctype html><table> b <!--foo--> -#errors -(1,23): foster-parenting-character -(1,24): foster-parenting-character -(1,25): foster-parenting-character -(1,35): eof-in-table -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| " b " -| <table> -| <!-- foo --> - -#data -<!doctype html><select><option><option> -#errors -(1,39): eof-in-select -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <option> -| <option> - -#data -<!doctype html><select><option></optgroup> -#errors -(1,42): unexpected-end-tag-in-select -(1,42): eof-in-select -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <option> - -#data -<!doctype html><select><option></optgroup> -#errors -(1,42): unexpected-end-tag-in-select -(1,42): eof-in-select -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <option> - -#data -<!doctype html><dd><optgroup><dd> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <dd> -| <optgroup> -| <dd> - -#data -<!doctype html><p><math><mi><p><h1> -#errors -(1,35): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <math math> -| <math mi> -| <p> -| <h1> - -#data -<!doctype html><p><math><mo><p><h1> -#errors -(1,35): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <math math> -| <math mo> -| <p> -| <h1> - -#data -<!doctype html><p><math><mn><p><h1> -#errors -(1,35): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <math math> -| <math mn> -| <p> -| <h1> - -#data -<!doctype html><p><math><ms><p><h1> -#errors -(1,35): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <math math> -| <math ms> -| <p> -| <h1> - -#data -<!doctype html><p><math><mtext><p><h1> -#errors -(1,38): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <math math> -| <math mtext> -| <p> -| <h1> - -#data -<!doctype html><frameset></noframes> -#errors -(1,36): unexpected-end-tag-in-frameset -(1,36): eof-in-frameset -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!doctype html><html c=d><body></html><html a=b> -#errors -(1,48): non-html-root -#document -| <!DOCTYPE html> -| <html> -| a="b" -| c="d" -| <head> -| <body> - -#data -<!doctype html><html c=d><frameset></frameset></html><html a=b> -#errors -(1,63): non-html-root -#document -| <!DOCTYPE html> -| <html> -| a="b" -| c="d" -| <head> -| <frameset> - -#data -<!doctype html><html><frameset></frameset></html><!--foo--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <!-- foo --> - -#data -<!doctype html><html><frameset></frameset></html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| " " - -#data -<!doctype html><html><frameset></frameset></html>abc -#errors -(1,50): expected-eof-but-got-char -(1,51): expected-eof-but-got-char -(1,52): expected-eof-but-got-char -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!doctype html><html><frameset></frameset></html><p> -#errors -(1,52): expected-eof-but-got-start-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!doctype html><html><frameset></frameset></html></p> -#errors -(1,53): expected-eof-but-got-end-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<html><frameset></frameset></html><!doctype html> -#errors -(1,6): expected-doctype-but-got-start-tag -(1,49): unexpected-doctype -#document -| <html> -| <head> -| <frameset> - -#data -<!doctype html><body><frameset> -#errors -(1,31): unexpected-start-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> - -#data -<!doctype html><p><frameset><frame> -#errors -(1,28): unexpected-start-tag -(1,35): eof-in-frameset -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <frame> - -#data -<!doctype html><p>a<frameset> -#errors -(1,29): unexpected-start-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| "a" - -#data -<!doctype html><p> <frameset><frame> -#errors -(1,29): unexpected-start-tag -(1,36): eof-in-frameset -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <frame> - -#data -<!doctype html><pre><frameset> -#errors -(1,30): unexpected-start-tag -(1,30): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <pre> - -#data -<!doctype html><listing><frameset> -#errors -(1,34): unexpected-start-tag -(1,34): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <listing> - -#data -<!doctype html><li><frameset> -#errors -(1,29): unexpected-start-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <li> - -#data -<!doctype html><dd><frameset> -#errors -(1,29): unexpected-start-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <dd> - -#data -<!doctype html><dt><frameset> -#errors -(1,29): unexpected-start-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <dt> - -#data -<!doctype html><button><frameset> -#errors -(1,33): unexpected-start-tag -(1,33): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <button> - -#data -<!doctype html><applet><frameset> -#errors -(1,33): unexpected-start-tag -(1,33): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <applet> - -#data -<!doctype html><marquee><frameset> -#errors -(1,34): unexpected-start-tag -(1,34): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <marquee> - -#data -<!doctype html><object><frameset> -#errors -(1,33): unexpected-start-tag -(1,33): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <object> - -#data -<!doctype html><table><frameset> -#errors -(1,32): unexpected-start-tag-implies-table-voodoo -(1,32): unexpected-start-tag -(1,32): eof-in-table -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> - -#data -<!doctype html><area><frameset> -#errors -(1,31): unexpected-start-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <area> - -#data -<!doctype html><basefont><frameset> -#errors -(1,35): eof-in-frameset -#document -| <!DOCTYPE html> -| <html> -| <head> -| <basefont> -| <frameset> - -#data -<!doctype html><bgsound><frameset> -#errors -(1,34): eof-in-frameset -#document -| <!DOCTYPE html> -| <html> -| <head> -| <bgsound> -| <frameset> - -#data -<!doctype html><br><frameset> -#errors -(1,29): unexpected-start-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <br> - -#data -<!doctype html><embed><frameset> -#errors -(1,32): unexpected-start-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <embed> - -#data -<!doctype html><img><frameset> -#errors -(1,30): unexpected-start-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <img> - -#data -<!doctype html><input><frameset> -#errors -(1,32): unexpected-start-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <input> - -#data -<!doctype html><keygen><frameset> -#errors -(1,33): unexpected-start-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <keygen> - -#data -<!doctype html><wbr><frameset> -#errors -(1,30): unexpected-start-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <wbr> - -#data -<!doctype html><hr><frameset> -#errors -(1,29): unexpected-start-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <hr> - -#data -<!doctype html><textarea></textarea><frameset> -#errors -(1,46): unexpected-start-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <textarea> - -#data -<!doctype html><xmp></xmp><frameset> -#errors -(1,36): unexpected-start-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <xmp> - -#data -<!doctype html><iframe></iframe><frameset> -#errors -(1,42): unexpected-start-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <iframe> - -#data -<!doctype html><select></select><frameset> -#errors -(1,42): unexpected-start-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><svg></svg><frameset><frame> -#errors -(1,36): unexpected-start-tag -(1,43): eof-in-frameset -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <frame> - -#data -<!doctype html><math></math><frameset><frame> -#errors -(1,38): unexpected-start-tag -(1,45): eof-in-frameset -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <frame> - -#data -<!doctype html><svg><foreignObject><div> <frameset><frame> -#errors -(1,51): unexpected-start-tag -(1,58): eof-in-frameset -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <frame> - -#data -<!doctype html><svg>a</svg><frameset><frame> -#errors -(1,37): unexpected-start-tag -(1,44): unexpected-start-tag-ignored -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| "a" - -#data -<!doctype html><svg> </svg><frameset><frame> -#errors -(1,37): unexpected-start-tag -(1,44): eof-in-frameset -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <frame> - -#data -<html>aaa<frameset></frameset> -#errors -(1,6): expected-doctype-but-got-start-tag -(1,19): unexpected-start-tag -(1,30): unexpected-end-tag -#document -| <html> -| <head> -| <body> -| "aaa" - -#data -<html> a <frameset></frameset> -#errors -(1,6): expected-doctype-but-got-start-tag -(1,19): unexpected-start-tag -(1,30): unexpected-end-tag -#document -| <html> -| <head> -| <body> -| "a " - -#data -<!doctype html><div><frameset> -#errors -(1,30): unexpected-start-tag -(1,30): eof-in-frameset -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!doctype html><div><body><frameset> -#errors -(1,26): unexpected-start-tag -(1,36): unexpected-start-tag -(1,36): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <div> - -#data -<!doctype html><p><math></p>a -#errors -(1,28): unexpected-end-tag -(1,28): unexpected-end-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <math math> -| "a" - -#data -<!doctype html><p><math><mn><span></p>a -#errors -(1,38): unexpected-end-tag -(1,39): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <math math> -| <math mn> -| <span> -| <p> -| "a" - -#data -<!doctype html><math></html> -#errors -(1,28): unexpected-end-tag -(1,28): expected-one-end-tag-but-got-another -(1,28): unexpected-end-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> - -#data -<!doctype html><meta charset="ascii"> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <meta> -| charset="ascii" -| <body> - -#data -<!doctype html><meta http-equiv="content-type" content="text/html;charset=ascii"> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <meta> -| content="text/html;charset=ascii" -| http-equiv="content-type" -| <body> - -#data -<!doctype html><head><!--aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa--><meta charset="utf8"> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <!-- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa --> -| <meta> -| charset="utf8" -| <body> - -#data -<!doctype html><html a=b><head></head><html c=d> -#errors -(1,48): non-html-root -#document -| <!DOCTYPE html> -| <html> -| a="b" -| c="d" -| <head> -| <body> - -#data -<!doctype html><image/> -#errors -(1,23): image-start-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <img> - -#data -<!doctype html>a<i>b<table>c<b>d</i>e</b>f -#errors -(1,28): foster-parenting-character -(1,31): foster-parenting-start-tag -(1,32): foster-parenting-character -(1,36): foster-parenting-end-tag -(1,36): adoption-agency-1.3 -(1,37): foster-parenting-character -(1,41): foster-parenting-end-tag -(1,42): foster-parenting-character -(1,42): eof-in-table -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "a" -| <i> -| "bc" -| <b> -| "de" -| "f" -| <table> - -#data -<!doctype html><table><i>a<b>b<div>c<a>d</i>e</b>f -#errors -(1,25): foster-parenting-start-tag -(1,26): foster-parenting-character -(1,29): foster-parenting-start-tag -(1,30): foster-parenting-character -(1,35): foster-parenting-start-tag -(1,36): foster-parenting-character -(1,39): foster-parenting-start-tag -(1,40): foster-parenting-character -(1,44): foster-parenting-end-tag -(1,44): adoption-agency-1.3 -(1,44): adoption-agency-1.3 -(1,45): foster-parenting-character -(1,49): foster-parenting-end-tag -(1,49): adoption-agency-1.3 -(1,49): adoption-agency-1.3 -(1,50): foster-parenting-character -(1,50): eof-in-table -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <i> -| "a" -| <b> -| "b" -| <b> -| <div> -| <b> -| <i> -| "c" -| <a> -| "d" -| <a> -| "e" -| <a> -| "f" -| <table> - -#data -<!doctype html><i>a<b>b<div>c<a>d</i>e</b>f -#errors -(1,37): adoption-agency-1.3 -(1,37): adoption-agency-1.3 -(1,42): adoption-agency-1.3 -(1,42): adoption-agency-1.3 -(1,43): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <i> -| "a" -| <b> -| "b" -| <b> -| <div> -| <b> -| <i> -| "c" -| <a> -| "d" -| <a> -| "e" -| <a> -| "f" - -#data -<!doctype html><table><i>a<b>b<div>c</i> -#errors -(1,25): foster-parenting-start-tag -(1,26): foster-parenting-character -(1,29): foster-parenting-start-tag -(1,30): foster-parenting-character -(1,35): foster-parenting-start-tag -(1,36): foster-parenting-character -(1,40): foster-parenting-end-tag -(1,40): adoption-agency-1.3 -(1,40): eof-in-table -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <i> -| "a" -| <b> -| "b" -| <b> -| <div> -| <i> -| "c" -| <table> - -#data -<!doctype html><table><i>a<b>b<div>c<a>d</i>e</b>f -#errors -(1,25): foster-parenting-start-tag -(1,26): foster-parenting-character -(1,29): foster-parenting-start-tag -(1,30): foster-parenting-character -(1,35): foster-parenting-start-tag -(1,36): foster-parenting-character -(1,39): foster-parenting-start-tag -(1,40): foster-parenting-character -(1,44): foster-parenting-end-tag -(1,44): adoption-agency-1.3 -(1,44): adoption-agency-1.3 -(1,45): foster-parenting-character -(1,49): foster-parenting-end-tag -(1,44): adoption-agency-1.3 -(1,44): adoption-agency-1.3 -(1,50): foster-parenting-character -(1,50): eof-in-table -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <i> -| "a" -| <b> -| "b" -| <b> -| <div> -| <b> -| <i> -| "c" -| <a> -| "d" -| <a> -| "e" -| <a> -| "f" -| <table> - -#data -<!doctype html><table><i>a<div>b<tr>c<b>d</i>e -#errors -(1,25): foster-parenting-start-tag -(1,26): foster-parenting-character -(1,31): foster-parenting-start-tag -(1,32): foster-parenting-character -(1,37): foster-parenting-character -(1,40): foster-parenting-start-tag -(1,41): foster-parenting-character -(1,45): foster-parenting-end-tag -(1,45): adoption-agency-1.3 -(1,46): foster-parenting-character -(1,46): eof-in-table -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <i> -| "a" -| <div> -| "b" -| <i> -| "c" -| <b> -| "d" -| <b> -| "e" -| <table> -| <tbody> -| <tr> - -#data -<!doctype html><table><td><table><i>a<div>b<b>c</i>d -#errors -(1,26): unexpected-cell-in-table-body -(1,36): foster-parenting-start-tag -(1,37): foster-parenting-character -(1,42): foster-parenting-start-tag -(1,43): foster-parenting-character -(1,46): foster-parenting-start-tag -(1,47): foster-parenting-character -(1,51): foster-parenting-end-tag -(1,51): adoption-agency-1.3 -(1,51): adoption-agency-1.3 -(1,52): foster-parenting-character -(1,52): eof-in-table -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <i> -| "a" -| <div> -| <i> -| "b" -| <b> -| "c" -| <b> -| "d" -| <table> - -#data -<!doctype html><body><bgsound> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <bgsound> - -#data -<!doctype html><body><basefont> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <basefont> - -#data -<!doctype html><a><b></a><basefont> -#errors -(1,25): adoption-agency-1.3 -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <a> -| <b> -| <basefont> - -#data -<!doctype html><a><b></a><bgsound> -#errors -(1,25): adoption-agency-1.3 -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <a> -| <b> -| <bgsound> - -#data -<!doctype html><figcaption><article></figcaption>a -#errors -(1,49): end-tag-too-early -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <figcaption> -| <article> -| "a" - -#data -<!doctype html><summary><article></summary>a -#errors -(1,43): end-tag-too-early -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <summary> -| <article> -| "a" - -#data -<!doctype html><p><a><plaintext>b -#errors -(1,32): unexpected-end-tag -(1,33): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <a> -| <plaintext> -| <a> -| "b" - -#data -<!DOCTYPE html><div>a<a></div>b<p>c</p>d -#errors -(1,30): end-tag-too-early -(1,40): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <div> -| "a" -| <a> -| <a> -| "b" -| <p> -| "c" -| "d" diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests2.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests2.dat deleted file mode 100644 index 41953160f00..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests2.dat +++ /dev/null @@ -1,799 +0,0 @@ -#data -<!DOCTYPE html>Test -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "Test" - -#data -<textarea>test</div>test -#errors -(1,10): expected-doctype-but-got-start-tag -(1,24): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <textarea> -| "test</div>test" - -#data -<table><td> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,11): unexpected-cell-in-table-body -(1,11): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> - -#data -<table><td>test</tbody></table> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,11): unexpected-cell-in-table-body -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| "test" - -#data -<frame>test -#errors -(1,7): expected-doctype-but-got-start-tag -(1,7): unexpected-start-tag-ignored -#document -| <html> -| <head> -| <body> -| "test" - -#data -<!DOCTYPE html><frameset>test -#errors -(1,29): unexpected-char-in-frameset -(1,29): unexpected-char-in-frameset -(1,29): unexpected-char-in-frameset -(1,29): unexpected-char-in-frameset -(1,29): eof-in-frameset -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!DOCTYPE html><frameset> te st -#errors -(1,29): unexpected-char-in-frameset -(1,29): unexpected-char-in-frameset -(1,29): unexpected-char-in-frameset -(1,29): unexpected-char-in-frameset -(1,29): eof-in-frameset -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| " " - -#data -<!DOCTYPE html><frameset></frameset> te st -#errors -(1,29): unexpected-char-after-frameset -(1,29): unexpected-char-after-frameset -(1,29): unexpected-char-after-frameset -(1,29): unexpected-char-after-frameset -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| " " - -#data -<!DOCTYPE html><frameset><!DOCTYPE html> -#errors -(1,40): unexpected-doctype -(1,40): eof-in-frameset -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!DOCTYPE html><font><p><b>test</font> -#errors -(1,38): adoption-agency-1.3 -(1,38): adoption-agency-1.3 -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <font> -| <p> -| <font> -| <b> -| "test" - -#data -<!DOCTYPE html><dt><div><dd> -#errors -(1,28): end-tag-too-early -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <dt> -| <div> -| <dd> - -#data -<script></x -#errors -(1,8): expected-doctype-but-got-start-tag -(1,11): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <script> -| "</x" -| <body> - -#data -<table><plaintext><td> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,18): unexpected-start-tag-implies-table-voodoo -(1,22): foster-parenting-character-in-table -(1,22): foster-parenting-character-in-table -(1,22): foster-parenting-character-in-table -(1,22): foster-parenting-character-in-table -(1,22): eof-in-table -#document -| <html> -| <head> -| <body> -| <plaintext> -| "<td>" -| <table> - -#data -<plaintext></plaintext> -#errors -(1,11): expected-doctype-but-got-start-tag -(1,23): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <plaintext> -| "</plaintext>" - -#data -<!DOCTYPE html><table><tr>TEST -#errors -(1,30): foster-parenting-character-in-table -(1,30): foster-parenting-character-in-table -(1,30): foster-parenting-character-in-table -(1,30): foster-parenting-character-in-table -(1,30): eof-in-table -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "TEST" -| <table> -| <tbody> -| <tr> - -#data -<!DOCTYPE html><body t1=1><body t2=2><body t3=3 t4=4> -#errors -(1,37): unexpected-start-tag -(1,53): unexpected-start-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| t1="1" -| t2="2" -| t3="3" -| t4="4" - -#data -</b test -#errors -(1,8): eof-in-attribute-name -(1,8): expected-doctype-but-got-eof -#document -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html></b test<b &=&>X -#errors -(1,24): invalid-character-in-attribute-name -(1,32): named-entity-without-semicolon -(1,33): attributes-in-end-tag -(1,33): unexpected-end-tag-before-html -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "X" - -#data -<!doctypehtml><scrIPt type=text/x-foobar;baz>X</SCRipt -#errors -(1,9): need-space-after-doctype -(1,54): expected-named-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| type="text/x-foobar;baz" -| "X</SCRipt" -| <body> - -#data -& -#errors -(1,1): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "&" - -#data -&# -#errors -(1,2): expected-numeric-entity -(1,2): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "&#" - -#data -&#X -#errors -(1,3): expected-numeric-entity -(1,3): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "&#X" - -#data -&#x -#errors -(1,3): expected-numeric-entity -(1,3): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "&#x" - -#data -- -#errors -(1,4): numeric-entity-without-semicolon -(1,4): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "-" - -#data -&x-test -#errors -(1,2): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "&x-test" - -#data -<!doctypehtml><p><li> -#errors -(1,9): need-space-after-doctype -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <li> - -#data -<!doctypehtml><p><dt> -#errors -(1,9): need-space-after-doctype -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <dt> - -#data -<!doctypehtml><p><dd> -#errors -(1,9): need-space-after-doctype -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <dd> - -#data -<!doctypehtml><p><form> -#errors -(1,9): need-space-after-doctype -(1,23): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <form> - -#data -<!DOCTYPE html><p></P>X -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| "X" - -#data -& -#errors -(1,4): named-entity-without-semicolon -(1,4): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "&" - -#data -&AMp; -#errors -(1,3): expected-named-entity -(1,3): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "&AMp;" - -#data -<!DOCTYPE html><html><head></head><body><thisISasillyTESTelementNameToMakeSureCrazyTagNamesArePARSEDcorrectLY> -#errors -(1,110): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <thisisasillytestelementnametomakesurecrazytagnamesareparsedcorrectly> - -#data -<!DOCTYPE html>X</body>X -#errors -(1,24): unexpected-char-after-body -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "XX" - -#data -<!DOCTYPE html><!-- X -#errors -(1,21): eof-in-comment -#document -| <!DOCTYPE html> -| <!-- X --> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html><table><caption>test TEST</caption><td>test -#errors -(1,54): unexpected-cell-in-table-body -(1,58): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| "test TEST" -| <tbody> -| <tr> -| <td> -| "test" - -#data -<!DOCTYPE html><select><option><optgroup> -#errors -(1,41): eof-in-select -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <option> -| <optgroup> - -#data -<!DOCTYPE html><select><optgroup><option></optgroup><option><select><option> -#errors -(1,68): unexpected-select-in-select -(1,76): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <optgroup> -| <option> -| <option> -| <option> - -#data -<!DOCTYPE html><select><optgroup><option><optgroup> -#errors -(1,51): eof-in-select -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <optgroup> -| <option> -| <optgroup> - -#data -<!DOCTYPE html><datalist><option>foo</datalist>bar -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <datalist> -| <option> -| "foo" -| "bar" - -#data -<!DOCTYPE html><font><input><input></font> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <font> -| <input> -| <input> - -#data -<!DOCTYPE html><!-- XXX - XXX --> -#errors -#document -| <!DOCTYPE html> -| <!-- XXX - XXX --> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html><!-- XXX - XXX -#errors -(1,29): eof-in-comment -#document -| <!DOCTYPE html> -| <!-- XXX - XXX --> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html><!-- XXX - XXX - XXX --> -#errors -#document -| <!DOCTYPE html> -| <!-- XXX - XXX - XXX --> -| <html> -| <head> -| <body> - -#data -<isindex test=x name=x> -#errors -(1,23): expected-doctype-but-got-start-tag -(1,23): deprecated-tag -#document -| <html> -| <head> -| <body> -| <form> -| <hr> -| <label> -| "This is a searchable index. Enter search keywords: " -| <input> -| name="isindex" -| test="x" -| <hr> - -#data -test -test -#errors -(2,4): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "test -test" - -#data -<!DOCTYPE html><body><title>test</body></title> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <title> -| "test</body>" - -#data -<!DOCTYPE html><body><title>X</title><meta name=z><link rel=foo><style> -x { content:"</style" } </style> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <title> -| "X" -| <meta> -| name="z" -| <link> -| rel="foo" -| <style> -| " -x { content:"</style" } " - -#data -<!DOCTYPE html><select><optgroup></optgroup></select> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <optgroup> - -#data - - -#errors -(2,1): expected-doctype-but-got-eof -#document -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html> <html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html><script> -</script> <title>x</title> </head> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| " -" -| " " -| <title> -| "x" -| " " -| <body> - -#data -<!DOCTYPE html><html><body><html id=x> -#errors -(1,38): non-html-root -#document -| <!DOCTYPE html> -| <html> -| id="x" -| <head> -| <body> - -#data -<!DOCTYPE html>X</body><html id="x"> -#errors -(1,36): non-html-root -#document -| <!DOCTYPE html> -| <html> -| id="x" -| <head> -| <body> -| "X" - -#data -<!DOCTYPE html><head><html id=x> -#errors -(1,32): non-html-root -#document -| <!DOCTYPE html> -| <html> -| id="x" -| <head> -| <body> - -#data -<!DOCTYPE html>X</html>X -#errors -(1,24): expected-eof-but-got-char -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "XX" - -#data -<!DOCTYPE html>X</html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "X " - -#data -<!DOCTYPE html>X</html><p>X -#errors -(1,26): expected-eof-but-got-start-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "X" -| <p> -| "X" - -#data -<!DOCTYPE html>X<p/x/y/z> -#errors -(1,19): unexpected-character-after-solidus-in-tag -(1,21): unexpected-character-after-solidus-in-tag -(1,23): unexpected-character-after-solidus-in-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "X" -| <p> -| x="" -| y="" -| z="" - -#data -<!DOCTYPE html><!--x-- -#errors -(1,22): eof-in-comment-double-dash -#document -| <!DOCTYPE html> -| <!-- x --> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html><table><tr><td></p></table> -#errors -(1,34): unexpected-end-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <p> - -#data -<!DOCTYPE <!DOCTYPE HTML>><!--<!--x-->--> -#errors -(1,20): expected-space-or-right-bracket-in-doctype -(1,25): unknown-doctype -(1,35): unexpected-char-in-comment -#document -| <!DOCTYPE <!doctype> -| <html> -| <head> -| <body> -| ">" -| <!-- <!--x --> -| "-->" - -#data -<!doctype html><div><form></form><div></div></div> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <div> -| <form> -| <div> diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests20.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests20.dat deleted file mode 100644 index 52c5acdc6e6..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests20.dat +++ /dev/null @@ -1,516 +0,0 @@ -#data -<!doctype html><p><button><button> -#errors -(1,34): unexpected-start-tag-implies-end-tag -(1,34): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <button> - -#data -<!doctype html><p><button><address> -#errors -(1,35): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <address> - -#data -<!doctype html><p><button><blockquote> -#errors -(1,38): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <blockquote> - -#data -<!doctype html><p><button><menu> -#errors -(1,32): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <menu> - -#data -<!doctype html><p><button><p> -#errors -(1,29): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <p> - -#data -<!doctype html><p><button><ul> -#errors -(1,30): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <ul> - -#data -<!doctype html><p><button><h1> -#errors -(1,30): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <h1> - -#data -<!doctype html><p><button><h6> -#errors -(1,30): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <h6> - -#data -<!doctype html><p><button><listing> -#errors -(1,35): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <listing> - -#data -<!doctype html><p><button><pre> -#errors -(1,31): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <pre> - -#data -<!doctype html><p><button><form> -#errors -(1,32): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <form> - -#data -<!doctype html><p><button><li> -#errors -(1,30): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <li> - -#data -<!doctype html><p><button><dd> -#errors -(1,30): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <dd> - -#data -<!doctype html><p><button><dt> -#errors -(1,30): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <dt> - -#data -<!doctype html><p><button><plaintext> -#errors -(1,37): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <plaintext> - -#data -<!doctype html><p><button><table> -#errors -(1,33): eof-in-table -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <table> - -#data -<!doctype html><p><button><hr> -#errors -(1,30): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <hr> - -#data -<!doctype html><p><button><xmp> -#errors -(1,31): expected-named-closing-tag-but-got-eof -(1,31): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <xmp> - -#data -<!doctype html><p><button></p> -#errors -(1,30): unexpected-end-tag -(1,30): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <p> - -#data -<!doctype html><address><button></address>a -#errors -(1,42): end-tag-too-early -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <address> -| <button> -| "a" - -#data -<!doctype html><address><button></address>a -#errors -(1,42): end-tag-too-early -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <address> -| <button> -| "a" - -#data -<p><table></p> -#errors -(1,3): expected-doctype-but-got-start-tag -(1,14): unexpected-end-tag-implies-table-voodoo -(1,14): unexpected-end-tag -(1,14): eof-in-table -#document -| <html> -| <head> -| <body> -| <p> -| <p> -| <table> - -#data -<!doctype html><svg> -#errors -(1,20): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> - -#data -<!doctype html><p><figcaption> -#errors -(1,30): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <figcaption> - -#data -<!doctype html><p><summary> -#errors -(1,27): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <summary> - -#data -<!doctype html><form><table><form> -#errors -(1,34): unexpected-form-in-table -(1,34): eof-in-table -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <form> -| <table> - -#data -<!doctype html><table><form><form> -#errors -(1,28): unexpected-form-in-table -(1,34): unexpected-form-in-table -(1,34): eof-in-table -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <form> - -#data -<!doctype html><table><form></table><form> -#errors -(1,28): unexpected-form-in-table -(1,42): unexpected-start-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <form> - -#data -<!doctype html><svg><foreignObject><p> -#errors -(1,38): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg foreignObject> -| <p> - -#data -<!doctype html><svg><title>abc -#errors -(1,30): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg title> -| "abc" - -#data -<option><span><option> -#errors -(1,8): expected-doctype-but-got-start-tag -(1,22): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <option> -| <span> -| <option> - -#data -<option><option> -#errors -(1,8): expected-doctype-but-got-start-tag -(1,16): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <option> -| <option> - -#data -<math><annotation-xml><div> -#errors -(1,6): expected-doctype-but-got-start-tag -(1,27): unexpected-html-element-in-foreign-content -(1,27): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <math math> -| <math annotation-xml> -| <div> - -#data -<math><annotation-xml encoding="application/svg+xml"><div> -#errors -(1,6): expected-doctype-but-got-start-tag -(1,58): unexpected-html-element-in-foreign-content -(1,58): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <math math> -| <math annotation-xml> -| encoding="application/svg+xml" -| <div> - -#data -<math><annotation-xml encoding="application/xhtml+xml"><div> -#errors -(1,6): expected-doctype-but-got-start-tag -(1,60): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <math math> -| <math annotation-xml> -| encoding="application/xhtml+xml" -| <div> - -#data -<math><annotation-xml encoding="aPPlication/xhtmL+xMl"><div> -#errors -(1,6): expected-doctype-but-got-start-tag -(1,60): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <math math> -| <math annotation-xml> -| encoding="aPPlication/xhtmL+xMl" -| <div> - -#data -<math><annotation-xml encoding="text/html"><div> -#errors -(1,6): expected-doctype-but-got-start-tag -(1,48): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <math math> -| <math annotation-xml> -| encoding="text/html" -| <div> - -#data -<math><annotation-xml encoding="Text/htmL"><div> -#errors -(1,6): expected-doctype-but-got-start-tag -(1,48): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <math math> -| <math annotation-xml> -| encoding="Text/htmL" -| <div> - -#data -<math><annotation-xml encoding=" text/html "><div> -#errors -(1,6): expected-doctype-but-got-start-tag -(1,50): unexpected-html-element-in-foreign-content -(1,50): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <math math> -| <math annotation-xml> -| encoding=" text/html " -| <div> diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests21.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests21.dat deleted file mode 100644 index d384a55564c..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests21.dat +++ /dev/null @@ -1,305 +0,0 @@ -#data -<svg><![CDATA[foo]]> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,20): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <svg svg> -| "foo" - -#data -<math><![CDATA[foo]]> -#errors -(1,6): expected-doctype-but-got-start-tag -(1,21): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <math math> -| "foo" - -#data -<div><![CDATA[foo]]> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,7): expected-dashes-or-doctype -(1,20): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <div> -| <!-- [CDATA[foo]] --> - -#data -<svg><![CDATA[foo -#errors -(1,5): expected-doctype-but-got-start-tag -(1,17): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <svg svg> -| "foo" - -#data -<svg><![CDATA[foo -#errors -(1,5): expected-doctype-but-got-start-tag -(1,17): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <svg svg> -| "foo" - -#data -<svg><![CDATA[ -#errors -(1,5): expected-doctype-but-got-start-tag -(1,14): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <svg svg> - -#data -<svg><![CDATA[]]> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,17): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <svg svg> - -#data -<svg><![CDATA[]] >]]> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,21): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <svg svg> -| "]] >" - -#data -<svg><![CDATA[]] >]]> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,21): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <svg svg> -| "]] >" - -#data -<svg><![CDATA[]] -#errors -(1,5): expected-doctype-but-got-start-tag -(1,16): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <svg svg> -| "]]" - -#data -<svg><![CDATA[] -#errors -(1,5): expected-doctype-but-got-start-tag -(1,15): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <svg svg> -| "]" - -#data -<svg><![CDATA[]>a -#errors -(1,5): expected-doctype-but-got-start-tag -(1,17): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <svg svg> -| "]>a" - -#data -<!DOCTYPE html><svg><![CDATA[foo]]]> -#errors -(1,36): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| "foo]" - -#data -<!DOCTYPE html><svg><![CDATA[foo]]]]> -#errors -(1,37): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| "foo]]" - -#data -<!DOCTYPE html><svg><![CDATA[foo]]]]]> -#errors -(1,38): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| "foo]]]" - -#data -<svg><foreignObject><div><![CDATA[foo]]> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,27): expected-dashes-or-doctype -(1,40): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <svg svg> -| <svg foreignObject> -| <div> -| <!-- [CDATA[foo]] --> - -#data -<svg><![CDATA[<svg>]]> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,22): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <svg svg> -| "<svg>" - -#data -<svg><![CDATA[</svg>a]]> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,24): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <svg svg> -| "</svg>a" - -#data -<svg><![CDATA[<svg>a -#errors -(1,5): expected-doctype-but-got-start-tag -(1,20): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <svg svg> -| "<svg>a" - -#data -<svg><![CDATA[</svg>a -#errors -(1,5): expected-doctype-but-got-start-tag -(1,21): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <svg svg> -| "</svg>a" - -#data -<svg><![CDATA[<svg>]]><path> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,28): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <svg svg> -| "<svg>" -| <svg path> - -#data -<svg><![CDATA[<svg>]]></path> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,29): unexpected-end-tag -(1,29): unexpected-end-tag -(1,29): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <svg svg> -| "<svg>" - -#data -<svg><![CDATA[<svg>]]><!--path--> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,33): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <svg svg> -| "<svg>" -| <!-- path --> - -#data -<svg><![CDATA[<svg>]]>path -#errors -(1,5): expected-doctype-but-got-start-tag -(1,26): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <svg svg> -| "<svg>path" - -#data -<svg><![CDATA[<!--svg-->]]> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,27): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <svg svg> -| "<!--svg-->" diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests22.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests22.dat deleted file mode 100644 index 31e6d9e3310..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests22.dat +++ /dev/null @@ -1,190 +0,0 @@ -#data -<a><b><big><em><strong><div>X</a> -#errors -(1,3): expected-doctype-but-got-start-tag -(1,33): adoption-agency-1.3 -(1,33): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <a> -| <b> -| <big> -| <em> -| <strong> -| <big> -| <em> -| <strong> -| <div> -| <a> -| "X" - -#data -<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8>A</a> -#errors -(1,3): expected-doctype-but-got-start-tag -(1,91): adoption-agency-1.3 -(1,91): adoption-agency-1.3 -(1,91): adoption-agency-1.3 -(1,91): adoption-agency-1.3 -(1,91): adoption-agency-1.3 -(1,91): adoption-agency-1.3 -(1,91): adoption-agency-1.3 -(1,91): adoption-agency-1.3 -(1,91): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <a> -| <b> -| <b> -| <div> -| id="1" -| <a> -| <div> -| id="2" -| <a> -| <div> -| id="3" -| <a> -| <div> -| id="4" -| <a> -| <div> -| id="5" -| <a> -| <div> -| id="6" -| <a> -| <div> -| id="7" -| <a> -| <div> -| id="8" -| <a> -| "A" - -#data -<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8><div id=9>A</a> -#errors -(1,3): expected-doctype-but-got-start-tag -(1,101): adoption-agency-1.3 -(1,101): adoption-agency-1.3 -(1,101): adoption-agency-1.3 -(1,101): adoption-agency-1.3 -(1,101): adoption-agency-1.3 -(1,101): adoption-agency-1.3 -(1,101): adoption-agency-1.3 -(1,101): adoption-agency-1.3 -(1,101): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <a> -| <b> -| <b> -| <div> -| id="1" -| <a> -| <div> -| id="2" -| <a> -| <div> -| id="3" -| <a> -| <div> -| id="4" -| <a> -| <div> -| id="5" -| <a> -| <div> -| id="6" -| <a> -| <div> -| id="7" -| <a> -| <div> -| id="8" -| <a> -| <div> -| id="9" -| "A" - -#data -<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8><div id=9><div id=10>A</a> -#errors -(1,3): expected-doctype-but-got-start-tag -(1,112): adoption-agency-1.3 -(1,112): adoption-agency-1.3 -(1,112): adoption-agency-1.3 -(1,112): adoption-agency-1.3 -(1,112): adoption-agency-1.3 -(1,112): adoption-agency-1.3 -(1,112): adoption-agency-1.3 -(1,112): adoption-agency-1.3 -(1,112): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <a> -| <b> -| <b> -| <div> -| id="1" -| <a> -| <div> -| id="2" -| <a> -| <div> -| id="3" -| <a> -| <div> -| id="4" -| <a> -| <div> -| id="5" -| <a> -| <div> -| id="6" -| <a> -| <div> -| id="7" -| <a> -| <div> -| id="8" -| <a> -| <div> -| id="9" -| <div> -| id="10" -| "A" - -#data -<cite><b><cite><i><cite><i><cite><i><div>X</b>TEST -#errors -(1,6): expected-doctype-but-got-start-tag -(1,46): adoption-agency-1.3 -(1,50): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <cite> -| <b> -| <cite> -| <i> -| <cite> -| <i> -| <cite> -| <i> -| <i> -| <i> -| <div> -| <b> -| "X" -| "TEST" diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests23.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests23.dat deleted file mode 100644 index 49e4a4ace58..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests23.dat +++ /dev/null @@ -1,168 +0,0 @@ -#data -<p><font size=4><font color=red><font size=4><font size=4><font size=4><font size=4><font size=4><font color=red><p>X -#errors -(1,3): expected-doctype-but-got-start-tag -(1,116): unexpected-end-tag -(1,117): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <p> -| <font> -| size="4" -| <font> -| color="red" -| <font> -| size="4" -| <font> -| size="4" -| <font> -| size="4" -| <font> -| size="4" -| <font> -| size="4" -| <font> -| color="red" -| <p> -| <font> -| color="red" -| <font> -| size="4" -| <font> -| size="4" -| <font> -| size="4" -| <font> -| color="red" -| "X" - -#data -<p><font size=4><font size=4><font size=4><font size=4><p>X -#errors -(1,3): expected-doctype-but-got-start-tag -(1,58): unexpected-end-tag -(1,59): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <p> -| <font> -| size="4" -| <font> -| size="4" -| <font> -| size="4" -| <font> -| size="4" -| <p> -| <font> -| size="4" -| <font> -| size="4" -| <font> -| size="4" -| "X" - -#data -<p><font size=4><font size=4><font size=4><font size="5"><font size=4><p>X -#errors -(1,3): expected-doctype-but-got-start-tag -(1,73): unexpected-end-tag -(1,74): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <p> -| <font> -| size="4" -| <font> -| size="4" -| <font> -| size="4" -| <font> -| size="5" -| <font> -| size="4" -| <p> -| <font> -| size="4" -| <font> -| size="4" -| <font> -| size="5" -| <font> -| size="4" -| "X" - -#data -<p><font size=4 id=a><font size=4 id=b><font size=4><font size=4><p>X -#errors -(1,3): expected-doctype-but-got-start-tag -(1,68): unexpected-end-tag -(1,69): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <p> -| <font> -| id="a" -| size="4" -| <font> -| id="b" -| size="4" -| <font> -| size="4" -| <font> -| size="4" -| <p> -| <font> -| id="a" -| size="4" -| <font> -| id="b" -| size="4" -| <font> -| size="4" -| <font> -| size="4" -| "X" - -#data -<p><b id=a><b id=a><b id=a><b><object><b id=a><b id=a>X</object><p>Y -#errors -(1,3): expected-doctype-but-got-start-tag -(1,64): end-tag-too-early -(1,67): unexpected-end-tag -(1,68): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <p> -| <b> -| id="a" -| <b> -| id="a" -| <b> -| id="a" -| <b> -| <object> -| <b> -| id="a" -| <b> -| id="a" -| "X" -| <p> -| <b> -| id="a" -| <b> -| id="a" -| <b> -| id="a" -| <b> -| "Y" diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests24.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests24.dat deleted file mode 100644 index f6dc7eb48a5..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests24.dat +++ /dev/null @@ -1,79 +0,0 @@ -#data -<!DOCTYPE html>≂̸ -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "≂̸" - -#data -<!DOCTYPE html>≂̸A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "≂̸A" - -#data -<!DOCTYPE html>   -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| " " - -#data -<!DOCTYPE html>  A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| " A" - -#data -<!DOCTYPE html>⊂⃒ -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "⊂⃒" - -#data -<!DOCTYPE html>⊂⃒A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "⊂⃒A" - -#data -<!DOCTYPE html>𝔾 -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "𝔾" - -#data -<!DOCTYPE html>𝔾A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "𝔾A" diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests25.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests25.dat deleted file mode 100644 index 103574ee4b7..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests25.dat +++ /dev/null @@ -1,232 +0,0 @@ -#data -<!DOCTYPE html><body><foo>A -#errors -(1,27): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <foo> -| "A" - -#data -<!DOCTYPE html><body><area>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <area> -| "A" - -#data -<!DOCTYPE html><body><base>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <base> -| "A" - -#data -<!DOCTYPE html><body><basefont>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <basefont> -| "A" - -#data -<!DOCTYPE html><body><bgsound>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <bgsound> -| "A" - -#data -<!DOCTYPE html><body><br>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <br> -| "A" - -#data -<!DOCTYPE html><body><col>A -#errors -(1,26): unexpected-start-tag-ignored -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "A" - -#data -<!DOCTYPE html><body><command>A -#errors -eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <command> -| "A" - -#data -<!DOCTYPE html><body><menuitem>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <menuitem> -| "A" - -#data -<!DOCTYPE html><body><embed>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <embed> -| "A" - -#data -<!DOCTYPE html><body><frame>A -#errors -(1,28): unexpected-start-tag-ignored -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "A" - -#data -<!DOCTYPE html><body><hr>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <hr> -| "A" - -#data -<!DOCTYPE html><body><img>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <img> -| "A" - -#data -<!DOCTYPE html><body><input>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <input> -| "A" - -#data -<!DOCTYPE html><body><keygen>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <keygen> -| "A" - -#data -<!DOCTYPE html><body><link>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <link> -| "A" - -#data -<!DOCTYPE html><body><meta>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <meta> -| "A" - -#data -<!DOCTYPE html><body><param>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <param> -| "A" - -#data -<!DOCTYPE html><body><source>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <source> -| "A" - -#data -<!DOCTYPE html><body><track>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <track> -| "A" - -#data -<!DOCTYPE html><body><wbr>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <wbr> -| "A" diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests26.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests26.dat deleted file mode 100644 index 8964624a4f3..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests26.dat +++ /dev/null @@ -1,388 +0,0 @@ -#data -<!DOCTYPE html><body><a href='#1'><nobr>1<nobr></a><br><a href='#2'><nobr>2<nobr></a><br><a href='#3'><nobr>3<nobr></a> -#errors -(1,47): unexpected-start-tag-implies-end-tag -(1,51): adoption-agency-1.3 -(1,74): unexpected-start-tag-implies-end-tag -(1,74): adoption-agency-1.3 -(1,81): unexpected-start-tag-implies-end-tag -(1,85): adoption-agency-1.3 -(1,108): unexpected-start-tag-implies-end-tag -(1,108): adoption-agency-1.3 -(1,115): unexpected-start-tag-implies-end-tag -(1,119): adoption-agency-1.3 -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <a> -| href="#1" -| <nobr> -| "1" -| <nobr> -| <nobr> -| <br> -| <a> -| href="#2" -| <a> -| href="#2" -| <nobr> -| "2" -| <nobr> -| <nobr> -| <br> -| <a> -| href="#3" -| <a> -| href="#3" -| <nobr> -| "3" -| <nobr> - -#data -<!DOCTYPE html><body><b><nobr>1<nobr></b><i><nobr>2<nobr></i>3 -#errors -(1,37): unexpected-start-tag-implies-end-tag -(1,41): adoption-agency-1.3 -(1,50): unexpected-start-tag-implies-end-tag -(1,50): adoption-agency-1.3 -(1,57): unexpected-start-tag-implies-end-tag -(1,61): adoption-agency-1.3 -(1,62): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <b> -| <nobr> -| "1" -| <nobr> -| <nobr> -| <i> -| <i> -| <nobr> -| "2" -| <nobr> -| <nobr> -| "3" - -#data -<!DOCTYPE html><body><b><nobr>1<table><nobr></b><i><nobr>2<nobr></i>3 -#errors -(1,44): foster-parenting-start-tag -(1,48): foster-parenting-end-tag -(1,48): adoption-agency-1.3 -(1,51): foster-parenting-start-tag -(1,57): foster-parenting-start-tag -(1,57): nobr-already-in-scope -(1,57): adoption-agency-1.2 -(1,58): foster-parenting-character -(1,64): foster-parenting-start-tag -(1,64): nobr-already-in-scope -(1,68): foster-parenting-end-tag -(1,68): adoption-agency-1.2 -(1,69): foster-parenting-character -(1,69): eof-in-table -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <b> -| <nobr> -| "1" -| <nobr> -| <i> -| <i> -| <nobr> -| "2" -| <nobr> -| <nobr> -| "3" -| <table> - -#data -<!DOCTYPE html><body><b><nobr>1<table><tr><td><nobr></b><i><nobr>2<nobr></i>3 -#errors -(1,56): unexpected-end-tag -(1,65): unexpected-start-tag-implies-end-tag -(1,65): adoption-agency-1.3 -(1,72): unexpected-start-tag-implies-end-tag -(1,76): adoption-agency-1.3 -(1,77): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <b> -| <nobr> -| "1" -| <table> -| <tbody> -| <tr> -| <td> -| <nobr> -| <i> -| <i> -| <nobr> -| "2" -| <nobr> -| <nobr> -| "3" - -#data -<!DOCTYPE html><body><b><nobr>1<div><nobr></b><i><nobr>2<nobr></i>3 -#errors -(1,42): unexpected-start-tag-implies-end-tag -(1,42): adoption-agency-1.3 -(1,46): adoption-agency-1.3 -(1,46): adoption-agency-1.3 -(1,55): unexpected-start-tag-implies-end-tag -(1,55): adoption-agency-1.3 -(1,62): unexpected-start-tag-implies-end-tag -(1,66): adoption-agency-1.3 -(1,67): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <b> -| <nobr> -| "1" -| <div> -| <b> -| <nobr> -| <nobr> -| <nobr> -| <i> -| <i> -| <nobr> -| "2" -| <nobr> -| <nobr> -| "3" - -#data -<!DOCTYPE html><body><b><nobr>1<nobr></b><div><i><nobr>2<nobr></i>3 -#errors -(1,37): unexpected-start-tag-implies-end-tag -(1,41): adoption-agency-1.3 -(1,55): unexpected-start-tag-implies-end-tag -(1,55): adoption-agency-1.3 -(1,62): unexpected-start-tag-implies-end-tag -(1,66): adoption-agency-1.3 -(1,67): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <b> -| <nobr> -| "1" -| <nobr> -| <div> -| <nobr> -| <i> -| <i> -| <nobr> -| "2" -| <nobr> -| <nobr> -| "3" - -#data -<!DOCTYPE html><body><b><nobr>1<nobr><ins></b><i><nobr> -#errors -(1,37): unexpected-start-tag-implies-end-tag -(1,46): adoption-agency-1.3 -(1,55): unexpected-start-tag-implies-end-tag -(1,55): adoption-agency-1.3 -(1,55): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <b> -| <nobr> -| "1" -| <nobr> -| <ins> -| <nobr> -| <i> -| <i> -| <nobr> - -#data -<!DOCTYPE html><body><b><nobr>1<ins><nobr></b><i>2 -#errors -(1,42): unexpected-start-tag-implies-end-tag -(1,42): adoption-agency-1.3 -(1,46): adoption-agency-1.3 -(1,50): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <b> -| <nobr> -| "1" -| <ins> -| <nobr> -| <nobr> -| <i> -| "2" - -#data -<!DOCTYPE html><body><b>1<nobr></b><i><nobr>2</i> -#errors -(1,35): adoption-agency-1.3 -(1,44): unexpected-start-tag-implies-end-tag -(1,44): adoption-agency-1.3 -(1,49): adoption-agency-1.3 -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <b> -| "1" -| <nobr> -| <nobr> -| <i> -| <i> -| <nobr> -| "2" - -#data -<p><code x</code></p> - -#errors -(1,3): expected-doctype-but-got-start-tag -(1,11): invalid-character-in-attribute-name -(1,12): unexpected-character-after-solidus-in-tag -(1,21): unexpected-end-tag -(2,0): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <p> -| <code> -| code="" -| x<="" -| <code> -| code="" -| x<="" -| " -" - -#data -<!DOCTYPE html><svg><foreignObject><p><i></p>a -#errors -(1,45): unexpected-end-tag -(1,46): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg foreignObject> -| <p> -| <i> -| <i> -| "a" - -#data -<!DOCTYPE html><table><tr><td><svg><foreignObject><p><i></p>a -#errors -(1,60): unexpected-end-tag -(1,61): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <svg svg> -| <svg foreignObject> -| <p> -| <i> -| <i> -| "a" - -#data -<!DOCTYPE html><math><mtext><p><i></p>a -#errors -(1,38): unexpected-end-tag -(1,39): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math mtext> -| <p> -| <i> -| <i> -| "a" - -#data -<!DOCTYPE html><table><tr><td><math><mtext><p><i></p>a -#errors -(1,53): unexpected-end-tag -(1,54): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <math math> -| <math mtext> -| <p> -| <i> -| <i> -| "a" - -#data -<!DOCTYPE html><body><div><!/div>a -#errors -(1,28): expected-dashes-or-doctype -(1,34): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <div> -| <!-- /div --> -| "a" - -#data -<button><p><button> -#errors -Line 1 Col 8 Unexpected start tag (button). Expected DOCTYPE. -Line 1 Col 19 Unexpected start tag (button) implies end tag (button). -Line 1 Col 19 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <button> -| <p> -| <button> diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests3.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests3.dat deleted file mode 100644 index c7583d99e8b..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests3.dat +++ /dev/null @@ -1,305 +0,0 @@ -#data -<head></head><style></style> -#errors -(1,6): expected-doctype-but-got-start-tag -(1,20): unexpected-start-tag-out-of-my-head -#document -| <html> -| <head> -| <style> -| <body> - -#data -<head></head><script></script> -#errors -(1,6): expected-doctype-but-got-start-tag -(1,21): unexpected-start-tag-out-of-my-head -#document -| <html> -| <head> -| <script> -| <body> - -#data -<head></head><!-- --><style></style><!-- --><script></script> -#errors -(1,6): expected-doctype-but-got-start-tag -(1,28): unexpected-start-tag-out-of-my-head -(1,52): unexpected-start-tag-out-of-my-head -#document -| <html> -| <head> -| <style> -| <script> -| <!-- --> -| <!-- --> -| <body> - -#data -<head></head><!-- -->x<style></style><!-- --><script></script> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <!-- --> -| <body> -| "x" -| <style> -| <!-- --> -| <script> - -#data -<!DOCTYPE html><html><head></head><body><pre> -</pre></body></html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <pre> - -#data -<!DOCTYPE html><html><head></head><body><pre> -foo</pre></body></html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <pre> -| "foo" - -#data -<!DOCTYPE html><html><head></head><body><pre> - -foo</pre></body></html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <pre> -| " -foo" - -#data -<!DOCTYPE html><html><head></head><body><pre> -foo -</pre></body></html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <pre> -| "foo -" - -#data -<!DOCTYPE html><html><head></head><body><pre>x</pre><span> -</span></body></html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <pre> -| "x" -| <span> -| " -" - -#data -<!DOCTYPE html><html><head></head><body><pre>x -y</pre></body></html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <pre> -| "x -y" - -#data -<!DOCTYPE html><html><head></head><body><pre>x<div> -y</pre></body></html> -#errors -(2,7): end-tag-too-early -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <pre> -| "x" -| <div> -| " -y" - -#data -<!DOCTYPE html><pre>

A</pre> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <pre> -| " -A" - -#data -<!DOCTYPE html><HTML><META><HEAD></HEAD></HTML> -#errors -(1,33): two-heads-are-not-better-than-one -#document -| <!DOCTYPE html> -| <html> -| <head> -| <meta> -| <body> - -#data -<!DOCTYPE html><HTML><HEAD><head></HEAD></HTML> -#errors -(1,33): two-heads-are-not-better-than-one -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> - -#data -<textarea>foo<span>bar</span><i>baz -#errors -(1,10): expected-doctype-but-got-start-tag -(1,35): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <textarea> -| "foo<span>bar</span><i>baz" - -#data -<title>foo<span>bar</em><i>baz -#errors -(1,7): expected-doctype-but-got-start-tag -(1,30): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <title> -| "foo<span>bar</em><i>baz" -| <body> - -#data -<!DOCTYPE html><textarea> -</textarea> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <textarea> - -#data -<!DOCTYPE html><textarea> -foo</textarea> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <textarea> -| "foo" - -#data -<!DOCTYPE html><textarea> - -foo</textarea> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <textarea> -| " -foo" - -#data -<!DOCTYPE html><html><head></head><body><ul><li><div><p><li></ul></body></html> -#errors -(1,60): end-tag-too-early -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <ul> -| <li> -| <div> -| <p> -| <li> - -#data -<!doctype html><nobr><nobr><nobr> -#errors -(1,27): unexpected-start-tag-implies-end-tag -(1,33): unexpected-start-tag-implies-end-tag -(1,33): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <nobr> -| <nobr> -| <nobr> - -#data -<!doctype html><nobr><nobr></nobr><nobr> -#errors -(1,27): unexpected-start-tag-implies-end-tag -(1,40): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <nobr> -| <nobr> -| <nobr> - -#data -<!doctype html><html><body><p><table></table></body></html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <table> - -#data -<p><table></table> -#errors -(1,3): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <p> -| <table> diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests4.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests4.dat deleted file mode 100644 index 0a6174c36c0..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests4.dat +++ /dev/null @@ -1,58 +0,0 @@ -#data -direct div content -#errors -#document-fragment -div -#document -| "direct div content" - -#data -direct textarea content -#errors -#document-fragment -textarea -#document -| "direct textarea content" - -#data -textarea content with <em>pseudo</em> <foo>markup -#errors -#document-fragment -textarea -#document -| "textarea content with <em>pseudo</em> <foo>markup" - -#data -this is CDATA inside a <style> element -#errors -#document-fragment -style -#document -| "this is CDATA inside a <style> element" - -#data -</plaintext> -#errors -#document-fragment -plaintext -#document -| "</plaintext>" - -#data -setting html's innerHTML -#errors -#document-fragment -html -#document -| <head> -| <body> -| "setting html's innerHTML" - -#data -<title>setting head's innerHTML</title> -#errors -#document-fragment -head -#document -| <title> -| "setting head's innerHTML" diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests5.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests5.dat deleted file mode 100644 index 1ef8cae4213..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests5.dat +++ /dev/null @@ -1,210 +0,0 @@ -#data -<style> <!-- </style>x -#errors -(1,7): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <style> -| " <!-- " -| <body> -| "x" - -#data -<style> <!-- </style> --> </style>x -#errors -(1,7): expected-doctype-but-got-start-tag -(1,34): unexpected-end-tag -#document -| <html> -| <head> -| <style> -| " <!-- " -| " " -| <body> -| "--> x" - -#data -<style> <!--> </style>x -#errors -(1,7): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <style> -| " <!--> " -| <body> -| "x" - -#data -<style> <!---> </style>x -#errors -(1,7): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <style> -| " <!---> " -| <body> -| "x" - -#data -<iframe> <!---> </iframe>x -#errors -(1,8): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <iframe> -| " <!---> " -| "x" - -#data -<iframe> <!--- </iframe>->x</iframe> --> </iframe>x -#errors -(1,8): expected-doctype-but-got-start-tag -(1,36): unexpected-end-tag -(1,50): unexpected-end-tag -#document -| <html> -| <head> -| <body> -| <iframe> -| " <!--- " -| "->x --> x" - -#data -<script> <!-- </script> --> </script>x -#errors -(1,8): expected-doctype-but-got-start-tag -(1,37): unexpected-end-tag -#document -| <html> -| <head> -| <script> -| " <!-- " -| " " -| <body> -| "--> x" - -#data -<title> <!-- </title> --> </title>x -#errors -(1,7): expected-doctype-but-got-start-tag -(1,34): unexpected-end-tag -#document -| <html> -| <head> -| <title> -| " <!-- " -| " " -| <body> -| "--> x" - -#data -<textarea> <!--- </textarea>->x</textarea> --> </textarea>x -#errors -(1,10): expected-doctype-but-got-start-tag -(1,42): unexpected-end-tag -(1,58): unexpected-end-tag -#document -| <html> -| <head> -| <body> -| <textarea> -| " <!--- " -| "->x --> x" - -#data -<style> <!</-- </style>x -#errors -(1,7): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <style> -| " <!</-- " -| <body> -| "x" - -#data -<p><xmp></xmp> -#errors -(1,3): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <p> -| <xmp> - -#data -<xmp> <!-- > --> </xmp> -#errors -(1,5): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <xmp> -| " <!-- > --> " - -#data -<title>&</title> -#errors -(1,7): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <title> -| "&" -| <body> - -#data -<title><!--&--></title> -#errors -(1,7): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <title> -| "<!--&-->" -| <body> - -#data -<title><!--</title> -#errors -(1,7): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <title> -| "<!--" -| <body> - -#data -<noscript><!--</noscript>--></noscript> -#errors -(1,10): expected-doctype-but-got-start-tag -(1,39): unexpected-end-tag -#script-on -#document -| <html> -| <head> -| <noscript> -| "<!--" -| <body> -| "-->" - -#data -<noscript><!--</noscript>--></noscript> -#errors -(1,10): expected-doctype-but-got-start-tag -#script-off -#document -| <html> -| <head> -| <noscript> -| <!-- </noscript> --> -| <body> diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests6.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests6.dat deleted file mode 100644 index d774fc234a9..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests6.dat +++ /dev/null @@ -1,659 +0,0 @@ -#data -<!doctype html></head> <head> -#errors -(1,29): unexpected-start-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| " " -| <body> - -#data -<!doctype html><form><div></form><div> -#errors -(1,33): end-tag-too-early-ignored -(1,38): expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <form> -| <div> -| <div> - -#data -<!doctype html><title>&</title> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <title> -| "&" -| <body> - -#data -<!doctype html><title><!--&--></title> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <title> -| "<!--&-->" -| <body> - -#data -<!doctype> -#errors -(1,9): need-space-after-doctype -(1,10): expected-doctype-name-but-got-right-bracket -(1,10): unknown-doctype -#document -| <!DOCTYPE > -| <html> -| <head> -| <body> - -#data -<!---x -#errors -(1,6): eof-in-comment -(1,6): expected-doctype-but-got-eof -#document -| <!-- -x --> -| <html> -| <head> -| <body> - -#data -<body> -<div> -#errors -(1,6): unexpected-start-tag -(2,5): expected-closing-tag-but-got-eof -#document-fragment -div -#document -| " -" -| <div> - -#data -<frameset></frameset> -foo -#errors -(1,10): expected-doctype-but-got-start-tag -(2,1): unexpected-char-after-frameset -(2,2): unexpected-char-after-frameset -(2,3): unexpected-char-after-frameset -#document -| <html> -| <head> -| <frameset> -| " -" - -#data -<frameset></frameset> -<noframes> -#errors -(1,10): expected-doctype-but-got-start-tag -(2,10): expected-named-closing-tag-but-got-eof -#document -| <html> -| <head> -| <frameset> -| " -" -| <noframes> - -#data -<frameset></frameset> -<div> -#errors -(1,10): expected-doctype-but-got-start-tag -(2,5): unexpected-start-tag-after-frameset -#document -| <html> -| <head> -| <frameset> -| " -" - -#data -<frameset></frameset> -</html> -#errors -(1,10): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <frameset> -| " -" - -#data -<frameset></frameset> -</div> -#errors -(1,10): expected-doctype-but-got-start-tag -(2,6): unexpected-end-tag-after-frameset -#document -| <html> -| <head> -| <frameset> -| " -" - -#data -<form><form> -#errors -(1,6): expected-doctype-but-got-start-tag -(1,12): unexpected-start-tag -(1,12): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <form> - -#data -<button><button> -#errors -(1,8): expected-doctype-but-got-start-tag -(1,16): unexpected-start-tag-implies-end-tag -(1,16): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <button> -| <button> - -#data -<table><tr><td></th> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,20): unexpected-end-tag -(1,20): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> - -#data -<table><caption><td> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,20): unexpected-cell-in-table-body -(1,20): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <table> -| <caption> -| <tbody> -| <tr> -| <td> - -#data -<table><caption><div> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,21): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <table> -| <caption> -| <div> - -#data -</caption><div> -#errors -(1,10): XXX-undefined-error -(1,15): expected-closing-tag-but-got-eof -#document-fragment -caption -#document -| <div> - -#data -<table><caption><div></caption> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,31): expected-one-end-tag-but-got-another -(1,31): eof-in-table -#document -| <html> -| <head> -| <body> -| <table> -| <caption> -| <div> - -#data -<table><caption></table> -#errors -(1,7): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <table> -| <caption> - -#data -</table><div> -#errors -(1,8): unexpected-end-tag -(1,13): expected-closing-tag-but-got-eof -#document-fragment -caption -#document -| <div> - -#data -<table><caption></body></col></colgroup></html></tbody></td></tfoot></th></thead></tr> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,23): unexpected-end-tag -(1,29): unexpected-end-tag -(1,40): unexpected-end-tag -(1,47): unexpected-end-tag -(1,55): unexpected-end-tag -(1,60): unexpected-end-tag -(1,68): unexpected-end-tag -(1,73): unexpected-end-tag -(1,81): unexpected-end-tag -(1,86): unexpected-end-tag -(1,86): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <table> -| <caption> - -#data -<table><caption><div></div> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,27): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <table> -| <caption> -| <div> - -#data -<table><tr><td></body></caption></col></colgroup></html> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,22): unexpected-end-tag -(1,32): unexpected-end-tag -(1,38): unexpected-end-tag -(1,49): unexpected-end-tag -(1,56): unexpected-end-tag -(1,56): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> - -#data -</table></tbody></tfoot></thead></tr><div> -#errors -(1,8): unexpected-end-tag -(1,16): unexpected-end-tag -(1,24): unexpected-end-tag -(1,32): unexpected-end-tag -(1,37): unexpected-end-tag -(1,42): expected-closing-tag-but-got-eof -#document-fragment -td -#document -| <div> - -#data -<table><colgroup>foo -#errors -(1,7): expected-doctype-but-got-start-tag -(1,18): foster-parenting-character-in-table -(1,19): foster-parenting-character-in-table -(1,20): foster-parenting-character-in-table -(1,20): eof-in-table -#document -| <html> -| <head> -| <body> -| "foo" -| <table> -| <colgroup> - -#data -foo<col> -#errors -(1,1): unexpected-character-in-colgroup -(1,2): unexpected-character-in-colgroup -(1,3): unexpected-character-in-colgroup -#document-fragment -colgroup -#document -| <col> - -#data -<table><colgroup></col> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,23): no-end-tag -(1,23): eof-in-table -#document -| <html> -| <head> -| <body> -| <table> -| <colgroup> - -#data -<frameset><div> -#errors -(1,10): expected-doctype-but-got-start-tag -(1,15): unexpected-start-tag-in-frameset -(1,15): eof-in-frameset -#document -| <html> -| <head> -| <frameset> - -#data -</frameset><frame> -#errors -(1,11): unexpected-frameset-in-frameset-innerhtml -#document-fragment -frameset -#document -| <frame> - -#data -<frameset></div> -#errors -(1,10): expected-doctype-but-got-start-tag -(1,16): unexpected-end-tag-in-frameset -(1,16): eof-in-frameset -#document -| <html> -| <head> -| <frameset> - -#data -</body><div> -#errors -(1,7): unexpected-close-tag -(1,12): expected-closing-tag-but-got-eof -#document-fragment -body -#document -| <div> - -#data -<table><tr><div> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,16): unexpected-start-tag-implies-table-voodoo -(1,16): eof-in-table -#document -| <html> -| <head> -| <body> -| <div> -| <table> -| <tbody> -| <tr> - -#data -</tr><td> -#errors -(1,5): unexpected-end-tag -#document-fragment -tr -#document -| <td> - -#data -</tbody></tfoot></thead><td> -#errors -(1,8): unexpected-end-tag -(1,16): unexpected-end-tag -(1,24): unexpected-end-tag -#document-fragment -tr -#document -| <td> - -#data -<table><tr><div><td> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,16): foster-parenting-start-tag -(1,20): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <div> -| <table> -| <tbody> -| <tr> -| <td> - -#data -<caption><col><colgroup><tbody><tfoot><thead><tr> -#errors -(1,9): unexpected-start-tag -(1,14): unexpected-start-tag -(1,24): unexpected-start-tag -(1,31): unexpected-start-tag -(1,38): unexpected-start-tag -(1,45): unexpected-start-tag -#document-fragment -tbody -#document -| <tr> - -#data -<table><tbody></thead> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,22): unexpected-end-tag-in-table-body -(1,22): eof-in-table -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> - -#data -</table><tr> -#errors -(1,8): unexpected-end-tag -#document-fragment -tbody -#document -| <tr> - -#data -<table><tbody></body></caption></col></colgroup></html></td></th></tr> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,21): unexpected-end-tag-in-table-body -(1,31): unexpected-end-tag-in-table-body -(1,37): unexpected-end-tag-in-table-body -(1,48): unexpected-end-tag-in-table-body -(1,55): unexpected-end-tag-in-table-body -(1,60): unexpected-end-tag-in-table-body -(1,65): unexpected-end-tag-in-table-body -(1,70): unexpected-end-tag-in-table-body -(1,70): eof-in-table -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> - -#data -<table><tbody></div> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,20): unexpected-end-tag-implies-table-voodoo -(1,20): end-tag-too-early -(1,20): eof-in-table -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> - -#data -<table><table> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,14): unexpected-start-tag-implies-end-tag -(1,14): eof-in-table -#document -| <html> -| <head> -| <body> -| <table> -| <table> - -#data -<table></body></caption></col></colgroup></html></tbody></td></tfoot></th></thead></tr> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,14): unexpected-end-tag -(1,24): unexpected-end-tag -(1,30): unexpected-end-tag -(1,41): unexpected-end-tag -(1,48): unexpected-end-tag -(1,56): unexpected-end-tag -(1,61): unexpected-end-tag -(1,69): unexpected-end-tag -(1,74): unexpected-end-tag -(1,82): unexpected-end-tag -(1,87): unexpected-end-tag -(1,87): eof-in-table -#document -| <html> -| <head> -| <body> -| <table> - -#data -</table><tr> -#errors -(1,8): unexpected-end-tag -#document-fragment -table -#document -| <tbody> -| <tr> - -#data -<body></body></html> -#errors -(1,20): unexpected-end-tag-after-body-innerhtml -#document-fragment -html -#document -| <head> -| <body> - -#data -<html><frameset></frameset></html> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <frameset> -| " " - -#data -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"><html></html> -#errors -#document -| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" ""> -| <html> -| <head> -| <body> - -#data -<param><frameset></frameset> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,17): unexpected-start-tag -#document -| <html> -| <head> -| <frameset> - -#data -<source><frameset></frameset> -#errors -(1,8): expected-doctype-but-got-start-tag -(1,18): unexpected-start-tag -#document -| <html> -| <head> -| <frameset> - -#data -<track><frameset></frameset> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,17): unexpected-start-tag -#document -| <html> -| <head> -| <frameset> - -#data -</html><frameset></frameset> -#errors -(1,7): expected-doctype-but-got-end-tag -(1,17): expected-eof-but-got-start-tag -(1,17): unexpected-start-tag -#document -| <html> -| <head> -| <frameset> - -#data -</body><frameset></frameset> -#errors -(1,7): expected-doctype-but-got-end-tag -(1,17): unexpected-start-tag-after-body -(1,17): unexpected-start-tag -#document -| <html> -| <head> -| <frameset> diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests7.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests7.dat deleted file mode 100644 index d941d3d70be..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests7.dat +++ /dev/null @@ -1,403 +0,0 @@ -#data -<!doctype html><body><title>X</title> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <title> -| "X" - -#data -<!doctype html><table><title>X</title></table> -#errors -(1,29): unexpected-start-tag-implies-table-voodoo -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <title> -| "X" -| <table> - -#data -<!doctype html><head></head><title>X</title> -#errors -(1,35): unexpected-start-tag-out-of-my-head -#document -| <!DOCTYPE html> -| <html> -| <head> -| <title> -| "X" -| <body> - -#data -<!doctype html></head><title>X</title> -#errors -(1,29): unexpected-start-tag-out-of-my-head -#document -| <!DOCTYPE html> -| <html> -| <head> -| <title> -| "X" -| <body> - -#data -<!doctype html><table><meta></table> -#errors -(1,28): unexpected-start-tag-implies-table-voodoo -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <meta> -| <table> - -#data -<!doctype html><table>X<tr><td><table> <meta></table></table> -#errors -unexpected text in table -(1,45): unexpected-start-tag-implies-table-voodoo -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "X" -| <table> -| <tbody> -| <tr> -| <td> -| <meta> -| <table> -| " " - -#data -<!doctype html><html> <head> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> - -#data -<!doctype html> <head> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> - -#data -<!doctype html><table><style> <tr>x </style> </table> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <style> -| " <tr>x " -| " " - -#data -<!doctype html><table><TBODY><script> <tr>x </script> </table> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <script> -| " <tr>x " -| " " - -#data -<!doctype html><p><applet><p>X</p></applet> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <applet> -| <p> -| "X" - -#data -<!doctype html><listing> -X</listing> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <listing> -| "X" - -#data -<!doctype html><select><input>X -#errors -(1,30): unexpected-input-in-select -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <input> -| "X" - -#data -<!doctype html><select><select>X -#errors -(1,31): unexpected-select-in-select -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| "X" - -#data -<!doctype html><table><input type=hidDEN></table> -#errors -(1,41): unexpected-hidden-input-in-table -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <input> -| type="hidDEN" - -#data -<!doctype html><table>X<input type=hidDEN></table> -#errors -(1,23): foster-parenting-character -(1,42): unexpected-hidden-input-in-table -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "X" -| <table> -| <input> -| type="hidDEN" - -#data -<!doctype html><table> <input type=hidDEN></table> -#errors -(1,43): unexpected-hidden-input-in-table -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| " " -| <input> -| type="hidDEN" - -#data -<!doctype html><table> <input type='hidDEN'></table> -#errors -(1,45): unexpected-hidden-input-in-table -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| " " -| <input> -| type="hidDEN" - -#data -<!doctype html><table><input type=" hidden"><input type=hidDEN></table> -#errors -(1,44): unexpected-start-tag-implies-table-voodoo -(1,63): unexpected-hidden-input-in-table -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <input> -| type=" hidden" -| <table> -| <input> -| type="hidDEN" - -#data -<!doctype html><table><select>X<tr> -#errors -(1,30): unexpected-start-tag-implies-table-voodoo -(1,35): unexpected-table-element-start-tag-in-select-in-table -(1,35): eof-in-table -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| "X" -| <table> -| <tbody> -| <tr> - -#data -<!doctype html><select>X</select> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| "X" - -#data -<!DOCTYPE hTmL><html></html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE HTML><html></html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> - -#data -<body>X</body></body> -#errors -(1,21): unexpected-end-tag-after-body -#document-fragment -html -#document -| <head> -| <body> -| "X" - -#data -<div><p>a</x> b -#errors -(1,5): expected-doctype-but-got-start-tag -(1,13): unexpected-end-tag -(1,15): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <div> -| <p> -| "a b" - -#data -<table><tr><td><code></code> </table> -#errors -(1,7): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <code> -| " " - -#data -<table><b><tr><td>aaa</td></tr>bbb</table>ccc -#errors -(1,7): expected-doctype-but-got-start-tag -(1,10): foster-parenting-start-tag -(1,32): foster-parenting-character -(1,33): foster-parenting-character -(1,34): foster-parenting-character -(1,45): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <b> -| <b> -| "bbb" -| <table> -| <tbody> -| <tr> -| <td> -| "aaa" -| <b> -| "ccc" - -#data -A<table><tr> B</tr> B</table> -#errors -(1,1): expected-doctype-but-got-chars -(1,13): foster-parenting-character -(1,14): foster-parenting-character -(1,20): foster-parenting-character -(1,21): foster-parenting-character -#document -| <html> -| <head> -| <body> -| "A B B" -| <table> -| <tbody> -| <tr> - -#data -A<table><tr> B</tr> </em>C</table> -#errors -(1,1): expected-doctype-but-got-chars -(1,13): foster-parenting-character -(1,14): foster-parenting-character -(1,20): foster-parenting-character -(1,25): unexpected-end-tag -(1,26): foster-parenting-character -#document -| <html> -| <head> -| <body> -| "A BC" -| <table> -| <tbody> -| <tr> -| " " - -#data -<select><keygen> -#errors -(1,8): expected-doctype-but-got-start-tag -(1,16): unexpected-input-in-select -#document -| <html> -| <head> -| <body> -| <select> -| <keygen> diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests8.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests8.dat deleted file mode 100644 index 33dd96d3320..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests8.dat +++ /dev/null @@ -1,151 +0,0 @@ -#data -<div> -<div></div> -</span>x -#errors -(1,5): expected-doctype-but-got-start-tag -(3,7): unexpected-end-tag -(3,8): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <div> -| " -" -| <div> -| " -x" - -#data -<div>x<div></div> -</span>x -#errors -(1,5): expected-doctype-but-got-start-tag -(2,7): unexpected-end-tag -(2,8): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <div> -| "x" -| <div> -| " -x" - -#data -<div>x<div></div>x</span>x -#errors -(1,5): expected-doctype-but-got-start-tag -(1,25): unexpected-end-tag -(1,26): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <div> -| "x" -| <div> -| "xx" - -#data -<div>x<div></div>y</span>z -#errors -(1,5): expected-doctype-but-got-start-tag -(1,25): unexpected-end-tag -(1,26): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <div> -| "x" -| <div> -| "yz" - -#data -<table><div>x<div></div>x</span>x -#errors -(1,7): expected-doctype-but-got-start-tag -(1,12): foster-parenting-start-tag -(1,13): foster-parenting-character -(1,18): foster-parenting-start-tag -(1,24): foster-parenting-end-tag -(1,25): foster-parenting-start-tag -(1,32): foster-parenting-end-tag -(1,32): unexpected-end-tag -(1,33): foster-parenting-character -(1,33): eof-in-table -#document -| <html> -| <head> -| <body> -| <div> -| "x" -| <div> -| "xx" -| <table> - -#data -x<table>x -#errors -(1,1): expected-doctype-but-got-chars -(1,9): foster-parenting-character -(1,9): eof-in-table -#document -| <html> -| <head> -| <body> -| "xx" -| <table> - -#data -x<table><table>x -#errors -(1,1): expected-doctype-but-got-chars -(1,15): unexpected-start-tag-implies-end-tag -(1,16): foster-parenting-character -(1,16): eof-in-table -#document -| <html> -| <head> -| <body> -| "x" -| <table> -| "x" -| <table> - -#data -<b>a<div></div><div></b>y -#errors -(1,3): expected-doctype-but-got-start-tag -(1,24): adoption-agency-1.3 -(1,25): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <b> -| "a" -| <div> -| <div> -| <b> -| "y" - -#data -<a><div><p></a> -#errors -(1,3): expected-doctype-but-got-start-tag -(1,15): adoption-agency-1.3 -(1,15): adoption-agency-1.3 -(1,15): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <a> -| <div> -| <a> -| <p> -| <a> diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests9.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests9.dat deleted file mode 100644 index f8d04b23bc0..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests9.dat +++ /dev/null @@ -1,472 +0,0 @@ -#data -<!DOCTYPE html><math></math> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> - -#data -<!DOCTYPE html><body><math></math> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> - -#data -<!DOCTYPE html><math><mi> -#errors -(1,25) expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math mi> - -#data -<!DOCTYPE html><math><annotation-xml><svg><u> -#errors -(1,45) unexpected-html-element-in-foreign-content -(1,45) expected-closing-tag-but-got-eof -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math annotation-xml> -| <svg svg> -| <u> - -#data -<!DOCTYPE html><body><select><math></math></select> -#errors -(1,35) unexpected-start-tag-in-select -(1,42) unexpected-end-tag-in-select -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!DOCTYPE html><body><select><option><math></math></option></select> -#errors -(1,43) unexpected-start-tag-in-select -(1,50) unexpected-end-tag-in-select -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <option> - -#data -<!DOCTYPE html><body><table><math></math></table> -#errors -(1,34) unexpected-start-tag-implies-table-voodoo -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <table> - -#data -<!DOCTYPE html><body><table><math><mi>foo</mi></math></table> -#errors -(1,34) foster-parenting-start-token -(1,39) foster-parenting-character -(1,40) foster-parenting-character -(1,41) foster-parenting-character -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math mi> -| "foo" -| <table> - -#data -<!DOCTYPE html><body><table><math><mi>foo</mi><mi>bar</mi></math></table> -#errors -(1,34) foster-parenting-start-tag -(1,39) foster-parenting-character -(1,40) foster-parenting-character -(1,41) foster-parenting-character -(1,51) foster-parenting-character -(1,52) foster-parenting-character -(1,53) foster-parenting-character -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math mi> -| "foo" -| <math mi> -| "bar" -| <table> - -#data -<!DOCTYPE html><body><table><tbody><math><mi>foo</mi><mi>bar</mi></math></tbody></table> -#errors -(1,41) foster-parenting-start-tag -(1,46) foster-parenting-character -(1,47) foster-parenting-character -(1,48) foster-parenting-character -(1,58) foster-parenting-character -(1,59) foster-parenting-character -(1,60) foster-parenting-character -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math mi> -| "foo" -| <math mi> -| "bar" -| <table> -| <tbody> - -#data -<!DOCTYPE html><body><table><tbody><tr><math><mi>foo</mi><mi>bar</mi></math></tr></tbody></table> -#errors -(1,45) foster-parenting-start-tag -(1,50) foster-parenting-character -(1,51) foster-parenting-character -(1,52) foster-parenting-character -(1,62) foster-parenting-character -(1,63) foster-parenting-character -(1,64) foster-parenting-character -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math mi> -| "foo" -| <math mi> -| "bar" -| <table> -| <tbody> -| <tr> - -#data -<!DOCTYPE html><body><table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math></td></tr></tbody></table> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <math math> -| <math mi> -| "foo" -| <math mi> -| "bar" - -#data -<!DOCTYPE html><body><table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math><p>baz</td></tr></tbody></table> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <math math> -| <math mi> -| "foo" -| <math mi> -| "bar" -| <p> -| "baz" - -#data -<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi></math><p>baz</caption></table> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| <math math> -| <math mi> -| "foo" -| <math mi> -| "bar" -| <p> -| "baz" - -#data -<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux -#errors -(1,70) unexpected-html-element-in-foreign-content -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| <math math> -| <math mi> -| "foo" -| <math mi> -| "bar" -| <p> -| "baz" -| <p> -| "quux" - -#data -<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi>baz</table><p>quux -#errors -(1,78) unexpected-end-tag -(1,78) expected-one-end-tag-but-got-another -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| <math math> -| <math mi> -| "foo" -| <math mi> -| "bar" -| "baz" -| <p> -| "quux" - -#data -<!DOCTYPE html><body><table><colgroup><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux -#errors -(1,44) foster-parenting-start-tag -(1,49) foster-parenting-character -(1,50) foster-parenting-character -(1,51) foster-parenting-character -(1,61) foster-parenting-character -(1,62) foster-parenting-character -(1,63) foster-parenting-character -(1,71) unexpected-html-element-in-foreign-content -(1,71) foster-parenting-start-tag -(1,63) foster-parenting-character -(1,63) foster-parenting-character -(1,63) foster-parenting-character -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math mi> -| "foo" -| <math mi> -| "bar" -| <p> -| "baz" -| <table> -| <colgroup> -| <p> -| "quux" - -#data -<!DOCTYPE html><body><table><tr><td><select><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux -#errors -(1,50) unexpected-start-tag-in-select -(1,54) unexpected-start-tag-in-select -(1,62) unexpected-end-tag-in-select -(1,66) unexpected-start-tag-in-select -(1,74) unexpected-end-tag-in-select -(1,77) unexpected-start-tag-in-select -(1,88) unexpected-table-element-end-tag-in-select-in-table -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <select> -| "foobarbaz" -| <p> -| "quux" - -#data -<!DOCTYPE html><body><table><select><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux -#errors -(1,36) unexpected-start-tag-implies-table-voodoo -(1,42) unexpected-start-tag-in-select -(1,46) unexpected-start-tag-in-select -(1,54) unexpected-end-tag-in-select -(1,58) unexpected-start-tag-in-select -(1,66) unexpected-end-tag-in-select -(1,69) unexpected-start-tag-in-select -(1,80) unexpected-table-element-end-tag-in-select-in-table -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| "foobarbaz" -| <table> -| <p> -| "quux" - -#data -<!DOCTYPE html><body></body></html><math><mi>foo</mi><mi>bar</mi><p>baz -#errors -(1,41) expected-eof-but-got-start-tag -(1,68) unexpected-html-element-in-foreign-content -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math mi> -| "foo" -| <math mi> -| "bar" -| <p> -| "baz" - -#data -<!DOCTYPE html><body></body><math><mi>foo</mi><mi>bar</mi><p>baz -#errors -(1,34) unexpected-start-tag-after-body -(1,61) unexpected-html-element-in-foreign-content -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math mi> -| "foo" -| <math mi> -| "bar" -| <p> -| "baz" - -#data -<!DOCTYPE html><frameset><math><mi></mi><mi></mi><p><span> -#errors -(1,31) unexpected-start-tag-in-frameset -(1,35) unexpected-start-tag-in-frameset -(1,40) unexpected-end-tag-in-frameset -(1,44) unexpected-start-tag-in-frameset -(1,49) unexpected-end-tag-in-frameset -(1,52) unexpected-start-tag-in-frameset -(1,58) unexpected-start-tag-in-frameset -(1,58) eof-in-frameset -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!DOCTYPE html><frameset></frameset><math><mi></mi><mi></mi><p><span> -#errors -(1,42) unexpected-start-tag-after-frameset -(1,46) unexpected-start-tag-after-frameset -(1,51) unexpected-end-tag-after-frameset -(1,55) unexpected-start-tag-after-frameset -(1,60) unexpected-end-tag-after-frameset -(1,63) unexpected-start-tag-after-frameset -(1,69) unexpected-start-tag-after-frameset -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!DOCTYPE html><body xlink:href=foo><math xlink:href=foo></math> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| xlink:href="foo" -| <math math> -| xlink href="foo" - -#data -<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo></mi></math> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| xlink:href="foo" -| xml:lang="en" -| <math math> -| <math mi> -| xlink href="foo" -| xml lang="en" - -#data -<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo /></math> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| xlink:href="foo" -| xml:lang="en" -| <math math> -| <math mi> -| xlink href="foo" -| xml lang="en" - -#data -<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo />bar</math> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| xlink:href="foo" -| xml:lang="en" -| <math math> -| <math mi> -| xlink href="foo" -| xml lang="en" -| "bar" diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests_innerHTML_1.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests_innerHTML_1.dat deleted file mode 100644 index 9c5c18220d9..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tests_innerHTML_1.dat +++ /dev/null @@ -1,891 +0,0 @@ -#data -<body><span> -#errors -(1,6): unexpected-start-tag -(1,12): expected-closing-tag-but-got-eof -#document-fragment -body -#document -| <span> - -#data -<span><body> -#errors -(1,12): unexpected-start-tag -(1,12): expected-closing-tag-but-got-eof -#document-fragment -body -#document -| <span> - -#data -<span><body> -#errors -(1,12): unexpected-start-tag -(1,12): expected-closing-tag-but-got-eof -#document-fragment -div -#document -| <span> - -#data -<body><span> -#errors -(1,12): expected-closing-tag-but-got-eof -#document-fragment -html -#document -| <head> -| <body> -| <span> - -#data -<frameset><span> -#errors -(1,10): unexpected-start-tag -(1,16): expected-closing-tag-but-got-eof -#document-fragment -body -#document -| <span> - -#data -<span><frameset> -#errors -(1,16): unexpected-start-tag -(1,16): expected-closing-tag-but-got-eof -#document-fragment -body -#document -| <span> - -#data -<span><frameset> -#errors -(1,16): unexpected-start-tag -(1,16): expected-closing-tag-but-got-eof -#document-fragment -div -#document -| <span> - -#data -<frameset><span> -#errors -(1,16): unexpected-start-tag-in-frameset -(1,16): eof-in-frameset -#document-fragment -html -#document -| <head> -| <frameset> - -#data -<table><tr> -#errors -(1,7): unexpected-start-tag -#document-fragment -table -#document -| <tbody> -| <tr> - -#data -</table><tr> -#errors -(1,8): unexpected-end-tag -#document-fragment -table -#document -| <tbody> -| <tr> - -#data -<a> -#errors -(1,3): unexpected-start-tag-implies-table-voodoo -(1,3): eof-in-table -#document-fragment -table -#document -| <a> - -#data -<a> -#errors -(1,3): unexpected-start-tag-implies-table-voodoo -(1,3): eof-in-table -#document-fragment -table -#document -| <a> - -#data -<a><caption>a -#errors -(1,3): unexpected-start-tag-implies-table-voodoo -(1,13): expected-closing-tag-but-got-eof -#document-fragment -table -#document -| <a> -| <caption> -| "a" - -#data -<a><colgroup><col> -#errors -(1,3): foster-parenting-start-token -(1,18): expected-closing-tag-but-got-eof -#document-fragment -table -#document -| <a> -| <colgroup> -| <col> - -#data -<a><tbody><tr> -#errors -(1,3): foster-parenting-start-tag -#document-fragment -table -#document -| <a> -| <tbody> -| <tr> - -#data -<a><tfoot><tr> -#errors -(1,3): foster-parenting-start-tag -#document-fragment -table -#document -| <a> -| <tfoot> -| <tr> - -#data -<a><thead><tr> -#errors -(1,3): foster-parenting-start-tag -#document-fragment -table -#document -| <a> -| <thead> -| <tr> - -#data -<a><tr> -#errors -(1,3): foster-parenting-start-tag -#document-fragment -table -#document -| <a> -| <tbody> -| <tr> - -#data -<a><th> -#errors -(1,3): unexpected-start-tag-implies-table-voodoo -(1,7): unexpected-cell-in-table-body -#document-fragment -table -#document -| <a> -| <tbody> -| <tr> -| <th> - -#data -<a><td> -#errors -(1,3): unexpected-start-tag-implies-table-voodoo -(1,7): unexpected-cell-in-table-body -#document-fragment -table -#document -| <a> -| <tbody> -| <tr> -| <td> - -#data -<table></table><tbody> -#errors -(1,22): unexpected-start-tag -#document-fragment -caption -#document -| <table> - -#data -</table><span> -#errors -(1,8): unexpected-end-tag -(1,14): expected-closing-tag-but-got-eof -#document-fragment -caption -#document -| <span> - -#data -<span></table> -#errors -(1,14): unexpected-end-tag -(1,14): expected-closing-tag-but-got-eof -#document-fragment -caption -#document -| <span> - -#data -</caption><span> -#errors -(1,10): XXX-undefined-error -(1,16): expected-closing-tag-but-got-eof -#document-fragment -caption -#document -| <span> - -#data -<span></caption><span> -#errors -(1,16): XXX-undefined-error -(1,22): expected-closing-tag-but-got-eof -#document-fragment -caption -#document -| <span> -| <span> - -#data -<span><caption><span> -#errors -(1,15): unexpected-start-tag -(1,21): expected-closing-tag-but-got-eof -#document-fragment -caption -#document -| <span> -| <span> - -#data -<span><col><span> -#errors -(1,11): unexpected-start-tag -(1,17): expected-closing-tag-but-got-eof -#document-fragment -caption -#document -| <span> -| <span> - -#data -<span><colgroup><span> -#errors -(1,16): unexpected-start-tag -(1,22): expected-closing-tag-but-got-eof -#document-fragment -caption -#document -| <span> -| <span> - -#data -<span><html><span> -#errors -(1,12): non-html-root -(1,18): expected-closing-tag-but-got-eof -#document-fragment -caption -#document -| <span> -| <span> - -#data -<span><tbody><span> -#errors -(1,13): unexpected-start-tag -(1,19): expected-closing-tag-but-got-eof -#document-fragment -caption -#document -| <span> -| <span> - -#data -<span><td><span> -#errors -(1,10): unexpected-start-tag -(1,16): expected-closing-tag-but-got-eof -#document-fragment -caption -#document -| <span> -| <span> - -#data -<span><tfoot><span> -#errors -(1,13): unexpected-start-tag -(1,19): expected-closing-tag-but-got-eof -#document-fragment -caption -#document -| <span> -| <span> - -#data -<span><thead><span> -#errors -(1,13): unexpected-start-tag -(1,19): expected-closing-tag-but-got-eof -#document-fragment -caption -#document -| <span> -| <span> - -#data -<span><th><span> -#errors -(1,10): unexpected-start-tag -(1,16): expected-closing-tag-but-got-eof -#document-fragment -caption -#document -| <span> -| <span> - -#data -<span><tr><span> -#errors -(1,10): unexpected-start-tag -(1,16): expected-closing-tag-but-got-eof -#document-fragment -caption -#document -| <span> -| <span> - -#data -<span></table><span> -#errors -(1,14): unexpected-end-tag -(1,20): expected-closing-tag-but-got-eof -#document-fragment -caption -#document -| <span> -| <span> - -#data -</colgroup><col> -#errors -(1,11): XXX-undefined-error -#document-fragment -colgroup -#document -| <col> - -#data -<a><col> -#errors -(1,3): XXX-undefined-error -#document-fragment -colgroup -#document -| <col> - -#data -<caption><a> -#errors -(1,9): XXX-undefined-error -(1,12): unexpected-start-tag-implies-table-voodoo -(1,12): eof-in-table -#document-fragment -tbody -#document -| <a> - -#data -<col><a> -#errors -(1,5): XXX-undefined-error -(1,8): unexpected-start-tag-implies-table-voodoo -(1,8): eof-in-table -#document-fragment -tbody -#document -| <a> - -#data -<colgroup><a> -#errors -(1,10): XXX-undefined-error -(1,13): unexpected-start-tag-implies-table-voodoo -(1,13): eof-in-table -#document-fragment -tbody -#document -| <a> - -#data -<tbody><a> -#errors -(1,7): XXX-undefined-error -(1,10): unexpected-start-tag-implies-table-voodoo -(1,10): eof-in-table -#document-fragment -tbody -#document -| <a> - -#data -<tfoot><a> -#errors -(1,7): XXX-undefined-error -(1,10): unexpected-start-tag-implies-table-voodoo -(1,10): eof-in-table -#document-fragment -tbody -#document -| <a> - -#data -<thead><a> -#errors -(1,7): XXX-undefined-error -(1,10): unexpected-start-tag-implies-table-voodoo -(1,10): eof-in-table -#document-fragment -tbody -#document -| <a> - -#data -</table><a> -#errors -(1,8): XXX-undefined-error -(1,11): unexpected-start-tag-implies-table-voodoo -(1,11): eof-in-table -#document-fragment -tbody -#document -| <a> - -#data -<a><tr> -#errors -(1,3): unexpected-start-tag-implies-table-voodoo -#document-fragment -tbody -#document -| <a> -| <tr> - -#data -<a><td> -#errors -(1,3): unexpected-start-tag-implies-table-voodoo -(1,7): unexpected-cell-in-table-body -#document-fragment -tbody -#document -| <a> -| <tr> -| <td> - -#data -<a><td> -#errors -(1,3): unexpected-start-tag-implies-table-voodoo -(1,7): unexpected-cell-in-table-body -#document-fragment -tbody -#document -| <a> -| <tr> -| <td> - -#data -<a><td> -#errors -(1,3): unexpected-start-tag-implies-table-voodoo -(1,7): unexpected-cell-in-table-body -#document-fragment -tbody -#document -| <a> -| <tr> -| <td> - -#data -<td><table><tbody><a><tr> -#errors -(1,4): unexpected-cell-in-table-body -(1,21): unexpected-start-tag-implies-table-voodoo -(1,25): eof-in-table -#document-fragment -tbody -#document -| <tr> -| <td> -| <a> -| <table> -| <tbody> -| <tr> - -#data -</tr><td> -#errors -(1,5): XXX-undefined-error -#document-fragment -tr -#document -| <td> - -#data -<td><table><a><tr></tr><tr> -#errors -(1,14): unexpected-start-tag-implies-table-voodoo -(1,27): eof-in-table -#document-fragment -tr -#document -| <td> -| <a> -| <table> -| <tbody> -| <tr> -| <tr> - -#data -<caption><td> -#errors -(1,9): XXX-undefined-error -#document-fragment -tr -#document -| <td> - -#data -<col><td> -#errors -(1,5): XXX-undefined-error -#document-fragment -tr -#document -| <td> - -#data -<colgroup><td> -#errors -(1,10): XXX-undefined-error -#document-fragment -tr -#document -| <td> - -#data -<tbody><td> -#errors -(1,7): XXX-undefined-error -#document-fragment -tr -#document -| <td> - -#data -<tfoot><td> -#errors -(1,7): XXX-undefined-error -#document-fragment -tr -#document -| <td> - -#data -<thead><td> -#errors -(1,7): XXX-undefined-error -#document-fragment -tr -#document -| <td> - -#data -<tr><td> -#errors -(1,4): XXX-undefined-error -#document-fragment -tr -#document -| <td> - -#data -</table><td> -#errors -(1,8): XXX-undefined-error -#document-fragment -tr -#document -| <td> - -#data -<td><table></table><td> -#errors -#document-fragment -tr -#document -| <td> -| <table> -| <td> - -#data -<td><table></table><td> -#errors -#document-fragment -tr -#document -| <td> -| <table> -| <td> - -#data -<caption><a> -#errors -(1,9): XXX-undefined-error -(1,12): expected-closing-tag-but-got-eof -#document-fragment -td -#document -| <a> - -#data -<col><a> -#errors -(1,5): XXX-undefined-error -(1,8): expected-closing-tag-but-got-eof -#document-fragment -td -#document -| <a> - -#data -<colgroup><a> -#errors -(1,10): XXX-undefined-error -(1,13): expected-closing-tag-but-got-eof -#document-fragment -td -#document -| <a> - -#data -<tbody><a> -#errors -(1,7): XXX-undefined-error -(1,10): expected-closing-tag-but-got-eof -#document-fragment -td -#document -| <a> - -#data -<tfoot><a> -#errors -(1,7): XXX-undefined-error -(1,10): expected-closing-tag-but-got-eof -#document-fragment -td -#document -| <a> - -#data -<th><a> -#errors -(1,4): XXX-undefined-error -(1,7): expected-closing-tag-but-got-eof -#document-fragment -td -#document -| <a> - -#data -<thead><a> -#errors -(1,7): XXX-undefined-error -(1,10): expected-closing-tag-but-got-eof -#document-fragment -td -#document -| <a> - -#data -<tr><a> -#errors -(1,4): XXX-undefined-error -(1,7): expected-closing-tag-but-got-eof -#document-fragment -td -#document -| <a> - -#data -</table><a> -#errors -(1,8): XXX-undefined-error -(1,11): expected-closing-tag-but-got-eof -#document-fragment -td -#document -| <a> - -#data -</tbody><a> -#errors -(1,8): XXX-undefined-error -(1,11): expected-closing-tag-but-got-eof -#document-fragment -td -#document -| <a> - -#data -</td><a> -#errors -(1,5): unexpected-end-tag -(1,8): expected-closing-tag-but-got-eof -#document-fragment -td -#document -| <a> - -#data -</tfoot><a> -#errors -(1,8): XXX-undefined-error -(1,11): expected-closing-tag-but-got-eof -#document-fragment -td -#document -| <a> - -#data -</thead><a> -#errors -(1,8): XXX-undefined-error -(1,11): expected-closing-tag-but-got-eof -#document-fragment -td -#document -| <a> - -#data -</th><a> -#errors -(1,5): unexpected-end-tag -(1,8): expected-closing-tag-but-got-eof -#document-fragment -td -#document -| <a> - -#data -</tr><a> -#errors -(1,5): XXX-undefined-error -(1,8): expected-closing-tag-but-got-eof -#document-fragment -td -#document -| <a> - -#data -<table><td><td> -#errors -(1,11): unexpected-cell-in-table-body -(1,15): expected-closing-tag-but-got-eof -#document-fragment -td -#document -| <table> -| <tbody> -| <tr> -| <td> -| <td> - -#data -</select><option> -#errors -(1,9): XXX-undefined-error -(1,17): eof-in-select -#document-fragment -select -#document -| <option> - -#data -<input><option> -#errors -(1,7): unexpected-input-in-select -(1,15): eof-in-select -#document-fragment -select -#document -| <option> - -#data -<keygen><option> -#errors -(1,8): unexpected-input-in-select -(1,16): eof-in-select -#document-fragment -select -#document -| <option> - -#data -<textarea><option> -#errors -(1,10): unexpected-input-in-select -(1,18): eof-in-select -#document-fragment -select -#document -| <option> - -#data -</html><!--abc--> -#errors -(1,7): unexpected-end-tag-after-body-innerhtml -#document-fragment -html -#document -| <head> -| <body> -| <!-- abc --> - -#data -</frameset><frame> -#errors -(1,11): unexpected-frameset-in-frameset-innerhtml -#document-fragment -frameset -#document -| <frame> - -#data -#errors -#document-fragment -html -#document -| <head> -| <body> diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tricky01.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tricky01.dat deleted file mode 100644 index 753502a2619..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/tricky01.dat +++ /dev/null @@ -1,336 +0,0 @@ -#data -<b><p>Bold </b> Not bold</p> -Also not bold. -#errors -(1,3): expected-doctype-but-got-start-tag -(1,15): adoption-agency-1.3 -#document -| <html> -| <head> -| <body> -| <b> -| <p> -| <b> -| "Bold " -| " Not bold" -| " -Also not bold." - -#data -<html> -<font color=red><i>Italic and Red<p>Italic and Red </font> Just italic.</p> Italic only.</i> Plain -<p>I should not be red. <font color=red>Red. <i>Italic and red.</p> -<p>Italic and red. </i> Red.</font> I should not be red.</p> -<b>Bold <i>Bold and italic</b> Only Italic </i> Plain -#errors -(1,6): expected-doctype-but-got-start-tag -(2,58): adoption-agency-1.3 -(3,67): unexpected-end-tag -(4,23): adoption-agency-1.3 -(4,35): adoption-agency-1.3 -(5,30): adoption-agency-1.3 -#document -| <html> -| <head> -| <body> -| <font> -| color="red" -| <i> -| "Italic and Red" -| <i> -| <p> -| <font> -| color="red" -| "Italic and Red " -| " Just italic." -| " Italic only." -| " Plain -" -| <p> -| "I should not be red. " -| <font> -| color="red" -| "Red. " -| <i> -| "Italic and red." -| <font> -| color="red" -| <i> -| " -" -| <p> -| <font> -| color="red" -| <i> -| "Italic and red. " -| " Red." -| " I should not be red." -| " -" -| <b> -| "Bold " -| <i> -| "Bold and italic" -| <i> -| " Only Italic " -| " Plain" - -#data -<html><body> -<p><font size="7">First paragraph.</p> -<p>Second paragraph.</p></font> -<b><p><i>Bold and Italic</b> Italic</p> -#errors -(1,6): expected-doctype-but-got-start-tag -(2,38): unexpected-end-tag -(4,28): adoption-agency-1.3 -(4,28): adoption-agency-1.3 -(4,39): unexpected-end-tag -#document -| <html> -| <head> -| <body> -| " -" -| <p> -| <font> -| size="7" -| "First paragraph." -| <font> -| size="7" -| " -" -| <p> -| "Second paragraph." -| " -" -| <b> -| <p> -| <b> -| <i> -| "Bold and Italic" -| <i> -| " Italic" - -#data -<html> -<dl> -<dt><b>Boo -<dd>Goo? -</dl> -</html> -#errors -(1,6): expected-doctype-but-got-start-tag -(4,4): end-tag-too-early -(5,5): end-tag-too-early -(6,7): expected-one-end-tag-but-got-another -#document -| <html> -| <head> -| <body> -| <dl> -| " -" -| <dt> -| <b> -| "Boo -" -| <dd> -| <b> -| "Goo? -" -| <b> -| " -" - -#data -<html><body> -<label><a><div>Hello<div>World</div></a></label> -</body></html> -#errors -(1,6): expected-doctype-but-got-start-tag -(2,40): adoption-agency-1.3 -(2,48): unexpected-end-tag -(3,7): expected-one-end-tag-but-got-another -#document -| <html> -| <head> -| <body> -| " -" -| <label> -| <a> -| <div> -| <a> -| "Hello" -| <div> -| "World" -| " -" - -#data -<table><center> <font>a</center> <img> <tr><td> </td> </tr> </table> -#errors -(1,7): expected-doctype-but-got-start-tag -(1,15): foster-parenting-start-tag -(1,16): foster-parenting-character -(1,22): foster-parenting-start-tag -(1,23): foster-parenting-character -(1,32): foster-parenting-end-tag -(1,32): end-tag-too-early -(1,33): foster-parenting-character -(1,38): foster-parenting-start-tag -#document -| <html> -| <head> -| <body> -| <center> -| " " -| <font> -| "a" -| <font> -| <img> -| " " -| <table> -| " " -| <tbody> -| <tr> -| <td> -| " " -| " " -| " " - -#data -<table><tr><p><a><p>You should see this text. -#errors -(1,7): expected-doctype-but-got-start-tag -(1,14): unexpected-start-tag-implies-table-voodoo -(1,17): unexpected-start-tag-implies-table-voodoo -(1,20): unexpected-start-tag-implies-table-voodoo -(1,20): closing-non-current-p-element -(1,21): foster-parenting-character -(1,22): foster-parenting-character -(1,23): foster-parenting-character -(1,24): foster-parenting-character -(1,25): foster-parenting-character -(1,26): foster-parenting-character -(1,27): foster-parenting-character -(1,28): foster-parenting-character -(1,29): foster-parenting-character -(1,30): foster-parenting-character -(1,31): foster-parenting-character -(1,32): foster-parenting-character -(1,33): foster-parenting-character -(1,34): foster-parenting-character -(1,35): foster-parenting-character -(1,36): foster-parenting-character -(1,37): foster-parenting-character -(1,38): foster-parenting-character -(1,39): foster-parenting-character -(1,40): foster-parenting-character -(1,41): foster-parenting-character -(1,42): foster-parenting-character -(1,43): foster-parenting-character -(1,44): foster-parenting-character -(1,45): foster-parenting-character -(1,45): eof-in-table -#document -| <html> -| <head> -| <body> -| <p> -| <a> -| <p> -| <a> -| "You should see this text." -| <table> -| <tbody> -| <tr> - -#data -<TABLE> -<TR> -<CENTER><CENTER><TD></TD></TR><TR> -<FONT> -<TABLE><tr></tr></TABLE> -</P> -<a></font><font></a> -This page contains an insanely badly-nested tag sequence. -#errors -(1,7): expected-doctype-but-got-start-tag -(3,8): unexpected-start-tag-implies-table-voodoo -(3,16): unexpected-start-tag-implies-table-voodoo -(4,6): unexpected-start-tag-implies-table-voodoo -(4,6): unexpected character token in table (the newline) -(5,7): unexpected-start-tag-implies-end-tag -(6,4): unexpected p end tag -(7,10): adoption-agency-1.3 -(7,20): adoption-agency-1.3 -(8,57): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <center> -| <center> -| <font> -| " -" -| <table> -| " -" -| <tbody> -| <tr> -| " -" -| <td> -| <tr> -| " -" -| <table> -| <tbody> -| <tr> -| <font> -| " -" -| <p> -| " -" -| <a> -| <a> -| <font> -| <font> -| " -This page contains an insanely badly-nested tag sequence." - -#data -<html> -<body> -<b><nobr><div>This text is in a div inside a nobr</nobr>More text that should not be in the nobr, i.e., the -nobr should have closed the div inside it implicitly. </b><pre>A pre tag outside everything else.</pre> -</body> -</html> -#errors -(1,6): expected-doctype-but-got-start-tag -(3,56): adoption-agency-1.3 -(4,58): adoption-agency-1.3 -(5,7): expected-one-end-tag-but-got-another -#document -| <html> -| <head> -| <body> -| " -" -| <b> -| <nobr> -| <div> -| <b> -| <nobr> -| "This text is in a div inside a nobr" -| "More text that should not be in the nobr, i.e., the -nobr should have closed the div inside it implicitly. " -| <pre> -| "A pre tag outside everything else." -| " - -" diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/webkit01.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/webkit01.dat deleted file mode 100644 index c480accd95a..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/webkit01.dat +++ /dev/null @@ -1,705 +0,0 @@ -#data -Test -#errors -(1,4): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "Test" - -#data -<div></div> -#errors -(1,5): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <div> - -#data -<div>Test</div> -#errors -(1,5): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <div> -| "Test" - -#data -<di -#errors -(1,3): eof-in-tag-name -(1,3): expected-doctype-but-got-eof -#document -| <html> -| <head> -| <body> - -#data -<div>Hello</div> -<script> -console.log("PASS"); -</script> -<div>Bye</div> -#errors -(1,5): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <div> -| "Hello" -| " -" -| <script> -| " -console.log("PASS"); -" -| " -" -| <div> -| "Bye" - -#data -<div foo="bar">Hello</div> -#errors -(1,15): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <div> -| foo="bar" -| "Hello" - -#data -<div>Hello</div> -<script> -console.log("FOO<span>BAR</span>BAZ"); -</script> -<div>Bye</div> -#errors -(1,5): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <div> -| "Hello" -| " -" -| <script> -| " -console.log("FOO<span>BAR</span>BAZ"); -" -| " -" -| <div> -| "Bye" - -#data -<foo bar="baz"></foo><potato quack="duck"></potato> -#errors -(1,15): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <foo> -| bar="baz" -| <potato> -| quack="duck" - -#data -<foo bar="baz"><potato quack="duck"></potato></foo> -#errors -(1,15): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <foo> -| bar="baz" -| <potato> -| quack="duck" - -#data -<foo></foo bar="baz"><potato></potato quack="duck"> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,21): attributes-in-end-tag -(1,51): attributes-in-end-tag -#document -| <html> -| <head> -| <body> -| <foo> -| <potato> - -#data -</ tttt> -#errors -(1,2): expected-closing-tag-but-got-char -(1,8): expected-doctype-but-got-eof -#document -| <!-- tttt --> -| <html> -| <head> -| <body> - -#data -<div FOO ><img><img></div> -#errors -(1,10): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <div> -| foo="" -| <img> -| <img> - -#data -<p>Test</p<p>Test2</p> -#errors -(1,3): expected-doctype-but-got-start-tag -(1,13): unexpected-end-tag -#document -| <html> -| <head> -| <body> -| <p> -| "TestTest2" - -#data -<rdar://problem/6869687> -#errors -(1,7): unexpected-character-after-solidus-in-tag -(1,8): unexpected-character-after-solidus-in-tag -(1,16): unexpected-character-after-solidus-in-tag -(1,24): expected-doctype-but-got-start-tag -(1,24): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <rdar:> -| 6869687="" -| problem="" - -#data -<A>test< /A> -#errors -(1,3): expected-doctype-but-got-start-tag -(1,8): expected-tag-name -(1,12): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <a> -| "test< /A>" - -#data -< -#errors -(1,4): expected-doctype-but-got-chars -#document -| <html> -| <head> -| <body> -| "<" - -#data -<body foo='bar'><body foo='baz' yo='mama'> -#errors -(1,16): expected-doctype-but-got-start-tag -(1,42): unexpected-start-tag -#document -| <html> -| <head> -| <body> -| foo="bar" -| yo="mama" - -#data -<body></br foo="bar"></body> -#errors -(1,6): expected-doctype-but-got-start-tag -(1,21): attributes-in-end-tag -(1,21): unexpected-end-tag-treated-as -#document -| <html> -| <head> -| <body> -| <br> - -#data -<bdy><br foo="bar"></body> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,26): expected-one-end-tag-but-got-another -#document -| <html> -| <head> -| <body> -| <bdy> -| <br> -| foo="bar" - -#data -<body></body></br foo="bar"> -#errors -(1,6): expected-doctype-but-got-start-tag -(1,28): attributes-in-end-tag -(1,28): unexpected-end-tag-after-body -(1,28): unexpected-end-tag-treated-as -#document -| <html> -| <head> -| <body> -| <br> - -#data -<bdy></body><br foo="bar"> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,12): expected-one-end-tag-but-got-another -(1,26): unexpected-start-tag-after-body -(1,26): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <bdy> -| <br> -| foo="bar" - -#data -<html><body></body></html><!-- Hi there --> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <!-- Hi there --> - -#data -<html><body></body></html>x<!-- Hi there --> -#errors -(1,6): expected-doctype-but-got-start-tag -(1,27): expected-eof-but-got-char -#document -| <html> -| <head> -| <body> -| "x" -| <!-- Hi there --> - -#data -<html><body></body></html>x<!-- Hi there --></html><!-- Again --> -#errors -(1,6): expected-doctype-but-got-start-tag -(1,27): expected-eof-but-got-char -#document -| <html> -| <head> -| <body> -| "x" -| <!-- Hi there --> -| <!-- Again --> - -#data -<html><body></body></html>x<!-- Hi there --></body></html><!-- Again --> -#errors -(1,6): expected-doctype-but-got-start-tag -(1,27): expected-eof-but-got-char -#document -| <html> -| <head> -| <body> -| "x" -| <!-- Hi there --> -| <!-- Again --> - -#data -<html><body><ruby><div><rp>xx</rp></div></ruby></body></html> -#errors -(1,6): expected-doctype-but-got-start-tag -(1,27): XXX-undefined-error -#document -| <html> -| <head> -| <body> -| <ruby> -| <div> -| <rp> -| "xx" - -#data -<html><body><ruby><div><rt>xx</rt></div></ruby></body></html> -#errors -(1,6): expected-doctype-but-got-start-tag -(1,27): XXX-undefined-error -#document -| <html> -| <head> -| <body> -| <ruby> -| <div> -| <rt> -| "xx" - -#data -<html><frameset><!--1--><noframes>A</noframes><!--2--></frameset><!--3--><noframes>B</noframes><!--4--></html><!--5--><noframes>C</noframes><!--6--> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <frameset> -| <!-- 1 --> -| <noframes> -| "A" -| <!-- 2 --> -| <!-- 3 --> -| <noframes> -| "B" -| <!-- 4 --> -| <noframes> -| "C" -| <!-- 5 --> -| <!-- 6 --> - -#data -<select><option>A<select><option>B<select><option>C<select><option>D<select><option>E<select><option>F<select><option>G<select> -#errors -(1,8): expected-doctype-but-got-start-tag -(1,25): unexpected-select-in-select -(1,59): unexpected-select-in-select -(1,93): unexpected-select-in-select -(1,127): unexpected-select-in-select -(1,127): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <select> -| <option> -| "A" -| <option> -| "B" -| <select> -| <option> -| "C" -| <option> -| "D" -| <select> -| <option> -| "E" -| <option> -| "F" -| <select> -| <option> -| "G" - -#data -<dd><dd><dt><dt><dd><li><li> -#errors -(1,4): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <dd> -| <dd> -| <dt> -| <dt> -| <dd> -| <li> -| <li> - -#data -<div><b></div><div><nobr>a<nobr> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,14): end-tag-too-early -(1,32): unexpected-start-tag-implies-end-tag -(1,32): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <div> -| <b> -| <div> -| <b> -| <nobr> -| "a" -| <nobr> - -#data -<head></head> -<body></body> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| " -" -| <body> - -#data -<head></head> <style></style>ddd -#errors -(1,6): expected-doctype-but-got-start-tag -(1,21): unexpected-start-tag-out-of-my-head -#document -| <html> -| <head> -| <style> -| " " -| <body> -| "ddd" - -#data -<kbd><table></kbd><col><select><tr> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,18): unexpected-end-tag-implies-table-voodoo -(1,18): unexpected-end-tag -(1,31): unexpected-start-tag-implies-table-voodoo -(1,35): unexpected-table-element-start-tag-in-select-in-table -(1,35): eof-in-table -#document -| <html> -| <head> -| <body> -| <kbd> -| <select> -| <table> -| <colgroup> -| <col> -| <tbody> -| <tr> - -#data -<kbd><table></kbd><col><select><tr></table><div> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,18): unexpected-end-tag-implies-table-voodoo -(1,18): unexpected-end-tag -(1,31): unexpected-start-tag-implies-table-voodoo -(1,35): unexpected-table-element-start-tag-in-select-in-table -(1,48): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <kbd> -| <select> -| <table> -| <colgroup> -| <col> -| <tbody> -| <tr> -| <div> - -#data -<a><li><style></style><title></title></a> -#errors -(1,3): expected-doctype-but-got-start-tag -(1,41): adoption-agency-1.3 -#document -| <html> -| <head> -| <body> -| <a> -| <li> -| <a> -| <style> -| <title> - -#data -<font></p><p><meta><title></title></font> -#errors -(1,6): expected-doctype-but-got-start-tag -(1,10): unexpected-end-tag -(1,41): adoption-agency-1.3 -#document -| <html> -| <head> -| <body> -| <font> -| <p> -| <p> -| <font> -| <meta> -| <title> - -#data -<a><center><title></title><a> -#errors -(1,3): expected-doctype-but-got-start-tag -(1,29): unexpected-start-tag-implies-end-tag -(1,29): adoption-agency-1.3 -(1,29): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <a> -| <center> -| <a> -| <title> -| <a> - -#data -<svg><title><div> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,17): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <svg svg> -| <svg title> -| <div> - -#data -<svg><title><rect><div> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,23): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <svg svg> -| <svg title> -| <rect> -| <div> - -#data -<svg><title><svg><div> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,22): unexpected-html-element-in-foreign-content -(1,22): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <svg svg> -| <svg title> -| <svg svg> -| <div> - -#data -<img <="" FAIL> -#errors -(1,6): invalid-character-in-attribute-name -(1,15): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <img> -| <="" -| fail="" - -#data -<ul><li><div id='foo'/>A</li><li>B<div>C</div></li></ul> -#errors -(1,4): expected-doctype-but-got-start-tag -(1,23): non-void-element-with-trailing-solidus -(1,29): end-tag-too-early -#document -| <html> -| <head> -| <body> -| <ul> -| <li> -| <div> -| id="foo" -| "A" -| <li> -| "B" -| <div> -| "C" - -#data -<svg><em><desc></em> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,9): unexpected-html-element-in-foreign-content -(1,20): adoption-agency-1.3 -#document -| <html> -| <head> -| <body> -| <svg svg> -| <em> -| <desc> - -#data -<svg><tfoot></mi><td> -#errors -(1,5): expected-doctype-but-got-start-tag -(1,17): unexpected-end-tag -(1,17): unexpected-end-tag -(1,21): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <svg svg> -| <svg tfoot> -| <svg td> - -#data -<math><mrow><mrow><mn>1</mn></mrow><mi>a</mi></mrow></math> -#errors -(1,6): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <math math> -| <math mrow> -| <math mrow> -| <math mn> -| "1" -| <math mi> -| "a" - -#data -<!doctype html><input type="hidden"><frameset> -#errors -(1,46): unexpected-start-tag -(1,46): eof-in-frameset -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!doctype html><input type="button"><frameset> -#errors -(1,46): unexpected-start-tag -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <input> -| type="button" diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/webkit02.dat b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/webkit02.dat deleted file mode 100644 index 1ce90dfe13d..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/webkit02.dat +++ /dev/null @@ -1,134 +0,0 @@ -#data -<foo bar=qux/> -#errors -(1,14): expected-doctype-but-got-start-tag -(1,14): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <foo> -| bar="qux/" - -#data -<p id="status"><noscript><strong>A</strong></noscript><span>B</span></p> -#errors -(1,15): expected-doctype-but-got-start-tag -#script-on -#document -| <html> -| <head> -| <body> -| <p> -| id="status" -| <noscript> -| "<strong>A</strong>" -| <span> -| "B" - -#data -<p id="status"><noscript><strong>A</strong></noscript><span>B</span></p> -#errors -(1,15): expected-doctype-but-got-start-tag -#script-off -#document -| <html> -| <head> -| <body> -| <p> -| id="status" -| <noscript> -| <strong> -| "A" -| <span> -| "B" - -#data -<div><sarcasm><div></div></sarcasm></div> -#errors -(1,5): expected-doctype-but-got-start-tag -#document -| <html> -| <head> -| <body> -| <div> -| <sarcasm> -| <div> - -#data -<html><body><img src="" border="0" alt="><div>A</div></body></html> -#errors -(1,6): expected-doctype-but-got-start-tag -(1,67): eof-in-attribute-value-double-quote -#document -| <html> -| <head> -| <body> - -#data -<table><td></tbody>A -#errors -(1,7): expected-doctype-but-got-start-tag -(1,11): unexpected-cell-in-table-body -(1,20): foster-parenting-character -(1,20): eof-in-table -#document -| <html> -| <head> -| <body> -| "A" -| <table> -| <tbody> -| <tr> -| <td> - -#data -<table><td></thead>A -#errors -(1,7): expected-doctype-but-got-start-tag -(1,11): unexpected-cell-in-table-body -(1,19): XXX-undefined-error -(1,20): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| "A" - -#data -<table><td></tfoot>A -#errors -(1,7): expected-doctype-but-got-start-tag -(1,11): unexpected-cell-in-table-body -(1,19): XXX-undefined-error -(1,20): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| "A" - -#data -<table><thead><td></tbody>A -#errors -(1,7): expected-doctype-but-got-start-tag -(1,18): unexpected-cell-in-table-body -(1,26): XXX-undefined-error -(1,27): expected-closing-tag-but-got-eof -#document -| <html> -| <head> -| <body> -| <table> -| <thead> -| <tr> -| <td> -| "A" diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/attributes.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/attributes.test deleted file mode 100755 index 2815976bff8..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/attributes.test +++ /dev/null @@ -1,1035 +0,0 @@ -{"tests": [ - -{"description": "allowed 'class' attribute on <span>", -"input": "<span class>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'contenteditable' attribute on <span>", -"input": "<span contenteditable>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'contextmenu' attribute on <span>", -"input": "<span contextmenu>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'dir' attribute on <span>", -"input": "<span dir>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'draggable' attribute on <span>", -"input": "<span draggable>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'id' attribute on <span>", -"input": "<span id>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'irrelevant' attribute on <span>", -"input": "<span irrelevant>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'lang' attribute on <span>", -"input": "<span lang>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'ref' attribute on <span>", -"input": "<span ref>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'tabindex' attribute on <span>", -"input": "<span tabindex>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'template' attribute on <span>", -"input": "<span template>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'title' attribute on <span>", -"input": "<span title>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'onabort' attribute on <span>", -"input": "<span onabort>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'onbeforeunload' attribute on <span>", -"input": "<span onbeforeunload>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'onblur' attribute on <span>", -"input": "<span onblur>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'onchange' attribute on <span>", -"input": "<span onchange>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'onclick' attribute on <span>", -"input": "<span onclick>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'oncontextmenu' attribute on <span>", -"input": "<span oncontextmenu>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'ondblclick' attribute on <span>", -"input": "<span ondblclick>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'ondrag' attribute on <span>", -"input": "<span ondrag>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'ondragend' attribute on <span>", -"input": "<span ondragend>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'ondragenter' attribute on <span>", -"input": "<span ondragenter>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'ondragleave' attribute on <span>", -"input": "<span ondragleave>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'ondragover' attribute on <span>", -"input": "<span ondragover>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'ondragstart' attribute on <span>", -"input": "<span ondragstart>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'ondrop' attribute on <span>", -"input": "<span ondrop>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'onerror' attribute on <span>", -"input": "<span onerror>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'onfocus' attribute on <span>", -"input": "<span onfocus>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'onkeydown' attribute on <span>", -"input": "<span onkeydown>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'onkeypress' attribute on <span>", -"input": "<span onkeypress>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'onkeyup' attribute on <span>", -"input": "<span onkeyup>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'onload' attribute on <span>", -"input": "<span onload>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'onmessage' attribute on <span>", -"input": "<span onmessage>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'onmousedown' attribute on <span>", -"input": "<span onmousedown>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'onmousemove' attribute on <span>", -"input": "<span onmousemove>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'onmouseout' attribute on <span>", -"input": "<span onmouseout>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'onmouseover' attribute on <span>", -"input": "<span onmouseover>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'onmouseup' attribute on <span>", -"input": "<span onmouseup>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'onmousewheel' attribute on <span>", -"input": "<span onmousewheel>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'onresize' attribute on <span>", -"input": "<span onresize>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'onscroll' attribute on <span>", -"input": "<span onscroll>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'onselect' attribute on <span>", -"input": "<span onselect>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'onsubmit' attribute on <span>", -"input": "<span onsubmit>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'onunload' attribute on <span>", -"input": "<span onunload>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'type' attribute on <command>", -"input": "<command type>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'label' attribute on <command>", -"input": "<command label>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'icon' attribute on <command>", -"input": "<command icon>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'hidden' attribute on <command>", -"input": "<command hidden>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'disabled' attribute on <command>", -"input": "<command disabled>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'checked' attribute on <command>", -"input": "<command checked>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'radiogroup' attribute on <command>", -"input": "<command radiogroup>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'default' attribute on <command>", -"input": "<command default>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'value' attribute on <meter>", -"input": "<meter value>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'min' attribute on <meter>", -"input": "<meter min>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'low' attribute on <meter>", -"input": "<meter low>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'high' attribute on <meter>", -"input": "<meter high>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'max' attribute on <meter>", -"input": "<meter max>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'optimum' attribute on <meter>", -"input": "<meter optimum>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'cite' attribute on <ins>", -"input": "<ins cite>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'datetime' attribute on <ins>", -"input": "<ins datetime>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'multiple' attribute on <datagrid>", -"input": "<datagrid multiple>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'disabled' attribute on <datagrid>", -"input": "<datagrid disabled>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'name' attribute on <meta>", -"input": "<meta name>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'http-equiv' attribute on <meta>", -"input": "<meta http-equiv>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'content' attribute on <meta>", -"input": "<meta content>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'charset' attribute on <meta>", -"input": "<meta charset>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'src' attribute on <video>", -"input": "<video src>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'autoplay' attribute on <video>", -"input": "<video autoplay>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'start' attribute on <video>", -"input": "<video start>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'loopstart' attribute on <video>", -"input": "<video loopstart>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'loopend' attribute on <video>", -"input": "<video loopend>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'end' attribute on <video>", -"input": "<video end>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'loopcount' attribute on <video>", -"input": "<video loopcount>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'controls' attribute on <video>", -"input": "<video controls>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'style' attribute on <font>", -"input": "<font style>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'media' attribute on <style>", -"input": "<style media>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'type' attribute on <style>", -"input": "<style type>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'scoped' attribute on <style>", -"input": "<style scoped>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'alt' attribute on <img>", -"input": "<img alt>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'src' attribute on <img>", -"input": "<img src>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'usemap' attribute on <img>", -"input": "<img usemap>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'ismap' attribute on <img>", -"input": "<img ismap>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'height' attribute on <img>", -"input": "<img height>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'width' attribute on <img>", -"input": "<img width>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'alt' attribute on <area>", -"input": "<area alt>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'coords' attribute on <area>", -"input": "<area coords>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'shape' attribute on <area>", -"input": "<area shape>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'href' attribute on <area>", -"input": "<area href>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'target' attribute on <area>", -"input": "<area target>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'ping' attribute on <area>", -"input": "<area ping>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'rel' attribute on <area>", -"input": "<area rel>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'media' attribute on <area>", -"input": "<area media>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'hreflang' attribute on <area>", -"input": "<area hreflang>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'type' attribute on <area>", -"input": "<area type>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'type' attribute on <menu>", -"input": "<menu type>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'label' attribute on <menu>", -"input": "<menu label>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'autosubmit' attribute on <menu>", -"input": "<menu autosubmit>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'name' attribute on <param>", -"input": "<param name>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'value' attribute on <param>", -"input": "<param value>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'value' attribute on <li>", -"input": "<li value>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'src' attribute on <source>", -"input": "<source src>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'type' attribute on <source>", -"input": "<source type>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'media' attribute on <source>", -"input": "<source media>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'xmlns' attribute on <html>", -"input": "<html xmlns>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'open' attribute on <details>", -"input": "<details open>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'colspan' attribute on <th>", -"input": "<th colspan>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'rowspan' attribute on <th>", -"input": "<th rowspan>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'scope' attribute on <th>", -"input": "<th scope>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'value' attribute on <progress>", -"input": "<progress value>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'max' attribute on <progress>", -"input": "<progress max>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'colspan' attribute on <td>", -"input": "<td colspan>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'rowspan' attribute on <td>", -"input": "<td rowspan>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'cite' attribute on <blockquote>", -"input": "<blockquote cite>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'data' attribute on <object>", -"input": "<object data>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'type' attribute on <object>", -"input": "<object type>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'usemap' attribute on <object>", -"input": "<object usemap>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'height' attribute on <object>", -"input": "<object height>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'width' attribute on <object>", -"input": "<object width>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'height' attribute on <canvas>", -"input": "<canvas height>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'width' attribute on <canvas>", -"input": "<canvas width>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'href' attribute on <base>", -"input": "<base href>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'target' attribute on <base>", -"input": "<base target>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'href' attribute on <link>", -"input": "<link href>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'rel' attribute on <link>", -"input": "<link rel>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'media' attribute on <link>", -"input": "<link media>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'hreflang' attribute on <link>", -"input": "<link hreflang>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'type' attribute on <link>", -"input": "<link type>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'href' attribute on <a>", -"input": "<a href>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'target' attribute on <a>", -"input": "<a target>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'ping' attribute on <a>", -"input": "<a ping>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'rel' attribute on <a>", -"input": "<a rel>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'media' attribute on <a>", -"input": "<a media>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'hreflang' attribute on <a>", -"input": "<a hreflang>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'type' attribute on <a>", -"input": "<a type>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'src' attribute on <event-source>", -"input": "<event-source src>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'start' attribute on <ol>", -"input": "<ol start>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'span' attribute on <colgroup>", -"input": "<colgroup span>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'src' attribute on <script>", -"input": "<script src>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'defer' attribute on <script>", -"input": "<script defer>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'async' attribute on <script>", -"input": "<script async>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'type' attribute on <script>", -"input": "<script type>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'cite' attribute on <q>", -"input": "<q cite>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'cite' attribute on <del>", -"input": "<del cite>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'datetime' attribute on <del>", -"input": "<del datetime>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'src' attribute on <iframe>", -"input": "<iframe src>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'datetime' attribute on <time>", -"input": "<time datetime>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'src' attribute on <audio>", -"input": "<audio src>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'autoplay' attribute on <audio>", -"input": "<audio autoplay>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'start' attribute on <audio>", -"input": "<audio start>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'loopstart' attribute on <audio>", -"input": "<audio loopstart>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'loopend' attribute on <audio>", -"input": "<audio loopend>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'end' attribute on <audio>", -"input": "<audio end>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'loopcount' attribute on <audio>", -"input": "<audio loopcount>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'controls' attribute on <audio>", -"input": "<audio controls>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'span' attribute on <col>", -"input": "<col span>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'disabled' attribute on <fieldset>", -"input": "<fieldset disabled>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'form' attribute on <fieldset>", -"input": "<fieldset form>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'onsubmit' attribute on <form>", -"input": "<form onsubmit>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'name' attribute on <form>", -"input": "<form name>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'onreset' attribute on <form>", -"input": "<form onreset>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'accept' attribute on <form>", -"input": "<form accept>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'replace' attribute on <form>", -"input": "<form replace>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'accept-charset' attribute on <form>", -"input": "<form accept-charset>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'action' attribute on <form>", -"input": "<form action>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'data' attribute on <form>", -"input": "<form data>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'method' attribute on <form>", -"input": "<form method>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'enctype' attribute on <form>", -"input": "<form enctype>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'rows' attribute on <textarea>", -"input": "<textarea rows>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'name' attribute on <textarea>", -"input": "<textarea name>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'form' attribute on <textarea>", -"input": "<textarea form>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'required' attribute on <textarea>", -"input": "<textarea required>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'cols' attribute on <textarea>", -"input": "<textarea cols>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'accept' attribute on <textarea>", -"input": "<textarea accept>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'disabled' attribute on <textarea>", -"input": "<textarea disabled>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'readonly' attribute on <textarea>", -"input": "<textarea readonly>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'wrap' attribute on <textarea>", -"input": "<textarea wrap>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'autofocus' attribute on <textarea>", -"input": "<textarea autofocus>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'maxlength' attribute on <textarea>", -"input": "<textarea maxlength>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'a' attribute on <datalist>", -"input": "<datalist a>", -"fail-unless": "unknown-attribute"}, - -{"description": "allowed 'd' attribute on <datalist>", -"input": "<datalist d>", -"fail-unless": "unknown-attribute"}, - -{"description": "allowed 't' attribute on <datalist>", -"input": "<datalist t>", -"fail-unless": "unknown-attribute"}, - -{"description": "allowed 'action' attribute on <button>", -"input": "<button action>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'enctype' attribute on <button>", -"input": "<button enctype>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'method' attribute on <button>", -"input": "<button method>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'replace' attribute on <button>", -"input": "<button replace>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'template' attribute on <button>", -"input": "<button template>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'name' attribute on <button>", -"input": "<button name>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'form' attribute on <button>", -"input": "<button form>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'value' attribute on <button>", -"input": "<button value>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'disabled' attribute on <button>", -"input": "<button disabled>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'autofocus' attribute on <button>", -"input": "<button autofocus>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'type' attribute on <button>", -"input": "<button type>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'accesskey' attribute on <label>", -"input": "<label accesskey>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'form' attribute on <label>", -"input": "<label form>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'for' attribute on <label>", -"input": "<label for>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'disabled' attribute on <optgroup>", -"input": "<optgroup disabled>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'label' attribute on <optgroup>", -"input": "<optgroup label>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'onforminput' attribute on <output>", -"input": "<output onforminput>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'onformchange' attribute on <output>", -"input": "<output onformchange>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'name' attribute on <output>", -"input": "<output name>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'form' attribute on <output>", -"input": "<output form>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'for' attribute on <output>", -"input": "<output for>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'multiple' attribute on <select>", -"input": "<select multiple>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'name' attribute on <select>", -"input": "<select name>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'form' attribute on <select>", -"input": "<select form>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'accesskey' attribute on <select>", -"input": "<select accesskey>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'disabled' attribute on <select>", -"input": "<select disabled>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'autofocus' attribute on <select>", -"input": "<select autofocus>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'data' attribute on <select>", -"input": "<select data>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'size' attribute on <select>", -"input": "<select size>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'selected' attribute on <option>", -"input": "<option selected>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'value' attribute on <option>", -"input": "<option value>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'label' attribute on <option>", -"input": "<option label>", -"fail-if": "unknown-attribute"}, - -{"description": "allowed 'disabled' attribute on <option>", -"input": "<option disabled>", -"fail-if": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <command>", -"input": "<command foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <meter>", -"input": "<meter foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <ins>", -"input": "<ins foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <datagrid>", -"input": "<datagrid foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <meta>", -"input": "<meta foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <video>", -"input": "<video foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <font>", -"input": "<font foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <style>", -"input": "<style foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <img>", -"input": "<img foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <area>", -"input": "<area foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <menu>", -"input": "<menu foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <param>", -"input": "<param foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <li>", -"input": "<li foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <source>", -"input": "<source foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <html>", -"input": "<html foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <details>", -"input": "<details foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <th>", -"input": "<th foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <progress>", -"input": "<progress foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <td>", -"input": "<td foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <blockquote>", -"input": "<blockquote foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <object>", -"input": "<object foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <canvas>", -"input": "<canvas foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <base>", -"input": "<base foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <link>", -"input": "<link foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <a>", -"input": "<a foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <event-source>", -"input": "<event-source foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <ol>", -"input": "<ol foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <colgroup>", -"input": "<colgroup foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <script>", -"input": "<script foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <q>", -"input": "<q foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <del>", -"input": "<del foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <iframe>", -"input": "<iframe foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <time>", -"input": "<time foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <audio>", -"input": "<audio foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <col>", -"input": "<col foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "missing required 'href' attribute on <link>", -"input": "<link rel>", -"fail-unless": "missing-required-attribute"}, - -{"description": "missing required 'rel' attribute on <link>", -"input": "<link href>", -"fail-unless": "missing-required-attribute"}, - -{"description": "missing required 'dir' attribute on <bdo>", -"input": "<bdo>", -"fail-unless": "missing-required-attribute"}, - -{"description": "missing required 'src' attribute on <img>", -"input": "<img>", -"fail-unless": "missing-required-attribute"}, - -{"description": "missing required 'src' attribute on <embed>", -"input": "<embed>", -"fail-unless": "missing-required-attribute"}, - -{"description": "missing required 'name' attribute on <param>", -"input": "<param value>", -"fail-unless": "missing-required-attribute"}, - -{"description": "missing required 'value' attribute on <param>", -"input": "<param name>", -"fail-unless": "missing-required-attribute"}, - -{"description": "missing required 'src' attribute on <source>", -"input": "<source>", -"fail-unless": "missing-required-attribute"}, - -{"description": "missing required 'id' attribute on <map>", -"input": "<map>", -"fail-unless": "missing-required-attribute"} - -]} diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/base-href-attribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/base-href-attribute.test deleted file mode 100755 index 83a626a79a3..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/base-href-attribute.test +++ /dev/null @@ -1,787 +0,0 @@ -{"tests": [ - -{"description": "base href contains invalid URI due to leading space", -"input": "<base href=' http://www.example.com/'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to trailing space", -"input": "<base href='http://www.example.com/ '", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to space in scheme", -"input": "<base href='ht tp://www.example.com/'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to space in domain", -"input": "<base href='http://www.example. com/'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to space in path", -"input": "<base href='http://www.example.com/a b'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to space in fragment", -"input": "<base href='http://www.example.com/a#b c'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to space in query", -"input": "<base href='http://www.example.com/a?b c'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to leading tab", -"input": "<base href='\thttp://www.example.com/'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to trailing tab", -"input": "<base href='http://www.example.com/\t'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to tab in scheme", -"input": "<base href='ht\ttp://www.example.com/'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to tab in domain", -"input": "<base href='http://www.example.\tcom/'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to tab in path", -"input": "<base href='http://www.example.com/a\tb'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to tab in fragment", -"input": "<base href='http://www.example.com/a#b\tc'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to tab in query", -"input": "<base href='http://www.example.com/a?b\tc'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to leading LF", -"input": "<base href='\nhttp://www.example.com/'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to LF in scheme", -"input": "<base href='ht\ntp://www.example.com/'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to LF in domain", -"input": "<base href='http://www.example.\ncom/'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to LF in path", -"input": "<base href='http://www.example.com/a\nb'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to LF in fragment", -"input": "<base href='http://www.example.com/a#b\nc'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to LF in query", -"input": "<base href='http://www.example.com/a?b\nc'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to leading LT", -"input": "<base href='\u000Bhttp://www.example.com/'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to trailing LT", -"input": "<base href='http://www.example.com/\u000B'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to LT in scheme", -"input": "<base href='ht\u000Btp://www.example.com/'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to LT in domain", -"input": "<base href='http://www.example.\u000Bcom/'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to LT in path", -"input": "<base href='http://www.example.com/a\u000Bb'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to LT in fragment", -"input": "<base href='http://www.example.com/a#b\u000Bc'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to LT in query", -"input": "<base href='http://www.example.com/a?b\u000Bc'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to leading FF", -"input": "<base href='\u000Chttp://www.example.com/'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to trailing FF", -"input": "<base href='http://www.example.com/\u000C'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to FF in scheme", -"input": "<base href='ht\u000Ctp://www.example.com/'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to FF in domain", -"input": "<base href='http://www.example.\u000Ccom/'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to FF in path", -"input": "<base href='http://www.example.com/a\u000Cb'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to FF in fragment", -"input": "<base href='http://www.example.com/a#b\u000Cc'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to FF in query", -"input": "<base href='http://www.example.com/a?b\u000Cc'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to leading CR", -"input": "<base href='\rhttp://www.example.com/'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to CR in scheme", -"input": "<base href='ht\rtp://www.example.com/'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to CR in domain", -"input": "<base href='http://www.example.\rcom/'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to CR in path", -"input": "<base href='http://www.example.com/a\rb'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to CR in fragment", -"input": "<base href='http://www.example.com/a#b\rc'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains invalid URI due to CR in query", -"input": "<base href='http://www.example.com/a?b\rc'", -"fail-unless": "invalid-uri-char"}, - -{"description": "base href contains valid URI scheme 'ftp'", -"input": "<base href='ftp://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'http'", -"input": "<base href='http://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'gopher'", -"input": "<base href='gopher://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'mailto'", -"input": "<base href='mailto://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'news'", -"input": "<base href='news://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'nntp'", -"input": "<base href='nntp://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'telnet'", -"input": "<base href='telnet://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'wais'", -"input": "<base href='wais://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'file'", -"input": "<base href='file://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'prospero'", -"input": "<base href='prospero://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'z39.50s'", -"input": "<base href='z39.50s://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'z39.50r'", -"input": "<base href='z39.50r://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'cid'", -"input": "<base href='cid://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'mid'", -"input": "<base href='mid://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'vemmi'", -"input": "<base href='vemmi://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'service'", -"input": "<base href='service://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'imap'", -"input": "<base href='imap://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'nfs'", -"input": "<base href='nfs://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'acap'", -"input": "<base href='acap://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'rtsp'", -"input": "<base href='rtsp://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'tip'", -"input": "<base href='tip://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'pop'", -"input": "<base href='pop://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'data'", -"input": "<base href='data://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'dav'", -"input": "<base href='dav://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'opaquelocktoken'", -"input": "<base href='opaquelocktoken://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'sip'", -"input": "<base href='sip://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'sips'", -"input": "<base href='sips://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'tel'", -"input": "<base href='tel://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'fax'", -"input": "<base href='fax://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'modem'", -"input": "<base href='modem://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'ldap'", -"input": "<base href='ldap://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'https'", -"input": "<base href='https://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'soap.beep'", -"input": "<base href='soap.beep://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'soap.beeps'", -"input": "<base href='soap.beeps://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'xmlrpc.beep'", -"input": "<base href='xmlrpc.beep://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'xmlrpc.beeps'", -"input": "<base href='xmlrpc.beeps://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'urn'", -"input": "<base href='urn://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'go'", -"input": "<base href='go://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'h323'", -"input": "<base href='h323://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'ipp'", -"input": "<base href='ipp://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'tftp'", -"input": "<base href='tftp://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'mupdate'", -"input": "<base href='mupdate://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'pres'", -"input": "<base href='pres://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'im'", -"input": "<base href='im://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'mtqp'", -"input": "<base href='mtqp://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'iris.beep'", -"input": "<base href='iris.beep://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'dict'", -"input": "<base href='dict://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'snmp'", -"input": "<base href='snmp://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'crid'", -"input": "<base href='crid://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'tag'", -"input": "<base href='tag://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'dns'", -"input": "<base href='dns://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'info'", -"input": "<base href='info://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'javascript'", -"input": "<base href='javascript:foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'FTP'", -"input": "<base href='FTP://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'HTTP'", -"input": "<base href='HTTP://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'GOPHER'", -"input": "<base href='GOPHER://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'MAILTO'", -"input": "<base href='MAILTO://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'NEWS'", -"input": "<base href='NEWS://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'NNTP'", -"input": "<base href='NNTP://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'TELNET'", -"input": "<base href='TELNET://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'WAIS'", -"input": "<base href='WAIS://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'FILE'", -"input": "<base href='FILE://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'PROSPERO'", -"input": "<base href='PROSPERO://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'Z39.50S'", -"input": "<base href='Z39.50S://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'Z39.50R'", -"input": "<base href='Z39.50R://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'CID'", -"input": "<base href='CID://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'MID'", -"input": "<base href='MID://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'VEMMI'", -"input": "<base href='VEMMI://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'SERVICE'", -"input": "<base href='SERVICE://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'IMAP'", -"input": "<base href='IMAP://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'NFS'", -"input": "<base href='NFS://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'ACAP'", -"input": "<base href='ACAP://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'RTSP'", -"input": "<base href='RTSP://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'TIP'", -"input": "<base href='TIP://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'POP'", -"input": "<base href='POP://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'DATA'", -"input": "<base href='DATA://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'DAV'", -"input": "<base href='DAV://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'OPAQUELOCKTOKEN'", -"input": "<base href='OPAQUELOCKTOKEN://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'SIP'", -"input": "<base href='SIP://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'SIPS'", -"input": "<base href='SIPS://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'TEL'", -"input": "<base href='TEL://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'FAX'", -"input": "<base href='FAX://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'MODEM'", -"input": "<base href='MODEM://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'LDAP'", -"input": "<base href='LDAP://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'HTTPS'", -"input": "<base href='HTTPS://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'SOAP.BEEP'", -"input": "<base href='SOAP.BEEP://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'SOAP.BEEPS'", -"input": "<base href='SOAP.BEEPS://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'XMLRPC.BEEP'", -"input": "<base href='XMLRPC.BEEP://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'XMLRPC.BEEPS'", -"input": "<base href='XMLRPC.BEEPS://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'URN'", -"input": "<base href='URN://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'GO'", -"input": "<base href='GO://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'H323'", -"input": "<base href='H323://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'IPP'", -"input": "<base href='IPP://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'TFTP'", -"input": "<base href='TFTP://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'MUPDATE'", -"input": "<base href='MUPDATE://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'PRES'", -"input": "<base href='PRES://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'IM'", -"input": "<base href='IM://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'MTQP'", -"input": "<base href='MTQP://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'IRIS.BEEP'", -"input": "<base href='IRIS.BEEP://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'DICT'", -"input": "<base href='DICT://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'SNMP'", -"input": "<base href='SNMP://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'CRID'", -"input": "<base href='CRID://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'TAG'", -"input": "<base href='TAG://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'DNS'", -"input": "<base href='DNS://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'INFO'", -"input": "<base href='INFO://foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'JAVASCRIPT'", -"input": "<base href='JAVASCRIPT:foo'", -"fail-if": "invalid-scheme"}, - -{"description": "base href contains valid URI scheme 'foo'", -"input": "<base href='foo:bar'", -"fail-unless": "invalid-scheme"}, - -{"description": "base href contains valid URI 'g'", -"input": "<base href='g'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI './g'", -"input": "<base href='./g'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI 'g/'", -"input": "<base href='g/'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI '/g'", -"input": "<base href='/g'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI '//g'", -"input": "<base href='//g'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI '?y'", -"input": "<base href='?y'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI 'g?y'", -"input": "<base href='g?y'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI '#s'", -"input": "<base href='#s'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI 'g#s'", -"input": "<base href='g#s'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI 'g?y#s'", -"input": "<base href='g?y#s'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI ';x'", -"input": "<base href=';x'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI 'g;x'", -"input": "<base href='g;x'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI 'g;x?y#s'", -"input": "<base href='g;x?y#s'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI '.'", -"input": "<base href='.'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI './'", -"input": "<base href='./'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI '..'", -"input": "<base href='..'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI '../'", -"input": "<base href='../'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI '../g'", -"input": "<base href='../g'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI '../..'", -"input": "<base href='../..'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI '../../'", -"input": "<base href='../../'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI '../../g'", -"input": "<base href='../../g'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI '../../../g'", -"input": "<base href='../../../g'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI '../../../../g'", -"input": "<base href='../../../../g'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI '/./g'", -"input": "<base href='/./g'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI '/../g'", -"input": "<base href='/../g'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI 'g.'", -"input": "<base href='g.'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI '.g'", -"input": "<base href='.g'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI 'g..'", -"input": "<base href='g..'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI '..g'", -"input": "<base href='..g'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI './../g'", -"input": "<base href='./../g'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI './g/.'", -"input": "<base href='./g/.'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI 'g/./h'", -"input": "<base href='g/./h'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI 'g/../h'", -"input": "<base href='g/../h'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI 'g;x=1/./y'", -"input": "<base href='g;x=1/./y'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI 'g;x=1/../y'", -"input": "<base href='g;x=1/../y'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI 'g?y/./x'", -"input": "<base href='g?y/./x'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI 'g?y/../x'", -"input": "<base href='g?y/../x'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI 'g#s/./x'", -"input": "<base href='g#s/./x'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI 'g#s/../x'", -"input": "<base href='g#s/../x'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI './g:h'", -"input": "<base href='./g:h'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI 'http://www.w%33.org'", -"input": "<base href='http://www.w%33.org'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI 'http://r%C3%A4ksm%C3%B6rg%C3%A5s.josefsson.org'", -"input": "<base href='http://r%C3%A4ksm%C3%B6rg%C3%A5s.josefsson.org'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI 'http://xn--rksmrgs-5wao1o.josefsson.org'", -"input": "<base href='http://xn--rksmrgs-5wao1o.josefsson.org'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI 'http://%E7%B4%8D%E8%B1%86.w3.mag.keio.ac.jp'", -"input": "<base href='http://%E7%B4%8D%E8%B1%86.w3.mag.keio.ac.jp'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI 'http://xn--99zt52a.w3.mag.keio.ac.jp'", -"input": "<base href='http://xn--99zt52a.w3.mag.keio.ac.jp'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI 'http://www.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.w3.mag.keio.ac.jp/'", -"input": "<base href='http://www.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.w3.mag.keio.ac.jp/'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI 'http://www.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.w3.mag.keio.ac.jp/'", -"input": "<base href='http://www.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.w3.mag.keio.ac.jp/'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI 'http://%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.w3.mag.keio.ac.jp/'", -"input": "<base href='http://%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.w3.mag.keio.ac.jp/'", -"fail-if": "invalid-attribute-value"}, - -{"description": "base href contains valid URI 'http://xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.w3.mag.keio.ac.jp/'", -"input": "<base href='http://xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.w3.mag.keio.ac.jp/'", -"fail-if": "invalid-attribute-value"} - -]} diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/base-target-attribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/base-target-attribute.test deleted file mode 100755 index 6d4db20b2a0..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/base-target-attribute.test +++ /dev/null @@ -1,35 +0,0 @@ -{"tests": [ - -{"description": "valid base target attribute '_self'", -"input": "<base target=_self>", -"fail-if": "invalid-browsing-context"}, - -{"description": "valid base target attribute '_parent'", -"input": "<base target=_parent>", -"fail-if": "invalid-browsing-context"}, - -{"description": "valid base target attribute '_top'", -"input": "<base target=_top>", -"fail-if": "invalid-browsing-context"}, - -{"description": "valid base target attribute '_blank'", -"input": "<base target=_blank>", -"fail-if": "invalid-browsing-context"}, - -{"description": "valid base target attribute 'foo'", -"input": "<base target=foo>", -"fail-if": "invalid-browsing-context"}, - -{"description": "base target attribute may be blank", -"input": "<base target>", -"fail-if": "invalid-browsing-context"}, - -{"description": "invalid base target attribute '_'", -"input": "<base target=_>", -"fail-unless": "invalid-browsing-context"}, - -{"description": "invalid base target attribute '_foo'", -"input": "<base target=_foo>", -"fail-unless": "invalid-browsing-context"} - -]}
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/blockquote-cite-attribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/blockquote-cite-attribute.test deleted file mode 100755 index 153c6e6af1d..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/blockquote-cite-attribute.test +++ /dev/null @@ -1,7 +0,0 @@ -{"tests": [ - -{"description": "blockquote cite contains invalid URI due to space in domain", -"input": "<blockquote cite='http://www.example. com/'", -"fail-unless": "invalid-uri-char"} - -]}
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/classattribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/classattribute.test deleted file mode 100755 index 0fe703fcddc..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/classattribute.test +++ /dev/null @@ -1,152 +0,0 @@ -{"tests": [ - -{"description": "valid single class attribute value", -"input": "<span class=a>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid single class attribute value with leading space", -"input": "<span class=' a'>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid single class attribute value with trailing space", -"input": "<span class='a '>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid single class attribute value with leading and trailing space", -"input": "<span class=' a '>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid single class attribute value with leading tab", -"input": "<span class='\ta'>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid single class attribute value with trailing tab", -"input": "<span class='a\t'>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid single class attribute value with leading and trailing tab", -"input": "<span class='\ta\t'>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid single class attribute value with leading LF", -"input": "<span class='\na'>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid single class attribute value with trailing LF", -"input": "<span class='a\n'>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid single class attribute value with leading and trailing LF", -"input": "<span class='\na\n'>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid single class attribute value with leading LT", -"input": "<span class='\u000Ba'>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid single class attribute value with trailing LT", -"input": "<span class='a\u000B'>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid single class attribute value with leading and trailing LT", -"input": "<span class='\u000Ba\u000B'>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid single class attribute value with leading FF", -"input": "<span class='\u000Ca'>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid single class attribute value with trailing FF", -"input": "<span class='a\u000C'>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid single class attribute value with leading and trailing FF", -"input": "<span class='\u000Ca\u000C'>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid single class attribute value with leading CR", -"input": "<span class='\ra'>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid single class attribute value with trailing CR", -"input": "<span class='a\r'>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid single class attribute value with leading and trailing CR", -"input": "<span class='\ra\r'>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid double class attribute value separated by space", -"input": "<span class='a b'>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid double class attribute value separated by tab", -"input": "<span class='a\tb'>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid double class attribute value separated by LF", -"input": "<span class='a\nb'>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid double class attribute value separated by LT", -"input": "<span class='a\u000Bb'>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid double class attribute value separated by FF", -"input": "<span class='a\u000Cb'>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid double class attribute value separated by CR", -"input": "<span class='a\rb'>", -"fail-if": "invalid-attribute-value"}, - -{"description": "invalid duplicated class attribute value separated by space", -"input": "<span class='a a'>", -"fail-unless": "invalid-attribute-value"}, - -{"description": "invalid duplicated class attribute value separated by tab", -"input": "<span class='a\ta'>", -"fail-unless": "invalid-attribute-value"}, - -{"description": "invalid duplicated class attribute value separated by LF", -"input": "<span class='a\na'>", -"fail-unless": "invalid-attribute-value"}, - -{"description": "invalid duplicated class attribute value separated by LT", -"input": "<span class='a\u000Ba'>", -"fail-unless": "invalid-attribute-value"}, - -{"description": "invalid duplicated class attribute value separated by FF", -"input": "<span class='a\u000Ca'>", -"fail-unless": "invalid-attribute-value"}, - -{"description": "invalid duplicated class attribute value separated by CR", -"input": "<span class='a\ra'>", -"fail-unless": "duplicate-value-in-token-list"}, - -{"description": "invalid duplicated class attribute value separated by space", -"input": "<span class='a a'>", -"fail-unless": "duplicate-value-in-token-list"}, - -{"description": "invalid duplicated class attribute value separated by tab", -"input": "<span class='a\ta'>", -"fail-unless": "duplicate-value-in-token-list"}, - -{"description": "invalid duplicated class attribute value separated by LF", -"input": "<span class='a\na'>", -"fail-unless": "duplicate-value-in-token-list"}, - -{"description": "invalid duplicated class attribute value separated by LT", -"input": "<span class='a\u000Ba'>", -"fail-unless": "duplicate-value-in-token-list"}, - -{"description": "invalid duplicated class attribute value separated by FF", -"input": "<span class='a\u000Ca'>", -"fail-unless": "duplicate-value-in-token-list"}, - -{"description": "invalid duplicated class attribute value separated by CR", -"input": "<span class='a\ra'>", -"fail-unless": "duplicate-value-in-token-list"} - -]} - diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/contenteditableattribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/contenteditableattribute.test deleted file mode 100755 index b6ae1d27e7e..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/contenteditableattribute.test +++ /dev/null @@ -1,59 +0,0 @@ -{"tests": [ - -{"description": "valid contenteditable attribute value 'true'", -"input": "<span contenteditable=true>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid contenteditable attribute value 'TRUE'", -"input": "<span contenteditable=TRUE>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid contenteditable attribute value 'TrUe'", -"input": "<span contenteditable=TrUe>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid contenteditable attribute value 'false'", -"input": "<span contenteditable=false>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid contenteditable attribute value 'FALSE'", -"input": "<span contenteditable=FALSE>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid contenteditable attribute value 'FalSe'", -"input": "<span contenteditable=FalSe>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid contenteditable attribute value ''", -"input": "<span contenteditable=''>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid contenteditable attribute value (not specified)", -"input": "<span contenteditable>", -"fail-if": "invalid-attribute-value"}, - -{"description": "invalid contenteditable attribute value 'foo'", -"input": "<span contenteditable=foo>", -"fail-unless": "invalid-enumerated-value"}, - -{"description": "invalid contenteditable attribute value '0'", -"input": "<span contenteditable=0>", -"fail-unless": "invalid-enumerated-value"}, - -{"description": "invalid contenteditable attribute value '1'", -"input": "<span contenteditable=1>", -"fail-unless": "invalid-enumerated-value"}, - -{"description": "invalid contenteditable attribute value 'yes'", -"input": "<span contenteditable=yes>", -"fail-unless": "invalid-enumerated-value"}, - -{"description": "invalid contenteditable attribute value 'no'", -"input": "<span contenteditable=no>", -"fail-unless": "invalid-enumerated-value"}, - -{"description": "invalid contenteditable attribute value 'inherit'", -"input": "<span contenteditable=inherit>", -"fail-unless": "invalid-enumerated-value"} - -]}
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/contextmenuattribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/contextmenuattribute.test deleted file mode 100755 index 59e4397c911..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/contextmenuattribute.test +++ /dev/null @@ -1,115 +0,0 @@ -{"tests": [ - -{"description": "contextmenu points to valid ID earlier", -"input": "<menu id=a><span contextmenu=a>", -"fail-if": "id-does-not-exist"}, - -{"description": "contextmenu points to valid ID later", -"input": "<span contextmenu=a><menu id=a>", -"fail-if": "id-does-not-exist"}, - -{"description": "contextmenu points to non-existent ID", -"input": "<span contextmenu=a>", -"fail-unless": "id-does-not-exist"}, - -{"description": "contextmenu points to ID on non-menu element", -"input": "<span id=a><span contextmenu=a>", -"fail-unless": "contextmenu-must-point-to-menu"}, - -{"description": "uppercase contextmenu points to ID on non-menu element", -"input": "<span id=a><span CONTEXTMENU=a>", -"fail-unless": "contextmenu-must-point-to-menu"}, - -{"description": "valid ID 'a'", -"input": "<span contextmenu=a>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid ID '1'", -"input": "<span contextmenu=1>", -"fail-if": "invalid-attribute-value"}, - -{"description": "wacky but valid ID", -"input": "<span contextmenu='<html><head><title>a</title></head><body><p>b</p></body></html>'>", -"fail-if": "invalid-attribute-value"}, - -{"description": "invalid blank ID", -"input": "<span id>", -"fail-unless": "attribute-value-can-not-be-blank"}, - -{"description": "invalid blank ID with quotes", -"input": "<span contextmenu=''>", -"fail-unless": "attribute-value-can-not-be-blank"}, - -{"description": "invalid ID because of leading space", -"input": "<span contextmenu=' a'>", -"fail-unless": "space-in-id"}, - -{"description": "invalid ID because of trailing space", -"input": "<span contextmenu='a '>", -"fail-unless": "space-in-id"}, - -{"description": "invalid ID because of space in value", -"input": "<span contextmenu='a b'>", -"fail-unless": "space-in-id"}, - -{"description": "invalid ID because of leading tab", -"input": "<span contextmenu='\ta'>", -"fail-unless": "space-in-id"}, - -{"description": "invalid ID because of trailing tab", -"input": "<span contextmenu='a\t'>", -"fail-unless": "space-in-id"}, - -{"description": "invalid ID because of tab in value", -"input": "<span contextmenu='a\tb'>", -"fail-unless": "space-in-id"}, - -{"description": "invalid ID because of leading LF", -"input": "<span contextmenu='\na'>", -"fail-unless": "space-in-id"}, - -{"description": "invalid ID because of trailing LF", -"input": "<span contextmenu='a\n'>", -"fail-unless": "space-in-id"}, - -{"description": "invalid ID because of LF in value", -"input": "<span contextmenu='a\nb'>", -"fail-unless": "space-in-id"}, - -{"description": "invalid ID because of leading LT", -"input": "<span contextmenu='\u000Ba'>", -"fail-unless": "space-in-id"}, - -{"description": "invalid ID because of trailing LT", -"input": "<span contextmenu='a\u000B'>", -"fail-unless": "space-in-id"}, - -{"description": "invalid ID because of LT in value", -"input": "<span contextmenu='a\u000Bb'>", -"fail-unless": "space-in-id"}, - -{"description": "invalid ID because of leading FF", -"input": "<span contextmenu='\u000Ca'>", -"fail-unless": "space-in-id"}, - -{"description": "invalid ID because of trailing FF", -"input": "<span contextmenu='a\u000C'>", -"fail-unless": "space-in-id"}, - -{"description": "invalid ID because of FF in value", -"input": "<span contextmenu='a\u000Cb'>", -"fail-unless": "space-in-id"}, - -{"description": "invalid ID because of leading CR", -"input": "<span contextmenu='\ra'>", -"fail-unless": "space-in-id"}, - -{"description": "invalid ID because of trailing CR", -"input": "<span contextmenu='a\r'>", -"fail-unless": "space-in-id"}, - -{"description": "invalid ID because of CR in value", -"input": "<span contextmenu='a\rb'>", -"fail-unless": "space-in-id"} - -]} diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/dirattribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/dirattribute.test deleted file mode 100755 index 71883dc1c34..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/dirattribute.test +++ /dev/null @@ -1,59 +0,0 @@ -{"tests": [ - -{"description": "valid dir attribute value 'ltr'", -"input": "<span dir=ltr>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid dir attribute value 'LTR'", -"input": "<span dir=LTR>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid dir attribute value 'LtR'", -"input": "<span dir=LtR>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid dir attribute value 'rtl'", -"input": "<span dir=rtl>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid dir attribute value 'RTL'", -"input": "<span dir=RTL>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid dir attribute value 'RtL'", -"input": "<span dir=RtL>", -"fail-if": "invalid-attribute-value"}, - -{"description": "invalid dir attribute value due to leading space", -"input": "<span dir=' ltr'>", -"fail-unless": "invalid-enumerated-value"}, - -{"description": "dir attribute value can not be blank", -"input": "<span dir>", -"fail-unless": "attribute-value-can-not-be-blank"}, - -{"description": "dir attribute value can not be blank (with quotes)", -"input": "<span dir=''>", -"fail-unless": "attribute-value-can-not-be-blank"}, - -{"description": "invalid dir attribute value 'left'", -"input": "<span dir=left>", -"fail-unless": "invalid-enumerated-value"}, - -{"description": "invalid dir attribute value 'right'", -"input": "<span dir=right>", -"fail-unless": "invalid-enumerated-value"}, - -{"description": "invalid dir attribute value 'lefttoright'", -"input": "<span dir=lefttoright>", -"fail-unless": "invalid-enumerated-value"}, - -{"description": "invalid dir attribute value 'righttoleft'", -"input": "<span dir=righttoleft>", -"fail-unless": "invalid-enumerated-value"}, - -{"description": "invalid dir attribute value 'inherit'", -"input": "<span dir=inherit>", -"fail-unless": "invalid-enumerated-value"} - -]}
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/draggableattribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/draggableattribute.test deleted file mode 100755 index 49e692d988f..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/draggableattribute.test +++ /dev/null @@ -1,63 +0,0 @@ -{"tests": [ - -{"description": "valid draggable attribute value 'true'", -"input": "<span draggable=true>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid draggable attribute value 'TRUE'", -"input": "<span draggable=TRUE>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid draggable attribute value 'TrUe'", -"input": "<span draggable=TrUe>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid draggable attribute value 'false'", -"input": "<span draggable=false>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid draggable attribute value 'FALSE'", -"input": "<span draggable=FALSE>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid draggable attribute value 'FalSe'", -"input": "<span draggable=FalSe>", -"fail-if": "invalid-attribute-value"}, - -{"description": "invalid draggable attribute value ''", -"input": "<span draggable=''>", -"fail-unless": "attribute-value-can-not-be-blank"}, - -{"description": "valid draggable attribute value (not specified)", -"input": "<span draggable>", -"fail-unless": "attribute-value-can-not-be-blank"}, - -{"description": "invalid draggable attribute value 'foo'", -"input": "<span draggable=foo>", -"fail-unless": "invalid-enumerated-value"}, - -{"description": "invalid draggable attribute value '0'", -"input": "<span draggable=0>", -"fail-unless": "invalid-enumerated-value"}, - -{"description": "invalid draggable attribute value '1'", -"input": "<span draggable=1>", -"fail-unless": "invalid-enumerated-value"}, - -{"description": "invalid draggable attribute value 'yes'", -"input": "<span draggable=yes>", -"fail-unless": "invalid-enumerated-value"}, - -{"description": "invalid draggable attribute value 'no'", -"input": "<span draggable=no>", -"fail-unless": "invalid-enumerated-value"}, - -{"description": "invalid draggable attribute value 'auto'", -"input": "<span draggable=auto>", -"fail-unless": "invalid-enumerated-value"}, - -{"description": "invalid draggable attribute value 'inherit'", -"input": "<span draggable=inherit>", -"fail-unless": "invalid-enumerated-value"} - -]}
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/html-xmlns-attribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/html-xmlns-attribute.test deleted file mode 100755 index 2ebd19eba88..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/html-xmlns-attribute.test +++ /dev/null @@ -1,23 +0,0 @@ -{"tests": [ - -{"description": "valid html xmlns attribute", -"input": "<html xmlns=http://www.w3.org/1999/xhtml>", -"fail-if": "invalid-root-namespace"}, - -{"description": "invalid html xmlns attribute due to leading space", -"input": "<html xmlns=' http://www.w3.org/1999/xhtml'>", -"fail-unless": "invalid-root-namespace"}, - -{"description": "invalid html xmlns attribute due to trailing space", -"input": "<html xmlns='http://www.w3.org/1999/xhtml '>", -"fail-unless": "invalid-root-namespace"}, - -{"description": "invalid html xmlns attribute due to uppercase", -"input": "<html xmlns=HTTP://WWW.W3.ORG/1999/XHTML>", -"fail-unless": "invalid-root-namespace"}, - -{"description": "invalid xmlns attribute on non-html element", -"input": "<body xmlns=http://www.w3.org/1999/xhtml>", -"fail-unless": "unknown-attribute"} - -]}
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/idattribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/idattribute.test deleted file mode 100755 index 4058d5219a3..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/idattribute.test +++ /dev/null @@ -1,115 +0,0 @@ -{"tests": [ - -{"description": "valid ID 'a'", -"input": "<span id=a>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid ID '1'", -"input": "<span id=1>", -"fail-if": "invalid-attribute-value"}, - -{"description": "wacky but valid ID", -"input": "<span id='<html><head><title>a</title></head><body><p>b</p></body></html>'>", -"fail-if": "invalid-attribute-value"}, - -{"description": "invalid blank ID", -"input": "<span id>", -"fail-unless": "attribute-value-can-not-be-blank"}, - -{"description": "invalid blank ID with quotes", -"input": "<span id=''>", -"fail-unless": "attribute-value-can-not-be-blank"}, - -{"description": "invalid ID because of leading space", -"input": "<span id=' a'>", -"fail-unless": "space-in-id"}, - -{"description": "invalid ID because of trailing space", -"input": "<span id='a '>", -"fail-unless": "space-in-id"}, - -{"description": "invalid ID because of space in value", -"input": "<span id='a b'>", -"fail-unless": "space-in-id"}, - -{"description": "invalid ID because of leading tab", -"input": "<span id='\ta'>", -"fail-unless": "space-in-id"}, - -{"description": "invalid ID because of trailing tab", -"input": "<span id='a\t'>", -"fail-unless": "space-in-id"}, - -{"description": "invalid ID because of tab in value", -"input": "<span id='a\tb'>", -"fail-unless": "space-in-id"}, - -{"description": "invalid ID because of leading LF", -"input": "<span id='\na'>", -"fail-unless": "space-in-id"}, - -{"description": "invalid ID because of trailing LF", -"input": "<span id='a\n'>", -"fail-unless": "space-in-id"}, - -{"description": "invalid ID because of LF in value", -"input": "<span id='a\nb'>", -"fail-unless": "space-in-id"}, - -{"description": "invalid ID because of leading LT", -"input": "<span id='\u000Ba'>", -"fail-unless": "space-in-id"}, - -{"description": "invalid ID because of trailing LT", -"input": "<span id='a\u000B'>", -"fail-unless": "space-in-id"}, - -{"description": "invalid ID because of LT in value", -"input": "<span id='a\u000Bb'>", -"fail-unless": "space-in-id"}, - -{"description": "invalid ID because of leading FF", -"input": "<span id='\u000Ca'>", -"fail-unless": "space-in-id"}, - -{"description": "invalid ID because of trailing FF", -"input": "<span id='a\u000C'>", -"fail-unless": "space-in-id"}, - -{"description": "invalid ID because of FF in value", -"input": "<span id='a\u000Cb'>", -"fail-unless": "space-in-id"}, - -{"description": "invalid ID because of leading CR", -"input": "<span id='\ra'>", -"fail-unless": "space-in-id"}, - -{"description": "invalid ID because of trailing CR", -"input": "<span id='a\r'>", -"fail-unless": "space-in-id"}, - -{"description": "invalid ID because of CR in value", -"input": "<span id='a\rb'>", -"fail-unless": "space-in-id"}, - -{"description": "duplicate ID values", -"input": "<span id=a><span id=a>", -"fail-unless": "duplicate-id"}, - -{"description": "duplicate ID values with spaces (weird but true)", -"input": "<span id='a '><span id='a '>", -"fail-unless": "duplicate-id"}, - -{"description": "not duplicate ID values because spaces don't match", -"input": "<span id=a><span id='a '>", -"fail-if": "duplicate-id"}, - -{"description": "not duplicate ID values because spaces don't match", -"input": "<span id=' a'><span id='a '>", -"fail-if": "duplicate-id"}, - -{"description": "not duplicate ID values because case doesn't match", -"input": "<span id=a><span id=A>", -"fail-if": "duplicate-id"} - -]} diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/inputattributes.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/inputattributes.test deleted file mode 100755 index acdc50e7bfe..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/inputattributes.test +++ /dev/null @@ -1,2795 +0,0 @@ -{"tests": [ - -{"description": "'size' attribute deprecated on <input type='text'>", -"input": "<input type=text size>", -"fail-unless": "deprecated-attribute"}, - -{"description": "'size' attribute deprecated on <input type='password'>", -"input": "<input type=password size>", -"fail-unless": "deprecated-attribute"}, - -{"description": "allowed 'accesskey' attribute on <input type='checkbox'>", -"input": "<input type=checkbox accesskey>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'accept' attribute not allowed on <input type='checkbox'>", -"input": "<input type=checkbox accept>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'replace' attribute not allowed on <input type='checkbox'>", -"input": "<input type=checkbox replace>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'disabled' attribute on <input type='checkbox'>", -"input": "<input type=checkbox disabled>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'alt' attribute not allowed on <input type='checkbox'>", -"input": "<input type=checkbox alt>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'size' attribute not allowed on <input type='checkbox'>", -"input": "<input type=checkbox size>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'checked' attribute on <input type='checkbox'>", -"input": "<input type=checkbox checked>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'min' attribute not allowed on <input type='checkbox'>", -"input": "<input type=checkbox min>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'pattern' attribute not allowed on <input type='checkbox'>", -"input": "<input type=checkbox pattern>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'readonly' attribute not allowed on <input type='checkbox'>", -"input": "<input type=checkbox readonly>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'template' attribute not allowed on <input type='checkbox'>", -"input": "<input type=checkbox template>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'autofocus' attribute on <input type='checkbox'>", -"input": "<input type=checkbox autofocus>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'target' attribute not allowed on <input type='checkbox'>", -"input": "<input type=checkbox target>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'method' attribute not allowed on <input type='checkbox'>", -"input": "<input type=checkbox method>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'form' attribute on <input type='checkbox'>", -"input": "<input type=checkbox form>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'max' attribute not allowed on <input type='checkbox'>", -"input": "<input type=checkbox max>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'step' attribute not allowed on <input type='checkbox'>", -"input": "<input type=checkbox step>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'enctype' attribute not allowed on <input type='checkbox'>", -"input": "<input type=checkbox enctype>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'src' attribute not allowed on <input type='checkbox'>", -"input": "<input type=checkbox src>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'name' attribute on <input type='checkbox'>", -"input": "<input type=checkbox name>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'required' attribute on <input type='checkbox'>", -"input": "<input type=checkbox required>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'list' attribute not allowed on <input type='checkbox'>", -"input": "<input type=checkbox list>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'value' attribute on <input type='checkbox'>", -"input": "<input type=checkbox value>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'autocomplete' attribute not allowed on <input type='checkbox'>", -"input": "<input type=checkbox autocomplete>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'inputmode' attribute not allowed on <input type='checkbox'>", -"input": "<input type=checkbox inputmode>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'maxlength' attribute not allowed on <input type='checkbox'>", -"input": "<input type=checkbox maxlength>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'action' attribute not allowed on <input type='checkbox'>", -"input": "<input type=checkbox action>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'tabindex' attribute on <input type='checkbox'>", -"input": "<input type=checkbox tabindex>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'accesskey' attribute on <input type='text'>", -"input": "<input type=text accesskey>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'accept' attribute not allowed on <input type='text'>", -"input": "<input type=text accept>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'replace' attribute not allowed on <input type='text'>", -"input": "<input type=text replace>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'disabled' attribute on <input type='text'>", -"input": "<input type=text disabled>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'alt' attribute not allowed on <input type='text'>", -"input": "<input type=text alt>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'size' attribute on <input type='text'>", -"input": "<input type=text size>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'checked' attribute not allowed on <input type='text'>", -"input": "<input type=text checked>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'min' attribute not allowed on <input type='text'>", -"input": "<input type=text min>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'pattern' attribute on <input type='text'>", -"input": "<input type=text pattern>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'readonly' attribute on <input type='text'>", -"input": "<input type=text readonly>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'template' attribute not allowed on <input type='text'>", -"input": "<input type=text template>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'autofocus' attribute on <input type='text'>", -"input": "<input type=text autofocus>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'target' attribute not allowed on <input type='text'>", -"input": "<input type=text target>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'method' attribute not allowed on <input type='text'>", -"input": "<input type=text method>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'form' attribute on <input type='text'>", -"input": "<input type=text form>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'max' attribute not allowed on <input type='text'>", -"input": "<input type=text max>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'step' attribute not allowed on <input type='text'>", -"input": "<input type=text step>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'enctype' attribute not allowed on <input type='text'>", -"input": "<input type=text enctype>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'src' attribute not allowed on <input type='text'>", -"input": "<input type=text src>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'name' attribute on <input type='text'>", -"input": "<input type=text name>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'required' attribute on <input type='text'>", -"input": "<input type=text required>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'list' attribute on <input type='text'>", -"input": "<input type=text list>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'value' attribute on <input type='text'>", -"input": "<input type=text value>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'autocomplete' attribute on <input type='text'>", -"input": "<input type=text autocomplete>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'inputmode' attribute on <input type='text'>", -"input": "<input type=text inputmode>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'maxlength' attribute on <input type='text'>", -"input": "<input type=text maxlength>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'action' attribute not allowed on <input type='text'>", -"input": "<input type=text action>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'tabindex' attribute on <input type='text'>", -"input": "<input type=text tabindex>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'accesskey' attribute on <input type='image'>", -"input": "<input type=image accesskey>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'accept' attribute not allowed on <input type='image'>", -"input": "<input type=image accept>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'replace' attribute on <input type='image'>", -"input": "<input type=image replace>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'disabled' attribute on <input type='image'>", -"input": "<input type=image disabled>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'alt' attribute on <input type='image'>", -"input": "<input type=image alt>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'size' attribute not allowed on <input type='image'>", -"input": "<input type=image size>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'checked' attribute not allowed on <input type='image'>", -"input": "<input type=image checked>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'min' attribute not allowed on <input type='image'>", -"input": "<input type=image min>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'pattern' attribute not allowed on <input type='image'>", -"input": "<input type=image pattern>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'readonly' attribute not allowed on <input type='image'>", -"input": "<input type=image readonly>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'template' attribute not allowed on <input type='image'>", -"input": "<input type=image template>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'autofocus' attribute on <input type='image'>", -"input": "<input type=image autofocus>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'target' attribute on <input type='image'>", -"input": "<input type=image target>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'method' attribute on <input type='image'>", -"input": "<input type=image method>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'form' attribute on <input type='image'>", -"input": "<input type=image form>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'max' attribute not allowed on <input type='image'>", -"input": "<input type=image max>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'step' attribute not allowed on <input type='image'>", -"input": "<input type=image step>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'enctype' attribute on <input type='image'>", -"input": "<input type=image enctype>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'src' attribute on <input type='image'>", -"input": "<input type=image src>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'name' attribute on <input type='image'>", -"input": "<input type=image name>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'required' attribute not allowed on <input type='image'>", -"input": "<input type=image required>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'list' attribute not allowed on <input type='image'>", -"input": "<input type=image list>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'value' attribute not allowed on <input type='image'>", -"input": "<input type=image value>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'autocomplete' attribute not allowed on <input type='image'>", -"input": "<input type=image autocomplete>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'inputmode' attribute not allowed on <input type='image'>", -"input": "<input type=image inputmode>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'maxlength' attribute not allowed on <input type='image'>", -"input": "<input type=image maxlength>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'action' attribute on <input type='image'>", -"input": "<input type=image action>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'tabindex' attribute on <input type='image'>", -"input": "<input type=image tabindex>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'accesskey' attribute on <input type='number'>", -"input": "<input type=number accesskey>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'accept' attribute not allowed on <input type='number'>", -"input": "<input type=number accept>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'replace' attribute not allowed on <input type='number'>", -"input": "<input type=number replace>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'disabled' attribute on <input type='number'>", -"input": "<input type=number disabled>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'alt' attribute not allowed on <input type='number'>", -"input": "<input type=number alt>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'size' attribute not allowed on <input type='number'>", -"input": "<input type=number size>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'checked' attribute not allowed on <input type='number'>", -"input": "<input type=number checked>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'min' attribute on <input type='number'>", -"input": "<input type=number min>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'pattern' attribute not allowed on <input type='number'>", -"input": "<input type=number pattern>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'readonly' attribute on <input type='number'>", -"input": "<input type=number readonly>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'template' attribute not allowed on <input type='number'>", -"input": "<input type=number template>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'autofocus' attribute on <input type='number'>", -"input": "<input type=number autofocus>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'target' attribute not allowed on <input type='number'>", -"input": "<input type=number target>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'method' attribute not allowed on <input type='number'>", -"input": "<input type=number method>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'form' attribute on <input type='number'>", -"input": "<input type=number form>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'max' attribute on <input type='number'>", -"input": "<input type=number max>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'step' attribute on <input type='number'>", -"input": "<input type=number step>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'enctype' attribute not allowed on <input type='number'>", -"input": "<input type=number enctype>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'src' attribute not allowed on <input type='number'>", -"input": "<input type=number src>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'name' attribute on <input type='number'>", -"input": "<input type=number name>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'required' attribute on <input type='number'>", -"input": "<input type=number required>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'list' attribute on <input type='number'>", -"input": "<input type=number list>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'value' attribute on <input type='number'>", -"input": "<input type=number value>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'autocomplete' attribute on <input type='number'>", -"input": "<input type=number autocomplete>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'inputmode' attribute not allowed on <input type='number'>", -"input": "<input type=number inputmode>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'maxlength' attribute not allowed on <input type='number'>", -"input": "<input type=number maxlength>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'action' attribute not allowed on <input type='number'>", -"input": "<input type=number action>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'tabindex' attribute on <input type='number'>", -"input": "<input type=number tabindex>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'accesskey' attribute on <input type='month'>", -"input": "<input type=month accesskey>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'accept' attribute not allowed on <input type='month'>", -"input": "<input type=month accept>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'replace' attribute not allowed on <input type='month'>", -"input": "<input type=month replace>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'disabled' attribute on <input type='month'>", -"input": "<input type=month disabled>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'alt' attribute not allowed on <input type='month'>", -"input": "<input type=month alt>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'size' attribute not allowed on <input type='month'>", -"input": "<input type=month size>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'checked' attribute not allowed on <input type='month'>", -"input": "<input type=month checked>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'min' attribute on <input type='month'>", -"input": "<input type=month min>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'pattern' attribute not allowed on <input type='month'>", -"input": "<input type=month pattern>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'readonly' attribute on <input type='month'>", -"input": "<input type=month readonly>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'template' attribute not allowed on <input type='month'>", -"input": "<input type=month template>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'autofocus' attribute on <input type='month'>", -"input": "<input type=month autofocus>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'target' attribute not allowed on <input type='month'>", -"input": "<input type=month target>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'method' attribute not allowed on <input type='month'>", -"input": "<input type=month method>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'form' attribute on <input type='month'>", -"input": "<input type=month form>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'max' attribute on <input type='month'>", -"input": "<input type=month max>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'step' attribute on <input type='month'>", -"input": "<input type=month step>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'enctype' attribute not allowed on <input type='month'>", -"input": "<input type=month enctype>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'src' attribute not allowed on <input type='month'>", -"input": "<input type=month src>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'name' attribute on <input type='month'>", -"input": "<input type=month name>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'required' attribute on <input type='month'>", -"input": "<input type=month required>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'list' attribute on <input type='month'>", -"input": "<input type=month list>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'value' attribute on <input type='month'>", -"input": "<input type=month value>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'autocomplete' attribute on <input type='month'>", -"input": "<input type=month autocomplete>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'inputmode' attribute not allowed on <input type='month'>", -"input": "<input type=month inputmode>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'maxlength' attribute not allowed on <input type='month'>", -"input": "<input type=month maxlength>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'action' attribute not allowed on <input type='month'>", -"input": "<input type=month action>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'tabindex' attribute on <input type='month'>", -"input": "<input type=month tabindex>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'accesskey' attribute on <input type='radio'>", -"input": "<input type=radio accesskey>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'accept' attribute not allowed on <input type='radio'>", -"input": "<input type=radio accept>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'replace' attribute not allowed on <input type='radio'>", -"input": "<input type=radio replace>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'disabled' attribute on <input type='radio'>", -"input": "<input type=radio disabled>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'alt' attribute not allowed on <input type='radio'>", -"input": "<input type=radio alt>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'size' attribute not allowed on <input type='radio'>", -"input": "<input type=radio size>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'checked' attribute on <input type='radio'>", -"input": "<input type=radio checked>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'min' attribute not allowed on <input type='radio'>", -"input": "<input type=radio min>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'pattern' attribute not allowed on <input type='radio'>", -"input": "<input type=radio pattern>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'readonly' attribute not allowed on <input type='radio'>", -"input": "<input type=radio readonly>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'template' attribute not allowed on <input type='radio'>", -"input": "<input type=radio template>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'autofocus' attribute on <input type='radio'>", -"input": "<input type=radio autofocus>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'target' attribute not allowed on <input type='radio'>", -"input": "<input type=radio target>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'method' attribute not allowed on <input type='radio'>", -"input": "<input type=radio method>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'form' attribute on <input type='radio'>", -"input": "<input type=radio form>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'max' attribute not allowed on <input type='radio'>", -"input": "<input type=radio max>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'step' attribute not allowed on <input type='radio'>", -"input": "<input type=radio step>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'enctype' attribute not allowed on <input type='radio'>", -"input": "<input type=radio enctype>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'src' attribute not allowed on <input type='radio'>", -"input": "<input type=radio src>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'name' attribute on <input type='radio'>", -"input": "<input type=radio name>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'required' attribute on <input type='radio'>", -"input": "<input type=radio required>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'list' attribute not allowed on <input type='radio'>", -"input": "<input type=radio list>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'value' attribute on <input type='radio'>", -"input": "<input type=radio value>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'autocomplete' attribute not allowed on <input type='radio'>", -"input": "<input type=radio autocomplete>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'inputmode' attribute not allowed on <input type='radio'>", -"input": "<input type=radio inputmode>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'maxlength' attribute not allowed on <input type='radio'>", -"input": "<input type=radio maxlength>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'action' attribute not allowed on <input type='radio'>", -"input": "<input type=radio action>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'tabindex' attribute on <input type='radio'>", -"input": "<input type=radio tabindex>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'accesskey' attribute on <input type='file'>", -"input": "<input type=file accesskey>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'accept' attribute on <input type='file'>", -"input": "<input type=file accept>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'replace' attribute not allowed on <input type='file'>", -"input": "<input type=file replace>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'disabled' attribute on <input type='file'>", -"input": "<input type=file disabled>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'alt' attribute not allowed on <input type='file'>", -"input": "<input type=file alt>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'size' attribute not allowed on <input type='file'>", -"input": "<input type=file size>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'checked' attribute not allowed on <input type='file'>", -"input": "<input type=file checked>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'min' attribute on <input type='file'>", -"input": "<input type=file min>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'pattern' attribute not allowed on <input type='file'>", -"input": "<input type=file pattern>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'readonly' attribute not allowed on <input type='file'>", -"input": "<input type=file readonly>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'template' attribute not allowed on <input type='file'>", -"input": "<input type=file template>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'autofocus' attribute on <input type='file'>", -"input": "<input type=file autofocus>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'target' attribute not allowed on <input type='file'>", -"input": "<input type=file target>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'method' attribute not allowed on <input type='file'>", -"input": "<input type=file method>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'form' attribute on <input type='file'>", -"input": "<input type=file form>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'max' attribute on <input type='file'>", -"input": "<input type=file max>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'step' attribute not allowed on <input type='file'>", -"input": "<input type=file step>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'enctype' attribute not allowed on <input type='file'>", -"input": "<input type=file enctype>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'src' attribute not allowed on <input type='file'>", -"input": "<input type=file src>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'name' attribute on <input type='file'>", -"input": "<input type=file name>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'required' attribute on <input type='file'>", -"input": "<input type=file required>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'list' attribute not allowed on <input type='file'>", -"input": "<input type=file list>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'value' attribute not allowed on <input type='file'>", -"input": "<input type=file value>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'autocomplete' attribute not allowed on <input type='file'>", -"input": "<input type=file autocomplete>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'inputmode' attribute not allowed on <input type='file'>", -"input": "<input type=file inputmode>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'maxlength' attribute not allowed on <input type='file'>", -"input": "<input type=file maxlength>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'action' attribute not allowed on <input type='file'>", -"input": "<input type=file action>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'tabindex' attribute on <input type='file'>", -"input": "<input type=file tabindex>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'accesskey' attribute on <input type='password'>", -"input": "<input type=password accesskey>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'accept' attribute not allowed on <input type='password'>", -"input": "<input type=password accept>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'replace' attribute not allowed on <input type='password'>", -"input": "<input type=password replace>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'disabled' attribute on <input type='password'>", -"input": "<input type=password disabled>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'alt' attribute not allowed on <input type='password'>", -"input": "<input type=password alt>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'size' attribute on <input type='password'>", -"input": "<input type=password size>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'checked' attribute not allowed on <input type='password'>", -"input": "<input type=password checked>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'min' attribute not allowed on <input type='password'>", -"input": "<input type=password min>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'pattern' attribute on <input type='password'>", -"input": "<input type=password pattern>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'readonly' attribute on <input type='password'>", -"input": "<input type=password readonly>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'template' attribute not allowed on <input type='password'>", -"input": "<input type=password template>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'autofocus' attribute on <input type='password'>", -"input": "<input type=password autofocus>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'target' attribute not allowed on <input type='password'>", -"input": "<input type=password target>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'method' attribute not allowed on <input type='password'>", -"input": "<input type=password method>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'form' attribute on <input type='password'>", -"input": "<input type=password form>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'max' attribute not allowed on <input type='password'>", -"input": "<input type=password max>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'step' attribute not allowed on <input type='password'>", -"input": "<input type=password step>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'enctype' attribute not allowed on <input type='password'>", -"input": "<input type=password enctype>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'src' attribute not allowed on <input type='password'>", -"input": "<input type=password src>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'name' attribute on <input type='password'>", -"input": "<input type=password name>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'required' attribute on <input type='password'>", -"input": "<input type=password required>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'list' attribute not allowed on <input type='password'>", -"input": "<input type=password list>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'value' attribute on <input type='password'>", -"input": "<input type=password value>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'autocomplete' attribute on <input type='password'>", -"input": "<input type=password autocomplete>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'inputmode' attribute on <input type='password'>", -"input": "<input type=password inputmode>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'maxlength' attribute on <input type='password'>", -"input": "<input type=password maxlength>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'action' attribute not allowed on <input type='password'>", -"input": "<input type=password action>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'tabindex' attribute on <input type='password'>", -"input": "<input type=password tabindex>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'accesskey' attribute on <input type='move-up'>", -"input": "<input type=move-up accesskey>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'accept' attribute not allowed on <input type='move-up'>", -"input": "<input type=move-up accept>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'replace' attribute not allowed on <input type='move-up'>", -"input": "<input type=move-up replace>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'disabled' attribute on <input type='move-up'>", -"input": "<input type=move-up disabled>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'alt' attribute not allowed on <input type='move-up'>", -"input": "<input type=move-up alt>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'size' attribute not allowed on <input type='move-up'>", -"input": "<input type=move-up size>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'checked' attribute not allowed on <input type='move-up'>", -"input": "<input type=move-up checked>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'min' attribute not allowed on <input type='move-up'>", -"input": "<input type=move-up min>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'pattern' attribute not allowed on <input type='move-up'>", -"input": "<input type=move-up pattern>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'readonly' attribute not allowed on <input type='move-up'>", -"input": "<input type=move-up readonly>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'template' attribute not allowed on <input type='move-up'>", -"input": "<input type=move-up template>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'autofocus' attribute on <input type='move-up'>", -"input": "<input type=move-up autofocus>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'target' attribute not allowed on <input type='move-up'>", -"input": "<input type=move-up target>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'method' attribute not allowed on <input type='move-up'>", -"input": "<input type=move-up method>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'form' attribute on <input type='move-up'>", -"input": "<input type=move-up form>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'max' attribute not allowed on <input type='move-up'>", -"input": "<input type=move-up max>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'step' attribute not allowed on <input type='move-up'>", -"input": "<input type=move-up step>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'enctype' attribute not allowed on <input type='move-up'>", -"input": "<input type=move-up enctype>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'src' attribute not allowed on <input type='move-up'>", -"input": "<input type=move-up src>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'name' attribute on <input type='move-up'>", -"input": "<input type=move-up name>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'required' attribute not allowed on <input type='move-up'>", -"input": "<input type=move-up required>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'list' attribute not allowed on <input type='move-up'>", -"input": "<input type=move-up list>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'value' attribute on <input type='move-up'>", -"input": "<input type=move-up value>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'autocomplete' attribute not allowed on <input type='move-up'>", -"input": "<input type=move-up autocomplete>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'inputmode' attribute not allowed on <input type='move-up'>", -"input": "<input type=move-up inputmode>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'maxlength' attribute not allowed on <input type='move-up'>", -"input": "<input type=move-up maxlength>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'action' attribute not allowed on <input type='move-up'>", -"input": "<input type=move-up action>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'tabindex' attribute on <input type='move-up'>", -"input": "<input type=move-up tabindex>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'accesskey' attribute on <input type='submit'>", -"input": "<input type=submit accesskey>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'accept' attribute not allowed on <input type='submit'>", -"input": "<input type=submit accept>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'replace' attribute on <input type='submit'>", -"input": "<input type=submit replace>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'disabled' attribute on <input type='submit'>", -"input": "<input type=submit disabled>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'alt' attribute not allowed on <input type='submit'>", -"input": "<input type=submit alt>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'size' attribute not allowed on <input type='submit'>", -"input": "<input type=submit size>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'checked' attribute not allowed on <input type='submit'>", -"input": "<input type=submit checked>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'min' attribute not allowed on <input type='submit'>", -"input": "<input type=submit min>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'pattern' attribute not allowed on <input type='submit'>", -"input": "<input type=submit pattern>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'readonly' attribute not allowed on <input type='submit'>", -"input": "<input type=submit readonly>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'template' attribute not allowed on <input type='submit'>", -"input": "<input type=submit template>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'autofocus' attribute on <input type='submit'>", -"input": "<input type=submit autofocus>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'target' attribute on <input type='submit'>", -"input": "<input type=submit target>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'method' attribute on <input type='submit'>", -"input": "<input type=submit method>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'form' attribute on <input type='submit'>", -"input": "<input type=submit form>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'max' attribute not allowed on <input type='submit'>", -"input": "<input type=submit max>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'step' attribute not allowed on <input type='submit'>", -"input": "<input type=submit step>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'enctype' attribute on <input type='submit'>", -"input": "<input type=submit enctype>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'src' attribute not allowed on <input type='submit'>", -"input": "<input type=submit src>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'name' attribute on <input type='submit'>", -"input": "<input type=submit name>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'required' attribute not allowed on <input type='submit'>", -"input": "<input type=submit required>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'list' attribute not allowed on <input type='submit'>", -"input": "<input type=submit list>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'value' attribute on <input type='submit'>", -"input": "<input type=submit value>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'autocomplete' attribute not allowed on <input type='submit'>", -"input": "<input type=submit autocomplete>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'inputmode' attribute not allowed on <input type='submit'>", -"input": "<input type=submit inputmode>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'maxlength' attribute not allowed on <input type='submit'>", -"input": "<input type=submit maxlength>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'action' attribute on <input type='submit'>", -"input": "<input type=submit action>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'tabindex' attribute on <input type='submit'>", -"input": "<input type=submit tabindex>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'accesskey' attribute on <input type='add'>", -"input": "<input type=add accesskey>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'accept' attribute not allowed on <input type='add'>", -"input": "<input type=add accept>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'replace' attribute not allowed on <input type='add'>", -"input": "<input type=add replace>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'disabled' attribute on <input type='add'>", -"input": "<input type=add disabled>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'alt' attribute not allowed on <input type='add'>", -"input": "<input type=add alt>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'size' attribute not allowed on <input type='add'>", -"input": "<input type=add size>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'checked' attribute not allowed on <input type='add'>", -"input": "<input type=add checked>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'min' attribute not allowed on <input type='add'>", -"input": "<input type=add min>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'pattern' attribute not allowed on <input type='add'>", -"input": "<input type=add pattern>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'readonly' attribute not allowed on <input type='add'>", -"input": "<input type=add readonly>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'template' attribute on <input type='add'>", -"input": "<input type=add template>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'autofocus' attribute on <input type='add'>", -"input": "<input type=add autofocus>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'target' attribute not allowed on <input type='add'>", -"input": "<input type=add target>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'method' attribute not allowed on <input type='add'>", -"input": "<input type=add method>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'form' attribute on <input type='add'>", -"input": "<input type=add form>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'max' attribute not allowed on <input type='add'>", -"input": "<input type=add max>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'step' attribute not allowed on <input type='add'>", -"input": "<input type=add step>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'enctype' attribute not allowed on <input type='add'>", -"input": "<input type=add enctype>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'src' attribute not allowed on <input type='add'>", -"input": "<input type=add src>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'name' attribute on <input type='add'>", -"input": "<input type=add name>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'required' attribute not allowed on <input type='add'>", -"input": "<input type=add required>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'list' attribute not allowed on <input type='add'>", -"input": "<input type=add list>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'value' attribute on <input type='add'>", -"input": "<input type=add value>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'autocomplete' attribute not allowed on <input type='add'>", -"input": "<input type=add autocomplete>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'inputmode' attribute not allowed on <input type='add'>", -"input": "<input type=add inputmode>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'maxlength' attribute not allowed on <input type='add'>", -"input": "<input type=add maxlength>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'action' attribute not allowed on <input type='add'>", -"input": "<input type=add action>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'tabindex' attribute on <input type='add'>", -"input": "<input type=add tabindex>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'accesskey' attribute not allowed on <input type='hidden'>", -"input": "<input type=hidden accesskey>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'accept' attribute not allowed on <input type='hidden'>", -"input": "<input type=hidden accept>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'replace' attribute not allowed on <input type='hidden'>", -"input": "<input type=hidden replace>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'disabled' attribute on <input type='hidden'>", -"input": "<input type=hidden disabled>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'alt' attribute not allowed on <input type='hidden'>", -"input": "<input type=hidden alt>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'size' attribute not allowed on <input type='hidden'>", -"input": "<input type=hidden size>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'checked' attribute not allowed on <input type='hidden'>", -"input": "<input type=hidden checked>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'min' attribute not allowed on <input type='hidden'>", -"input": "<input type=hidden min>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'pattern' attribute not allowed on <input type='hidden'>", -"input": "<input type=hidden pattern>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'readonly' attribute not allowed on <input type='hidden'>", -"input": "<input type=hidden readonly>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'template' attribute not allowed on <input type='hidden'>", -"input": "<input type=hidden template>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'autofocus' attribute not allowed on <input type='hidden'>", -"input": "<input type=hidden autofocus>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'target' attribute not allowed on <input type='hidden'>", -"input": "<input type=hidden target>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'method' attribute not allowed on <input type='hidden'>", -"input": "<input type=hidden method>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'form' attribute on <input type='hidden'>", -"input": "<input type=hidden form>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'max' attribute not allowed on <input type='hidden'>", -"input": "<input type=hidden max>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'step' attribute not allowed on <input type='hidden'>", -"input": "<input type=hidden step>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'enctype' attribute not allowed on <input type='hidden'>", -"input": "<input type=hidden enctype>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'src' attribute not allowed on <input type='hidden'>", -"input": "<input type=hidden src>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'name' attribute on <input type='hidden'>", -"input": "<input type=hidden name>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'required' attribute not allowed on <input type='hidden'>", -"input": "<input type=hidden required>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'list' attribute not allowed on <input type='hidden'>", -"input": "<input type=hidden list>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'value' attribute on <input type='hidden'>", -"input": "<input type=hidden value>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'autocomplete' attribute not allowed on <input type='hidden'>", -"input": "<input type=hidden autocomplete>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'inputmode' attribute not allowed on <input type='hidden'>", -"input": "<input type=hidden inputmode>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'maxlength' attribute not allowed on <input type='hidden'>", -"input": "<input type=hidden maxlength>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'action' attribute not allowed on <input type='hidden'>", -"input": "<input type=hidden action>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'tabindex' attribute not allowed on <input type='hidden'>", -"input": "<input type=hidden tabindex>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'accesskey' attribute on <input type='email'>", -"input": "<input type=email accesskey>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'accept' attribute not allowed on <input type='email'>", -"input": "<input type=email accept>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'replace' attribute not allowed on <input type='email'>", -"input": "<input type=email replace>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'disabled' attribute on <input type='email'>", -"input": "<input type=email disabled>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'alt' attribute not allowed on <input type='email'>", -"input": "<input type=email alt>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'size' attribute not allowed on <input type='email'>", -"input": "<input type=email size>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'checked' attribute not allowed on <input type='email'>", -"input": "<input type=email checked>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'min' attribute not allowed on <input type='email'>", -"input": "<input type=email min>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'pattern' attribute on <input type='email'>", -"input": "<input type=email pattern>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'readonly' attribute on <input type='email'>", -"input": "<input type=email readonly>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'template' attribute not allowed on <input type='email'>", -"input": "<input type=email template>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'autofocus' attribute on <input type='email'>", -"input": "<input type=email autofocus>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'target' attribute not allowed on <input type='email'>", -"input": "<input type=email target>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'method' attribute not allowed on <input type='email'>", -"input": "<input type=email method>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'form' attribute on <input type='email'>", -"input": "<input type=email form>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'max' attribute not allowed on <input type='email'>", -"input": "<input type=email max>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'step' attribute not allowed on <input type='email'>", -"input": "<input type=email step>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'enctype' attribute not allowed on <input type='email'>", -"input": "<input type=email enctype>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'src' attribute not allowed on <input type='email'>", -"input": "<input type=email src>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'name' attribute on <input type='email'>", -"input": "<input type=email name>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'required' attribute on <input type='email'>", -"input": "<input type=email required>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'list' attribute on <input type='email'>", -"input": "<input type=email list>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'value' attribute on <input type='email'>", -"input": "<input type=email value>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'autocomplete' attribute on <input type='email'>", -"input": "<input type=email autocomplete>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'inputmode' attribute on <input type='email'>", -"input": "<input type=email inputmode>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'maxlength' attribute on <input type='email'>", -"input": "<input type=email maxlength>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'action' attribute not allowed on <input type='email'>", -"input": "<input type=email action>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'tabindex' attribute on <input type='email'>", -"input": "<input type=email tabindex>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'accesskey' attribute on <input type='week'>", -"input": "<input type=week accesskey>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'accept' attribute not allowed on <input type='week'>", -"input": "<input type=week accept>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'replace' attribute not allowed on <input type='week'>", -"input": "<input type=week replace>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'disabled' attribute on <input type='week'>", -"input": "<input type=week disabled>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'alt' attribute not allowed on <input type='week'>", -"input": "<input type=week alt>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'size' attribute not allowed on <input type='week'>", -"input": "<input type=week size>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'checked' attribute not allowed on <input type='week'>", -"input": "<input type=week checked>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'min' attribute on <input type='week'>", -"input": "<input type=week min>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'pattern' attribute not allowed on <input type='week'>", -"input": "<input type=week pattern>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'readonly' attribute on <input type='week'>", -"input": "<input type=week readonly>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'template' attribute not allowed on <input type='week'>", -"input": "<input type=week template>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'autofocus' attribute on <input type='week'>", -"input": "<input type=week autofocus>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'target' attribute not allowed on <input type='week'>", -"input": "<input type=week target>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'method' attribute not allowed on <input type='week'>", -"input": "<input type=week method>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'form' attribute on <input type='week'>", -"input": "<input type=week form>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'max' attribute on <input type='week'>", -"input": "<input type=week max>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'step' attribute on <input type='week'>", -"input": "<input type=week step>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'enctype' attribute not allowed on <input type='week'>", -"input": "<input type=week enctype>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'src' attribute not allowed on <input type='week'>", -"input": "<input type=week src>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'name' attribute on <input type='week'>", -"input": "<input type=week name>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'required' attribute on <input type='week'>", -"input": "<input type=week required>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'list' attribute on <input type='week'>", -"input": "<input type=week list>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'value' attribute on <input type='week'>", -"input": "<input type=week value>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'autocomplete' attribute on <input type='week'>", -"input": "<input type=week autocomplete>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'inputmode' attribute not allowed on <input type='week'>", -"input": "<input type=week inputmode>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'maxlength' attribute not allowed on <input type='week'>", -"input": "<input type=week maxlength>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'action' attribute not allowed on <input type='week'>", -"input": "<input type=week action>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'tabindex' attribute on <input type='week'>", -"input": "<input type=week tabindex>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'accesskey' attribute on <input type='date'>", -"input": "<input type=date accesskey>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'accept' attribute not allowed on <input type='date'>", -"input": "<input type=date accept>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'replace' attribute not allowed on <input type='date'>", -"input": "<input type=date replace>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'disabled' attribute on <input type='date'>", -"input": "<input type=date disabled>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'alt' attribute not allowed on <input type='date'>", -"input": "<input type=date alt>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'size' attribute not allowed on <input type='date'>", -"input": "<input type=date size>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'checked' attribute not allowed on <input type='date'>", -"input": "<input type=date checked>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'min' attribute on <input type='date'>", -"input": "<input type=date min>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'pattern' attribute not allowed on <input type='date'>", -"input": "<input type=date pattern>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'readonly' attribute on <input type='date'>", -"input": "<input type=date readonly>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'template' attribute not allowed on <input type='date'>", -"input": "<input type=date template>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'autofocus' attribute on <input type='date'>", -"input": "<input type=date autofocus>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'target' attribute not allowed on <input type='date'>", -"input": "<input type=date target>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'method' attribute not allowed on <input type='date'>", -"input": "<input type=date method>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'form' attribute on <input type='date'>", -"input": "<input type=date form>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'max' attribute on <input type='date'>", -"input": "<input type=date max>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'step' attribute on <input type='date'>", -"input": "<input type=date step>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'enctype' attribute not allowed on <input type='date'>", -"input": "<input type=date enctype>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'src' attribute not allowed on <input type='date'>", -"input": "<input type=date src>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'name' attribute on <input type='date'>", -"input": "<input type=date name>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'required' attribute on <input type='date'>", -"input": "<input type=date required>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'list' attribute on <input type='date'>", -"input": "<input type=date list>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'value' attribute on <input type='date'>", -"input": "<input type=date value>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'autocomplete' attribute on <input type='date'>", -"input": "<input type=date autocomplete>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'inputmode' attribute not allowed on <input type='date'>", -"input": "<input type=date inputmode>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'maxlength' attribute not allowed on <input type='date'>", -"input": "<input type=date maxlength>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'action' attribute not allowed on <input type='date'>", -"input": "<input type=date action>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'tabindex' attribute on <input type='date'>", -"input": "<input type=date tabindex>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'accesskey' attribute on <input type='datetime'>", -"input": "<input type=datetime accesskey>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'accept' attribute not allowed on <input type='datetime'>", -"input": "<input type=datetime accept>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'replace' attribute not allowed on <input type='datetime'>", -"input": "<input type=datetime replace>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'disabled' attribute on <input type='datetime'>", -"input": "<input type=datetime disabled>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'alt' attribute not allowed on <input type='datetime'>", -"input": "<input type=datetime alt>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'size' attribute not allowed on <input type='datetime'>", -"input": "<input type=datetime size>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'checked' attribute not allowed on <input type='datetime'>", -"input": "<input type=datetime checked>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'min' attribute on <input type='datetime'>", -"input": "<input type=datetime min>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'pattern' attribute not allowed on <input type='datetime'>", -"input": "<input type=datetime pattern>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'readonly' attribute on <input type='datetime'>", -"input": "<input type=datetime readonly>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'template' attribute not allowed on <input type='datetime'>", -"input": "<input type=datetime template>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'autofocus' attribute on <input type='datetime'>", -"input": "<input type=datetime autofocus>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'target' attribute not allowed on <input type='datetime'>", -"input": "<input type=datetime target>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'method' attribute not allowed on <input type='datetime'>", -"input": "<input type=datetime method>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'form' attribute on <input type='datetime'>", -"input": "<input type=datetime form>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'max' attribute on <input type='datetime'>", -"input": "<input type=datetime max>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'step' attribute on <input type='datetime'>", -"input": "<input type=datetime step>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'enctype' attribute not allowed on <input type='datetime'>", -"input": "<input type=datetime enctype>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'src' attribute not allowed on <input type='datetime'>", -"input": "<input type=datetime src>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'name' attribute on <input type='datetime'>", -"input": "<input type=datetime name>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'required' attribute on <input type='datetime'>", -"input": "<input type=datetime required>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'list' attribute on <input type='datetime'>", -"input": "<input type=datetime list>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'value' attribute on <input type='datetime'>", -"input": "<input type=datetime value>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'autocomplete' attribute on <input type='datetime'>", -"input": "<input type=datetime autocomplete>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'inputmode' attribute not allowed on <input type='datetime'>", -"input": "<input type=datetime inputmode>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'maxlength' attribute not allowed on <input type='datetime'>", -"input": "<input type=datetime maxlength>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'action' attribute not allowed on <input type='datetime'>", -"input": "<input type=datetime action>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'tabindex' attribute on <input type='datetime'>", -"input": "<input type=datetime tabindex>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'accesskey' attribute on <input type='move-down'>", -"input": "<input type=move-down accesskey>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'accept' attribute not allowed on <input type='move-down'>", -"input": "<input type=move-down accept>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'replace' attribute not allowed on <input type='move-down'>", -"input": "<input type=move-down replace>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'disabled' attribute on <input type='move-down'>", -"input": "<input type=move-down disabled>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'alt' attribute not allowed on <input type='move-down'>", -"input": "<input type=move-down alt>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'size' attribute not allowed on <input type='move-down'>", -"input": "<input type=move-down size>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'checked' attribute not allowed on <input type='move-down'>", -"input": "<input type=move-down checked>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'min' attribute not allowed on <input type='move-down'>", -"input": "<input type=move-down min>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'pattern' attribute not allowed on <input type='move-down'>", -"input": "<input type=move-down pattern>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'readonly' attribute not allowed on <input type='move-down'>", -"input": "<input type=move-down readonly>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'template' attribute not allowed on <input type='move-down'>", -"input": "<input type=move-down template>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'autofocus' attribute on <input type='move-down'>", -"input": "<input type=move-down autofocus>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'target' attribute not allowed on <input type='move-down'>", -"input": "<input type=move-down target>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'method' attribute not allowed on <input type='move-down'>", -"input": "<input type=move-down method>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'form' attribute on <input type='move-down'>", -"input": "<input type=move-down form>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'max' attribute not allowed on <input type='move-down'>", -"input": "<input type=move-down max>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'step' attribute not allowed on <input type='move-down'>", -"input": "<input type=move-down step>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'enctype' attribute not allowed on <input type='move-down'>", -"input": "<input type=move-down enctype>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'src' attribute not allowed on <input type='move-down'>", -"input": "<input type=move-down src>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'name' attribute on <input type='move-down'>", -"input": "<input type=move-down name>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'required' attribute not allowed on <input type='move-down'>", -"input": "<input type=move-down required>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'list' attribute not allowed on <input type='move-down'>", -"input": "<input type=move-down list>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'value' attribute on <input type='move-down'>", -"input": "<input type=move-down value>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'autocomplete' attribute not allowed on <input type='move-down'>", -"input": "<input type=move-down autocomplete>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'inputmode' attribute not allowed on <input type='move-down'>", -"input": "<input type=move-down inputmode>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'maxlength' attribute not allowed on <input type='move-down'>", -"input": "<input type=move-down maxlength>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'action' attribute not allowed on <input type='move-down'>", -"input": "<input type=move-down action>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'tabindex' attribute on <input type='move-down'>", -"input": "<input type=move-down tabindex>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'accesskey' attribute on <input type='datetime-local'>", -"input": "<input type=datetime-local accesskey>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'accept' attribute not allowed on <input type='datetime-local'>", -"input": "<input type=datetime-local accept>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'replace' attribute not allowed on <input type='datetime-local'>", -"input": "<input type=datetime-local replace>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'disabled' attribute on <input type='datetime-local'>", -"input": "<input type=datetime-local disabled>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'alt' attribute not allowed on <input type='datetime-local'>", -"input": "<input type=datetime-local alt>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'size' attribute not allowed on <input type='datetime-local'>", -"input": "<input type=datetime-local size>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'checked' attribute not allowed on <input type='datetime-local'>", -"input": "<input type=datetime-local checked>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'min' attribute on <input type='datetime-local'>", -"input": "<input type=datetime-local min>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'pattern' attribute not allowed on <input type='datetime-local'>", -"input": "<input type=datetime-local pattern>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'readonly' attribute on <input type='datetime-local'>", -"input": "<input type=datetime-local readonly>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'template' attribute not allowed on <input type='datetime-local'>", -"input": "<input type=datetime-local template>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'autofocus' attribute on <input type='datetime-local'>", -"input": "<input type=datetime-local autofocus>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'target' attribute not allowed on <input type='datetime-local'>", -"input": "<input type=datetime-local target>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'method' attribute not allowed on <input type='datetime-local'>", -"input": "<input type=datetime-local method>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'form' attribute on <input type='datetime-local'>", -"input": "<input type=datetime-local form>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'max' attribute on <input type='datetime-local'>", -"input": "<input type=datetime-local max>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'step' attribute on <input type='datetime-local'>", -"input": "<input type=datetime-local step>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'enctype' attribute not allowed on <input type='datetime-local'>", -"input": "<input type=datetime-local enctype>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'src' attribute not allowed on <input type='datetime-local'>", -"input": "<input type=datetime-local src>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'name' attribute on <input type='datetime-local'>", -"input": "<input type=datetime-local name>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'required' attribute on <input type='datetime-local'>", -"input": "<input type=datetime-local required>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'list' attribute on <input type='datetime-local'>", -"input": "<input type=datetime-local list>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'value' attribute on <input type='datetime-local'>", -"input": "<input type=datetime-local value>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'autocomplete' attribute on <input type='datetime-local'>", -"input": "<input type=datetime-local autocomplete>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'inputmode' attribute not allowed on <input type='datetime-local'>", -"input": "<input type=datetime-local inputmode>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'maxlength' attribute not allowed on <input type='datetime-local'>", -"input": "<input type=datetime-local maxlength>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'action' attribute not allowed on <input type='datetime-local'>", -"input": "<input type=datetime-local action>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'tabindex' attribute on <input type='datetime-local'>", -"input": "<input type=datetime-local tabindex>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'accesskey' attribute on <input type='reset'>", -"input": "<input type=reset accesskey>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'accept' attribute not allowed on <input type='reset'>", -"input": "<input type=reset accept>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'replace' attribute not allowed on <input type='reset'>", -"input": "<input type=reset replace>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'disabled' attribute on <input type='reset'>", -"input": "<input type=reset disabled>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'alt' attribute not allowed on <input type='reset'>", -"input": "<input type=reset alt>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'size' attribute not allowed on <input type='reset'>", -"input": "<input type=reset size>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'checked' attribute not allowed on <input type='reset'>", -"input": "<input type=reset checked>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'min' attribute not allowed on <input type='reset'>", -"input": "<input type=reset min>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'pattern' attribute not allowed on <input type='reset'>", -"input": "<input type=reset pattern>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'readonly' attribute not allowed on <input type='reset'>", -"input": "<input type=reset readonly>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'template' attribute not allowed on <input type='reset'>", -"input": "<input type=reset template>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'autofocus' attribute on <input type='reset'>", -"input": "<input type=reset autofocus>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'target' attribute not allowed on <input type='reset'>", -"input": "<input type=reset target>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'method' attribute not allowed on <input type='reset'>", -"input": "<input type=reset method>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'form' attribute on <input type='reset'>", -"input": "<input type=reset form>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'max' attribute not allowed on <input type='reset'>", -"input": "<input type=reset max>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'step' attribute not allowed on <input type='reset'>", -"input": "<input type=reset step>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'enctype' attribute not allowed on <input type='reset'>", -"input": "<input type=reset enctype>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'src' attribute not allowed on <input type='reset'>", -"input": "<input type=reset src>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'name' attribute on <input type='reset'>", -"input": "<input type=reset name>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'required' attribute not allowed on <input type='reset'>", -"input": "<input type=reset required>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'list' attribute not allowed on <input type='reset'>", -"input": "<input type=reset list>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'value' attribute on <input type='reset'>", -"input": "<input type=reset value>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'autocomplete' attribute not allowed on <input type='reset'>", -"input": "<input type=reset autocomplete>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'inputmode' attribute not allowed on <input type='reset'>", -"input": "<input type=reset inputmode>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'maxlength' attribute not allowed on <input type='reset'>", -"input": "<input type=reset maxlength>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'action' attribute not allowed on <input type='reset'>", -"input": "<input type=reset action>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'tabindex' attribute on <input type='reset'>", -"input": "<input type=reset tabindex>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'accesskey' attribute on <input type='url'>", -"input": "<input type=url accesskey>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'accept' attribute not allowed on <input type='url'>", -"input": "<input type=url accept>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'replace' attribute not allowed on <input type='url'>", -"input": "<input type=url replace>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'disabled' attribute on <input type='url'>", -"input": "<input type=url disabled>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'alt' attribute not allowed on <input type='url'>", -"input": "<input type=url alt>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'size' attribute not allowed on <input type='url'>", -"input": "<input type=url size>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'checked' attribute not allowed on <input type='url'>", -"input": "<input type=url checked>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'min' attribute not allowed on <input type='url'>", -"input": "<input type=url min>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'pattern' attribute on <input type='url'>", -"input": "<input type=url pattern>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'readonly' attribute on <input type='url'>", -"input": "<input type=url readonly>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'template' attribute not allowed on <input type='url'>", -"input": "<input type=url template>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'autofocus' attribute on <input type='url'>", -"input": "<input type=url autofocus>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'target' attribute not allowed on <input type='url'>", -"input": "<input type=url target>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'method' attribute not allowed on <input type='url'>", -"input": "<input type=url method>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'form' attribute on <input type='url'>", -"input": "<input type=url form>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'max' attribute not allowed on <input type='url'>", -"input": "<input type=url max>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'step' attribute not allowed on <input type='url'>", -"input": "<input type=url step>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'enctype' attribute not allowed on <input type='url'>", -"input": "<input type=url enctype>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'src' attribute not allowed on <input type='url'>", -"input": "<input type=url src>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'name' attribute on <input type='url'>", -"input": "<input type=url name>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'required' attribute on <input type='url'>", -"input": "<input type=url required>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'list' attribute on <input type='url'>", -"input": "<input type=url list>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'value' attribute on <input type='url'>", -"input": "<input type=url value>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'autocomplete' attribute on <input type='url'>", -"input": "<input type=url autocomplete>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'inputmode' attribute on <input type='url'>", -"input": "<input type=url inputmode>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'maxlength' attribute on <input type='url'>", -"input": "<input type=url maxlength>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'action' attribute not allowed on <input type='url'>", -"input": "<input type=url action>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'tabindex' attribute on <input type='url'>", -"input": "<input type=url tabindex>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'accesskey' attribute on <input type='button'>", -"input": "<input type=button accesskey>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'accept' attribute not allowed on <input type='button'>", -"input": "<input type=button accept>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'replace' attribute not allowed on <input type='button'>", -"input": "<input type=button replace>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'disabled' attribute on <input type='button'>", -"input": "<input type=button disabled>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'alt' attribute not allowed on <input type='button'>", -"input": "<input type=button alt>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'size' attribute not allowed on <input type='button'>", -"input": "<input type=button size>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'checked' attribute not allowed on <input type='button'>", -"input": "<input type=button checked>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'min' attribute not allowed on <input type='button'>", -"input": "<input type=button min>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'pattern' attribute not allowed on <input type='button'>", -"input": "<input type=button pattern>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'readonly' attribute not allowed on <input type='button'>", -"input": "<input type=button readonly>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'template' attribute not allowed on <input type='button'>", -"input": "<input type=button template>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'autofocus' attribute on <input type='button'>", -"input": "<input type=button autofocus>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'target' attribute not allowed on <input type='button'>", -"input": "<input type=button target>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'method' attribute not allowed on <input type='button'>", -"input": "<input type=button method>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'form' attribute on <input type='button'>", -"input": "<input type=button form>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'max' attribute not allowed on <input type='button'>", -"input": "<input type=button max>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'step' attribute not allowed on <input type='button'>", -"input": "<input type=button step>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'enctype' attribute not allowed on <input type='button'>", -"input": "<input type=button enctype>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'src' attribute not allowed on <input type='button'>", -"input": "<input type=button src>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'name' attribute on <input type='button'>", -"input": "<input type=button name>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'required' attribute not allowed on <input type='button'>", -"input": "<input type=button required>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'list' attribute not allowed on <input type='button'>", -"input": "<input type=button list>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'value' attribute on <input type='button'>", -"input": "<input type=button value>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'autocomplete' attribute not allowed on <input type='button'>", -"input": "<input type=button autocomplete>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'inputmode' attribute not allowed on <input type='button'>", -"input": "<input type=button inputmode>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'maxlength' attribute not allowed on <input type='button'>", -"input": "<input type=button maxlength>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'action' attribute not allowed on <input type='button'>", -"input": "<input type=button action>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'tabindex' attribute on <input type='button'>", -"input": "<input type=button tabindex>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'accesskey' attribute on <input type='remove'>", -"input": "<input type=remove accesskey>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'accept' attribute not allowed on <input type='remove'>", -"input": "<input type=remove accept>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'replace' attribute not allowed on <input type='remove'>", -"input": "<input type=remove replace>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'disabled' attribute on <input type='remove'>", -"input": "<input type=remove disabled>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'alt' attribute not allowed on <input type='remove'>", -"input": "<input type=remove alt>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'size' attribute not allowed on <input type='remove'>", -"input": "<input type=remove size>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'checked' attribute not allowed on <input type='remove'>", -"input": "<input type=remove checked>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'min' attribute not allowed on <input type='remove'>", -"input": "<input type=remove min>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'pattern' attribute not allowed on <input type='remove'>", -"input": "<input type=remove pattern>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'readonly' attribute not allowed on <input type='remove'>", -"input": "<input type=remove readonly>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'template' attribute not allowed on <input type='remove'>", -"input": "<input type=remove template>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'autofocus' attribute on <input type='remove'>", -"input": "<input type=remove autofocus>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'target' attribute not allowed on <input type='remove'>", -"input": "<input type=remove target>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'method' attribute not allowed on <input type='remove'>", -"input": "<input type=remove method>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'form' attribute on <input type='remove'>", -"input": "<input type=remove form>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'max' attribute not allowed on <input type='remove'>", -"input": "<input type=remove max>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'step' attribute not allowed on <input type='remove'>", -"input": "<input type=remove step>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'enctype' attribute not allowed on <input type='remove'>", -"input": "<input type=remove enctype>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'src' attribute not allowed on <input type='remove'>", -"input": "<input type=remove src>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'name' attribute on <input type='remove'>", -"input": "<input type=remove name>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'required' attribute not allowed on <input type='remove'>", -"input": "<input type=remove required>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'list' attribute not allowed on <input type='remove'>", -"input": "<input type=remove list>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'value' attribute on <input type='remove'>", -"input": "<input type=remove value>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'autocomplete' attribute not allowed on <input type='remove'>", -"input": "<input type=remove autocomplete>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'inputmode' attribute not allowed on <input type='remove'>", -"input": "<input type=remove inputmode>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'maxlength' attribute not allowed on <input type='remove'>", -"input": "<input type=remove maxlength>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'action' attribute not allowed on <input type='remove'>", -"input": "<input type=remove action>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'tabindex' attribute on <input type='remove'>", -"input": "<input type=remove tabindex>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'accesskey' attribute on <input type='range'>", -"input": "<input type=range accesskey>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'accept' attribute not allowed on <input type='range'>", -"input": "<input type=range accept>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'replace' attribute not allowed on <input type='range'>", -"input": "<input type=range replace>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'disabled' attribute on <input type='range'>", -"input": "<input type=range disabled>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'alt' attribute not allowed on <input type='range'>", -"input": "<input type=range alt>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'size' attribute not allowed on <input type='range'>", -"input": "<input type=range size>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'checked' attribute not allowed on <input type='range'>", -"input": "<input type=range checked>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'min' attribute on <input type='range'>", -"input": "<input type=range min>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'pattern' attribute not allowed on <input type='range'>", -"input": "<input type=range pattern>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'readonly' attribute on <input type='range'>", -"input": "<input type=range readonly>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'template' attribute not allowed on <input type='range'>", -"input": "<input type=range template>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'autofocus' attribute on <input type='range'>", -"input": "<input type=range autofocus>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'target' attribute not allowed on <input type='range'>", -"input": "<input type=range target>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'method' attribute not allowed on <input type='range'>", -"input": "<input type=range method>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'form' attribute on <input type='range'>", -"input": "<input type=range form>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'max' attribute on <input type='range'>", -"input": "<input type=range max>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'step' attribute on <input type='range'>", -"input": "<input type=range step>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'enctype' attribute not allowed on <input type='range'>", -"input": "<input type=range enctype>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'src' attribute not allowed on <input type='range'>", -"input": "<input type=range src>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'name' attribute on <input type='range'>", -"input": "<input type=range name>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'required' attribute on <input type='range'>", -"input": "<input type=range required>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'list' attribute on <input type='range'>", -"input": "<input type=range list>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'value' attribute on <input type='range'>", -"input": "<input type=range value>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'autocomplete' attribute on <input type='range'>", -"input": "<input type=range autocomplete>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'inputmode' attribute not allowed on <input type='range'>", -"input": "<input type=range inputmode>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'maxlength' attribute not allowed on <input type='range'>", -"input": "<input type=range maxlength>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'action' attribute not allowed on <input type='range'>", -"input": "<input type=range action>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'tabindex' attribute on <input type='range'>", -"input": "<input type=range tabindex>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'accesskey' attribute on <input type='time'>", -"input": "<input type=time accesskey>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'accept' attribute not allowed on <input type='time'>", -"input": "<input type=time accept>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'replace' attribute not allowed on <input type='time'>", -"input": "<input type=time replace>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'disabled' attribute on <input type='time'>", -"input": "<input type=time disabled>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'alt' attribute not allowed on <input type='time'>", -"input": "<input type=time alt>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'size' attribute not allowed on <input type='time'>", -"input": "<input type=time size>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'checked' attribute not allowed on <input type='time'>", -"input": "<input type=time checked>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'min' attribute on <input type='time'>", -"input": "<input type=time min>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'pattern' attribute not allowed on <input type='time'>", -"input": "<input type=time pattern>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'readonly' attribute on <input type='time'>", -"input": "<input type=time readonly>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'template' attribute not allowed on <input type='time'>", -"input": "<input type=time template>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'autofocus' attribute on <input type='time'>", -"input": "<input type=time autofocus>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'target' attribute not allowed on <input type='time'>", -"input": "<input type=time target>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'method' attribute not allowed on <input type='time'>", -"input": "<input type=time method>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'form' attribute on <input type='time'>", -"input": "<input type=time form>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'max' attribute on <input type='time'>", -"input": "<input type=time max>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'step' attribute on <input type='time'>", -"input": "<input type=time step>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'enctype' attribute not allowed on <input type='time'>", -"input": "<input type=time enctype>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'src' attribute not allowed on <input type='time'>", -"input": "<input type=time src>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'name' attribute on <input type='time'>", -"input": "<input type=time name>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'required' attribute on <input type='time'>", -"input": "<input type=time required>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'list' attribute on <input type='time'>", -"input": "<input type=time list>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'value' attribute on <input type='time'>", -"input": "<input type=time value>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'autocomplete' attribute on <input type='time'>", -"input": "<input type=time autocomplete>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'inputmode' attribute not allowed on <input type='time'>", -"input": "<input type=time inputmode>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'maxlength' attribute not allowed on <input type='time'>", -"input": "<input type=time maxlength>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "'action' attribute not allowed on <input type='time'>", -"input": "<input type=time action>", -"fail-unless": "attribute-not-allowed-on-this-input-type"}, - -{"description": "allowed 'tabindex' attribute on <input type='time'>", -"input": "<input type=time tabindex>", -"fail-if": "attribute-not-allowed-on-this-input-type"}, - -{"description": "unknown 'foo' attribute on <input type='checkbox'>", -"input": "<input type=checkbox foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <input type='text'>", -"input": "<input type=text foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <input type='image'>", -"input": "<input type=image foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <input type='number'>", -"input": "<input type=number foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <input type='month'>", -"input": "<input type=month foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <input type='radio'>", -"input": "<input type=radio foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <input type='file'>", -"input": "<input type=file foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <input type='password'>", -"input": "<input type=password foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <input type='move-up'>", -"input": "<input type=move-up foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <input type='submit'>", -"input": "<input type=submit foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <input type='add'>", -"input": "<input type=add foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <input type='hidden'>", -"input": "<input type=hidden foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <input type='email'>", -"input": "<input type=email foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <input type='week'>", -"input": "<input type=week foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <input type='date'>", -"input": "<input type=date foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <input type='datetime'>", -"input": "<input type=datetime foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <input type='move-down'>", -"input": "<input type=move-down foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <input type='datetime-local'>", -"input": "<input type=datetime-local foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <input type='reset'>", -"input": "<input type=reset foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <input type='url'>", -"input": "<input type=url foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <input type='button'>", -"input": "<input type=button foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <input type='remove'>", -"input": "<input type=remove foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <input type='range'>", -"input": "<input type=range foo>", -"fail-unless": "unknown-attribute"}, - -{"description": "unknown 'foo' attribute on <input type='time'>", -"input": "<input type=time foo>", -"fail-unless": "unknown-attribute"} - -]} diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/irrelevantattribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/irrelevantattribute.test deleted file mode 100755 index fa4061300cd..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/irrelevantattribute.test +++ /dev/null @@ -1,63 +0,0 @@ -{"tests": [ - -{"description": "valid irrelevant attribute value 'irrelevant'", -"input": "<span irrelevant=irrelevant>", -"fail-if": "invalid-attribute-value"}, - -{"description": "valid irrelevant attribute value ''", -"input": "<span irrelevant=''>", -"fail-if": "invalid-attribute-value"}, - -{"description": "invalid irrelevant attribute value due to uppercase", -"input": "<span irrelevant=IRRELEVANT>", -"fail-unless": "invalid-boolean-value"}, - -{"description": "invalid irrelevant attribute value due to mixed case", -"input": "<span irrelevant=IrReLeVaNt>", -"fail-unless": "invalid-boolean-value"}, - -{"description": "invalid irrelevant attribute value due to leading space", -"input": "<span irrelevant=' irrelevant'>", -"fail-unless": "invalid-boolean-value"}, - -{"description": "invalid irrelevant attribute value due to trailing space", -"input": "<span irrelevant='irrelevant '>", -"fail-unless": "invalid-boolean-value"}, - -{"description": "invalid irrelevant attribute value 'foo'", -"input": "<span irrelevant=foo>", -"fail-unless": "invalid-boolean-value"}, - -{"description": "invalid irrelevant attribute value '0'", -"input": "<span irrelevant=0>", -"fail-unless": "invalid-boolean-value"}, - -{"description": "invalid irrelevant attribute value '1'", -"input": "<span irrelevant=1>", -"fail-unless": "invalid-boolean-value"}, - -{"description": "invalid irrelevant attribute value 'yes'", -"input": "<span irrelevant=yes>", -"fail-unless": "invalid-boolean-value"}, - -{"description": "invalid irrelevant attribute value 'no'", -"input": "<span irrelevant=no>", -"fail-unless": "invalid-boolean-value"}, - -{"description": "invalid irrelevant attribute value 'true'", -"input": "<span irrelevant=true>", -"fail-unless": "invalid-boolean-value"}, - -{"description": "invalid irrelevant attribute value 'false'", -"input": "<span irrelevant=false>", -"fail-unless": "invalid-boolean-value"}, - -{"description": "invalid irrelevant attribute value 'auto'", -"input": "<span irrelevant=auto>", -"fail-unless": "invalid-boolean-value"}, - -{"description": "invalid irrelevant attribute value 'inherit'", -"input": "<span irrelevant=inherit>", -"fail-unless": "invalid-boolean-value"} - -]}
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/langattribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/langattribute.test deleted file mode 100755 index 6c831a179d8..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/langattribute.test +++ /dev/null @@ -1,5579 +0,0 @@ -{"tests": [ - -{"description": "valid lang attribute 'roh'", -"input": "<span lang=roh>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gv'", -"input": "<span lang=gv>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gu'", -"input": "<span lang=gu>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'scn'", -"input": "<span lang=scn>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'rom'", -"input": "<span lang=rom>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ron'", -"input": "<span lang=ron>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'alg'", -"input": "<span lang=alg>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'oss'", -"input": "<span lang=oss>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ale'", -"input": "<span lang=ale>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'alb'", -"input": "<span lang=alb>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sco'", -"input": "<span lang=sco>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'scc'", -"input": "<span lang=scc>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mni'", -"input": "<span lang=mni>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gd'", -"input": "<span lang=gd>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'per'", -"input": "<span lang=per>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ga'", -"input": "<span lang=ga>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nwc'", -"input": "<span lang=nwc>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'osa'", -"input": "<span lang=osa>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gn'", -"input": "<span lang=gn>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'alt'", -"input": "<span lang=alt>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gl'", -"input": "<span lang=gl>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'scr'", -"input": "<span lang=scr>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mwr'", -"input": "<span lang=mwr>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ty'", -"input": "<span lang=ty>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tw'", -"input": "<span lang=tw>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tt'", -"input": "<span lang=tt>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tr'", -"input": "<span lang=tr>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ts'", -"input": "<span lang=ts>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tn'", -"input": "<span lang=tn>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'to'", -"input": "<span lang=to>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tl'", -"input": "<span lang=tl>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tk'", -"input": "<span lang=tk>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'th'", -"input": "<span lang=th>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ti'", -"input": "<span lang=ti>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ven'", -"input": "<span lang=ven>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tg'", -"input": "<span lang=tg>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'te'", -"input": "<span lang=te>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'uga'", -"input": "<span lang=uga>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ta'", -"input": "<span lang=ta>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fas'", -"input": "<span lang=fas>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fat'", -"input": "<span lang=fat>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fan'", -"input": "<span lang=fan>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fao'", -"input": "<span lang=fao>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'got'", -"input": "<span lang=got>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sme'", -"input": "<span lang=sme>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'din'", -"input": "<span lang=din>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'hye'", -"input": "<span lang=hye>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'guj'", -"input": "<span lang=guj>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cmc'", -"input": "<span lang=cmc>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'srd'", -"input": "<span lang=srd>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mdr'", -"input": "<span lang=mdr>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ml'", -"input": "<span lang=ml>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'div'", -"input": "<span lang=div>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'zh'", -"input": "<span lang=zh>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tem'", -"input": "<span lang=tem>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'xho'", -"input": "<span lang=xho>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mno'", -"input": "<span lang=mno>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'roa'", -"input": "<span lang=roa>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'za'", -"input": "<span lang=za>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'deu'", -"input": "<span lang=deu>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mk'", -"input": "<span lang=mk>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nbl'", -"input": "<span lang=nbl>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'zu'", -"input": "<span lang=zu>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ter'", -"input": "<span lang=ter>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tet'", -"input": "<span lang=tet>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mnc'", -"input": "<span lang=mnc>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sun'", -"input": "<span lang=sun>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'abk'", -"input": "<span lang=abk>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'suk'", -"input": "<span lang=suk>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kur'", -"input": "<span lang=kur>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kum'", -"input": "<span lang=kum>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'slo'", -"input": "<span lang=slo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sus'", -"input": "<span lang=sus>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'new'", -"input": "<span lang=new>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kua'", -"input": "<span lang=kua>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sux'", -"input": "<span lang=sux>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'den'", -"input": "<span lang=den>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mr'", -"input": "<span lang=mr>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mul'", -"input": "<span lang=mul>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lez'", -"input": "<span lang=lez>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gla'", -"input": "<span lang=gla>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bos'", -"input": "<span lang=bos>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gle'", -"input": "<span lang=gle>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'eka'", -"input": "<span lang=eka>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'glg'", -"input": "<span lang=glg>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'akk'", -"input": "<span lang=akk>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'dra'", -"input": "<span lang=dra>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'aka'", -"input": "<span lang=aka>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bod'", -"input": "<span lang=bod>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'glv'", -"input": "<span lang=glv>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'jrb'", -"input": "<span lang=jrb>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'vie'", -"input": "<span lang=vie>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ipk'", -"input": "<span lang=ipk>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'uzb'", -"input": "<span lang=uzb>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sgn'", -"input": "<span lang=sgn>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sga'", -"input": "<span lang=sga>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bre'", -"input": "<span lang=bre>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'apa'", -"input": "<span lang=apa>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bra'", -"input": "<span lang=bra>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'aym'", -"input": "<span lang=aym>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cha'", -"input": "<span lang=cha>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'chb'", -"input": "<span lang=chb>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'che'", -"input": "<span lang=che>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'chg'", -"input": "<span lang=chg>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'chi'", -"input": "<span lang=chi>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'chk'", -"input": "<span lang=chk>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'aus'", -"input": "<span lang=aus>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'chn'", -"input": "<span lang=chn>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cho'", -"input": "<span lang=cho>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'chp'", -"input": "<span lang=chp>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'chr'", -"input": "<span lang=chr>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'chu'", -"input": "<span lang=chu>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'chv'", -"input": "<span lang=chv>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'chy'", -"input": "<span lang=chy>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'msa'", -"input": "<span lang=msa>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'iii'", -"input": "<span lang=iii>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'vot'", -"input": "<span lang=vot>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mg'", -"input": "<span lang=mg>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ndo'", -"input": "<span lang=ndo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ibo'", -"input": "<span lang=ibo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'car'", -"input": "<span lang=car>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mo'", -"input": "<span lang=mo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mn'", -"input": "<span lang=mn>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mi'", -"input": "<span lang=mi>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mh'", -"input": "<span lang=mh>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cau'", -"input": "<span lang=cau>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cat'", -"input": "<span lang=cat>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bur'", -"input": "<span lang=bur>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mt'", -"input": "<span lang=mt>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cai'", -"input": "<span lang=cai>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'del'", -"input": "<span lang=del>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ms'", -"input": "<span lang=ms>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'byn'", -"input": "<span lang=byn>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mwl'", -"input": "<span lang=mwl>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'my'", -"input": "<span lang=my>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cad'", -"input": "<span lang=cad>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tat'", -"input": "<span lang=tat>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nde'", -"input": "<span lang=nde>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tam'", -"input": "<span lang=tam>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'spa'", -"input": "<span lang=spa>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tah'", -"input": "<span lang=tah>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tai'", -"input": "<span lang=tai>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cze'", -"input": "<span lang=cze>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'afh'", -"input": "<span lang=afh>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'eng'", -"input": "<span lang=eng>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'afa'", -"input": "<span lang=afa>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'id'", -"input": "<span lang=id>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nyn'", -"input": "<span lang=nyn>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nyo'", -"input": "<span lang=nyo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gez'", -"input": "<span lang=gez>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nya'", -"input": "<span lang=nya>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sio'", -"input": "<span lang=sio>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sin'", -"input": "<span lang=sin>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'afr'", -"input": "<span lang=afr>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'map'", -"input": "<span lang=map>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fr'", -"input": "<span lang=fr>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lao'", -"input": "<span lang=lao>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lah'", -"input": "<span lang=lah>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nym'", -"input": "<span lang=nym>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sna'", -"input": "<span lang=sna>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lad'", -"input": "<span lang=lad>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fy'", -"input": "<span lang=fy>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'snk'", -"input": "<span lang=snk>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fa'", -"input": "<span lang=fa>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mac'", -"input": "<span lang=mac>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mad'", -"input": "<span lang=mad>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ff'", -"input": "<span lang=ff>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lat'", -"input": "<span lang=lat>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fi'", -"input": "<span lang=fi>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fj'", -"input": "<span lang=fj>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mal'", -"input": "<span lang=mal>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mao'", -"input": "<span lang=mao>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fo'", -"input": "<span lang=fo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mak'", -"input": "<span lang=mak>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'egy'", -"input": "<span lang=egy>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'znd'", -"input": "<span lang=znd>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ss'", -"input": "<span lang=ss>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sr'", -"input": "<span lang=sr>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sq'", -"input": "<span lang=sq>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sit'", -"input": "<span lang=sit>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sw'", -"input": "<span lang=sw>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sv'", -"input": "<span lang=sv>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'su'", -"input": "<span lang=su>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'st'", -"input": "<span lang=st>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sk'", -"input": "<span lang=sk>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'si'", -"input": "<span lang=si>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sh'", -"input": "<span lang=sh>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'so'", -"input": "<span lang=so>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sn'", -"input": "<span lang=sn>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sm'", -"input": "<span lang=sm>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sl'", -"input": "<span lang=sl>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sc'", -"input": "<span lang=sc>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sa'", -"input": "<span lang=sa>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sg'", -"input": "<span lang=sg>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'se'", -"input": "<span lang=se>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sd'", -"input": "<span lang=sd>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'zen'", -"input": "<span lang=zen>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kbd'", -"input": "<span lang=kbd>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'enm'", -"input": "<span lang=enm>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'iro'", -"input": "<span lang=iro>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'vai'", -"input": "<span lang=vai>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'csb'", -"input": "<span lang=csb>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tsn'", -"input": "<span lang=tsn>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lg'", -"input": "<span lang=lg>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lb'", -"input": "<span lang=lb>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'la'", -"input": "<span lang=la>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ln'", -"input": "<span lang=ln>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lo'", -"input": "<span lang=lo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'li'", -"input": "<span lang=li>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lv'", -"input": "<span lang=lv>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lt'", -"input": "<span lang=lt>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lu'", -"input": "<span lang=lu>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'hin'", -"input": "<span lang=hin>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fij'", -"input": "<span lang=fij>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fin'", -"input": "<span lang=fin>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'eus'", -"input": "<span lang=eus>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'yi'", -"input": "<span lang=yi>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'non'", -"input": "<span lang=non>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ceb'", -"input": "<span lang=ceb>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'yo'", -"input": "<span lang=yo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'dan'", -"input": "<span lang=dan>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cel'", -"input": "<span lang=cel>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bat'", -"input": "<span lang=bat>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nob'", -"input": "<span lang=nob>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'dak'", -"input": "<span lang=dak>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ces'", -"input": "<span lang=ces>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'dar'", -"input": "<span lang=dar>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'son'", -"input": "<span lang=son>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'day'", -"input": "<span lang=day>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nor'", -"input": "<span lang=nor>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gba'", -"input": "<span lang=gba>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ssa'", -"input": "<span lang=ssa>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'hil'", -"input": "<span lang=hil>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kpe'", -"input": "<span lang=kpe>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'man'", -"input": "<span lang=man>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'wel'", -"input": "<span lang=wel>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'el'", -"input": "<span lang=el>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'eo'", -"input": "<span lang=eo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'en'", -"input": "<span lang=en>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lam'", -"input": "<span lang=lam>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ee'", -"input": "<span lang=ee>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tpi'", -"input": "<span lang=tpi>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mdf'", -"input": "<span lang=mdf>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mas'", -"input": "<span lang=mas>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mar'", -"input": "<span lang=mar>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'eu'", -"input": "<span lang=eu>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'et'", -"input": "<span lang=et>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'es'", -"input": "<span lang=es>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ru'", -"input": "<span lang=ru>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'rw'", -"input": "<span lang=rw>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'goh'", -"input": "<span lang=goh>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sms'", -"input": "<span lang=sms>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'smo'", -"input": "<span lang=smo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'smn'", -"input": "<span lang=smn>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'smj'", -"input": "<span lang=smj>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'smi'", -"input": "<span lang=smi>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nic'", -"input": "<span lang=nic>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'rm'", -"input": "<span lang=rm>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'rn'", -"input": "<span lang=rn>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ro'", -"input": "<span lang=ro>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'dsb'", -"input": "<span lang=dsb>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sma'", -"input": "<span lang=sma>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gor'", -"input": "<span lang=gor>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ast'", -"input": "<span lang=ast>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'orm'", -"input": "<span lang=orm>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'que'", -"input": "<span lang=que>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ori'", -"input": "<span lang=ori>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'crh'", -"input": "<span lang=crh>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'asm'", -"input": "<span lang=asm>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'pus'", -"input": "<span lang=pus>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kik'", -"input": "<span lang=kik>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ltz'", -"input": "<span lang=ltz>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ath'", -"input": "<span lang=ath>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'wln'", -"input": "<span lang=wln>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'isl'", -"input": "<span lang=isl>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'xh'", -"input": "<span lang=xh>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mag'", -"input": "<span lang=mag>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mai'", -"input": "<span lang=mai>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'xx'", -"input": "<span lang=xx>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mah'", -"input": "<span lang=mah>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tel'", -"input": "<span lang=tel>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lav'", -"input": "<span lang=lav>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'zap'", -"input": "<span lang=zap>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'yid'", -"input": "<span lang=yid>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kok'", -"input": "<span lang=kok>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kom'", -"input": "<span lang=kom>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kon'", -"input": "<span lang=kon>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ukr'", -"input": "<span lang=ukr>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ton'", -"input": "<span lang=ton>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kos'", -"input": "<span lang=kos>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kor'", -"input": "<span lang=kor>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tog'", -"input": "<span lang=tog>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'hun'", -"input": "<span lang=hun>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'hup'", -"input": "<span lang=hup>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cym'", -"input": "<span lang=cym>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'udm'", -"input": "<span lang=udm>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bej'", -"input": "<span lang=bej>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ben'", -"input": "<span lang=ben>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bel'", -"input": "<span lang=bel>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bem'", -"input": "<span lang=bem>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tsi'", -"input": "<span lang=tsi>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'aar'", -"input": "<span lang=aar>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ber'", -"input": "<span lang=ber>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nzi'", -"input": "<span lang=nzi>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sai'", -"input": "<span lang=sai>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ang'", -"input": "<span lang=ang>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'pra'", -"input": "<span lang=pra>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'san'", -"input": "<span lang=san>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bho'", -"input": "<span lang=bho>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sal'", -"input": "<span lang=sal>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'pro'", -"input": "<span lang=pro>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'raj'", -"input": "<span lang=raj>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sad'", -"input": "<span lang=sad>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'anp'", -"input": "<span lang=anp>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'rap'", -"input": "<span lang=rap>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sas'", -"input": "<span lang=sas>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'iba'", -"input": "<span lang=iba>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'myn'", -"input": "<span lang=myn>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'min'", -"input": "<span lang=min>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lim'", -"input": "<span lang=lim>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lin'", -"input": "<span lang=lin>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nah'", -"input": "<span lang=nah>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lit'", -"input": "<span lang=lit>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'efi'", -"input": "<span lang=efi>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'srn'", -"input": "<span lang=srn>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'arn'", -"input": "<span lang=arn>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ypk'", -"input": "<span lang=ypk>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mis'", -"input": "<span lang=mis>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kac'", -"input": "<span lang=kac>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kab'", -"input": "<span lang=kab>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kaa'", -"input": "<span lang=kaa>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kan'", -"input": "<span lang=kan>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kam'", -"input": "<span lang=kam>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kal'", -"input": "<span lang=kal>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kas'", -"input": "<span lang=kas>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kar'", -"input": "<span lang=kar>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kaw'", -"input": "<span lang=kaw>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kau'", -"input": "<span lang=kau>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kat'", -"input": "<span lang=kat>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kaz'", -"input": "<span lang=kaz>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tyv'", -"input": "<span lang=tyv>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'awa'", -"input": "<span lang=awa>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'urd'", -"input": "<span lang=urd>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ka'", -"input": "<span lang=ka>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'doi'", -"input": "<span lang=doi>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kg'", -"input": "<span lang=kg>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kk'", -"input": "<span lang=kk>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kj'", -"input": "<span lang=kj>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ki'", -"input": "<span lang=ki>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ko'", -"input": "<span lang=ko>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kn'", -"input": "<span lang=kn>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'km'", -"input": "<span lang=km>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kl'", -"input": "<span lang=kl>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ks'", -"input": "<span lang=ks>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kr'", -"input": "<span lang=kr>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kw'", -"input": "<span lang=kw>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kv'", -"input": "<span lang=kv>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ku'", -"input": "<span lang=ku>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ky'", -"input": "<span lang=ky>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ota'", -"input": "<span lang=ota>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kut'", -"input": "<span lang=kut>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tkl'", -"input": "<span lang=tkl>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nld'", -"input": "<span lang=nld>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'oji'", -"input": "<span lang=oji>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'oci'", -"input": "<span lang=oci>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ha'", -"input": "<span lang=ha>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'wol'", -"input": "<span lang=wol>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'jav'", -"input": "<span lang=jav>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'hrv'", -"input": "<span lang=hrv>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ger'", -"input": "<span lang=ger>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mga'", -"input": "<span lang=mga>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'hit'", -"input": "<span lang=hit>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'dyu'", -"input": "<span lang=dyu>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ssw'", -"input": "<span lang=ssw>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'de'", -"input": "<span lang=de>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'da'", -"input": "<span lang=da>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'dz'", -"input": "<span lang=dz>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lui'", -"input": "<span lang=lui>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'dv'", -"input": "<span lang=dv>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ita'", -"input": "<span lang=ita>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'geo'", -"input": "<span lang=geo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'him'", -"input": "<span lang=him>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gem'", -"input": "<span lang=gem>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'crp'", -"input": "<span lang=crp>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'qu'", -"input": "<span lang=qu>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bas'", -"input": "<span lang=bas>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'baq'", -"input": "<span lang=baq>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bad'", -"input": "<span lang=bad>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nep'", -"input": "<span lang=nep>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cre'", -"input": "<span lang=cre>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ban'", -"input": "<span lang=ban>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'x'", -"input": "<span lang=x>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bal'", -"input": "<span lang=bal>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bam'", -"input": "<span lang=bam>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bak'", -"input": "<span lang=bak>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'shn'", -"input": "<span lang=shn>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bai'", -"input": "<span lang=bai>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'arp'", -"input": "<span lang=arp>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'art'", -"input": "<span lang=art>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'arw'", -"input": "<span lang=arw>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'qtz'", -"input": "<span lang=qtz>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ara'", -"input": "<span lang=ara>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'arc'", -"input": "<span lang=arc>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'arg'", -"input": "<span lang=arg>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sem'", -"input": "<span lang=sem>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sel'", -"input": "<span lang=sel>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nub'", -"input": "<span lang=nub>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'arm'", -"input": "<span lang=arm>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'btk'", -"input": "<span lang=btk>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lus'", -"input": "<span lang=lus>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'iku'", -"input": "<span lang=iku>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mus'", -"input": "<span lang=mus>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lua'", -"input": "<span lang=lua>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lub'", -"input": "<span lang=lub>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lug'", -"input": "<span lang=lug>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ira'", -"input": "<span lang=ira>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mun'", -"input": "<span lang=mun>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tur'", -"input": "<span lang=tur>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lun'", -"input": "<span lang=lun>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'luo'", -"input": "<span lang=luo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'men'", -"input": "<span lang=men>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'wa'", -"input": "<span lang=wa>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tso'", -"input": "<span lang=tso>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'wo'", -"input": "<span lang=wo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'jv'", -"input": "<span lang=jv>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tut'", -"input": "<span lang=tut>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ind'", -"input": "<span lang=ind>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tuk'", -"input": "<span lang=tuk>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tum'", -"input": "<span lang=tum>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ja'", -"input": "<span lang=ja>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cop'", -"input": "<span lang=cop>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cos'", -"input": "<span lang=cos>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cor'", -"input": "<span lang=cor>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ilo'", -"input": "<span lang=ilo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fiu'", -"input": "<span lang=fiu>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gwi'", -"input": "<span lang=gwi>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'und'", -"input": "<span lang=und>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gws'", -"input": "<span lang=gws>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tli'", -"input": "<span lang=tli>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tlh'", -"input": "<span lang=tlh>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nno'", -"input": "<span lang=nno>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ch'", -"input": "<span lang=ch>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'co'", -"input": "<span lang=co>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ca'", -"input": "<span lang=ca>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'por'", -"input": "<span lang=por>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ce'", -"input": "<span lang=ce>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'pon'", -"input": "<span lang=pon>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cy'", -"input": "<span lang=cy>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sah'", -"input": "<span lang=sah>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cs'", -"input": "<span lang=cs>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cr'", -"input": "<span lang=cr>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ady'", -"input": "<span lang=ady>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cv'", -"input": "<span lang=cv>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cu'", -"input": "<span lang=cu>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ps'", -"input": "<span lang=ps>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fra'", -"input": "<span lang=fra>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'dum'", -"input": "<span lang=dum>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'pt'", -"input": "<span lang=pt>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'swa'", -"input": "<span lang=swa>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'dua'", -"input": "<span lang=dua>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fro'", -"input": "<span lang=fro>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'yap'", -"input": "<span lang=yap>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'frm'", -"input": "<span lang=frm>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tiv'", -"input": "<span lang=tiv>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'frs'", -"input": "<span lang=frs>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'frr'", -"input": "<span lang=frr>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'yao'", -"input": "<span lang=yao>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'pa'", -"input": "<span lang=pa>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'xal'", -"input": "<span lang=xal>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fry'", -"input": "<span lang=fry>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'pi'", -"input": "<span lang=pi>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'dut'", -"input": "<span lang=dut>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'pl'", -"input": "<span lang=pl>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gay'", -"input": "<span lang=gay>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'oto'", -"input": "<span lang=oto>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sag'", -"input": "<span lang=sag>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'hmn'", -"input": "<span lang=hmn>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'hmo'", -"input": "<span lang=hmo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'an'", -"input": "<span lang=an>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gaa'", -"input": "<span lang=gaa>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fur'", -"input": "<span lang=fur>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mlg'", -"input": "<span lang=mlg>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'slv'", -"input": "<span lang=slv>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ain'", -"input": "<span lang=ain>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fil'", -"input": "<span lang=fil>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mlt'", -"input": "<span lang=mlt>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'slk'", -"input": "<span lang=slk>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'rar'", -"input": "<span lang=rar>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ful'", -"input": "<span lang=ful>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sla'", -"input": "<span lang=sla>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 've'", -"input": "<span lang=ve>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'jpn'", -"input": "<span lang=jpn>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'vol'", -"input": "<span lang=vol>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'vi'", -"input": "<span lang=vi>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'is'", -"input": "<span lang=is>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kho'", -"input": "<span lang=kho>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'iu'", -"input": "<span lang=iu>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'it'", -"input": "<span lang=it>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'vo'", -"input": "<span lang=vo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ii'", -"input": "<span lang=ii>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ay'", -"input": "<span lang=ay>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ik'", -"input": "<span lang=ik>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'io'", -"input": "<span lang=io>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kha'", -"input": "<span lang=kha>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ia'", -"input": "<span lang=ia>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ave'", -"input": "<span lang=ave>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'jpr'", -"input": "<span lang=jpr>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ie'", -"input": "<span lang=ie>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ava'", -"input": "<span lang=ava>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ig'", -"input": "<span lang=ig>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'pap'", -"input": "<span lang=pap>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ewo'", -"input": "<span lang=ewo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'pau'", -"input": "<span lang=pau>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ewe'", -"input": "<span lang=ewe>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'paa'", -"input": "<span lang=paa>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'qaa'", -"input": "<span lang=qaa>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'pag'", -"input": "<span lang=pag>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sat'", -"input": "<span lang=sat>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'pal'", -"input": "<span lang=pal>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'pam'", -"input": "<span lang=pam>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'pan'", -"input": "<span lang=pan>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'phi'", -"input": "<span lang=phi>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nog'", -"input": "<span lang=nog>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'phn'", -"input": "<span lang=phn>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kir'", -"input": "<span lang=kir>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nia'", -"input": "<span lang=nia>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'dgr'", -"input": "<span lang=dgr>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'syr'", -"input": "<span lang=syr>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kin'", -"input": "<span lang=kin>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tup'", -"input": "<span lang=tup>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'niu'", -"input": "<span lang=niu>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gsw'", -"input": "<span lang=gsw>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'epo'", -"input": "<span lang=epo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'jbo'", -"input": "<span lang=jbo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mic'", -"input": "<span lang=mic>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tha'", -"input": "<span lang=tha>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sam'", -"input": "<span lang=sam>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'hai'", -"input": "<span lang=hai>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gmh'", -"input": "<span lang=gmh>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cus'", -"input": "<span lang=cus>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ell'", -"input": "<span lang=ell>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'wen'", -"input": "<span lang=wen>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bnt'", -"input": "<span lang=bnt>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fre'", -"input": "<span lang=fre>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'elx'", -"input": "<span lang=elx>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ada'", -"input": "<span lang=ada>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nav'", -"input": "<span lang=nav>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'hat'", -"input": "<span lang=hat>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'hau'", -"input": "<span lang=hau>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'haw'", -"input": "<span lang=haw>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bin'", -"input": "<span lang=bin>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'amh'", -"input": "<span lang=amh>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bik'", -"input": "<span lang=bik>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bih'", -"input": "<span lang=bih>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mos'", -"input": "<span lang=mos>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'moh'", -"input": "<span lang=moh>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mon'", -"input": "<span lang=mon>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mol'", -"input": "<span lang=mol>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bis'", -"input": "<span lang=bis>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bla'", -"input": "<span lang=bla>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'pol'", -"input": "<span lang=pol>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tib'", -"input": "<span lang=tib>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tvl'", -"input": "<span lang=tvl>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tgk'", -"input": "<span lang=tgk>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ijo'", -"input": "<span lang=ijo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'est'", -"input": "<span lang=est>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kmb'", -"input": "<span lang=kmb>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ice'", -"input": "<span lang=ice>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'peo'", -"input": "<span lang=peo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tgl'", -"input": "<span lang=tgl>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'umb'", -"input": "<span lang=umb>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tmh'", -"input": "<span lang=tmh>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fon'", -"input": "<span lang=fon>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'hsb'", -"input": "<span lang=hsb>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'be'", -"input": "<span lang=be>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bg'", -"input": "<span lang=bg>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'run'", -"input": "<span lang=run>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ba'", -"input": "<span lang=ba>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'rum'", -"input": "<span lang=rum>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bm'", -"input": "<span lang=bm>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bn'", -"input": "<span lang=bn>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bo'", -"input": "<span lang=bo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bh'", -"input": "<span lang=bh>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bi'", -"input": "<span lang=bi>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'br'", -"input": "<span lang=br>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bs'", -"input": "<span lang=bs>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'rus'", -"input": "<span lang=rus>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'rup'", -"input": "<span lang=rup>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'pli'", -"input": "<span lang=pli>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'om'", -"input": "<span lang=om>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'oj'", -"input": "<span lang=oj>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ace'", -"input": "<span lang=ace>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ach'", -"input": "<span lang=ach>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'oc'", -"input": "<span lang=oc>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'dzo'", -"input": "<span lang=dzo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kru'", -"input": "<span lang=kru>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'srr'", -"input": "<span lang=srr>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ido'", -"input": "<span lang=ido>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'srp'", -"input": "<span lang=srp>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kro'", -"input": "<span lang=kro>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'krl'", -"input": "<span lang=krl>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'krc'", -"input": "<span lang=krc>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nds'", -"input": "<span lang=nds>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'os'", -"input": "<span lang=os>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'or'", -"input": "<span lang=or>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'zul'", -"input": "<span lang=zul>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'twi'", -"input": "<span lang=twi>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sog'", -"input": "<span lang=sog>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nso'", -"input": "<span lang=nso>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'swe'", -"input": "<span lang=swe>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'som'", -"input": "<span lang=som>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'chm'", -"input": "<span lang=chm>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'snd'", -"input": "<span lang=snd>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sot'", -"input": "<span lang=sot>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mkd'", -"input": "<span lang=mkd>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'wak'", -"input": "<span lang=wak>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'her'", -"input": "<span lang=her>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lol'", -"input": "<span lang=lol>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mkh'", -"input": "<span lang=mkh>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'heb'", -"input": "<span lang=heb>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'loz'", -"input": "<span lang=loz>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gil'", -"input": "<span lang=gil>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'was'", -"input": "<span lang=was>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'war'", -"input": "<span lang=war>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'hz'", -"input": "<span lang=hz>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'hy'", -"input": "<span lang=hy>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sid'", -"input": "<span lang=sid>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'hr'", -"input": "<span lang=hr>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ht'", -"input": "<span lang=ht>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'hu'", -"input": "<span lang=hu>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'hi'", -"input": "<span lang=hi>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ho'", -"input": "<span lang=ho>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bul'", -"input": "<span lang=bul>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'wal'", -"input": "<span lang=wal>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bua'", -"input": "<span lang=bua>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bug'", -"input": "<span lang=bug>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'he'", -"input": "<span lang=he>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'uz'", -"input": "<span lang=uz>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'aze'", -"input": "<span lang=aze>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ur'", -"input": "<span lang=ur>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'zha'", -"input": "<span lang=zha>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'uk'", -"input": "<span lang=uk>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ug'", -"input": "<span lang=ug>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'zho'", -"input": "<span lang=zho>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'aa'", -"input": "<span lang=aa>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ab'", -"input": "<span lang=ab>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ae'", -"input": "<span lang=ae>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'uig'", -"input": "<span lang=uig>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'af'", -"input": "<span lang=af>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ak'", -"input": "<span lang=ak>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'am'", -"input": "<span lang=am>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'myv'", -"input": "<span lang=myv>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'khi'", -"input": "<span lang=khi>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'as'", -"input": "<span lang=as>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ar'", -"input": "<span lang=ar>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'inh'", -"input": "<span lang=inh>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'khm'", -"input": "<span lang=khm>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'av'", -"input": "<span lang=av>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mya'", -"input": "<span lang=mya>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ine'", -"input": "<span lang=ine>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'az'", -"input": "<span lang=az>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ina'", -"input": "<span lang=ina>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'inc'", -"input": "<span lang=inc>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nl'", -"input": "<span lang=nl>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nn'", -"input": "<span lang=nn>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'no'", -"input": "<span lang=no>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'na'", -"input": "<span lang=na>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nb'", -"input": "<span lang=nb>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nai'", -"input": "<span lang=nai>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nd'", -"input": "<span lang=nd>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ne'", -"input": "<span lang=ne>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tir'", -"input": "<span lang=tir>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ng'", -"input": "<span lang=ng>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ny'", -"input": "<span lang=ny>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nap'", -"input": "<span lang=nap>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gre'", -"input": "<span lang=gre>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'grb'", -"input": "<span lang=grb>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'grc'", -"input": "<span lang=grc>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nau'", -"input": "<span lang=nau>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'grn'", -"input": "<span lang=grn>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nr'", -"input": "<span lang=nr>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tig'", -"input": "<span lang=tig>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'yor'", -"input": "<span lang=yor>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nv'", -"input": "<span lang=nv>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mri'", -"input": "<span lang=mri>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'may'", -"input": "<span lang=may>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'zun'", -"input": "<span lang=zun>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ile'", -"input": "<span lang=ile>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sqi'", -"input": "<span lang=sqi>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gon'", -"input": "<span lang=gon>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cpe'", -"input": "<span lang=cpe>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cpf'", -"input": "<span lang=cpf>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cpp'", -"input": "<span lang=cpp>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'roh-foo'", -"input": "<span lang=roh-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gv-foo'", -"input": "<span lang=gv-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gu-foo'", -"input": "<span lang=gu-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'scn-foo'", -"input": "<span lang=scn-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'rom-foo'", -"input": "<span lang=rom-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ron-foo'", -"input": "<span lang=ron-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'alg-foo'", -"input": "<span lang=alg-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'oss-foo'", -"input": "<span lang=oss-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ale-foo'", -"input": "<span lang=ale-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'alb-foo'", -"input": "<span lang=alb-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sco-foo'", -"input": "<span lang=sco-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'scc-foo'", -"input": "<span lang=scc-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mni-foo'", -"input": "<span lang=mni-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gd-foo'", -"input": "<span lang=gd-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'per-foo'", -"input": "<span lang=per-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ga-foo'", -"input": "<span lang=ga-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nwc-foo'", -"input": "<span lang=nwc-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'osa-foo'", -"input": "<span lang=osa-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gn-foo'", -"input": "<span lang=gn-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'alt-foo'", -"input": "<span lang=alt-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gl-foo'", -"input": "<span lang=gl-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'scr-foo'", -"input": "<span lang=scr-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mwr-foo'", -"input": "<span lang=mwr-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ty-foo'", -"input": "<span lang=ty-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tw-foo'", -"input": "<span lang=tw-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tt-foo'", -"input": "<span lang=tt-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tr-foo'", -"input": "<span lang=tr-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ts-foo'", -"input": "<span lang=ts-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tn-foo'", -"input": "<span lang=tn-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'to-foo'", -"input": "<span lang=to-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tl-foo'", -"input": "<span lang=tl-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tk-foo'", -"input": "<span lang=tk-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'th-foo'", -"input": "<span lang=th-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ti-foo'", -"input": "<span lang=ti-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ven-foo'", -"input": "<span lang=ven-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tg-foo'", -"input": "<span lang=tg-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'te-foo'", -"input": "<span lang=te-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'uga-foo'", -"input": "<span lang=uga-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ta-foo'", -"input": "<span lang=ta-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fas-foo'", -"input": "<span lang=fas-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fat-foo'", -"input": "<span lang=fat-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fan-foo'", -"input": "<span lang=fan-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fao-foo'", -"input": "<span lang=fao-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'got-foo'", -"input": "<span lang=got-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sme-foo'", -"input": "<span lang=sme-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'din-foo'", -"input": "<span lang=din-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'hye-foo'", -"input": "<span lang=hye-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'guj-foo'", -"input": "<span lang=guj-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cmc-foo'", -"input": "<span lang=cmc-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'srd-foo'", -"input": "<span lang=srd-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mdr-foo'", -"input": "<span lang=mdr-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ml-foo'", -"input": "<span lang=ml-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'div-foo'", -"input": "<span lang=div-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'zh-foo'", -"input": "<span lang=zh-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tem-foo'", -"input": "<span lang=tem-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'xho-foo'", -"input": "<span lang=xho-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mno-foo'", -"input": "<span lang=mno-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'roa-foo'", -"input": "<span lang=roa-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'za-foo'", -"input": "<span lang=za-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'deu-foo'", -"input": "<span lang=deu-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mk-foo'", -"input": "<span lang=mk-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nbl-foo'", -"input": "<span lang=nbl-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'zu-foo'", -"input": "<span lang=zu-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ter-foo'", -"input": "<span lang=ter-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tet-foo'", -"input": "<span lang=tet-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mnc-foo'", -"input": "<span lang=mnc-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sun-foo'", -"input": "<span lang=sun-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'abk-foo'", -"input": "<span lang=abk-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'suk-foo'", -"input": "<span lang=suk-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kur-foo'", -"input": "<span lang=kur-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kum-foo'", -"input": "<span lang=kum-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'slo-foo'", -"input": "<span lang=slo-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sus-foo'", -"input": "<span lang=sus-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'new-foo'", -"input": "<span lang=new-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kua-foo'", -"input": "<span lang=kua-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sux-foo'", -"input": "<span lang=sux-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'den-foo'", -"input": "<span lang=den-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mr-foo'", -"input": "<span lang=mr-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mul-foo'", -"input": "<span lang=mul-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lez-foo'", -"input": "<span lang=lez-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gla-foo'", -"input": "<span lang=gla-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bos-foo'", -"input": "<span lang=bos-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gle-foo'", -"input": "<span lang=gle-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'eka-foo'", -"input": "<span lang=eka-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'glg-foo'", -"input": "<span lang=glg-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'akk-foo'", -"input": "<span lang=akk-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'dra-foo'", -"input": "<span lang=dra-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'aka-foo'", -"input": "<span lang=aka-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bod-foo'", -"input": "<span lang=bod-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'glv-foo'", -"input": "<span lang=glv-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'jrb-foo'", -"input": "<span lang=jrb-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'vie-foo'", -"input": "<span lang=vie-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ipk-foo'", -"input": "<span lang=ipk-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'uzb-foo'", -"input": "<span lang=uzb-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sgn-foo'", -"input": "<span lang=sgn-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sga-foo'", -"input": "<span lang=sga-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bre-foo'", -"input": "<span lang=bre-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'apa-foo'", -"input": "<span lang=apa-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bra-foo'", -"input": "<span lang=bra-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'aym-foo'", -"input": "<span lang=aym-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cha-foo'", -"input": "<span lang=cha-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'chb-foo'", -"input": "<span lang=chb-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'che-foo'", -"input": "<span lang=che-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'chg-foo'", -"input": "<span lang=chg-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'chi-foo'", -"input": "<span lang=chi-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'chk-foo'", -"input": "<span lang=chk-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'aus-foo'", -"input": "<span lang=aus-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'chn-foo'", -"input": "<span lang=chn-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cho-foo'", -"input": "<span lang=cho-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'chp-foo'", -"input": "<span lang=chp-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'chr-foo'", -"input": "<span lang=chr-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'chu-foo'", -"input": "<span lang=chu-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'chv-foo'", -"input": "<span lang=chv-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'chy-foo'", -"input": "<span lang=chy-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'msa-foo'", -"input": "<span lang=msa-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'iii-foo'", -"input": "<span lang=iii-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'vot-foo'", -"input": "<span lang=vot-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mg-foo'", -"input": "<span lang=mg-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ndo-foo'", -"input": "<span lang=ndo-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ibo-foo'", -"input": "<span lang=ibo-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'car-foo'", -"input": "<span lang=car-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mo-foo'", -"input": "<span lang=mo-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mn-foo'", -"input": "<span lang=mn-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mi-foo'", -"input": "<span lang=mi-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mh-foo'", -"input": "<span lang=mh-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cau-foo'", -"input": "<span lang=cau-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cat-foo'", -"input": "<span lang=cat-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bur-foo'", -"input": "<span lang=bur-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mt-foo'", -"input": "<span lang=mt-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cai-foo'", -"input": "<span lang=cai-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'del-foo'", -"input": "<span lang=del-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ms-foo'", -"input": "<span lang=ms-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'byn-foo'", -"input": "<span lang=byn-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mwl-foo'", -"input": "<span lang=mwl-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'my-foo'", -"input": "<span lang=my-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cad-foo'", -"input": "<span lang=cad-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tat-foo'", -"input": "<span lang=tat-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nde-foo'", -"input": "<span lang=nde-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tam-foo'", -"input": "<span lang=tam-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'spa-foo'", -"input": "<span lang=spa-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tah-foo'", -"input": "<span lang=tah-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tai-foo'", -"input": "<span lang=tai-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cze-foo'", -"input": "<span lang=cze-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'afh-foo'", -"input": "<span lang=afh-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'eng-foo'", -"input": "<span lang=eng-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'afa-foo'", -"input": "<span lang=afa-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'id-foo'", -"input": "<span lang=id-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nyn-foo'", -"input": "<span lang=nyn-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nyo-foo'", -"input": "<span lang=nyo-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gez-foo'", -"input": "<span lang=gez-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nya-foo'", -"input": "<span lang=nya-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sio-foo'", -"input": "<span lang=sio-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sin-foo'", -"input": "<span lang=sin-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'afr-foo'", -"input": "<span lang=afr-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'map-foo'", -"input": "<span lang=map-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fr-foo'", -"input": "<span lang=fr-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lao-foo'", -"input": "<span lang=lao-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lah-foo'", -"input": "<span lang=lah-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nym-foo'", -"input": "<span lang=nym-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sna-foo'", -"input": "<span lang=sna-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lad-foo'", -"input": "<span lang=lad-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fy-foo'", -"input": "<span lang=fy-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'snk-foo'", -"input": "<span lang=snk-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fa-foo'", -"input": "<span lang=fa-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mac-foo'", -"input": "<span lang=mac-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mad-foo'", -"input": "<span lang=mad-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ff-foo'", -"input": "<span lang=ff-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lat-foo'", -"input": "<span lang=lat-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fi-foo'", -"input": "<span lang=fi-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fj-foo'", -"input": "<span lang=fj-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mal-foo'", -"input": "<span lang=mal-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mao-foo'", -"input": "<span lang=mao-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fo-foo'", -"input": "<span lang=fo-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mak-foo'", -"input": "<span lang=mak-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'egy-foo'", -"input": "<span lang=egy-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'znd-foo'", -"input": "<span lang=znd-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ss-foo'", -"input": "<span lang=ss-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sr-foo'", -"input": "<span lang=sr-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sq-foo'", -"input": "<span lang=sq-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sit-foo'", -"input": "<span lang=sit-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sw-foo'", -"input": "<span lang=sw-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sv-foo'", -"input": "<span lang=sv-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'su-foo'", -"input": "<span lang=su-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'st-foo'", -"input": "<span lang=st-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sk-foo'", -"input": "<span lang=sk-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'si-foo'", -"input": "<span lang=si-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sh-foo'", -"input": "<span lang=sh-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'so-foo'", -"input": "<span lang=so-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sn-foo'", -"input": "<span lang=sn-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sm-foo'", -"input": "<span lang=sm-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sl-foo'", -"input": "<span lang=sl-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sc-foo'", -"input": "<span lang=sc-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sa-foo'", -"input": "<span lang=sa-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sg-foo'", -"input": "<span lang=sg-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'se-foo'", -"input": "<span lang=se-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sd-foo'", -"input": "<span lang=sd-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'zen-foo'", -"input": "<span lang=zen-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kbd-foo'", -"input": "<span lang=kbd-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'enm-foo'", -"input": "<span lang=enm-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'iro-foo'", -"input": "<span lang=iro-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'vai-foo'", -"input": "<span lang=vai-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'csb-foo'", -"input": "<span lang=csb-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tsn-foo'", -"input": "<span lang=tsn-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lg-foo'", -"input": "<span lang=lg-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lb-foo'", -"input": "<span lang=lb-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'la-foo'", -"input": "<span lang=la-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ln-foo'", -"input": "<span lang=ln-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lo-foo'", -"input": "<span lang=lo-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'li-foo'", -"input": "<span lang=li-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lv-foo'", -"input": "<span lang=lv-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lt-foo'", -"input": "<span lang=lt-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lu-foo'", -"input": "<span lang=lu-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'hin-foo'", -"input": "<span lang=hin-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fij-foo'", -"input": "<span lang=fij-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fin-foo'", -"input": "<span lang=fin-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'eus-foo'", -"input": "<span lang=eus-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'yi-foo'", -"input": "<span lang=yi-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'non-foo'", -"input": "<span lang=non-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ceb-foo'", -"input": "<span lang=ceb-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'yo-foo'", -"input": "<span lang=yo-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'dan-foo'", -"input": "<span lang=dan-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cel-foo'", -"input": "<span lang=cel-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bat-foo'", -"input": "<span lang=bat-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nob-foo'", -"input": "<span lang=nob-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'dak-foo'", -"input": "<span lang=dak-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ces-foo'", -"input": "<span lang=ces-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'dar-foo'", -"input": "<span lang=dar-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'son-foo'", -"input": "<span lang=son-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'day-foo'", -"input": "<span lang=day-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nor-foo'", -"input": "<span lang=nor-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gba-foo'", -"input": "<span lang=gba-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ssa-foo'", -"input": "<span lang=ssa-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'hil-foo'", -"input": "<span lang=hil-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kpe-foo'", -"input": "<span lang=kpe-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'man-foo'", -"input": "<span lang=man-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'wel-foo'", -"input": "<span lang=wel-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'el-foo'", -"input": "<span lang=el-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'eo-foo'", -"input": "<span lang=eo-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'en-foo'", -"input": "<span lang=en-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lam-foo'", -"input": "<span lang=lam-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ee-foo'", -"input": "<span lang=ee-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tpi-foo'", -"input": "<span lang=tpi-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mdf-foo'", -"input": "<span lang=mdf-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mas-foo'", -"input": "<span lang=mas-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mar-foo'", -"input": "<span lang=mar-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'eu-foo'", -"input": "<span lang=eu-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'et-foo'", -"input": "<span lang=et-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'es-foo'", -"input": "<span lang=es-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ru-foo'", -"input": "<span lang=ru-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'rw-foo'", -"input": "<span lang=rw-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'goh-foo'", -"input": "<span lang=goh-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sms-foo'", -"input": "<span lang=sms-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'smo-foo'", -"input": "<span lang=smo-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'smn-foo'", -"input": "<span lang=smn-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'smj-foo'", -"input": "<span lang=smj-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'smi-foo'", -"input": "<span lang=smi-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nic-foo'", -"input": "<span lang=nic-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'rm-foo'", -"input": "<span lang=rm-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'rn-foo'", -"input": "<span lang=rn-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ro-foo'", -"input": "<span lang=ro-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'dsb-foo'", -"input": "<span lang=dsb-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sma-foo'", -"input": "<span lang=sma-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gor-foo'", -"input": "<span lang=gor-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ast-foo'", -"input": "<span lang=ast-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'orm-foo'", -"input": "<span lang=orm-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'que-foo'", -"input": "<span lang=que-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ori-foo'", -"input": "<span lang=ori-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'crh-foo'", -"input": "<span lang=crh-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'asm-foo'", -"input": "<span lang=asm-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'pus-foo'", -"input": "<span lang=pus-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kik-foo'", -"input": "<span lang=kik-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ltz-foo'", -"input": "<span lang=ltz-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ath-foo'", -"input": "<span lang=ath-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'wln-foo'", -"input": "<span lang=wln-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'isl-foo'", -"input": "<span lang=isl-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'xh-foo'", -"input": "<span lang=xh-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mag-foo'", -"input": "<span lang=mag-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mai-foo'", -"input": "<span lang=mai-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'xx-foo'", -"input": "<span lang=xx-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mah-foo'", -"input": "<span lang=mah-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tel-foo'", -"input": "<span lang=tel-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lav-foo'", -"input": "<span lang=lav-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'zap-foo'", -"input": "<span lang=zap-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'yid-foo'", -"input": "<span lang=yid-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kok-foo'", -"input": "<span lang=kok-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kom-foo'", -"input": "<span lang=kom-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kon-foo'", -"input": "<span lang=kon-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ukr-foo'", -"input": "<span lang=ukr-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ton-foo'", -"input": "<span lang=ton-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kos-foo'", -"input": "<span lang=kos-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kor-foo'", -"input": "<span lang=kor-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tog-foo'", -"input": "<span lang=tog-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'hun-foo'", -"input": "<span lang=hun-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'hup-foo'", -"input": "<span lang=hup-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cym-foo'", -"input": "<span lang=cym-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'udm-foo'", -"input": "<span lang=udm-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bej-foo'", -"input": "<span lang=bej-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ben-foo'", -"input": "<span lang=ben-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bel-foo'", -"input": "<span lang=bel-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bem-foo'", -"input": "<span lang=bem-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tsi-foo'", -"input": "<span lang=tsi-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'aar-foo'", -"input": "<span lang=aar-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ber-foo'", -"input": "<span lang=ber-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nzi-foo'", -"input": "<span lang=nzi-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sai-foo'", -"input": "<span lang=sai-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ang-foo'", -"input": "<span lang=ang-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'pra-foo'", -"input": "<span lang=pra-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'san-foo'", -"input": "<span lang=san-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bho-foo'", -"input": "<span lang=bho-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sal-foo'", -"input": "<span lang=sal-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'pro-foo'", -"input": "<span lang=pro-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'raj-foo'", -"input": "<span lang=raj-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sad-foo'", -"input": "<span lang=sad-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'anp-foo'", -"input": "<span lang=anp-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'rap-foo'", -"input": "<span lang=rap-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sas-foo'", -"input": "<span lang=sas-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'iba-foo'", -"input": "<span lang=iba-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'myn-foo'", -"input": "<span lang=myn-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'min-foo'", -"input": "<span lang=min-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lim-foo'", -"input": "<span lang=lim-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lin-foo'", -"input": "<span lang=lin-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nah-foo'", -"input": "<span lang=nah-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lit-foo'", -"input": "<span lang=lit-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'efi-foo'", -"input": "<span lang=efi-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'srn-foo'", -"input": "<span lang=srn-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'arn-foo'", -"input": "<span lang=arn-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ypk-foo'", -"input": "<span lang=ypk-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mis-foo'", -"input": "<span lang=mis-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kac-foo'", -"input": "<span lang=kac-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kab-foo'", -"input": "<span lang=kab-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kaa-foo'", -"input": "<span lang=kaa-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kan-foo'", -"input": "<span lang=kan-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kam-foo'", -"input": "<span lang=kam-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kal-foo'", -"input": "<span lang=kal-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kas-foo'", -"input": "<span lang=kas-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kar-foo'", -"input": "<span lang=kar-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kaw-foo'", -"input": "<span lang=kaw-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kau-foo'", -"input": "<span lang=kau-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kat-foo'", -"input": "<span lang=kat-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kaz-foo'", -"input": "<span lang=kaz-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tyv-foo'", -"input": "<span lang=tyv-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'awa-foo'", -"input": "<span lang=awa-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'urd-foo'", -"input": "<span lang=urd-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ka-foo'", -"input": "<span lang=ka-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'doi-foo'", -"input": "<span lang=doi-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kg-foo'", -"input": "<span lang=kg-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kk-foo'", -"input": "<span lang=kk-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kj-foo'", -"input": "<span lang=kj-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ki-foo'", -"input": "<span lang=ki-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ko-foo'", -"input": "<span lang=ko-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kn-foo'", -"input": "<span lang=kn-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'km-foo'", -"input": "<span lang=km-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kl-foo'", -"input": "<span lang=kl-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ks-foo'", -"input": "<span lang=ks-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kr-foo'", -"input": "<span lang=kr-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kw-foo'", -"input": "<span lang=kw-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kv-foo'", -"input": "<span lang=kv-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ku-foo'", -"input": "<span lang=ku-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ky-foo'", -"input": "<span lang=ky-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ota-foo'", -"input": "<span lang=ota-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kut-foo'", -"input": "<span lang=kut-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tkl-foo'", -"input": "<span lang=tkl-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nld-foo'", -"input": "<span lang=nld-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'oji-foo'", -"input": "<span lang=oji-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'oci-foo'", -"input": "<span lang=oci-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ha-foo'", -"input": "<span lang=ha-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'wol-foo'", -"input": "<span lang=wol-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'jav-foo'", -"input": "<span lang=jav-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'hrv-foo'", -"input": "<span lang=hrv-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ger-foo'", -"input": "<span lang=ger-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mga-foo'", -"input": "<span lang=mga-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'hit-foo'", -"input": "<span lang=hit-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'dyu-foo'", -"input": "<span lang=dyu-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ssw-foo'", -"input": "<span lang=ssw-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'de-foo'", -"input": "<span lang=de-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'da-foo'", -"input": "<span lang=da-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'dz-foo'", -"input": "<span lang=dz-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lui-foo'", -"input": "<span lang=lui-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'dv-foo'", -"input": "<span lang=dv-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ita-foo'", -"input": "<span lang=ita-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'geo-foo'", -"input": "<span lang=geo-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'him-foo'", -"input": "<span lang=him-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gem-foo'", -"input": "<span lang=gem-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'crp-foo'", -"input": "<span lang=crp-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'qu-foo'", -"input": "<span lang=qu-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bas-foo'", -"input": "<span lang=bas-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'baq-foo'", -"input": "<span lang=baq-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bad-foo'", -"input": "<span lang=bad-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nep-foo'", -"input": "<span lang=nep-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cre-foo'", -"input": "<span lang=cre-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ban-foo'", -"input": "<span lang=ban-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'x-foo'", -"input": "<span lang=x-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bal-foo'", -"input": "<span lang=bal-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bam-foo'", -"input": "<span lang=bam-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bak-foo'", -"input": "<span lang=bak-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'shn-foo'", -"input": "<span lang=shn-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bai-foo'", -"input": "<span lang=bai-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'arp-foo'", -"input": "<span lang=arp-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'art-foo'", -"input": "<span lang=art-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'arw-foo'", -"input": "<span lang=arw-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'qtz-foo'", -"input": "<span lang=qtz-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ara-foo'", -"input": "<span lang=ara-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'arc-foo'", -"input": "<span lang=arc-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'arg-foo'", -"input": "<span lang=arg-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sem-foo'", -"input": "<span lang=sem-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sel-foo'", -"input": "<span lang=sel-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nub-foo'", -"input": "<span lang=nub-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'arm-foo'", -"input": "<span lang=arm-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'btk-foo'", -"input": "<span lang=btk-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lus-foo'", -"input": "<span lang=lus-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'iku-foo'", -"input": "<span lang=iku-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mus-foo'", -"input": "<span lang=mus-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lua-foo'", -"input": "<span lang=lua-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lub-foo'", -"input": "<span lang=lub-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lug-foo'", -"input": "<span lang=lug-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ira-foo'", -"input": "<span lang=ira-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mun-foo'", -"input": "<span lang=mun-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tur-foo'", -"input": "<span lang=tur-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lun-foo'", -"input": "<span lang=lun-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'luo-foo'", -"input": "<span lang=luo-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'men-foo'", -"input": "<span lang=men-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'wa-foo'", -"input": "<span lang=wa-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tso-foo'", -"input": "<span lang=tso-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'wo-foo'", -"input": "<span lang=wo-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'jv-foo'", -"input": "<span lang=jv-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tut-foo'", -"input": "<span lang=tut-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ind-foo'", -"input": "<span lang=ind-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tuk-foo'", -"input": "<span lang=tuk-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tum-foo'", -"input": "<span lang=tum-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ja-foo'", -"input": "<span lang=ja-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cop-foo'", -"input": "<span lang=cop-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cos-foo'", -"input": "<span lang=cos-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cor-foo'", -"input": "<span lang=cor-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ilo-foo'", -"input": "<span lang=ilo-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fiu-foo'", -"input": "<span lang=fiu-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gwi-foo'", -"input": "<span lang=gwi-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'und-foo'", -"input": "<span lang=und-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gws-foo'", -"input": "<span lang=gws-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tli-foo'", -"input": "<span lang=tli-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tlh-foo'", -"input": "<span lang=tlh-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nno-foo'", -"input": "<span lang=nno-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ch-foo'", -"input": "<span lang=ch-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'co-foo'", -"input": "<span lang=co-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ca-foo'", -"input": "<span lang=ca-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'por-foo'", -"input": "<span lang=por-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ce-foo'", -"input": "<span lang=ce-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'pon-foo'", -"input": "<span lang=pon-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cy-foo'", -"input": "<span lang=cy-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sah-foo'", -"input": "<span lang=sah-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cs-foo'", -"input": "<span lang=cs-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cr-foo'", -"input": "<span lang=cr-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ady-foo'", -"input": "<span lang=ady-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cv-foo'", -"input": "<span lang=cv-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cu-foo'", -"input": "<span lang=cu-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ps-foo'", -"input": "<span lang=ps-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fra-foo'", -"input": "<span lang=fra-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'dum-foo'", -"input": "<span lang=dum-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'pt-foo'", -"input": "<span lang=pt-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'swa-foo'", -"input": "<span lang=swa-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'dua-foo'", -"input": "<span lang=dua-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fro-foo'", -"input": "<span lang=fro-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'yap-foo'", -"input": "<span lang=yap-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'frm-foo'", -"input": "<span lang=frm-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tiv-foo'", -"input": "<span lang=tiv-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'frs-foo'", -"input": "<span lang=frs-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'frr-foo'", -"input": "<span lang=frr-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'yao-foo'", -"input": "<span lang=yao-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'pa-foo'", -"input": "<span lang=pa-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'xal-foo'", -"input": "<span lang=xal-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fry-foo'", -"input": "<span lang=fry-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'pi-foo'", -"input": "<span lang=pi-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'dut-foo'", -"input": "<span lang=dut-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'pl-foo'", -"input": "<span lang=pl-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gay-foo'", -"input": "<span lang=gay-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'oto-foo'", -"input": "<span lang=oto-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sag-foo'", -"input": "<span lang=sag-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'hmn-foo'", -"input": "<span lang=hmn-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'hmo-foo'", -"input": "<span lang=hmo-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'an-foo'", -"input": "<span lang=an-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gaa-foo'", -"input": "<span lang=gaa-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fur-foo'", -"input": "<span lang=fur-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mlg-foo'", -"input": "<span lang=mlg-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'slv-foo'", -"input": "<span lang=slv-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ain-foo'", -"input": "<span lang=ain-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fil-foo'", -"input": "<span lang=fil-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mlt-foo'", -"input": "<span lang=mlt-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'slk-foo'", -"input": "<span lang=slk-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'rar-foo'", -"input": "<span lang=rar-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ful-foo'", -"input": "<span lang=ful-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sla-foo'", -"input": "<span lang=sla-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 've-foo'", -"input": "<span lang=ve-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'jpn-foo'", -"input": "<span lang=jpn-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'vol-foo'", -"input": "<span lang=vol-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'vi-foo'", -"input": "<span lang=vi-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'is-foo'", -"input": "<span lang=is-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kho-foo'", -"input": "<span lang=kho-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'iu-foo'", -"input": "<span lang=iu-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'it-foo'", -"input": "<span lang=it-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'vo-foo'", -"input": "<span lang=vo-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ii-foo'", -"input": "<span lang=ii-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ay-foo'", -"input": "<span lang=ay-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ik-foo'", -"input": "<span lang=ik-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'io-foo'", -"input": "<span lang=io-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kha-foo'", -"input": "<span lang=kha-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ia-foo'", -"input": "<span lang=ia-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ave-foo'", -"input": "<span lang=ave-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'jpr-foo'", -"input": "<span lang=jpr-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ie-foo'", -"input": "<span lang=ie-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ava-foo'", -"input": "<span lang=ava-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ig-foo'", -"input": "<span lang=ig-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'pap-foo'", -"input": "<span lang=pap-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ewo-foo'", -"input": "<span lang=ewo-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'pau-foo'", -"input": "<span lang=pau-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ewe-foo'", -"input": "<span lang=ewe-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'paa-foo'", -"input": "<span lang=paa-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'qaa-foo'", -"input": "<span lang=qaa-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'pag-foo'", -"input": "<span lang=pag-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sat-foo'", -"input": "<span lang=sat-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'pal-foo'", -"input": "<span lang=pal-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'pam-foo'", -"input": "<span lang=pam-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'pan-foo'", -"input": "<span lang=pan-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'phi-foo'", -"input": "<span lang=phi-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nog-foo'", -"input": "<span lang=nog-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'phn-foo'", -"input": "<span lang=phn-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kir-foo'", -"input": "<span lang=kir-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nia-foo'", -"input": "<span lang=nia-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'dgr-foo'", -"input": "<span lang=dgr-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'syr-foo'", -"input": "<span lang=syr-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kin-foo'", -"input": "<span lang=kin-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tup-foo'", -"input": "<span lang=tup-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'niu-foo'", -"input": "<span lang=niu-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gsw-foo'", -"input": "<span lang=gsw-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'epo-foo'", -"input": "<span lang=epo-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'jbo-foo'", -"input": "<span lang=jbo-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mic-foo'", -"input": "<span lang=mic-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tha-foo'", -"input": "<span lang=tha-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sam-foo'", -"input": "<span lang=sam-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'hai-foo'", -"input": "<span lang=hai-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gmh-foo'", -"input": "<span lang=gmh-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cus-foo'", -"input": "<span lang=cus-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ell-foo'", -"input": "<span lang=ell-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'wen-foo'", -"input": "<span lang=wen-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bnt-foo'", -"input": "<span lang=bnt-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fre-foo'", -"input": "<span lang=fre-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'elx-foo'", -"input": "<span lang=elx-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ada-foo'", -"input": "<span lang=ada-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nav-foo'", -"input": "<span lang=nav-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'hat-foo'", -"input": "<span lang=hat-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'hau-foo'", -"input": "<span lang=hau-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'haw-foo'", -"input": "<span lang=haw-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bin-foo'", -"input": "<span lang=bin-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'amh-foo'", -"input": "<span lang=amh-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bik-foo'", -"input": "<span lang=bik-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bih-foo'", -"input": "<span lang=bih-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mos-foo'", -"input": "<span lang=mos-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'moh-foo'", -"input": "<span lang=moh-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mon-foo'", -"input": "<span lang=mon-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mol-foo'", -"input": "<span lang=mol-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bis-foo'", -"input": "<span lang=bis-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bla-foo'", -"input": "<span lang=bla-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'pol-foo'", -"input": "<span lang=pol-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tib-foo'", -"input": "<span lang=tib-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tvl-foo'", -"input": "<span lang=tvl-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tgk-foo'", -"input": "<span lang=tgk-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ijo-foo'", -"input": "<span lang=ijo-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'est-foo'", -"input": "<span lang=est-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kmb-foo'", -"input": "<span lang=kmb-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ice-foo'", -"input": "<span lang=ice-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'peo-foo'", -"input": "<span lang=peo-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tgl-foo'", -"input": "<span lang=tgl-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'umb-foo'", -"input": "<span lang=umb-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tmh-foo'", -"input": "<span lang=tmh-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'fon-foo'", -"input": "<span lang=fon-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'hsb-foo'", -"input": "<span lang=hsb-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'be-foo'", -"input": "<span lang=be-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bg-foo'", -"input": "<span lang=bg-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'run-foo'", -"input": "<span lang=run-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ba-foo'", -"input": "<span lang=ba-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'rum-foo'", -"input": "<span lang=rum-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bm-foo'", -"input": "<span lang=bm-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bn-foo'", -"input": "<span lang=bn-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bo-foo'", -"input": "<span lang=bo-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bh-foo'", -"input": "<span lang=bh-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bi-foo'", -"input": "<span lang=bi-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'br-foo'", -"input": "<span lang=br-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bs-foo'", -"input": "<span lang=bs-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'rus-foo'", -"input": "<span lang=rus-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'rup-foo'", -"input": "<span lang=rup-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'pli-foo'", -"input": "<span lang=pli-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'om-foo'", -"input": "<span lang=om-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'oj-foo'", -"input": "<span lang=oj-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ace-foo'", -"input": "<span lang=ace-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ach-foo'", -"input": "<span lang=ach-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'oc-foo'", -"input": "<span lang=oc-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'dzo-foo'", -"input": "<span lang=dzo-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kru-foo'", -"input": "<span lang=kru-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'srr-foo'", -"input": "<span lang=srr-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ido-foo'", -"input": "<span lang=ido-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'srp-foo'", -"input": "<span lang=srp-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'kro-foo'", -"input": "<span lang=kro-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'krl-foo'", -"input": "<span lang=krl-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'krc-foo'", -"input": "<span lang=krc-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nds-foo'", -"input": "<span lang=nds-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'os-foo'", -"input": "<span lang=os-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'or-foo'", -"input": "<span lang=or-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'zul-foo'", -"input": "<span lang=zul-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'twi-foo'", -"input": "<span lang=twi-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sog-foo'", -"input": "<span lang=sog-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nso-foo'", -"input": "<span lang=nso-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'swe-foo'", -"input": "<span lang=swe-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'som-foo'", -"input": "<span lang=som-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'chm-foo'", -"input": "<span lang=chm-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'snd-foo'", -"input": "<span lang=snd-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sot-foo'", -"input": "<span lang=sot-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mkd-foo'", -"input": "<span lang=mkd-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'wak-foo'", -"input": "<span lang=wak-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'her-foo'", -"input": "<span lang=her-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'lol-foo'", -"input": "<span lang=lol-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mkh-foo'", -"input": "<span lang=mkh-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'heb-foo'", -"input": "<span lang=heb-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'loz-foo'", -"input": "<span lang=loz-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gil-foo'", -"input": "<span lang=gil-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'was-foo'", -"input": "<span lang=was-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'war-foo'", -"input": "<span lang=war-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'hz-foo'", -"input": "<span lang=hz-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'hy-foo'", -"input": "<span lang=hy-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sid-foo'", -"input": "<span lang=sid-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'hr-foo'", -"input": "<span lang=hr-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ht-foo'", -"input": "<span lang=ht-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'hu-foo'", -"input": "<span lang=hu-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'hi-foo'", -"input": "<span lang=hi-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ho-foo'", -"input": "<span lang=ho-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bul-foo'", -"input": "<span lang=bul-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'wal-foo'", -"input": "<span lang=wal-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bua-foo'", -"input": "<span lang=bua-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'bug-foo'", -"input": "<span lang=bug-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'he-foo'", -"input": "<span lang=he-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'uz-foo'", -"input": "<span lang=uz-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'aze-foo'", -"input": "<span lang=aze-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ur-foo'", -"input": "<span lang=ur-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'zha-foo'", -"input": "<span lang=zha-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'uk-foo'", -"input": "<span lang=uk-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ug-foo'", -"input": "<span lang=ug-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'zho-foo'", -"input": "<span lang=zho-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'aa-foo'", -"input": "<span lang=aa-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ab-foo'", -"input": "<span lang=ab-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ae-foo'", -"input": "<span lang=ae-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'uig-foo'", -"input": "<span lang=uig-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'af-foo'", -"input": "<span lang=af-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ak-foo'", -"input": "<span lang=ak-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'am-foo'", -"input": "<span lang=am-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'myv-foo'", -"input": "<span lang=myv-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'khi-foo'", -"input": "<span lang=khi-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'as-foo'", -"input": "<span lang=as-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ar-foo'", -"input": "<span lang=ar-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'inh-foo'", -"input": "<span lang=inh-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'khm-foo'", -"input": "<span lang=khm-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'av-foo'", -"input": "<span lang=av-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mya-foo'", -"input": "<span lang=mya-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ine-foo'", -"input": "<span lang=ine-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'az-foo'", -"input": "<span lang=az-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ina-foo'", -"input": "<span lang=ina-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'inc-foo'", -"input": "<span lang=inc-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nl-foo'", -"input": "<span lang=nl-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nn-foo'", -"input": "<span lang=nn-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'no-foo'", -"input": "<span lang=no-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'na-foo'", -"input": "<span lang=na-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nb-foo'", -"input": "<span lang=nb-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nai-foo'", -"input": "<span lang=nai-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nd-foo'", -"input": "<span lang=nd-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ne-foo'", -"input": "<span lang=ne-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tir-foo'", -"input": "<span lang=tir-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ng-foo'", -"input": "<span lang=ng-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ny-foo'", -"input": "<span lang=ny-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nap-foo'", -"input": "<span lang=nap-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gre-foo'", -"input": "<span lang=gre-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'grb-foo'", -"input": "<span lang=grb-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'grc-foo'", -"input": "<span lang=grc-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nau-foo'", -"input": "<span lang=nau-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'grn-foo'", -"input": "<span lang=grn-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nr-foo'", -"input": "<span lang=nr-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'tig-foo'", -"input": "<span lang=tig-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'yor-foo'", -"input": "<span lang=yor-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'nv-foo'", -"input": "<span lang=nv-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'mri-foo'", -"input": "<span lang=mri-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'may-foo'", -"input": "<span lang=may-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'zun-foo'", -"input": "<span lang=zun-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'ile-foo'", -"input": "<span lang=ile-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'sqi-foo'", -"input": "<span lang=sqi-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'gon-foo'", -"input": "<span lang=gon-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cpe-foo'", -"input": "<span lang=cpe-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cpf-foo'", -"input": "<span lang=cpf-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'cpp-foo'", -"input": "<span lang=cpp-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "invalid lang attribute 'foo'", -"input": "<span lang=foo>", -"fail-unless": "invalid-lang-code"}, - -{"description": "valid lang attribute 'EN'", -"input": "<span lang=EN>", -"fail-if": "invalid-lang-code"}, - -{"description": "valid lang attribute 'EN-foo'", -"input": "<span lang=EN-foo>", -"fail-if": "invalid-lang-code"}, - -{"description": "lang attribute can be blank", -"input": "<span lang>", -"fail-if": "invalid-lang-code"}, - -{"description": "lang attribute can be blank (with quotes)", -"input": "<span lang=''>", -"fail-if": "invalid-lang-code"}, - -{"description": "lang attribute can not be just space characters", -"input": "<span lang=' '>", -"fail-unless": "invalid-lang-code"}, - -{"description": "lang attribute can not contain leading spaces", -"input": "<span lang=' en'>", -"fail-unless": "invalid-lang-code"}, - -{"description": "lang attribute can not contain trailing spaces", -"input": "<span lang='en '>", -"fail-unless": "invalid-lang-code"} - -]}
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/li-value-attribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/li-value-attribute.test deleted file mode 100755 index 9ef9dcc562f..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/li-value-attribute.test +++ /dev/null @@ -1,7 +0,0 @@ -{"tests": [ - -{"description": "invalid li value attribute value due to leading junk", -"input": "<li value=a1>", -"fail-unless": "invalid-integer-value"} - -]}
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/link-href-attribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/link-href-attribute.test deleted file mode 100755 index 950c3786fa2..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/link-href-attribute.test +++ /dev/null @@ -1,7 +0,0 @@ -{"tests": [ - -{"description": "link href contains invalid URI due to space in domain", -"input": "<link href='http://www.example. com/'", -"fail-unless": "invalid-uri-char"} - -]}
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/link-hreflang-attribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/link-hreflang-attribute.test deleted file mode 100755 index de39d4da066..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/link-hreflang-attribute.test +++ /dev/null @@ -1,7 +0,0 @@ -{"tests": [ - -{"description": "invalid lang attribute 'foo'", -"input": "<link hreflang=foo>", -"fail-unless": "invalid-lang-code"} - -]}
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/link-rel-attribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/link-rel-attribute.test deleted file mode 100755 index a436751da69..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/link-rel-attribute.test +++ /dev/null @@ -1,271 +0,0 @@ -{"tests": [ - -{"description": "invalid link rel value 'foo'", -"input": "<link rel=foo>", -"fail-unless": "invalid-rel"}, - -{"description": "valid link rel value 'alternate stylesheet'", -"input": "<link rel='alternate stylesheet'>", -"fail-if": "invalid-rel"}, - -{"description": "valid single link rel value with leading space", -"input": "<link rel=' stylesheet'>", -"fail-if": "invalid-rel"}, - -{"description": "valid single link rel value with trailing space", -"input": "<link rel='stylesheet '>", -"fail-if": "invalid-rel"}, - -{"description": "valid single link rel value with leading and trailing space", -"input": "<link rel=' stylesheet '>", -"fail-if": "invalid-rel"}, - -{"description": "valid single link rel value with leading tab", -"input": "<link rel='\tstylesheet'>", -"fail-if": "invalid-rel"}, - -{"description": "valid single link rel value with trailing tab", -"input": "<link rel='stylesheet\t'>", -"fail-if": "invalid-rel"}, - -{"description": "valid single link rel value with leading and trailing tab", -"input": "<link rel='\tstylesheet\t'>", -"fail-if": "invalid-rel"}, - -{"description": "valid single link rel value with leading LF", -"input": "<link rel='\nstylesheet'>", -"fail-if": "invalid-rel"}, - -{"description": "valid single link rel value with trailing LF", -"input": "<link rel='stylesheet\n'>", -"fail-if": "invalid-rel"}, - -{"description": "valid single link rel value with leading and trailing LF", -"input": "<link rel='\nstylesheet\n'>", -"fail-if": "invalid-rel"}, - -{"description": "valid single link rel value with leading LT", -"input": "<link rel='\u000Bstylesheet'>", -"fail-if": "invalid-rel"}, - -{"description": "valid single link rel value with trailing LT", -"input": "<link rel='stylesheet\u000B'>", -"fail-if": "invalid-rel"}, - -{"description": "valid single link rel value with leading and trailing LT", -"input": "<link rel='\u000Bstylesheet\u000B'>", -"fail-if": "invalid-rel"}, - -{"description": "valid single link rel value with leading FF", -"input": "<link rel='\u000Cstylesheet'>", -"fail-if": "invalid-rel"}, - -{"description": "valid single link rel value with trailing FF", -"input": "<link rel='stylesheet\u000C'>", -"fail-if": "invalid-rel"}, - -{"description": "valid single link rel value with leading and trailing FF", -"input": "<link rel='\u000Cstylesheet\u000C'>", -"fail-if": "invalid-rel"}, - -{"description": "valid single link rel value with leading CR", -"input": "<link rel='\rstylesheet'>", -"fail-if": "invalid-rel"}, - -{"description": "valid single link rel value with trailing CR", -"input": "<link rel='stylesheet\r'>", -"fail-if": "invalid-rel"}, - -{"description": "valid single link rel value with leading and trailing CR", -"input": "<link rel='\rstylesheet\r'>", -"fail-if": "invalid-rel"}, - -{"description": "valid double link rel value separated by space", -"input": "<link rel='stylesheet alternate'>", -"fail-if": "invalid-rel"}, - -{"description": "valid double link rel value separated by tab", -"input": "<link rel='stylesheet\talternate'>", -"fail-if": "invalid-rel"}, - -{"description": "valid double link rel value separated by LF", -"input": "<link rel='stylesheet\nalternate'>", -"fail-if": "invalid-rel"}, - -{"description": "valid double link rel value separated by LT", -"input": "<link rel='stylesheet\u000Balternate'>", -"fail-if": "invalid-rel"}, - -{"description": "valid double link rel value separated by FF", -"input": "<link rel='stylesheet\u000Calternate'>", -"fail-if": "invalid-rel"}, - -{"description": "valid double link rel value separated by CR", -"input": "<link rel='stylesheet\ralternate'>", -"fail-if": "invalid-rel"}, - -{"description": "invalid duplicated link rel value separated by space", -"input": "<link rel='stylesheet stylesheet'>", -"fail-unless": "duplicate-value-in-token-list"}, - -{"description": "invalid duplicated link rel value separated by tab", -"input": "<link rel='stylesheet\tstylesheet'>", -"fail-unless": "duplicate-value-in-token-list"}, - -{"description": "invalid duplicated link rel value separated by LF", -"input": "<link rel='stylesheet\nstylesheet'>", -"fail-unless": "duplicate-value-in-token-list"}, - -{"description": "invalid duplicated link rel value separated by LT", -"input": "<link rel='stylesheet\u000Bstylesheet'>", -"fail-unless": "duplicate-value-in-token-list"}, - -{"description": "invalid duplicated link rel value separated by FF", -"input": "<link rel='stylesheet\u000Cstylesheet'>", -"fail-unless": "duplicate-value-in-token-list"}, - -{"description": "invalid duplicated link rel value separated by CR", -"input": "<link rel='stylesheet\rstylesheet'>", -"fail-unless": "duplicate-value-in-token-list"}, - -{"description": "invalid duplicated link rel value separated by space", -"input": "<link rel='stylesheet stylesheet'>", -"fail-unless": "duplicate-value-in-token-list"}, - -{"description": "invalid duplicated link rel value separated by tab", -"input": "<link rel='stylesheet\tstylesheet'>", -"fail-unless": "duplicate-value-in-token-list"}, - -{"description": "invalid duplicated link rel value separated by LF", -"input": "<link rel='stylesheet\nstylesheet'>", -"fail-unless": "duplicate-value-in-token-list"}, - -{"description": "invalid duplicated link rel value separated by LT", -"input": "<link rel='stylesheet\u000Bstylesheet'>", -"fail-unless": "duplicate-value-in-token-list"}, - -{"description": "invalid duplicated link rel value separated by FF", -"input": "<link rel='stylesheet\u000Cstylesheet'>", -"fail-unless": "duplicate-value-in-token-list"}, - -{"description": "invalid duplicated link rel value separated by CR", -"input": "<link rel='stylesheet\rstylesheet'>", -"fail-unless": "duplicate-value-in-token-list"}, - -{"description": "valid link rel value 'feed'", -"input": "<link rel=feed>", -"fail-if": "invalid-rel"}, - -{"description": "valid link rel value 'help'", -"input": "<link rel=help>", -"fail-if": "invalid-rel"}, - -{"description": "valid link rel value 'tag'", -"input": "<link rel=tag>", -"fail-if": "invalid-rel"}, - -{"description": "valid link rel value 'sidebar'", -"input": "<link rel=sidebar>", -"fail-if": "invalid-rel"}, - -{"description": "valid link rel value 'archive'", -"input": "<link rel=archive>", -"fail-if": "invalid-rel"}, - -{"description": "valid link rel value 'contents'", -"input": "<link rel=contents>", -"fail-if": "invalid-rel"}, - -{"description": "valid link rel value 'previous'", -"input": "<link rel=previous>", -"fail-if": "invalid-rel"}, - -{"description": "valid link rel value 'index'", -"input": "<link rel=index>", -"fail-if": "invalid-rel"}, - -{"description": "valid link rel value 'end'", -"input": "<link rel=end>", -"fail-if": "invalid-rel"}, - -{"description": "valid link rel value 'copyright'", -"input": "<link rel=copyright>", -"fail-if": "invalid-rel"}, - -{"description": "valid link rel value 'author'", -"input": "<link rel=author>", -"fail-if": "invalid-rel"}, - -{"description": "valid link rel value 'top'", -"input": "<link rel=top>", -"fail-if": "invalid-rel"}, - -{"description": "valid link rel value 'alternate'", -"input": "<link rel=alternate>", -"fail-if": "invalid-rel"}, - -{"description": "valid link rel value 'next'", -"input": "<link rel=next>", -"fail-if": "invalid-rel"}, - -{"description": "valid link rel value 'start'", -"input": "<link rel=start>", -"fail-if": "invalid-rel"}, - -{"description": "valid link rel value 'stylesheet'", -"input": "<link rel=stylesheet>", -"fail-if": "invalid-rel"}, - -{"description": "valid link rel value 'archives'", -"input": "<link rel=archives>", -"fail-if": "invalid-rel"}, - -{"description": "valid link rel value 'toc'", -"input": "<link rel=toc>", -"fail-if": "invalid-rel"}, - -{"description": "valid link rel value 'prev'", -"input": "<link rel=prev>", -"fail-if": "invalid-rel"}, - -{"description": "valid link rel value 'begin'", -"input": "<link rel=begin>", -"fail-if": "invalid-rel"}, - -{"description": "valid link rel value 'icon'", -"input": "<link rel=icon>", -"fail-if": "invalid-rel"}, - -{"description": "valid link rel value 'search'", -"input": "<link rel=search>", -"fail-if": "invalid-rel"}, - -{"description": "valid link rel value 'last'", -"input": "<link rel=last>", -"fail-if": "invalid-rel"}, - -{"description": "valid link rel value 'license'", -"input": "<link rel=license>", -"fail-if": "invalid-rel"}, - -{"description": "valid link rel value 'pingback'", -"input": "<link rel=pingback>", -"fail-if": "invalid-rel"}, - -{"description": "valid link rel value 'up'", -"input": "<link rel=up>", -"fail-if": "invalid-rel"}, - -{"description": "valid link rel value 'contact'", -"input": "<link rel=contact>", -"fail-if": "invalid-rel"}, - -{"description": "valid link rel value 'prefetch'", -"input": "<link rel=prefetch>", -"fail-if": "invalid-rel"}, - -{"description": "valid link rel value 'first'", -"input": "<link rel=first>", -"fail-if": "invalid-rel"} - -]} diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/ol-start-attribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/ol-start-attribute.test deleted file mode 100755 index 5e18cbef41a..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/ol-start-attribute.test +++ /dev/null @@ -1,7 +0,0 @@ -{"tests": [ - -{"description": "invalid ol start attribute value due to leading junk", -"input": "<ol start=a1>", -"fail-unless": "invalid-integer-value"} - -]}
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/starttags.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/starttags.test deleted file mode 100755 index 0aa5b4d001e..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/starttags.test +++ /dev/null @@ -1,375 +0,0 @@ -{"tests": [ - -{"description": "unknown start tag <foo>", -"input": "<foo>", -"fail-unless": "unknown-start-tag"}, - -{"description": "allowed start tag <code>", -"input": "<code>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <kbd>", -"input": "<kbd>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <aside>", -"input": "<aside>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <datagrid>", -"input": "<datagrid>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <font>", -"input": "<font>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <noscript>", -"input": "<noscript>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <style>", -"input": "<style>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <img>", -"input": "<img>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <title>", -"input": "<title>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <menu>", -"input": "<menu>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <tr>", -"input": "<tr>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <param>", -"input": "<param>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <li>", -"input": "<li>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <source>", -"input": "<source>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <tfoot>", -"input": "<tfoot>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <th>", -"input": "<th>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <td>", -"input": "<td>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <dl>", -"input": "<dl>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <blockquote>", -"input": "<blockquote>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <dd>", -"input": "<dd>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <abbr>", -"input": "<abbr>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <dt>", -"input": "<dt>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <noembed>", -"input": "<noembed>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <p>", -"input": "<p>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <small>", -"input": "<small>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <meter>", -"input": "<meter>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <em>", -"input": "<em>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <meta>", -"input": "<meta>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <video>", -"input": "<video>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <div>", -"input": "<div>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <canvas>", -"input": "<canvas>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <sub>", -"input": "<sub>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <section>", -"input": "<section>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <sup>", -"input": "<sup>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <progress>", -"input": "<progress>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <body>", -"input": "<body>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <base>", -"input": "<base>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <br>", -"input": "<br>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <address>", -"input": "<address>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <article>", -"input": "<article>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <strong>", -"input": "<strong>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <legend>", -"input": "<legend>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <event-source>", -"input": "<event-source>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <ol>", -"input": "<ol>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <script>", -"input": "<script>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <caption>", -"input": "<caption>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <dialog>", -"input": "<dialog>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <col>", -"input": "<col>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <h2>", -"input": "<h2>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <h3>", -"input": "<h3>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <h1>", -"input": "<h1>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <h6>", -"input": "<h6>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <h4>", -"input": "<h4>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <h5>", -"input": "<h5>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <header>", -"input": "<header>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <table>", -"input": "<table>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <span>", -"input": "<span>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <area>", -"input": "<area>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <dfn>", -"input": "<dfn>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <var>", -"input": "<var>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <cite>", -"input": "<cite>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <thead>", -"input": "<thead>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <head>", -"input": "<head>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <hr>", -"input": "<hr>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <link>", -"input": "<link>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <datatemplate>", -"input": "<datatemplate>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <b>", -"input": "<b>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <colgroup>", -"input": "<colgroup>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <ul>", -"input": "<ul>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <del>", -"input": "<del>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <iframe>", -"input": "<iframe>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <pre>", -"input": "<pre>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <figure>", -"input": "<figure>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <ins>", -"input": "<ins>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <tbody>", -"input": "<tbody>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <html>", -"input": "<html>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <nav>", -"input": "<nav>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <details>", -"input": "<details>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <samp>", -"input": "<samp>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <map>", -"input": "<map>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <nest>", -"input": "<nest>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <object>", -"input": "<object>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <a>", -"input": "<a>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <footer>", -"input": "<footer>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <i>", -"input": "<i>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <m>", -"input": "<m>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <rule>", -"input": "<rule>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <q>", -"input": "<q>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <command>", -"input": "<command>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <time>", -"input": "<time>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <audio>", -"input": "<audio>", -"fail-if": "unknown-start-tag"}, - -{"description": "allowed start tag <bdo>", -"input": "<bdo>", -"fail-if": "unknown-start-tag"} - -]} diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/style-scoped-attribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/style-scoped-attribute.test deleted file mode 100755 index f47795a2178..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/style-scoped-attribute.test +++ /dev/null @@ -1,7 +0,0 @@ -{"tests": [ - -{"description": "invalid style scoped attribute value 'inherit'", -"input": "<style scoped=inherit>", -"fail-unless": "invalid-boolean-value"} - -]}
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/tabindexattribute.test b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/tabindexattribute.test deleted file mode 100755 index 02066957b28..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/tabindexattribute.test +++ /dev/null @@ -1,79 +0,0 @@ -{"tests": [ - -{"description": "valid tabindex attribute value '-1'", -"input": "<span tabindex=-1>", -"fail-if": "invalid-integer-value"}, - -{"description": "valid tabindex attribute value '0'", -"input": "<span tabindex=0>", -"fail-if": "invalid-integer-value"}, - -{"description": "valid tabindex attribute value '1'", -"input": "<span tabindex=1>", -"fail-if": "invalid-integer-value"}, - -{"description": "valid tabindex attribute value '32768'", -"input": "<span tabindex=32768>", -"fail-if": "invalid-integer-value"}, - -{"description": "valid tabindex attribute value '-32768'", -"input": "<span tabindex=-32768>", -"fail-if": "invalid-integer-value"}, - -{"description": "valid tabindex attribute value with leading spaces", -"input": "<span tabindex=' -32768'>", -"fail-if": "invalid-integer-value"}, - -{"description": "valid tabindex attribute value with trailing spaces", -"input": "<span tabindex='-32768 '>", -"fail-if": "invalid-integer-value"}, - -{"description": "valid tabindex attribute value with trailing junk", -"input": "<span tabindex='32768a'>", -"fail-if": "invalid-integer-value"}, - -{"description": "valid tabindex attribute value with trailing junk and whitespace", -"input": "<span tabindex='32768a '>", -"fail-if": "invalid-integer-value"}, - -{"description": "valid tabindex attribute value with trailing whitespace and junk", -"input": "<span tabindex='32768 a'>", -"fail-if": "invalid-integer-value"}, - -{"description": "valid tabindex attribute value with leading spaces", -"input": "<span tabindex=' 32768'>", -"fail-if": "invalid-integer-value"}, - -{"description": "valid tabindex attribute value with leading spaces (with sign)", -"input": "<span tabindex=' -32768'>", -"fail-if": "invalid-integer-value"}, - -{"description": "invalid tabindex attribute value (blank)", -"input": "<span tabindex>", -"fail-unless": "attribute-value-can-not-be-blank"}, - -{"description": "invalid tabindex attribute value due to leading junk", -"input": "<span tabindex=a1>", -"fail-unless": "invalid-integer-value"}, - -{"description": "invalid tabindex attribute value due to two hyphens", -"input": "<span tabindex=--1>", -"fail-unless": "invalid-integer-value"}, - -{"description": "invalid tabindex attribute value due to non-numeric", -"input": "<span tabindex=foo>", -"fail-unless": "invalid-integer-value"}, - -{"description": "invalid tabindex attribute value due to positive sign", -"input": "<span tabindex=+1>", -"fail-unless": "invalid-integer-value"}, - -{"description": "invalid tabindex attribute value due to decimal point", -"input": "<span tabindex=.1>", -"fail-unless": "invalid-integer-value"}, - -{"description": "valid tabindex attribute value with trailing decimal point", -"input": "<span tabindex=1.0>", -"fail-if": "invalid-integer-value"} - -]}
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treeadapters/__init__.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treeadapters/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treeadapters/__init__.py +++ /dev/null diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treebuilders/__init__.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treebuilders/__init__.py deleted file mode 100644 index 6a6b2a4c45c..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treebuilders/__init__.py +++ /dev/null @@ -1,76 +0,0 @@ -"""A collection of modules for building different kinds of tree from -HTML documents. - -To create a treebuilder for a new type of tree, you need to do -implement several things: - -1) A set of classes for various types of elements: Document, Doctype, -Comment, Element. These must implement the interface of -_base.treebuilders.Node (although comment nodes have a different -signature for their constructor, see treebuilders.etree.Comment) -Textual content may also be implemented as another node type, or not, as -your tree implementation requires. - -2) A treebuilder object (called TreeBuilder by convention) that -inherits from treebuilders._base.TreeBuilder. This has 4 required attributes: -documentClass - the class to use for the bottommost node of a document -elementClass - the class to use for HTML Elements -commentClass - the class to use for comments -doctypeClass - the class to use for doctypes -It also has one required method: -getDocument - Returns the root node of the complete document tree - -3) If you wish to run the unit tests, you must also create a -testSerializer method on your treebuilder which accepts a node and -returns a string containing Node and its children serialized according -to the format used in the unittests -""" - -from __future__ import absolute_import, division, unicode_literals - -from ..utils import default_etree - -treeBuilderCache = {} - - -def getTreeBuilder(treeType, implementation=None, **kwargs): - """Get a TreeBuilder class for various types of tree with built-in support - - treeType - the name of the tree type required (case-insensitive). Supported - values are: - - "dom" - A generic builder for DOM implementations, defaulting to - a xml.dom.minidom based implementation. - "etree" - A generic builder for tree implementations exposing an - ElementTree-like interface, defaulting to - xml.etree.cElementTree if available and - xml.etree.ElementTree if not. - "lxml" - A etree-based builder for lxml.etree, handling - limitations of lxml's implementation. - - implementation - (Currently applies to the "etree" and "dom" tree types). A - module implementing the tree type e.g. - xml.etree.ElementTree or xml.etree.cElementTree.""" - - treeType = treeType.lower() - if treeType not in treeBuilderCache: - if treeType == "dom": - from . import dom - # Come up with a sane default (pref. from the stdlib) - if implementation is None: - from xml.dom import minidom - implementation = minidom - # NEVER cache here, caching is done in the dom submodule - return dom.getDomModule(implementation, **kwargs).TreeBuilder - elif treeType == "lxml": - from . import etree_lxml - treeBuilderCache[treeType] = etree_lxml.TreeBuilder - elif treeType == "etree": - from . import etree - if implementation is None: - implementation = default_etree - # NEVER cache here, caching is done in the etree submodule - return etree.getETreeModule(implementation, **kwargs).TreeBuilder - else: - raise ValueError("""Unrecognised treebuilder "%s" """ % treeType) - return treeBuilderCache.get(treeType) diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/__init__.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/__init__.py deleted file mode 100644 index 18124e75f3b..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/__init__.py +++ /dev/null @@ -1,57 +0,0 @@ -"""A collection of modules for iterating through different kinds of -tree, generating tokens identical to those produced by the tokenizer -module. - -To create a tree walker for a new type of tree, you need to do -implement a tree walker object (called TreeWalker by convention) that -implements a 'serialize' method taking a tree as sole argument and -returning an iterator generating tokens. -""" - -from __future__ import absolute_import, division, unicode_literals - -import sys - -from ..utils import default_etree - -treeWalkerCache = {} - - -def getTreeWalker(treeType, implementation=None, **kwargs): - """Get a TreeWalker class for various types of tree with built-in support - - treeType - the name of the tree type required (case-insensitive). Supported - values are: - - "dom" - The xml.dom.minidom DOM implementation - "pulldom" - The xml.dom.pulldom event stream - "etree" - A generic walker for tree implementations exposing an - elementtree-like interface (known to work with - ElementTree, cElementTree and lxml.etree). - "lxml" - Optimized walker for lxml.etree - "genshi" - a Genshi stream - - implementation - (Currently applies to the "etree" tree type only). A module - implementing the tree type e.g. xml.etree.ElementTree or - cElementTree.""" - - treeType = treeType.lower() - if treeType not in treeWalkerCache: - if treeType in ("dom", "pulldom"): - name = "%s.%s" % (__name__, treeType) - __import__(name) - mod = sys.modules[name] - treeWalkerCache[treeType] = mod.TreeWalker - elif treeType == "genshi": - from . import genshistream - treeWalkerCache[treeType] = genshistream.TreeWalker - elif treeType == "lxml": - from . import lxmletree - treeWalkerCache[treeType] = lxmletree.TreeWalker - elif treeType == "etree": - from . import etree - if implementation is None: - implementation = default_etree - # XXX: NEVER cache here, caching is done in the etree submodule - return etree.getETreeModule(implementation, **kwargs).TreeWalker - return treeWalkerCache.get(treeType) diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/pulldom.py b/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/pulldom.py deleted file mode 100644 index 0b0f515fec7..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/pulldom.py +++ /dev/null @@ -1,63 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -from xml.dom.pulldom import START_ELEMENT, END_ELEMENT, \ - COMMENT, IGNORABLE_WHITESPACE, CHARACTERS - -from . import _base - -from ..constants import voidElements - - -class TreeWalker(_base.TreeWalker): - def __iter__(self): - ignore_until = None - previous = None - for event in self.tree: - if previous is not None and \ - (ignore_until is None or previous[1] is ignore_until): - if previous[1] is ignore_until: - ignore_until = None - for token in self.tokens(previous, event): - yield token - if token["type"] == "EmptyTag": - ignore_until = previous[1] - previous = event - if ignore_until is None or previous[1] is ignore_until: - for token in self.tokens(previous, None): - yield token - elif ignore_until is not None: - raise ValueError("Illformed DOM event stream: void element without END_ELEMENT") - - def tokens(self, event, next): - type, node = event - if type == START_ELEMENT: - name = node.nodeName - namespace = node.namespaceURI - attrs = {} - for attr in list(node.attributes.keys()): - attr = node.getAttributeNode(attr) - attrs[(attr.namespaceURI, attr.localName)] = attr.value - if name in voidElements: - for token in self.emptyTag(namespace, - name, - attrs, - not next or next[1] is not node): - yield token - else: - yield self.startTag(namespace, name, attrs) - - elif type == END_ELEMENT: - name = node.nodeName - namespace = node.namespaceURI - if name not in voidElements: - yield self.endTag(namespace, name) - - elif type == COMMENT: - yield self.comment(node.nodeValue) - - elif type in (IGNORABLE_WHITESPACE, CHARACTERS): - for token in self.text(node.nodeValue): - yield token - - else: - yield self.unknown(type) diff --git a/tests/wpt/web-platform-tests/tools/html5lib/requirements-install.sh b/tests/wpt/web-platform-tests/tools/html5lib/requirements-install.sh deleted file mode 100755 index 5f8ba50645f..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/requirements-install.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash -e - -if [[ $USE_OPTIONAL != "true" && $USE_OPTIONAL != "false" ]]; then - echo "fatal: \$USE_OPTIONAL not set to true or false. Exiting." - exit 1 -fi - -pip install -r requirements-test.txt - -if [[ $USE_OPTIONAL == "true" && $TRAVIS_PYTHON_VERSION != "pypy" ]]; then - if [[ $TRAVIS_PYTHON_VERSION == "2.6" ]]; then - pip install --allow-external Genshi --allow-insecure Genshi -r requirements-optional-2.6.txt - else - pip install --allow-external Genshi --allow-insecure Genshi -r requirements-optional-cpython.txt - fi -fi diff --git a/tests/wpt/web-platform-tests/tools/html5lib/requirements-optional-2.6.txt b/tests/wpt/web-platform-tests/tools/html5lib/requirements-optional-2.6.txt deleted file mode 100644 index 37557ac403d..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/requirements-optional-2.6.txt +++ /dev/null @@ -1,5 +0,0 @@ --r requirements-optional-cpython.txt - -# Can be used to force attributes to be serialized in alphabetical -# order. -ordereddict diff --git a/tests/wpt/web-platform-tests/tools/html5lib/requirements-optional-cpython.txt b/tests/wpt/web-platform-tests/tools/html5lib/requirements-optional-cpython.txt deleted file mode 100644 index 35ed3529c2c..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/requirements-optional-cpython.txt +++ /dev/null @@ -1,5 +0,0 @@ --r requirements-optional.txt - -# lxml is supported with its own treebuilder ("lxml") and otherwise -# uses the standard ElementTree support -lxml diff --git a/tests/wpt/web-platform-tests/tools/html5lib/requirements-optional.txt b/tests/wpt/web-platform-tests/tools/html5lib/requirements-optional.txt deleted file mode 100644 index c6355270127..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/requirements-optional.txt +++ /dev/null @@ -1,13 +0,0 @@ --r requirements.txt - -# We support a Genshi treewalker that can be used to serialize Genshi -# streams. -genshi - -# DATrie can be used in place of our Python trie implementation for -# slightly better parsing performance. -datrie - -# charade can be used as a fallback in case we are unable to determine -# the encoding of a document. -charade diff --git a/tests/wpt/web-platform-tests/tools/html5lib/requirements-test.txt b/tests/wpt/web-platform-tests/tools/html5lib/requirements-test.txt deleted file mode 100644 index d5f8088c1c1..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/requirements-test.txt +++ /dev/null @@ -1,5 +0,0 @@ --r requirements.txt - -flake8 -nose -ordereddict # Python 2.6 diff --git a/tests/wpt/web-platform-tests/tools/html5lib/setup.py b/tests/wpt/web-platform-tests/tools/html5lib/setup.py deleted file mode 100644 index f75910eaf21..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/setup.py +++ /dev/null @@ -1,44 +0,0 @@ -from distutils.core import setup -import os -import codecs - -classifiers=[ - 'Development Status :: 5 - Production/Stable', - 'Intended Audience :: Developers', - 'License :: OSI Approved :: MIT License', - 'Operating System :: OS Independent', - 'Programming Language :: Python', - 'Programming Language :: Python :: 2', - 'Programming Language :: Python :: 2.6', - 'Programming Language :: Python :: 2.7', - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.2', - 'Programming Language :: Python :: 3.3', - 'Topic :: Software Development :: Libraries :: Python Modules', - 'Topic :: Text Processing :: Markup :: HTML' - ] - -packages = ['html5lib'] + ['html5lib.'+name - for name in os.listdir(os.path.join('html5lib')) - if os.path.isdir(os.path.join('html5lib', name)) and - not name.startswith('.') and name != 'tests'] - -current_dir = os.path.dirname(__file__) -with codecs.open(os.path.join(current_dir, 'README.rst'), 'r', 'utf8') as readme_file: - with codecs.open(os.path.join(current_dir, 'CHANGES.rst'), 'r', 'utf8') as changes_file: - long_description = readme_file.read() + '\n' + changes_file.read() - -setup(name='html5lib', - version='0.9999-dev', - url='https://github.com/html5lib/html5lib-python', - license="MIT License", - description='HTML parser based on the WHATWG HTML specifcation', - long_description=long_description, - classifiers=classifiers, - maintainer='James Graham', - maintainer_email='james@hoppipolla.co.uk', - packages=packages, - install_requires=[ - 'six', - ], - ) diff --git a/tests/wpt/web-platform-tests/tools/html5lib/tox.ini b/tests/wpt/web-platform-tests/tools/html5lib/tox.ini deleted file mode 100644 index 479f9e1f732..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/tox.ini +++ /dev/null @@ -1,30 +0,0 @@ -[tox] -envlist = py26,py27,py32,py33,py34,pypy - -[testenv] -deps = - -r{toxinidir}/requirements-optional-cpython.txt - flake8 - nose -commands = - {envbindir}/nosetests -q - {toxinidir}/flake8-run.sh -install_command = - pip install {opts} {packages} - -[testenv:pypy] -# lxml doesn't work and datrie doesn't make sense -# (it's slower than the pure-python version) -deps = - charade - flake8 - Genshi - nose - six - -[testenv:py26] -basepython = python2.6 -deps = - -r{toxinidir}/requirements-optional-2.6.txt - flake8 - nose diff --git a/tests/wpt/web-platform-tests/tools/html5lib/utils/iana_parse.py b/tests/wpt/web-platform-tests/tools/html5lib/utils/iana_parse.py deleted file mode 100644 index 6dde94c2829..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/utils/iana_parse.py +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env python -import sys -import urllib.request, urllib.error, urllib.parse -import codecs - -def main(): - encodings = [] - f = urllib.request.urlopen(sys.argv[1]) - for line in f: - if line.startswith("Name: ") or line.startswith("Alias: "): - enc = line.split()[1] - try: - codecs.lookup(enc) - if enc.lower not in encodings: - encodings.append(enc.lower()) - except LookupError: - pass - sys.stdout.write("encodings = frozenset((\n") - for enc in encodings: - sys.stdout.write(' "%s",\n'%enc) - sys.stdout.write(' ))') - -if __name__ == "__main__": - main()
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/tools/html5lib/utils/spider.py b/tests/wpt/web-platform-tests/tools/html5lib/utils/spider.py deleted file mode 100644 index a7b8031974b..00000000000 --- a/tests/wpt/web-platform-tests/tools/html5lib/utils/spider.py +++ /dev/null @@ -1,122 +0,0 @@ -#!/usr/bin/env python -"""Spider to try and find bugs in the parser. Requires httplib2 and elementtree - -usage: -import spider -s = spider.Spider() -s.spider("http://www.google.com", maxURLs=100) -""" - -import urllib.request, urllib.error, urllib.parse -import urllib.robotparser -import md5 - -import httplib2 - -import html5lib -from html5lib.treebuilders import etree - -class Spider(object): - def __init__(self): - self.unvisitedURLs = set() - self.visitedURLs = set() - self.buggyURLs=set() - self.robotParser = urllib.robotparser.RobotFileParser() - self.contentDigest = {} - self.http = httplib2.Http(".cache") - - def run(self, initialURL, maxURLs=1000): - urlNumber = 0 - self.visitedURLs.add(initialURL) - content = self.loadURL(initialURL) - while maxURLs is None or urlNumber < maxURLs: - if content is not None: - self.parse(content) - urlNumber += 1 - if not self.unvisitedURLs: - break - content = self.loadURL(self.unvisitedURLs.pop()) - - def parse(self, content): - failed = False - p = html5lib.HTMLParser(tree=etree.TreeBuilder) - try: - tree = p.parse(content) - except: - self.buggyURLs.add(self.currentURL) - failed = True - print("BUGGY:", self.currentURL) - self.visitedURLs.add(self.currentURL) - if not failed: - self.updateURLs(tree) - - def loadURL(self, url): - resp, content = self.http.request(url, "GET") - self.currentURL = url - digest = md5.md5(content).hexdigest() - if digest in self.contentDigest: - content = None - self.visitedURLs.add(url) - else: - self.contentDigest[digest] = url - - if resp['status'] != "200": - content = None - - return content - - def updateURLs(self, tree): - """Take all the links in the current document, extract the URLs and - update the list of visited and unvisited URLs according to whether we - have seen them before or not""" - urls = set() - #Remove all links we have already visited - for link in tree.findall(".//a"): - try: - url = urllib.parse.urldefrag(link.attrib['href'])[0] - if (url and url not in self.unvisitedURLs and url - not in self.visitedURLs): - urls.add(url) - except KeyError: - pass - - #Remove all non-http URLs and a dd a sutiable base URL where that is - #missing - newUrls = set() - for url in urls: - splitURL = list(urllib.parse.urlsplit(url)) - if splitURL[0] != "http": - continue - if splitURL[1] == "": - splitURL[1] = urllib.parse.urlsplit(self.currentURL)[1] - newUrls.add(urllib.parse.urlunsplit(splitURL)) - urls = newUrls - - responseHeaders = {} - #Now we want to find the content types of the links we haven't visited - for url in urls: - try: - resp, content = self.http.request(url, "HEAD") - responseHeaders[url] = resp - except AttributeError as KeyError: - #Don't know why this happens - pass - - - #Remove links not of content-type html or pages not found - #XXX - need to deal with other status codes? - toVisit = set([url for url in urls if url in responseHeaders and - "html" in responseHeaders[url]['content-type'] and - responseHeaders[url]['status'] == "200"]) - - #Now check we are allowed to spider the page - for url in toVisit: - robotURL = list(urllib.parse.urlsplit(url)[:2]) - robotURL.extend(["robots.txt", "", ""]) - robotURL = urllib.parse.urlunsplit(robotURL) - self.robotParser.set_url(robotURL) - if not self.robotParser.can_fetch("*", url): - toVisit.remove(url) - - self.visitedURLs.update(urls) - self.unvisitedURLs.update(toVisit) diff --git a/tests/wpt/web-platform-tests/tools/localpaths.py b/tests/wpt/web-platform-tests/tools/localpaths.py index 8509114b939..0c4f018ae68 100644 --- a/tests/wpt/web-platform-tests/tools/localpaths.py +++ b/tests/wpt/web-platform-tests/tools/localpaths.py @@ -5,14 +5,15 @@ here = os.path.abspath(os.path.split(__file__)[0]) repo_root = os.path.abspath(os.path.join(here, os.pardir)) sys.path.insert(0, os.path.join(here)) -sys.path.insert(0, os.path.join(here, "six")) -sys.path.insert(0, os.path.join(here, "html5lib")) sys.path.insert(0, os.path.join(here, "wptserve")) sys.path.insert(0, os.path.join(here, "pywebsocket")) sys.path.insert(0, os.path.join(here, "third_party", "attrs", "src")) sys.path.insert(0, os.path.join(here, "third_party", "funcsigs")) +sys.path.insert(0, os.path.join(here, "third_party", "html5lib")) sys.path.insert(0, os.path.join(here, "third_party", "pluggy")) sys.path.insert(0, os.path.join(here, "third_party", "py")) sys.path.insert(0, os.path.join(here, "third_party", "pytest")) +sys.path.insert(0, os.path.join(here, "third_party", "six")) +sys.path.insert(0, os.path.join(here, "third_party", "webencodings")) sys.path.insert(0, os.path.join(here, "webdriver")) sys.path.insert(0, os.path.join(here, "wptrunner")) diff --git a/tests/wpt/web-platform-tests/tools/manifest/sourcefile.py b/tests/wpt/web-platform-tests/tools/manifest/sourcefile.py index 3b4abbc29bf..c4d8e5e00df 100644 --- a/tests/wpt/web-platform-tests/tools/manifest/sourcefile.py +++ b/tests/wpt/web-platform-tests/tools/manifest/sourcefile.py @@ -132,10 +132,20 @@ def global_variant_url(url, suffix): return replace_end(url, ".js", suffix) +def _parse_xml(f): + try: + # raises ValueError with an unsupported encoding, + # ParseError when there's an undefined entity + return ElementTree.parse(f) + except (ValueError, ElementTree.ParseError): + f.seek(0) + return ElementTree.parse(f, XMLParser.XMLParser()) + + class SourceFile(object): - parsers = {"html":lambda x:html5lib.parse(x, treebuilder="etree"), - "xhtml":lambda x:ElementTree.parse(x, XMLParser.XMLParser()), - "svg":lambda x:ElementTree.parse(x, XMLParser.XMLParser())} + parsers = {"html":lambda x:html5lib.parse(x, treebuilder="etree", useChardet=False), + "xhtml":_parse_xml, + "svg":_parse_xml} root_dir_non_test = set(["common"]) diff --git a/tests/wpt/web-platform-tests/tools/six/.gitignore b/tests/wpt/web-platform-tests/tools/six/.gitignore deleted file mode 100644 index 809b2e84eef..00000000000 --- a/tests/wpt/web-platform-tests/tools/six/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -*# -*.py[co] -*.sw[po] -*~ -MANIFEST -documentation/_build -\#* -.tox -six.egg-info diff --git a/tests/wpt/web-platform-tests/tools/six/.hgignore b/tests/wpt/web-platform-tests/tools/six/.hgignore deleted file mode 100644 index 37232e73382..00000000000 --- a/tests/wpt/web-platform-tests/tools/six/.hgignore +++ /dev/null @@ -1,8 +0,0 @@ -syntax: glob -*.pyc -dist -MANIFEST -documentation/_build -.tox -.gitignore -six.egg-info diff --git a/tests/wpt/web-platform-tests/tools/six/CONTRIBUTORS b/tests/wpt/web-platform-tests/tools/six/CONTRIBUTORS deleted file mode 100644 index 0cbd0a4026e..00000000000 --- a/tests/wpt/web-platform-tests/tools/six/CONTRIBUTORS +++ /dev/null @@ -1,22 +0,0 @@ -The primary author and maintainer of six is Benjamin Peterson. He would like to -acknowledge the following people who submitted bug reports, pull requests, and -otherwise worked to improve six: - -Marc Abramowitz -Alexander Artemenko -Aymeric Augustin -Ned Batchelder -Jason R. Coombs -Julien Danjou -Ben Darnell -Ben Davis -Joshua Harlow -Anselm Kruis -Alexander Lukanin -James Mills -Sridhar Ratnakumar -Erik Rose -Peter Ruibal -Miroslav Shubernetskiy - -If you think you belong on this list, please let me know! --Benjamin diff --git a/tests/wpt/web-platform-tests/tools/six/README b/tests/wpt/web-platform-tests/tools/six/README deleted file mode 100644 index 32bab7ceecf..00000000000 --- a/tests/wpt/web-platform-tests/tools/six/README +++ /dev/null @@ -1,16 +0,0 @@ -Six is a Python 2 and 3 compatibility library. It provides utility functions -for smoothing over the differences between the Python versions with the goal of -writing Python code that is compatible on both Python versions. See the -documentation for more information on what is provided. - -Six supports every Python version since 2.5. It is contained in only one Python -file, so it can be easily copied into your project. (The copyright and license -notice must be retained.) - -Online documentation is at http://pythonhosted.org/six/. - -Bugs can be reported to https://bitbucket.org/gutworth/six. The code can also -be found there. - -For questions about six or porting in general, email the python-porting mailing -list: http://mail.python.org/mailman/listinfo/python-porting diff --git a/tests/wpt/web-platform-tests/tools/six/setup.cfg b/tests/wpt/web-platform-tests/tools/six/setup.cfg deleted file mode 100644 index 5e4090017a9..00000000000 --- a/tests/wpt/web-platform-tests/tools/six/setup.cfg +++ /dev/null @@ -1,2 +0,0 @@ -[wheel] -universal = 1 diff --git a/tests/wpt/web-platform-tests/tools/six/setup.py b/tests/wpt/web-platform-tests/tools/six/setup.py deleted file mode 100644 index b0cca52d4a8..00000000000 --- a/tests/wpt/web-platform-tests/tools/six/setup.py +++ /dev/null @@ -1,32 +0,0 @@ -from __future__ import with_statement - -try: - from setuptools import setup -except ImportError: - from distutils.core import setup - -import six - -six_classifiers = [ - "Programming Language :: Python :: 2", - "Programming Language :: Python :: 3", - "Intended Audience :: Developers", - "License :: OSI Approved :: MIT License", - "Topic :: Software Development :: Libraries", - "Topic :: Utilities", -] - -with open("README", "r") as fp: - six_long_description = fp.read() - -setup(name="six", - version=six.__version__, - author="Benjamin Peterson", - author_email="benjamin@python.org", - url="http://pypi.python.org/pypi/six/", - py_modules=["six"], - description="Python 2 and 3 compatibility utilities", - long_description=six_long_description, - license="MIT", - classifiers=six_classifiers - ) diff --git a/tests/wpt/web-platform-tests/tools/six/tox.ini b/tests/wpt/web-platform-tests/tools/six/tox.ini deleted file mode 100644 index b29b31a69e9..00000000000 --- a/tests/wpt/web-platform-tests/tools/six/tox.ini +++ /dev/null @@ -1,12 +0,0 @@ -[tox] -envlist=py25,py26,py27,py31,py32,py33,py34,pypy -indexserver= - default = http://pypi.python.org/simple - testrun = http://pypi.testrun.org - -[testenv] -deps=pytest -commands= py.test -rfsxX {posargs} - -[pytest] -minversion=2.2.0 diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/.appveyor.yml b/tests/wpt/web-platform-tests/tools/third_party/html5lib/.appveyor.yml new file mode 100644 index 00000000000..984e2b7fa5e --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/.appveyor.yml @@ -0,0 +1,31 @@ +# To activate, change the Appveyor settings to use `.appveyor.yml`. +environment: + global: + PATH: "C:\\Python27\\Scripts\\;%PATH%" + PYTEST_COMMAND: "coverage run -m pytest" + matrix: + - TOXENV: py27-base + - TOXENV: py27-optional + - TOXENV: py33-base + - TOXENV: py33-optional + - TOXENV: py34-base + - TOXENV: py34-optional + - TOXENV: py35-base + - TOXENV: py35-optional + - TOXENV: py36-base + - TOXENV: py36-optional + +install: + - git submodule update --init --recursive + - python -m pip install tox codecov + +build: off + +test_script: + - tox + +after_test: + - python debug-info.py + +on_success: + - codecov diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/.coveragerc b/tests/wpt/web-platform-tests/tools/third_party/html5lib/.coveragerc new file mode 100644 index 00000000000..6facf35239f --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/.coveragerc @@ -0,0 +1,8 @@ +[run] +branch = True +source = html5lib + +[paths] +source = + html5lib + .tox/*/lib/python*/site-packages/html5lib diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/.gitignore b/tests/wpt/web-platform-tests/tools/third_party/html5lib/.gitignore new file mode 100644 index 00000000000..ecd62df31b9 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/.gitignore @@ -0,0 +1,85 @@ +# Copyright (c) 2014 GitHub, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +env/ +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*,cover + +# Translations +*.mo +*.pot + +# Django stuff: +*.log + +# Sphinx documentation +doc/_build/ + +# PyBuilder +target/ + +# Generated by parse.py -p +stats.prof + +# IDE +.idea diff --git a/tests/wpt/web-platform-tests/tools/html5lib/.gitmodules b/tests/wpt/web-platform-tests/tools/third_party/html5lib/.gitmodules index dbca470328d..dbca470328d 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/.gitmodules +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/.gitmodules diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/.prospector.yaml b/tests/wpt/web-platform-tests/tools/third_party/html5lib/.prospector.yaml new file mode 100644 index 00000000000..7e8efe1a629 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/.prospector.yaml @@ -0,0 +1,21 @@ +strictness: veryhigh +doc-warnings: false +test-warnings: false + +max-line-length: 139 + +requirements: + - requirements.txt + - requirements-test.txt + - requirements-optional.txt + +ignore-paths: + - parse.py + - utils/ + +python-targets: + - 2 + - 3 + +mccabe: + run: false diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/.pylintrc b/tests/wpt/web-platform-tests/tools/third_party/html5lib/.pylintrc new file mode 100644 index 00000000000..ea74d5db3ff --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/.pylintrc @@ -0,0 +1,10 @@ +[MASTER] +ignore=tests + +[MESSAGES CONTROL] +# messages up to fixme should probably be fixed somehow +disable = redefined-builtin,attribute-defined-outside-init,anomalous-backslash-in-string,no-self-use,redefined-outer-name,bad-continuation,wrong-import-order,superfluous-parens,no-member,duplicate-code,super-init-not-called,abstract-method,property-on-old-class,wrong-import-position,no-name-in-module,no-init,bad-mcs-classmethod-argument,bad-classmethod-argument,fixme,invalid-name,import-error,too-few-public-methods,too-many-ancestors,too-many-arguments,too-many-boolean-expressions,too-many-branches,too-many-instance-attributes,too-many-locals,too-many-lines,too-many-public-methods,too-many-return-statements,too-many-statements,missing-docstring,line-too-long,locally-disabled,locally-enabled,bad-builtin,deprecated-lambda + +[FORMAT] +max-line-length=139 +single-line-if-stmt=no diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/.pytest.expect b/tests/wpt/web-platform-tests/tools/third_party/html5lib/.pytest.expect new file mode 100644 index 00000000000..0fa326f0354 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/.pytest.expect @@ -0,0 +1,1322 @@ +pytest-expect file v1 +(2, 7, 11, 'final', 0) +b'html5lib/tests/test_encoding.py::test_encoding::[110]': FAIL +b'html5lib/tests/test_encoding.py::test_encoding::[111]': FAIL +u'html5lib/tests/testdata/tokenizer/test2.test::0::dataState': FAIL +u'html5lib/tests/testdata/tokenizer/test3.test::228::dataState': FAIL +u'html5lib/tests/testdata/tokenizer/test3.test::231::dataState': FAIL +u'html5lib/tests/testdata/tokenizer/test3.test::232::dataState': FAIL +u'html5lib/tests/testdata/tokenizer/test3.test::234::dataState': FAIL +u'html5lib/tests/testdata/tokenizer/test3.test::235::dataState': FAIL +u'html5lib/tests/testdata/tokenizer/test3.test::237::dataState': FAIL +u'html5lib/tests/testdata/tokenizer/test3.test::240::dataState': FAIL +u'html5lib/tests/testdata/tokenizer/test3.test::241::dataState': FAIL +u'html5lib/tests/testdata/tokenizer/test3.test::243::dataState': FAIL +u'html5lib/tests/testdata/tokenizer/test3.test::244::dataState': FAIL +u'html5lib/tests/testdata/tokenizer/test3.test::246::dataState': FAIL +u'html5lib/tests/testdata/tokenizer/test3.test::258::dataState': FAIL +u'html5lib/tests/testdata/tokenizer/test3.test::656::dataState': FAIL +u'html5lib/tests/testdata/tree-construction/adoption01.dat::17::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/adoption01.dat::17::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/adoption01.dat::17::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/adoption01.dat::17::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/adoption01.dat::17::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/adoption01.dat::17::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/adoption01.dat::17::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/adoption01.dat::17::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::0::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::0::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::0::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::0::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::0::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::0::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::0::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::0::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::18::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::18::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::18::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::18::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::18::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::18::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::18::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::18::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::19::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::19::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::19::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::19::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::19::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::19::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::19::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::19::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::1::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::1::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::1::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::1::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::1::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::1::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::1::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::1::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::22::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::22::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::22::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::22::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::22::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::22::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::22::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::22::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::23::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::23::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::23::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::23::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::23::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::23::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::23::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::23::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::26::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::26::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::26::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::26::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::26::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::26::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::26::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::26::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::27::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::27::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::27::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::27::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::27::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::27::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::27::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::27::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::2::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::2::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::2::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::2::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::2::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::2::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::2::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::2::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::30::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::30::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::30::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::30::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::30::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::30::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::30::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::30::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::31::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::31::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::31::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::31::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::31::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::31::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::31::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::31::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::34::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::34::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::34::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::34::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::34::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::34::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::34::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::34::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::35::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::35::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::35::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::35::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::35::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::35::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::35::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::35::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::38::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::38::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::38::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::38::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::38::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::38::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::38::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::38::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::39::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::39::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::39::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::39::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::39::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::39::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::39::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::39::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::3::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::3::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::3::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::3::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::3::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::3::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::3::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::3::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::40::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::40::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::40::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::40::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::40::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::40::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::40::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::40::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::41::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::41::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::41::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::41::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::41::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::41::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::41::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::41::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::47::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::47::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::47::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::47::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::47::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::47::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::47::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::47::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::48::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::48::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::48::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::48::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::48::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::48::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::48::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::48::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::0::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::0::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::0::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::0::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::0::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::0::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::0::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::0::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::1::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::1::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::1::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::1::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::1::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::1::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::1::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::1::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::2::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::2::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::2::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::2::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::2::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::2::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::2::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::2::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::3::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::3::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::3::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::3::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::3::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::3::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::3::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::3::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::3::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::3::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::3::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::3::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::3::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::3::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::3::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::3::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::4::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::4::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::4::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::4::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::4::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::4::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::4::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::4::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::5::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::5::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::5::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::5::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::5::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::5::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::5::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::5::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/namespace-sensitivity.dat::0::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/namespace-sensitivity.dat::0::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/namespace-sensitivity.dat::0::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/namespace-sensitivity.dat::0::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/namespace-sensitivity.dat::0::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/namespace-sensitivity.dat::0::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/namespace-sensitivity.dat::0::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/namespace-sensitivity.dat::0::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::0::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::0::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::0::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::0::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::0::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::0::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::0::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::0::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::10::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::10::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::10::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::10::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::10::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::10::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::10::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::10::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::12::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::12::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::12::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::12::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::12::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::12::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::12::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::12::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::15::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::15::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::15::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::15::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::15::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::15::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::15::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::15::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::17::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::17::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::17::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::17::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::17::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::17::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::17::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::17::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::1::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::1::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::1::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::1::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::1::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::1::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::1::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::1::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::20::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::20::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::20::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::20::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::20::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::20::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::20::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::20::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::2::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::2::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::2::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::2::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::2::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::2::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::2::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::2::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::3::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::3::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::3::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::3::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::3::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::3::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::3::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::3::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::5::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::5::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::5::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::5::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::5::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::5::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::5::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::5::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::7::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::7::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::7::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::7::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::7::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::7::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::7::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::7::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/adoption01.dat::0::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/adoption01.dat::0::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/adoption01.dat::0::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/adoption01.dat::0::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/adoption01.dat::0::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/adoption01.dat::0::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/adoption01.dat::0::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/adoption01.dat::0::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/ark.dat::0::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/ark.dat::0::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/ark.dat::0::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/ark.dat::0::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/ark.dat::0::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/ark.dat::0::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/ark.dat::0::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/ark.dat::0::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::0::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::0::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::0::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::0::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::0::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::0::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::0::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::0::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::1::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::1::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::1::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::1::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::1::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::1::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::1::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::1::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::0::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::0::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::0::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::0::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::0::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::0::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::0::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::0::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::100::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::100::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::100::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::100::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::100::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::100::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::100::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::100::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::101::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::101::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::101::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::101::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::101::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::101::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::101::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::101::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::102::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::102::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::102::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::102::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::102::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::102::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::102::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::102::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::103::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::103::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::103::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::103::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::103::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::103::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::103::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::103::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::104::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::104::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::104::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::104::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::104::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::104::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::104::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::104::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::105::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::105::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::105::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::105::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::105::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::105::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::105::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::105::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::106::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::106::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::106::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::106::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::106::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::106::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::106::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::106::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::107::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::107::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::107::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::107::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::107::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::107::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::107::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::107::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::10::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::10::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::10::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::10::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::10::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::10::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::10::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::10::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::11::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::11::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::11::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::11::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::11::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::11::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::11::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::11::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::12::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::12::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::12::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::12::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::12::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::12::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::12::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::12::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::13::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::13::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::13::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::13::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::13::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::13::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::13::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::13::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::14::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::14::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::14::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::14::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::14::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::14::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::14::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::14::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::15::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::15::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::15::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::15::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::15::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::15::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::15::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::15::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::16::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::16::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::16::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::16::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::16::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::16::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::16::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::16::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::17::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::17::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::17::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::17::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::17::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::17::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::17::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::17::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::18::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::18::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::18::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::18::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::18::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::18::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::18::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::18::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::19::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::19::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::19::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::19::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::19::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::19::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::19::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::19::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::1::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::1::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::1::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::1::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::1::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::1::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::1::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::1::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::20::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::20::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::20::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::20::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::20::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::20::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::20::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::20::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::21::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::21::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::21::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::21::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::21::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::21::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::21::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::21::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::22::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::22::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::22::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::22::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::22::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::22::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::22::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::22::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::23::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::23::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::23::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::23::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::23::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::23::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::23::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::23::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::24::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::24::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::24::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::24::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::24::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::24::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::24::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::24::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::25::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::25::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::25::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::25::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::25::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::25::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::25::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::25::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::26::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::26::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::26::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::26::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::26::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::26::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::26::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::26::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::27::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::27::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::27::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::27::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::27::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::27::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::27::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::27::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::28::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::28::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::28::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::28::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::28::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::28::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::28::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::28::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::29::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::29::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::29::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::29::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::29::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::29::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::29::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::29::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::2::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::2::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::2::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::2::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::2::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::2::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::2::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::2::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::30::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::30::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::30::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::30::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::30::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::30::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::30::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::30::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::31::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::31::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::31::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::31::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::31::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::31::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::31::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::31::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::32::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::32::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::32::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::32::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::32::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::32::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::32::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::32::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::33::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::33::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::33::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::33::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::33::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::33::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::33::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::33::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::34::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::34::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::34::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::34::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::34::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::34::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::34::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::34::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::35::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::35::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::35::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::35::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::35::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::35::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::35::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::35::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::36::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::36::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::36::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::36::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::36::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::36::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::36::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::36::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::37::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::37::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::37::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::37::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::37::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::37::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::37::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::37::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::38::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::38::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::38::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::38::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::38::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::38::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::38::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::38::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::3::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::3::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::3::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::3::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::3::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::3::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::3::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::3::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::40::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::40::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::40::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::40::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::40::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::40::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::40::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::40::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::41::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::41::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::41::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::41::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::41::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::41::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::41::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::41::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::42::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::42::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::42::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::42::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::42::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::42::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::42::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::42::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::43::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::43::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::43::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::43::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::43::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::43::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::43::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::43::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::44::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::44::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::44::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::44::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::44::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::44::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::44::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::44::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::45::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::45::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::45::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::45::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::45::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::45::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::45::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::45::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::46::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::46::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::46::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::46::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::46::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::46::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::46::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::46::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::47::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::47::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::47::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::47::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::47::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::47::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::47::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::47::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::48::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::48::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::48::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::48::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::48::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::48::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::48::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::48::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::49::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::49::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::49::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::49::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::49::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::49::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::49::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::49::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::4::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::4::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::4::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::4::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::4::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::4::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::4::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::4::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::50::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::50::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::50::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::50::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::50::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::50::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::50::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::50::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::51::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::51::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::51::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::51::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::51::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::51::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::51::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::51::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::52::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::52::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::52::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::52::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::52::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::52::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::52::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::52::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::53::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::53::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::53::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::53::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::53::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::53::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::53::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::53::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::54::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::54::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::54::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::54::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::54::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::54::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::54::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::54::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::55::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::55::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::55::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::55::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::55::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::55::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::55::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::55::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::56::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::56::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::56::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::56::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::56::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::56::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::56::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::56::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::57::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::57::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::57::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::57::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::57::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::57::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::57::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::57::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::58::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::58::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::58::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::58::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::58::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::58::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::58::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::58::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::59::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::59::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::59::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::59::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::59::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::59::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::59::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::59::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::5::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::5::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::5::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::5::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::5::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::5::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::5::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::5::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::60::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::60::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::60::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::60::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::60::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::60::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::60::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::60::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::61::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::61::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::61::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::61::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::61::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::61::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::61::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::61::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::62::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::62::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::62::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::62::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::62::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::62::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::62::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::62::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::63::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::63::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::63::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::63::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::63::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::63::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::63::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::63::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::64::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::64::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::64::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::64::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::64::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::64::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::64::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::64::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::65::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::65::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::65::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::65::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::65::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::65::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::65::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::65::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::66::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::66::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::66::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::66::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::66::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::66::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::66::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::66::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::67::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::67::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::67::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::67::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::67::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::67::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::67::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::67::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::68::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::68::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::68::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::68::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::68::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::68::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::68::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::68::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::69::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::69::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::69::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::69::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::69::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::69::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::69::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::69::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::6::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::6::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::6::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::6::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::6::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::6::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::6::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::6::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::70::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::70::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::70::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::70::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::70::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::70::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::70::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::70::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::71::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::71::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::71::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::71::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::71::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::71::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::71::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::71::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::72::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::72::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::72::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::72::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::72::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::72::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::72::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::72::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::73::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::73::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::73::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::73::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::73::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::73::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::73::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::73::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::74::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::74::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::74::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::74::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::74::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::74::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::74::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::74::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::75::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::75::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::75::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::75::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::75::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::75::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::75::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::75::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::76::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::76::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::76::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::76::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::76::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::76::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::76::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::76::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::77::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::77::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::77::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::77::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::77::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::77::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::77::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::77::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::78::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::78::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::78::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::78::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::78::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::78::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::78::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::78::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::79::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::79::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::79::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::79::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::79::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::79::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::79::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::79::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::80::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::80::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::80::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::80::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::80::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::80::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::80::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::80::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::81::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::81::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::81::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::81::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::81::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::81::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::81::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::81::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::82::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::82::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::82::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::82::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::82::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::82::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::82::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::82::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::83::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::83::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::83::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::83::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::83::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::83::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::83::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::83::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::84::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::84::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::84::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::84::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::84::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::84::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::84::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::84::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::85::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::85::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::85::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::85::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::85::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::85::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::85::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::85::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::86::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::86::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::86::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::86::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::86::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::86::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::86::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::86::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::87::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::87::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::87::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::87::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::87::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::87::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::87::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::87::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::88::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::88::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::88::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::88::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::88::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::88::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::88::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::88::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::89::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::89::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::89::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::89::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::89::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::89::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::89::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::89::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::8::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::8::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::8::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::8::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::8::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::8::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::8::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::8::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::90::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::90::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::90::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::90::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::90::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::90::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::90::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::90::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::91::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::91::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::91::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::91::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::91::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::91::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::91::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::91::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::92::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::92::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::92::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::92::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::92::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::92::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::92::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::92::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::93::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::93::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::93::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::93::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::93::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::93::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::93::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::93::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::94::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::94::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::94::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::94::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::94::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::94::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::94::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::94::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::95::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::95::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::95::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::95::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::95::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::95::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::95::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::95::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::96::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::96::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::96::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::96::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::96::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::96::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::96::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::96::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::97::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::97::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::97::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::97::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::97::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::97::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::97::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::97::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::98::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::98::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::98::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::98::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::98::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::98::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::98::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::98::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::99::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::99::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::99::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::99::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::99::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::99::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::99::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::99::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::9::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::9::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::9::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::9::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::9::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::9::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::9::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::9::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::2::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::2::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::2::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::2::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::2::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::2::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::2::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::2::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::4::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::4::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::4::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::4::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::4::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::4::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::4::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::4::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::5::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::5::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::5::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::5::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::5::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::5::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::5::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::5::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::6::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::6::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::6::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::6::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::6::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::6::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::6::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::6::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::14::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::14::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::14::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::14::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::14::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::14::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::14::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::14::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::17::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::17::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::17::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::17::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::17::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::17::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::17::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::17::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::7::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::7::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::7::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::7::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::7::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::7::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::7::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::7::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests2.dat::6::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests2.dat::6::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests2.dat::6::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests2.dat::6::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests2.dat::6::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests2.dat::6::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests2.dat::6::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests2.dat::6::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests2.dat::7::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests2.dat::7::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests2.dat::7::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests2.dat::7::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests2.dat::7::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests2.dat::7::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests2.dat::7::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests2.dat::7::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests25.dat::7::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests25.dat::7::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests25.dat::7::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests25.dat::7::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests25.dat::7::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests25.dat::7::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests25.dat::7::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests25.dat::7::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::14::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::14::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::14::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::14::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::14::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::14::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::14::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::14::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::15::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::15::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::15::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::15::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::15::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::15::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::15::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::15::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::16::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::16::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::16::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::16::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::16::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::16::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::16::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::16::lxml::parser::void-namespace': FAIL diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/.travis.yml b/tests/wpt/web-platform-tests/tools/third_party/html5lib/.travis.yml new file mode 100644 index 00000000000..5727e0947e2 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/.travis.yml @@ -0,0 +1,32 @@ +language: python +python: + - "pypy" + - "3.6" + - "3.5" + - "3.4" + - "3.3" + - "2.7" + +sudo: false + +cache: pip + +env: + global: + - PYTEST_COMMAND="coverage run -m pytest" + matrix: + - TOXENV=optional + - TOXENV=base + - TOXENV=six19-optional + +install: + - pip install tox codecov + +script: + - tox + +after_script: + - python debug-info.py + +after_success: + - codecov diff --git a/tests/wpt/web-platform-tests/tools/html5lib/AUTHORS.rst b/tests/wpt/web-platform-tests/tools/third_party/html5lib/AUTHORS.rst index 4148a6ed262..fc635dea75b 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/AUTHORS.rst +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/AUTHORS.rst @@ -6,6 +6,7 @@ Credits - James Graham - Geoffrey Sneddon - Łukasz Langa +- Will Kahn-Greene Patches and suggestions @@ -16,19 +17,50 @@ Patches and suggestions - Lachlan Hunt - lantis63 - Sam Ruby -- Tim Fletcher - Thomas Broyer +- Tim Fletcher - Mark Pilgrim -- Philip Taylor - Ryan King +- Philip Taylor - Edward Z. Yang - fantasai - Philip Jägenstedt - Ms2ger +- Mohammad Taha Jahangir - Andy Wingo - Andreas Madsack - Karim Valiev -- Mohammad Taha Jahangir - Juan Carlos Garcia Segovia - Mike West - Marc DM +- Simon Sapin +- Michael[tm] Smith +- Ritwik Gupta +- Marc Abramowitz +- Tony Lopes +- lilbludevil +- Kevin +- Drew Hubl +- Austin Kumbera +- Jim Baker +- Jon Dufresne +- Donald Stufft +- Alex Gaynor +- Nik Nyby +- Jakub Wilk +- Sigmund Cherem +- Gabi Davar +- Florian Mounier +- neumond +- Vitalik Verhovodov +- Kovid Goyal +- Adam Chainz +- John Vandenberg +- Eric Amorde +- Benedikt Morbach +- Jonathan Vanasco +- Tom Most +- Ville Skyttä +- Hugo van Kemenade +- Mark Vasilkov + diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/CHANGES.rst b/tests/wpt/web-platform-tests/tools/third_party/html5lib/CHANGES.rst new file mode 100644 index 00000000000..82605a216b2 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/CHANGES.rst @@ -0,0 +1,335 @@ +Change Log +---------- + +1.0.1 +~~~~~ + +Released on December 7, 2017 + +Breaking changes: + +* Drop support for Python 2.6. (#330) (Thank you, Hugo, Will Kahn-Greene!) +* Remove ``utils/spider.py`` (#353) (Thank you, Jon Dufresne!) + +Features: + +* Improve documentation. (#300, #307) (Thank you, Jon Dufresne, Tom Most, + Will Kahn-Greene!) +* Add iframe seamless boolean attribute. (Thank you, Ritwik Gupta!) +* Add itemscope as a boolean attribute. (#194) (Thank you, Jonathan Vanasco!) +* Support Python 3.6. (#333) (Thank you, Jon Dufresne!) +* Add CI support for Windows using AppVeyor. (Thank you, John Vandenberg!) +* Improve testing and CI and add code coverage (#323, #334), (Thank you, Jon + Dufresne, John Vandenberg, Geoffrey Sneddon, Will Kahn-Greene!) +* Semver-compliant version number. + +Bug fixes: + +* Add support for setuptools < 18.5 to support environment markers. (Thank you, + John Vandenberg!) +* Add explicit dependency for six >= 1.9. (Thank you, Eric Amorde!) +* Fix regexes to work with Python 3.7 regex adjustments. (#318, #379) (Thank + you, Benedikt Morbach, Ville Skyttä, Mark Vasilkov!) +* Fix alphabeticalattributes filter namespace bug. (#324) (Thank you, Will + Kahn-Greene!) +* Include license file in generated wheel package. (#350) (Thank you, Jon + Dufresne!) +* Fix annotation-xml typo. (#339) (Thank you, Will Kahn-Greene!) +* Allow uppercase hex chararcters in CSS colour check. (#377) (Thank you, + Komal Dembla, Hugo!) + + +1.0 +~~~ + +Released and unreleased on December 7, 2017. Badly packaged release. + + +0.999999999/1.0b10 +~~~~~~~~~~~~~~~~~~ + +Released on July 15, 2016 + +* Fix attribute order going to the tree builder to be document order + instead of reverse document order(!). + + +0.99999999/1.0b9 +~~~~~~~~~~~~~~~~ + +Released on July 14, 2016 + +* **Added ordereddict as a mandatory dependency on Python 2.6.** + +* Added ``lxml``, ``genshi``, ``datrie``, ``charade``, and ``all`` + extras that will do the right thing based on the specific + interpreter implementation. + +* Now requires the ``mock`` package for the testsuite. + +* Cease supporting DATrie under PyPy. + +* **Remove PullDOM support, as this hasn't ever been properly + tested, doesn't entirely work, and as far as I can tell is + completely unused by anyone.** + +* Move testsuite to ``py.test``. + +* **Fix #124: move to webencodings for decoding the input byte stream; + this makes html5lib compliant with the Encoding Standard, and + introduces a required dependency on webencodings.** + +* **Cease supporting Python 3.2 (in both CPython and PyPy forms).** + +* **Fix comments containing double-dash with lxml 3.5 and above.** + +* **Use scripting disabled by default (as we don't implement + scripting).** + +* **Fix #11, avoiding the XSS bug potentially caused by serializer + allowing attribute values to be escaped out of in old browser versions, + changing the quote_attr_values option on serializer to take one of + three values, "always" (the old True value), "legacy" (the new option, + and the new default), and "spec" (the old False value, and the old + default).** + +* **Fix #72 by rewriting the sanitizer to apply only to treewalkers + (instead of the tokenizer); as such, this will require amending all + callers of it to use it via the treewalker API.** + +* **Drop support of charade, now that chardet is supported once more.** + +* **Replace the charset keyword argument on parse and related methods + with a set of keyword arguments: override_encoding, transport_encoding, + same_origin_parent_encoding, likely_encoding, and default_encoding.** + +* **Move filters._base, treebuilder._base, and treewalkers._base to .base + to clarify their status as public.** + +* **Get rid of the sanitizer package. Merge sanitizer.sanitize into the + sanitizer.htmlsanitizer module and move that to sanitizer. This means + anyone who used sanitizer.sanitize or sanitizer.HTMLSanitizer needs no + code changes.** + +* **Rename treewalkers.lxmletree to .etree_lxml and + treewalkers.genshistream to .genshi to have a consistent API.** + +* Move a whole load of stuff (inputstream, ihatexml, trie, tokenizer, + utils) to be underscore prefixed to clarify their status as private. + + +0.9999999/1.0b8 +~~~~~~~~~~~~~~~ + +Released on September 10, 2015 + +* Fix #195: fix the sanitizer to drop broken URLs (it threw an + exception between 0.9999 and 0.999999). + + +0.999999/1.0b7 +~~~~~~~~~~~~~~ + +Released on July 7, 2015 + +* Fix #189: fix the sanitizer to allow relative URLs again (as it did + prior to 0.9999/1.0b5). + + +0.99999/1.0b6 +~~~~~~~~~~~~~ + +Released on April 30, 2015 + +* Fix #188: fix the sanitizer to not throw an exception when sanitizing + bogus data URLs. + + +0.9999/1.0b5 +~~~~~~~~~~~~ + +Released on April 29, 2015 + +* Fix #153: Sanitizer fails to treat some attributes as URLs. Despite how + this sounds, this has no known security implications. No known version + of IE (5.5 to current), Firefox (3 to current), Safari (6 to current), + Chrome (1 to current), or Opera (12 to current) will run any script + provided in these attributes. + +* Pass error message to the ParseError exception in strict parsing mode. + +* Allow data URIs in the sanitizer, with a whitelist of content-types. + +* Add support for Python implementations that don't support lone + surrogates (read: Jython). Fixes #2. + +* Remove localization of error messages. This functionality was totally + unused (and untested that everything was localizable), so we may as + well follow numerous browsers in not supporting translating technical + strings. + +* Expose treewalkers.pprint as a public API. + +* Add a documentEncoding property to HTML5Parser, fix #121. + + +0.999 +~~~~~ + +Released on December 23, 2013 + +* Fix #127: add work-around for CPython issue #20007: .read(0) on + http.client.HTTPResponse drops the rest of the content. + +* Fix #115: lxml treewalker can now deal with fragments containing, at + their root level, text nodes with non-ASCII characters on Python 2. + + +0.99 +~~~~ + +Released on September 10, 2013 + +* No library changes from 1.0b3; released as 0.99 as pip has changed + behaviour from 1.4 to avoid installing pre-release versions per + PEP 440. + + +1.0b3 +~~~~~ + +Released on July 24, 2013 + +* Removed ``RecursiveTreeWalker`` from ``treewalkers._base``. Any + implementation using it should be moved to + ``NonRecursiveTreeWalker``, as everything bundled with html5lib has + for years. + +* Fix #67 so that ``BufferedStream`` to correctly returns a bytes + object, thereby fixing any case where html5lib is passed a + non-seekable RawIOBase-like object. + + +1.0b2 +~~~~~ + +Released on June 27, 2013 + +* Removed reordering of attributes within the serializer. There is now + an ``alphabetical_attributes`` option which preserves the previous + behaviour through a new filter. This allows attribute order to be + preserved through html5lib if the tree builder preserves order. + +* Removed ``dom2sax`` from DOM treebuilders. It has been replaced by + ``treeadapters.sax.to_sax`` which is generic and supports any + treewalker; it also resolves all known bugs with ``dom2sax``. + +* Fix treewalker assertions on hitting bytes strings on + Python 2. Previous to 1.0b1, treewalkers coped with mixed + bytes/unicode data on Python 2; this reintroduces this prior + behaviour on Python 2. Behaviour is unchanged on Python 3. + + +1.0b1 +~~~~~ + +Released on May 17, 2013 + +* Implementation updated to implement the `HTML specification + <http://www.whatwg.org/specs/web-apps/current-work/>`_ as of 5th May + 2013 (`SVN <http://svn.whatwg.org/webapps/>`_ revision r7867). + +* Python 3.2+ supported in a single codebase using the ``six`` library. + +* Removed support for Python 2.5 and older. + +* Removed the deprecated Beautiful Soup 3 treebuilder. + ``beautifulsoup4`` can use ``html5lib`` as a parser instead. Note that + since it doesn't support namespaces, foreign content like SVG and + MathML is parsed incorrectly. + +* Removed ``simpletree`` from the package. The default tree builder is + now ``etree`` (using the ``xml.etree.cElementTree`` implementation if + available, and ``xml.etree.ElementTree`` otherwise). + +* Removed the ``XHTMLSerializer`` as it never actually guaranteed its + output was well-formed XML, and hence provided little of use. + +* Removed default DOM treebuilder, so ``html5lib.treebuilders.dom`` is no + longer supported. ``html5lib.treebuilders.getTreeBuilder("dom")`` will + return the default DOM treebuilder, which uses ``xml.dom.minidom``. + +* Optional heuristic character encoding detection now based on + ``charade`` for Python 2.6 - 3.3 compatibility. + +* Optional ``Genshi`` treewalker support fixed. + +* Many bugfixes, including: + + * #33: null in attribute value breaks XML AttValue; + + * #4: nested, indirect descendant, <button> causes infinite loop; + + * `Google Code 215 + <http://code.google.com/p/html5lib/issues/detail?id=215>`_: Properly + detect seekable streams; + + * `Google Code 206 + <http://code.google.com/p/html5lib/issues/detail?id=206>`_: add + support for <video preload=...>, <audio preload=...>; + + * `Google Code 205 + <http://code.google.com/p/html5lib/issues/detail?id=205>`_: add + support for <video poster=...>; + + * `Google Code 202 + <http://code.google.com/p/html5lib/issues/detail?id=202>`_: Unicode + file breaks InputStream. + +* Source code is now mostly PEP 8 compliant. + +* Test harness has been improved and now depends on ``nose``. + +* Documentation updated and moved to https://html5lib.readthedocs.io/. + + +0.95 +~~~~ + +Released on February 11, 2012 + + +0.90 +~~~~ + +Released on January 17, 2010 + + +0.11.1 +~~~~~~ + +Released on June 12, 2008 + + +0.11 +~~~~ + +Released on June 10, 2008 + + +0.10 +~~~~ + +Released on October 7, 2007 + + +0.9 +~~~ + +Released on March 11, 2007 + + +0.2 +~~~ + +Released on January 8, 2007 diff --git a/tests/wpt/web-platform-tests/tools/html5lib/CONTRIBUTING.rst b/tests/wpt/web-platform-tests/tools/third_party/html5lib/CONTRIBUTING.rst index 8c5e198535d..8c5e198535d 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/CONTRIBUTING.rst +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/CONTRIBUTING.rst diff --git a/tests/wpt/web-platform-tests/tools/html5lib/LICENSE b/tests/wpt/web-platform-tests/tools/third_party/html5lib/LICENSE index c87fa7a0006..c87fa7a0006 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/LICENSE +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/LICENSE diff --git a/tests/wpt/web-platform-tests/tools/html5lib/MANIFEST.in b/tests/wpt/web-platform-tests/tools/third_party/html5lib/MANIFEST.in index 1edd0b7deea..4b3ffe3ed9f 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/MANIFEST.in +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/MANIFEST.in @@ -1,6 +1,10 @@ include LICENSE +include AUTHORS.rst include CHANGES.rst include README.rst include requirements*.txt +include .pytest.expect +include tox.ini +include pytest.ini graft html5lib/tests/testdata recursive-include html5lib/tests *.py diff --git a/tests/wpt/web-platform-tests/tools/html5lib/README.rst b/tests/wpt/web-platform-tests/tools/third_party/html5lib/README.rst index 9e0a0f74048..8c151328b3d 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/README.rst +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/README.rst @@ -51,7 +51,7 @@ pass into html5lib as follows: import html5lib with closing(urlopen("http://example.com/")) as f: - document = html5lib.parse(f, encoding=f.info().getparam("charset")) + document = html5lib.parse(f, transport_encoding=f.info().getparam("charset")) When using with ``urllib.request`` (Python 3), the charset from HTTP should be pass into html5lib as follows: @@ -62,7 +62,7 @@ should be pass into html5lib as follows: import html5lib with urlopen("http://example.com/") as f: - document = html5lib.parse(f, encoding=f.info().get_content_charset()) + document = html5lib.parse(f, transport_encoding=f.info().get_content_charset()) To have more control over the parser, create a parser object explicitly. For instance, to make the parser raise exceptions on parse errors, use: @@ -84,13 +84,13 @@ format: parser = html5lib.HTMLParser(tree=html5lib.getTreeBuilder("dom")) minidom_document = parser.parse("<p>Hello World!") -More documentation is available at http://html5lib.readthedocs.org/. +More documentation is available at https://html5lib.readthedocs.io/. Installation ------------ -html5lib works on CPython 2.6+, CPython 3.2+ and PyPy. To install it, +html5lib works on CPython 2.7+, CPython 3.3+ and PyPy. To install it, use: .. code-block:: bash @@ -104,8 +104,8 @@ Optional Dependencies The following third-party libraries may be used for additional functionality: -- ``datrie`` can be used to improve parsing performance (though in - almost all cases the improvement is marginal); +- ``datrie`` can be used under CPython to improve parsing performance + (though in almost all cases the improvement is marginal); - ``lxml`` is supported as a tree format (for both building and walking) under CPython (but *not* PyPy where it is known to cause @@ -113,13 +113,8 @@ functionality: - ``genshi`` has a treewalker (but not builder); and -- ``charade`` can be used as a fallback when character encoding cannot - be determined; ``chardet``, from which it was forked, can also be used - on Python 2. - -- ``ordereddict`` can be used under Python 2.6 - (``collections.OrderedDict`` is used instead on later versions) to - serialize attributes in alphabetical order. +- ``chardet`` can be used as a fallback when character encoding cannot + be determined. Bugs @@ -132,9 +127,8 @@ Please report any bugs on the `issue tracker Tests ----- -Unit tests require the ``nose`` library and can be run using the -``nosetests`` command in the root directory; ``ordereddict`` is -required under Python 2.6. All should pass. +Unit tests require the ``pytest`` and ``mock`` libraries and can be +run using the ``py.test`` command in the root directory. Test data are contained in a separate `html5lib-tests <https://github.com/html5lib/html5lib-tests>`_ repository and included diff --git a/tests/wpt/web-platform-tests/tools/html5lib/debug-info.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/debug-info.py index b5d2bb6a305..f93fbdbeaec 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/debug-info.py +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/debug-info.py @@ -12,7 +12,7 @@ info = { "maxsize": sys.maxsize } -search_modules = ["charade", "chardet", "datrie", "genshi", "html5lib", "lxml", "six"] +search_modules = ["chardet", "datrie", "genshi", "html5lib", "lxml", "six"] found_modules = [] for m in search_modules: diff --git a/tests/wpt/web-platform-tests/tools/html5lib/doc/Makefile b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/Makefile index e0e58667e7d..e0e58667e7d 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/doc/Makefile +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/Makefile diff --git a/tests/wpt/web-platform-tests/tools/html5lib/doc/changes.rst b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/changes.rst index ded3b705d0f..ded3b705d0f 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/doc/changes.rst +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/changes.rst diff --git a/tests/wpt/web-platform-tests/tools/html5lib/doc/conf.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/conf.py index 434f21c42eb..e02218b8ad3 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/doc/conf.py +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/conf.py @@ -126,7 +126,7 @@ html_theme = 'default' # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] +#html_static_path = ['_static'] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. diff --git a/tests/wpt/web-platform-tests/tools/html5lib/doc/html5lib.filters.rst b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/html5lib.filters.rst index 1fda38a735a..d70e4552f02 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/doc/html5lib.filters.rst +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/html5lib.filters.rst @@ -1,59 +1,58 @@ filters Package =============== -:mod:`_base` Module +:mod:`base` Module ------------------- -.. automodule:: html5lib.filters._base +.. automodule:: html5lib.filters.base :members: - :undoc-members: :show-inheritance: + :special-members: __init__ :mod:`alphabeticalattributes` Module ------------------------------------ .. automodule:: html5lib.filters.alphabeticalattributes :members: - :undoc-members: :show-inheritance: + :special-members: __init__ :mod:`inject_meta_charset` Module --------------------------------- .. automodule:: html5lib.filters.inject_meta_charset :members: - :undoc-members: :show-inheritance: + :special-members: __init__ :mod:`lint` Module ------------------ .. automodule:: html5lib.filters.lint :members: - :undoc-members: :show-inheritance: + :special-members: __init__ :mod:`optionaltags` Module -------------------------- .. automodule:: html5lib.filters.optionaltags :members: - :undoc-members: :show-inheritance: + :special-members: __init__ :mod:`sanitizer` Module ----------------------- .. automodule:: html5lib.filters.sanitizer :members: - :undoc-members: :show-inheritance: + :special-members: __init__ :mod:`whitespace` Module ------------------------ .. automodule:: html5lib.filters.whitespace :members: - :undoc-members: :show-inheritance: - + :special-members: __init__ diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/html5lib.rst b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/html5lib.rst new file mode 100644 index 00000000000..d7c75c5842f --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/html5lib.rst @@ -0,0 +1,38 @@ +html5lib Package +================ + +.. automodule:: html5lib + :members: __version__ + +:mod:`constants` Module +----------------------- + +.. automodule:: html5lib.constants + :members: + :show-inheritance: + +:mod:`html5parser` Module +------------------------- + +.. automodule:: html5lib.html5parser + :members: + :show-inheritance: + :special-members: __init__ + +:mod:`serializer` Module +------------------------ + +.. automodule:: html5lib.serializer + :members: + :show-inheritance: + :special-members: __init__ + +Subpackages +----------- + +.. toctree:: + + html5lib.filters + html5lib.treebuilders + html5lib.treewalkers + html5lib.treeadapters diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/html5lib.treeadapters.rst b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/html5lib.treeadapters.rst new file mode 100644 index 00000000000..1d3a9fba2ff --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/html5lib.treeadapters.rst @@ -0,0 +1,20 @@ +treeadapters Package +==================== + +:mod:`~html5lib.treeadapters` Package +------------------------------------- + +.. automodule:: html5lib.treeadapters + :members: + :show-inheritance: + :special-members: __init__ + +.. automodule:: html5lib.treeadapters.genshi + :members: + :show-inheritance: + :special-members: __init__ + +.. automodule:: html5lib.treeadapters.sax + :members: + :show-inheritance: + :special-members: __init__ diff --git a/tests/wpt/web-platform-tests/tools/html5lib/doc/html5lib.treebuilders.rst b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/html5lib.treebuilders.rst index 9911983948d..1a051e50bd8 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/doc/html5lib.treebuilders.rst +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/html5lib.treebuilders.rst @@ -6,38 +6,37 @@ treebuilders Package .. automodule:: html5lib.treebuilders :members: - :undoc-members: :show-inheritance: + :special-members: __init__ -:mod:`_base` Module +:mod:`base` Module ------------------- -.. automodule:: html5lib.treebuilders._base +.. automodule:: html5lib.treebuilders.base :members: - :undoc-members: :show-inheritance: + :special-members: __init__ :mod:`dom` Module ----------------- .. automodule:: html5lib.treebuilders.dom :members: - :undoc-members: :show-inheritance: + :special-members: __init__ :mod:`etree` Module ------------------- .. automodule:: html5lib.treebuilders.etree :members: - :undoc-members: :show-inheritance: + :special-members: __init__ :mod:`etree_lxml` Module ------------------------ .. automodule:: html5lib.treebuilders.etree_lxml :members: - :undoc-members: :show-inheritance: - + :special-members: __init__ diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/html5lib.treewalkers.rst b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/html5lib.treewalkers.rst new file mode 100644 index 00000000000..4afef47609b --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/html5lib.treewalkers.rst @@ -0,0 +1,50 @@ +treewalkers Package +=================== + +:mod:`treewalkers` Package +-------------------------- + +.. automodule:: html5lib.treewalkers + :members: + :show-inheritance: + :special-members: __init__ + +:mod:`base` Module +------------------ + +.. automodule:: html5lib.treewalkers.base + :members: + :show-inheritance: + :special-members: __init__ + +:mod:`dom` Module +----------------- + +.. automodule:: html5lib.treewalkers.dom + :members: + :show-inheritance: + :special-members: __init__ + +:mod:`etree` Module +------------------- + +.. automodule:: html5lib.treewalkers.etree + :members: + :show-inheritance: + :special-members: __init__ + +:mod:`etree_lxml` Module +------------------------ + +.. automodule:: html5lib.treewalkers.etree_lxml + :members: + :show-inheritance: + :special-members: __init__ + +:mod:`genshi` Module +-------------------- + +.. automodule:: html5lib.treewalkers.genshi + :members: + :show-inheritance: + :special-members: __init__ diff --git a/tests/wpt/web-platform-tests/tools/html5lib/doc/index.rst b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/index.rst index ca2e1b969cd..27104b14697 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/doc/index.rst +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/index.rst @@ -8,6 +8,7 @@ Overview :maxdepth: 2 movingparts + modules changes License <license> diff --git a/tests/wpt/web-platform-tests/tools/html5lib/doc/license.rst b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/license.rst index 7e6291f3b9b..7e6291f3b9b 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/doc/license.rst +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/license.rst diff --git a/tests/wpt/web-platform-tests/tools/html5lib/doc/make.bat b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/make.bat index e88c769ce33..e88c769ce33 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/doc/make.bat +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/make.bat diff --git a/tests/wpt/web-platform-tests/tools/html5lib/doc/modules.rst b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/modules.rst index 59fbcc86bc1..59fbcc86bc1 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/doc/modules.rst +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/modules.rst diff --git a/tests/wpt/web-platform-tests/tools/html5lib/doc/movingparts.rst b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/movingparts.rst index 36539785a7e..6ba367a27ae 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/doc/movingparts.rst +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/doc/movingparts.rst @@ -4,22 +4,25 @@ The moving parts html5lib consists of a number of components, which are responsible for handling its features. +Parsing uses a *tree builder* to generate a *tree*, the in-memory representation of the document. +Several tree representations are supported, as are translations to other formats via *tree adapters*. +The tree may be translated to a token stream with a *tree walker*, from which :class:`~html5lib.serializer.HTMLSerializer` produces a stream of bytes. +The token stream may also be transformed by use of *filters* to accomplish tasks like sanitization. Tree builders ------------- The parser reads HTML by tokenizing the content and building a tree that -the user can later access. There are three main types of trees that -html5lib can build: +the user can later access. html5lib can build three types of trees: -* ``etree`` - this is the default; builds a tree based on ``xml.etree``, +* ``etree`` - this is the default; builds a tree based on :mod:`xml.etree`, which can be found in the standard library. Whenever possible, the accelerated ``ElementTree`` implementation (i.e. ``xml.etree.cElementTree`` on Python 2.x) is used. -* ``dom`` - builds a tree based on ``xml.dom.minidom``. +* ``dom`` - builds a tree based on :mod:`xml.dom.minidom`. -* ``lxml.etree`` - uses lxml's implementation of the ``ElementTree`` +* ``lxml`` - uses the :mod:`lxml.etree` implementation of the ``ElementTree`` API. The performance gains are relatively small compared to using the accelerated ``ElementTree`` module. @@ -31,21 +34,15 @@ You can specify the builder by name when using the shorthand API: with open("mydocument.html", "rb") as f: lxml_etree_document = html5lib.parse(f, treebuilder="lxml") -When instantiating a parser object, you have to pass a tree builder -class in the ``tree`` keyword attribute: +To get a builder class by name, use the :func:`~html5lib.treebuilders.getTreeBuilder` function. -.. code-block:: python - - import html5lib - parser = html5lib.HTMLParser(tree=SomeTreeBuilder) - document = parser.parse("<p>Hello World!") - -To get a builder class by name, use the ``getTreeBuilder`` function: +When instantiating a :class:`~html5lib.html5parser.HTMLParser` object, you must pass a tree builder class via the ``tree`` keyword attribute: .. code-block:: python import html5lib - parser = html5lib.HTMLParser(tree=html5lib.getTreeBuilder("dom")) + TreeBuilder = html5lib.getTreeBuilder("dom") + parser = html5lib.HTMLParser(tree=TreeBuilder) minidom_document = parser.parse("<p>Hello World!") The implementation of builders can be found in `html5lib/treebuilders/ @@ -55,17 +52,13 @@ The implementation of builders can be found in `html5lib/treebuilders/ Tree walkers ------------ -Once a tree is ready, you can work on it either manually, or using -a tree walker, which provides a streaming view of the tree. html5lib -provides walkers for all three supported types of trees (``etree``, -``dom`` and ``lxml``). +In addition to manipulating a tree directly, you can use a tree walker to generate a streaming view of it. +html5lib provides walkers for ``etree``, ``dom``, and ``lxml`` trees, as well as ``genshi`` `markup streams <https://genshi.edgewall.org/wiki/Documentation/streams.html>`_. The implementation of walkers can be found in `html5lib/treewalkers/ <https://github.com/html5lib/html5lib-python/tree/master/html5lib/treewalkers>`_. -Walkers make consuming HTML easier. html5lib uses them to provide you -with has a couple of handy tools. - +html5lib provides :class:`~html5lib.serializer.HTMLSerializer` for generating a stream of bytes from a token stream, and several filters which manipulate the stream. HTMLSerializer ~~~~~~~~~~~~~~ @@ -90,15 +83,14 @@ The serializer lets you write HTML back as a stream of bytes. '>' 'Witam wszystkich' -You can customize the serializer behaviour in a variety of ways, consult -the :class:`~html5lib.serializer.htmlserializer.HTMLSerializer` -documentation. +You can customize the serializer behaviour in a variety of ways. Consult +the :class:`~html5lib.serializer.HTMLSerializer` documentation. Filters ~~~~~~~ -You can alter the stream content with filters provided by html5lib: +html5lib provides several filters: * :class:`alphabeticalattributes.Filter <html5lib.filters.alphabeticalattributes.Filter>` sorts attributes on @@ -110,11 +102,11 @@ You can alter the stream content with filters provided by html5lib: the document * :class:`lint.Filter <html5lib.filters.lint.Filter>` raises - ``LintError`` exceptions on invalid tag and attribute names, invalid + :exc:`AssertionError` exceptions on invalid tag and attribute names, invalid PCDATA, etc. * :class:`optionaltags.Filter <html5lib.filters.optionaltags.Filter>` - removes tags from the stream which are not necessary to produce valid + removes tags from the token stream which are not necessary to produce valid HTML * :class:`sanitizer.Filter <html5lib.filters.sanitizer.Filter>` removes @@ -125,9 +117,9 @@ You can alter the stream content with filters provided by html5lib: * :class:`whitespace.Filter <html5lib.filters.whitespace.Filter>` collapses all whitespace characters to single spaces unless they're in - ``<pre/>`` or ``textarea`` tags. + ``<pre/>`` or ``<textarea/>`` tags. -To use a filter, simply wrap it around a stream: +To use a filter, simply wrap it around a token stream: .. code-block:: python @@ -136,15 +128,17 @@ To use a filter, simply wrap it around a stream: >>> dom = html5lib.parse("<p><script>alert('Boo!')", treebuilder="dom") >>> walker = html5lib.getTreeWalker("dom") >>> stream = walker(dom) - >>> sane_stream = sanitizer.Filter(stream) clean_stream = sanitizer.Filter(stream) + >>> clean_stream = sanitizer.Filter(stream) Tree adapters ------------- -Used to translate one type of tree to another. More documentation -pending, sorry. +Tree adapters can be used to translate between tree formats. +Two adapters are provided by html5lib: +* :func:`html5lib.treeadapters.genshi.to_genshi()` generates a `Genshi markup stream <https://genshi.edgewall.org/wiki/Documentation/streams.html>`_. +* :func:`html5lib.treeadapters.sax.to_sax()` calls a SAX handler based on the tree. Encoding discovery ------------------ @@ -156,54 +150,16 @@ the following way: * The encoding may be explicitly specified by passing the name of the encoding as the encoding parameter to the :meth:`~html5lib.html5parser.HTMLParser.parse` method on - ``HTMLParser`` objects. + :class:`~html5lib.html5parser.HTMLParser` objects. * If no encoding is specified, the parser will attempt to detect the encoding from a ``<meta>`` element in the first 512 bytes of the document (this is only a partial implementation of the current HTML - 5 specification). + specification). -* If no encoding can be found and the chardet library is available, an +* If no encoding can be found and the :mod:`chardet` library is available, an attempt will be made to sniff the encoding from the byte pattern. * If all else fails, the default encoding will be used. This is usually `Windows-1252 <http://en.wikipedia.org/wiki/Windows-1252>`_, which is a common fallback used by Web browsers. - - -Tokenizers ----------- - -The part of the parser responsible for translating a raw input stream -into meaningful tokens is the tokenizer. Currently html5lib provides -two. - -To set up a tokenizer, simply pass it when instantiating -a :class:`~html5lib.html5parser.HTMLParser`: - -.. code-block:: python - - import html5lib - from html5lib import sanitizer - - p = html5lib.HTMLParser(tokenizer=sanitizer.HTMLSanitizer) - p.parse("<p>Surprise!<script>alert('Boo!');</script>") - -HTMLTokenizer -~~~~~~~~~~~~~ - -This is the default tokenizer, the heart of html5lib. The implementation -can be found in `html5lib/tokenizer.py -<https://github.com/html5lib/html5lib-python/blob/master/html5lib/tokenizer.py>`_. - -HTMLSanitizer -~~~~~~~~~~~~~ - -This is a tokenizer that removes unsafe markup and CSS styles from the -input. Elements that are known to be safe are passed through and the -rest is converted to visible text. The default configuration of the -sanitizer follows the `WHATWG Sanitization Rules -<http://wiki.whatwg.org/wiki/Sanitization_rules>`_. - -The implementation can be found in `html5lib/sanitizer.py -<https://github.com/html5lib/html5lib-python/blob/master/html5lib/sanitizer.py>`_. diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/flake8-run.sh b/tests/wpt/web-platform-tests/tools/third_party/html5lib/flake8-run.sh new file mode 100755 index 00000000000..d926494699b --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/flake8-run.sh @@ -0,0 +1,9 @@ +#!/bin/bash -e + +if [[ ! -x $(which flake8) ]]; then + echo "fatal: flake8 not found on $PATH. Exiting." + exit 1 +fi + +flake8 `dirname $0` +exit $? diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/__init__.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/__init__.py new file mode 100644 index 00000000000..ba01065ef63 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/__init__.py @@ -0,0 +1,35 @@ +""" +HTML parsing library based on the `WHATWG HTML specification +<https://whatwg.org/html>`_. The parser is designed to be compatible with +existing HTML found in the wild and implements well-defined error recovery that +is largely compatible with modern desktop web browsers. + +Example usage:: + + import html5lib + with open("my_document.html", "rb") as f: + tree = html5lib.parse(f) + +For convenience, this module re-exports the following names: + +* :func:`~.html5parser.parse` +* :func:`~.html5parser.parseFragment` +* :class:`~.html5parser.HTMLParser` +* :func:`~.treebuilders.getTreeBuilder` +* :func:`~.treewalkers.getTreeWalker` +* :func:`~.serializer.serialize` +""" + +from __future__ import absolute_import, division, unicode_literals + +from .html5parser import HTMLParser, parse, parseFragment +from .treebuilders import getTreeBuilder +from .treewalkers import getTreeWalker +from .serializer import serialize + +__all__ = ["HTMLParser", "parse", "parseFragment", "getTreeBuilder", + "getTreeWalker", "serialize"] + +# this has to be at the top level, see how setup.py parses this +#: Distribution version number. +__version__ = "1.0.1" diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/ihatexml.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_ihatexml.py index 0fc79308ef4..4c77717bbc0 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/ihatexml.py +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_ihatexml.py @@ -175,18 +175,18 @@ def escapeRegexp(string): return string # output from the above -nonXmlNameBMPRegexp = re.compile('[\x00-,/:-@\\[-\\^`\\{-\xb6\xb8-\xbf\xd7\xf7\u0132-\u0133\u013f-\u0140\u0149\u017f\u01c4-\u01cc\u01f1-\u01f3\u01f6-\u01f9\u0218-\u024f\u02a9-\u02ba\u02c2-\u02cf\u02d2-\u02ff\u0346-\u035f\u0362-\u0385\u038b\u038d\u03a2\u03cf\u03d7-\u03d9\u03db\u03dd\u03df\u03e1\u03f4-\u0400\u040d\u0450\u045d\u0482\u0487-\u048f\u04c5-\u04c6\u04c9-\u04ca\u04cd-\u04cf\u04ec-\u04ed\u04f6-\u04f7\u04fa-\u0530\u0557-\u0558\u055a-\u0560\u0587-\u0590\u05a2\u05ba\u05be\u05c0\u05c3\u05c5-\u05cf\u05eb-\u05ef\u05f3-\u0620\u063b-\u063f\u0653-\u065f\u066a-\u066f\u06b8-\u06b9\u06bf\u06cf\u06d4\u06e9\u06ee-\u06ef\u06fa-\u0900\u0904\u093a-\u093b\u094e-\u0950\u0955-\u0957\u0964-\u0965\u0970-\u0980\u0984\u098d-\u098e\u0991-\u0992\u09a9\u09b1\u09b3-\u09b5\u09ba-\u09bb\u09bd\u09c5-\u09c6\u09c9-\u09ca\u09ce-\u09d6\u09d8-\u09db\u09de\u09e4-\u09e5\u09f2-\u0a01\u0a03-\u0a04\u0a0b-\u0a0e\u0a11-\u0a12\u0a29\u0a31\u0a34\u0a37\u0a3a-\u0a3b\u0a3d\u0a43-\u0a46\u0a49-\u0a4a\u0a4e-\u0a58\u0a5d\u0a5f-\u0a65\u0a75-\u0a80\u0a84\u0a8c\u0a8e\u0a92\u0aa9\u0ab1\u0ab4\u0aba-\u0abb\u0ac6\u0aca\u0ace-\u0adf\u0ae1-\u0ae5\u0af0-\u0b00\u0b04\u0b0d-\u0b0e\u0b11-\u0b12\u0b29\u0b31\u0b34-\u0b35\u0b3a-\u0b3b\u0b44-\u0b46\u0b49-\u0b4a\u0b4e-\u0b55\u0b58-\u0b5b\u0b5e\u0b62-\u0b65\u0b70-\u0b81\u0b84\u0b8b-\u0b8d\u0b91\u0b96-\u0b98\u0b9b\u0b9d\u0ba0-\u0ba2\u0ba5-\u0ba7\u0bab-\u0bad\u0bb6\u0bba-\u0bbd\u0bc3-\u0bc5\u0bc9\u0bce-\u0bd6\u0bd8-\u0be6\u0bf0-\u0c00\u0c04\u0c0d\u0c11\u0c29\u0c34\u0c3a-\u0c3d\u0c45\u0c49\u0c4e-\u0c54\u0c57-\u0c5f\u0c62-\u0c65\u0c70-\u0c81\u0c84\u0c8d\u0c91\u0ca9\u0cb4\u0cba-\u0cbd\u0cc5\u0cc9\u0cce-\u0cd4\u0cd7-\u0cdd\u0cdf\u0ce2-\u0ce5\u0cf0-\u0d01\u0d04\u0d0d\u0d11\u0d29\u0d3a-\u0d3d\u0d44-\u0d45\u0d49\u0d4e-\u0d56\u0d58-\u0d5f\u0d62-\u0d65\u0d70-\u0e00\u0e2f\u0e3b-\u0e3f\u0e4f\u0e5a-\u0e80\u0e83\u0e85-\u0e86\u0e89\u0e8b-\u0e8c\u0e8e-\u0e93\u0e98\u0ea0\u0ea4\u0ea6\u0ea8-\u0ea9\u0eac\u0eaf\u0eba\u0ebe-\u0ebf\u0ec5\u0ec7\u0ece-\u0ecf\u0eda-\u0f17\u0f1a-\u0f1f\u0f2a-\u0f34\u0f36\u0f38\u0f3a-\u0f3d\u0f48\u0f6a-\u0f70\u0f85\u0f8c-\u0f8f\u0f96\u0f98\u0fae-\u0fb0\u0fb8\u0fba-\u109f\u10c6-\u10cf\u10f7-\u10ff\u1101\u1104\u1108\u110a\u110d\u1113-\u113b\u113d\u113f\u1141-\u114b\u114d\u114f\u1151-\u1153\u1156-\u1158\u115a-\u115e\u1162\u1164\u1166\u1168\u116a-\u116c\u116f-\u1171\u1174\u1176-\u119d\u119f-\u11a7\u11a9-\u11aa\u11ac-\u11ad\u11b0-\u11b6\u11b9\u11bb\u11c3-\u11ea\u11ec-\u11ef\u11f1-\u11f8\u11fa-\u1dff\u1e9c-\u1e9f\u1efa-\u1eff\u1f16-\u1f17\u1f1e-\u1f1f\u1f46-\u1f47\u1f4e-\u1f4f\u1f58\u1f5a\u1f5c\u1f5e\u1f7e-\u1f7f\u1fb5\u1fbd\u1fbf-\u1fc1\u1fc5\u1fcd-\u1fcf\u1fd4-\u1fd5\u1fdc-\u1fdf\u1fed-\u1ff1\u1ff5\u1ffd-\u20cf\u20dd-\u20e0\u20e2-\u2125\u2127-\u2129\u212c-\u212d\u212f-\u217f\u2183-\u3004\u3006\u3008-\u3020\u3030\u3036-\u3040\u3095-\u3098\u309b-\u309c\u309f-\u30a0\u30fb\u30ff-\u3104\u312d-\u4dff\u9fa6-\uabff\ud7a4-\uffff]') +nonXmlNameBMPRegexp = re.compile('[\x00-,/:-@\\[-\\^`\\{-\xb6\xb8-\xbf\xd7\xf7\u0132-\u0133\u013f-\u0140\u0149\u017f\u01c4-\u01cc\u01f1-\u01f3\u01f6-\u01f9\u0218-\u024f\u02a9-\u02ba\u02c2-\u02cf\u02d2-\u02ff\u0346-\u035f\u0362-\u0385\u038b\u038d\u03a2\u03cf\u03d7-\u03d9\u03db\u03dd\u03df\u03e1\u03f4-\u0400\u040d\u0450\u045d\u0482\u0487-\u048f\u04c5-\u04c6\u04c9-\u04ca\u04cd-\u04cf\u04ec-\u04ed\u04f6-\u04f7\u04fa-\u0530\u0557-\u0558\u055a-\u0560\u0587-\u0590\u05a2\u05ba\u05be\u05c0\u05c3\u05c5-\u05cf\u05eb-\u05ef\u05f3-\u0620\u063b-\u063f\u0653-\u065f\u066a-\u066f\u06b8-\u06b9\u06bf\u06cf\u06d4\u06e9\u06ee-\u06ef\u06fa-\u0900\u0904\u093a-\u093b\u094e-\u0950\u0955-\u0957\u0964-\u0965\u0970-\u0980\u0984\u098d-\u098e\u0991-\u0992\u09a9\u09b1\u09b3-\u09b5\u09ba-\u09bb\u09bd\u09c5-\u09c6\u09c9-\u09ca\u09ce-\u09d6\u09d8-\u09db\u09de\u09e4-\u09e5\u09f2-\u0a01\u0a03-\u0a04\u0a0b-\u0a0e\u0a11-\u0a12\u0a29\u0a31\u0a34\u0a37\u0a3a-\u0a3b\u0a3d\u0a43-\u0a46\u0a49-\u0a4a\u0a4e-\u0a58\u0a5d\u0a5f-\u0a65\u0a75-\u0a80\u0a84\u0a8c\u0a8e\u0a92\u0aa9\u0ab1\u0ab4\u0aba-\u0abb\u0ac6\u0aca\u0ace-\u0adf\u0ae1-\u0ae5\u0af0-\u0b00\u0b04\u0b0d-\u0b0e\u0b11-\u0b12\u0b29\u0b31\u0b34-\u0b35\u0b3a-\u0b3b\u0b44-\u0b46\u0b49-\u0b4a\u0b4e-\u0b55\u0b58-\u0b5b\u0b5e\u0b62-\u0b65\u0b70-\u0b81\u0b84\u0b8b-\u0b8d\u0b91\u0b96-\u0b98\u0b9b\u0b9d\u0ba0-\u0ba2\u0ba5-\u0ba7\u0bab-\u0bad\u0bb6\u0bba-\u0bbd\u0bc3-\u0bc5\u0bc9\u0bce-\u0bd6\u0bd8-\u0be6\u0bf0-\u0c00\u0c04\u0c0d\u0c11\u0c29\u0c34\u0c3a-\u0c3d\u0c45\u0c49\u0c4e-\u0c54\u0c57-\u0c5f\u0c62-\u0c65\u0c70-\u0c81\u0c84\u0c8d\u0c91\u0ca9\u0cb4\u0cba-\u0cbd\u0cc5\u0cc9\u0cce-\u0cd4\u0cd7-\u0cdd\u0cdf\u0ce2-\u0ce5\u0cf0-\u0d01\u0d04\u0d0d\u0d11\u0d29\u0d3a-\u0d3d\u0d44-\u0d45\u0d49\u0d4e-\u0d56\u0d58-\u0d5f\u0d62-\u0d65\u0d70-\u0e00\u0e2f\u0e3b-\u0e3f\u0e4f\u0e5a-\u0e80\u0e83\u0e85-\u0e86\u0e89\u0e8b-\u0e8c\u0e8e-\u0e93\u0e98\u0ea0\u0ea4\u0ea6\u0ea8-\u0ea9\u0eac\u0eaf\u0eba\u0ebe-\u0ebf\u0ec5\u0ec7\u0ece-\u0ecf\u0eda-\u0f17\u0f1a-\u0f1f\u0f2a-\u0f34\u0f36\u0f38\u0f3a-\u0f3d\u0f48\u0f6a-\u0f70\u0f85\u0f8c-\u0f8f\u0f96\u0f98\u0fae-\u0fb0\u0fb8\u0fba-\u109f\u10c6-\u10cf\u10f7-\u10ff\u1101\u1104\u1108\u110a\u110d\u1113-\u113b\u113d\u113f\u1141-\u114b\u114d\u114f\u1151-\u1153\u1156-\u1158\u115a-\u115e\u1162\u1164\u1166\u1168\u116a-\u116c\u116f-\u1171\u1174\u1176-\u119d\u119f-\u11a7\u11a9-\u11aa\u11ac-\u11ad\u11b0-\u11b6\u11b9\u11bb\u11c3-\u11ea\u11ec-\u11ef\u11f1-\u11f8\u11fa-\u1dff\u1e9c-\u1e9f\u1efa-\u1eff\u1f16-\u1f17\u1f1e-\u1f1f\u1f46-\u1f47\u1f4e-\u1f4f\u1f58\u1f5a\u1f5c\u1f5e\u1f7e-\u1f7f\u1fb5\u1fbd\u1fbf-\u1fc1\u1fc5\u1fcd-\u1fcf\u1fd4-\u1fd5\u1fdc-\u1fdf\u1fed-\u1ff1\u1ff5\u1ffd-\u20cf\u20dd-\u20e0\u20e2-\u2125\u2127-\u2129\u212c-\u212d\u212f-\u217f\u2183-\u3004\u3006\u3008-\u3020\u3030\u3036-\u3040\u3095-\u3098\u309b-\u309c\u309f-\u30a0\u30fb\u30ff-\u3104\u312d-\u4dff\u9fa6-\uabff\ud7a4-\uffff]') # noqa -nonXmlNameFirstBMPRegexp = re.compile('[\x00-@\\[-\\^`\\{-\xbf\xd7\xf7\u0132-\u0133\u013f-\u0140\u0149\u017f\u01c4-\u01cc\u01f1-\u01f3\u01f6-\u01f9\u0218-\u024f\u02a9-\u02ba\u02c2-\u0385\u0387\u038b\u038d\u03a2\u03cf\u03d7-\u03d9\u03db\u03dd\u03df\u03e1\u03f4-\u0400\u040d\u0450\u045d\u0482-\u048f\u04c5-\u04c6\u04c9-\u04ca\u04cd-\u04cf\u04ec-\u04ed\u04f6-\u04f7\u04fa-\u0530\u0557-\u0558\u055a-\u0560\u0587-\u05cf\u05eb-\u05ef\u05f3-\u0620\u063b-\u0640\u064b-\u0670\u06b8-\u06b9\u06bf\u06cf\u06d4\u06d6-\u06e4\u06e7-\u0904\u093a-\u093c\u093e-\u0957\u0962-\u0984\u098d-\u098e\u0991-\u0992\u09a9\u09b1\u09b3-\u09b5\u09ba-\u09db\u09de\u09e2-\u09ef\u09f2-\u0a04\u0a0b-\u0a0e\u0a11-\u0a12\u0a29\u0a31\u0a34\u0a37\u0a3a-\u0a58\u0a5d\u0a5f-\u0a71\u0a75-\u0a84\u0a8c\u0a8e\u0a92\u0aa9\u0ab1\u0ab4\u0aba-\u0abc\u0abe-\u0adf\u0ae1-\u0b04\u0b0d-\u0b0e\u0b11-\u0b12\u0b29\u0b31\u0b34-\u0b35\u0b3a-\u0b3c\u0b3e-\u0b5b\u0b5e\u0b62-\u0b84\u0b8b-\u0b8d\u0b91\u0b96-\u0b98\u0b9b\u0b9d\u0ba0-\u0ba2\u0ba5-\u0ba7\u0bab-\u0bad\u0bb6\u0bba-\u0c04\u0c0d\u0c11\u0c29\u0c34\u0c3a-\u0c5f\u0c62-\u0c84\u0c8d\u0c91\u0ca9\u0cb4\u0cba-\u0cdd\u0cdf\u0ce2-\u0d04\u0d0d\u0d11\u0d29\u0d3a-\u0d5f\u0d62-\u0e00\u0e2f\u0e31\u0e34-\u0e3f\u0e46-\u0e80\u0e83\u0e85-\u0e86\u0e89\u0e8b-\u0e8c\u0e8e-\u0e93\u0e98\u0ea0\u0ea4\u0ea6\u0ea8-\u0ea9\u0eac\u0eaf\u0eb1\u0eb4-\u0ebc\u0ebe-\u0ebf\u0ec5-\u0f3f\u0f48\u0f6a-\u109f\u10c6-\u10cf\u10f7-\u10ff\u1101\u1104\u1108\u110a\u110d\u1113-\u113b\u113d\u113f\u1141-\u114b\u114d\u114f\u1151-\u1153\u1156-\u1158\u115a-\u115e\u1162\u1164\u1166\u1168\u116a-\u116c\u116f-\u1171\u1174\u1176-\u119d\u119f-\u11a7\u11a9-\u11aa\u11ac-\u11ad\u11b0-\u11b6\u11b9\u11bb\u11c3-\u11ea\u11ec-\u11ef\u11f1-\u11f8\u11fa-\u1dff\u1e9c-\u1e9f\u1efa-\u1eff\u1f16-\u1f17\u1f1e-\u1f1f\u1f46-\u1f47\u1f4e-\u1f4f\u1f58\u1f5a\u1f5c\u1f5e\u1f7e-\u1f7f\u1fb5\u1fbd\u1fbf-\u1fc1\u1fc5\u1fcd-\u1fcf\u1fd4-\u1fd5\u1fdc-\u1fdf\u1fed-\u1ff1\u1ff5\u1ffd-\u2125\u2127-\u2129\u212c-\u212d\u212f-\u217f\u2183-\u3006\u3008-\u3020\u302a-\u3040\u3095-\u30a0\u30fb-\u3104\u312d-\u4dff\u9fa6-\uabff\ud7a4-\uffff]') +nonXmlNameFirstBMPRegexp = re.compile('[\x00-@\\[-\\^`\\{-\xbf\xd7\xf7\u0132-\u0133\u013f-\u0140\u0149\u017f\u01c4-\u01cc\u01f1-\u01f3\u01f6-\u01f9\u0218-\u024f\u02a9-\u02ba\u02c2-\u0385\u0387\u038b\u038d\u03a2\u03cf\u03d7-\u03d9\u03db\u03dd\u03df\u03e1\u03f4-\u0400\u040d\u0450\u045d\u0482-\u048f\u04c5-\u04c6\u04c9-\u04ca\u04cd-\u04cf\u04ec-\u04ed\u04f6-\u04f7\u04fa-\u0530\u0557-\u0558\u055a-\u0560\u0587-\u05cf\u05eb-\u05ef\u05f3-\u0620\u063b-\u0640\u064b-\u0670\u06b8-\u06b9\u06bf\u06cf\u06d4\u06d6-\u06e4\u06e7-\u0904\u093a-\u093c\u093e-\u0957\u0962-\u0984\u098d-\u098e\u0991-\u0992\u09a9\u09b1\u09b3-\u09b5\u09ba-\u09db\u09de\u09e2-\u09ef\u09f2-\u0a04\u0a0b-\u0a0e\u0a11-\u0a12\u0a29\u0a31\u0a34\u0a37\u0a3a-\u0a58\u0a5d\u0a5f-\u0a71\u0a75-\u0a84\u0a8c\u0a8e\u0a92\u0aa9\u0ab1\u0ab4\u0aba-\u0abc\u0abe-\u0adf\u0ae1-\u0b04\u0b0d-\u0b0e\u0b11-\u0b12\u0b29\u0b31\u0b34-\u0b35\u0b3a-\u0b3c\u0b3e-\u0b5b\u0b5e\u0b62-\u0b84\u0b8b-\u0b8d\u0b91\u0b96-\u0b98\u0b9b\u0b9d\u0ba0-\u0ba2\u0ba5-\u0ba7\u0bab-\u0bad\u0bb6\u0bba-\u0c04\u0c0d\u0c11\u0c29\u0c34\u0c3a-\u0c5f\u0c62-\u0c84\u0c8d\u0c91\u0ca9\u0cb4\u0cba-\u0cdd\u0cdf\u0ce2-\u0d04\u0d0d\u0d11\u0d29\u0d3a-\u0d5f\u0d62-\u0e00\u0e2f\u0e31\u0e34-\u0e3f\u0e46-\u0e80\u0e83\u0e85-\u0e86\u0e89\u0e8b-\u0e8c\u0e8e-\u0e93\u0e98\u0ea0\u0ea4\u0ea6\u0ea8-\u0ea9\u0eac\u0eaf\u0eb1\u0eb4-\u0ebc\u0ebe-\u0ebf\u0ec5-\u0f3f\u0f48\u0f6a-\u109f\u10c6-\u10cf\u10f7-\u10ff\u1101\u1104\u1108\u110a\u110d\u1113-\u113b\u113d\u113f\u1141-\u114b\u114d\u114f\u1151-\u1153\u1156-\u1158\u115a-\u115e\u1162\u1164\u1166\u1168\u116a-\u116c\u116f-\u1171\u1174\u1176-\u119d\u119f-\u11a7\u11a9-\u11aa\u11ac-\u11ad\u11b0-\u11b6\u11b9\u11bb\u11c3-\u11ea\u11ec-\u11ef\u11f1-\u11f8\u11fa-\u1dff\u1e9c-\u1e9f\u1efa-\u1eff\u1f16-\u1f17\u1f1e-\u1f1f\u1f46-\u1f47\u1f4e-\u1f4f\u1f58\u1f5a\u1f5c\u1f5e\u1f7e-\u1f7f\u1fb5\u1fbd\u1fbf-\u1fc1\u1fc5\u1fcd-\u1fcf\u1fd4-\u1fd5\u1fdc-\u1fdf\u1fed-\u1ff1\u1ff5\u1ffd-\u2125\u2127-\u2129\u212c-\u212d\u212f-\u217f\u2183-\u3006\u3008-\u3020\u302a-\u3040\u3095-\u30a0\u30fb-\u3104\u312d-\u4dff\u9fa6-\uabff\ud7a4-\uffff]') # noqa # Simpler things -nonPubidCharRegexp = re.compile("[^\x20\x0D\x0Aa-zA-Z0-9\-\'()+,./:=?;!*#@$_%]") +nonPubidCharRegexp = re.compile("[^\x20\x0D\x0Aa-zA-Z0-9\\-'()+,./:=?;!*#@$_%]") class InfosetFilter(object): replacementRegexp = re.compile(r"U[\dA-F]{5,5}") - def __init__(self, replaceChars=None, + def __init__(self, dropXmlnsLocalName=False, dropXmlnsAttrNs=False, preventDoubleDashComments=False, @@ -217,7 +217,7 @@ class InfosetFilter(object): else: return self.toXmlName(name) - def coerceElement(self, name, namespace=None): + def coerceElement(self, name): return self.toXmlName(name) def coerceComment(self, data): @@ -225,11 +225,14 @@ class InfosetFilter(object): while "--" in data: warnings.warn("Comments cannot contain adjacent dashes", DataLossWarning) data = data.replace("--", "- -") + if data.endswith("-"): + warnings.warn("Comments cannot end in a dash", DataLossWarning) + data += " " return data def coerceCharacters(self, data): if self.replaceFormFeedCharacters: - for i in range(data.count("\x0C")): + for _ in range(data.count("\x0C")): warnings.warn("Text cannot contain U+000C", DataLossWarning) data = data.replace("\x0C", " ") # Other non-xml characters diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/inputstream.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_inputstream.py index 9e03b9313d7..177f0ab9ee3 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/inputstream.py +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_inputstream.py @@ -1,13 +1,16 @@ from __future__ import absolute_import, division, unicode_literals -from six import text_type -from six.moves import http_client + +from six import text_type, binary_type +from six.moves import http_client, urllib import codecs import re +import webencodings + from .constants import EOF, spaceCharacters, asciiLetters, asciiUppercase -from .constants import encodings, ReparseException -from . import utils +from .constants import _ReparseException +from . import _utils from io import StringIO @@ -16,19 +19,26 @@ try: except ImportError: BytesIO = StringIO -try: - from io import BufferedIOBase -except ImportError: - class BufferedIOBase(object): - pass - # Non-unicode versions of constants for use in the pre-parser spaceCharactersBytes = frozenset([item.encode("ascii") for item in spaceCharacters]) asciiLettersBytes = frozenset([item.encode("ascii") for item in asciiLetters]) asciiUppercaseBytes = frozenset([item.encode("ascii") for item in asciiUppercase]) spacesAngleBrackets = spaceCharactersBytes | frozenset([b">", b"<"]) -invalid_unicode_re = re.compile("[\u0001-\u0008\u000B\u000E-\u001F\u007F-\u009F\uD800-\uDFFF\uFDD0-\uFDEF\uFFFE\uFFFF\U0001FFFE\U0001FFFF\U0002FFFE\U0002FFFF\U0003FFFE\U0003FFFF\U0004FFFE\U0004FFFF\U0005FFFE\U0005FFFF\U0006FFFE\U0006FFFF\U0007FFFE\U0007FFFF\U0008FFFE\U0008FFFF\U0009FFFE\U0009FFFF\U000AFFFE\U000AFFFF\U000BFFFE\U000BFFFF\U000CFFFE\U000CFFFF\U000DFFFE\U000DFFFF\U000EFFFE\U000EFFFF\U000FFFFE\U000FFFFF\U0010FFFE\U0010FFFF]") + +invalid_unicode_no_surrogate = "[\u0001-\u0008\u000B\u000E-\u001F\u007F-\u009F\uFDD0-\uFDEF\uFFFE\uFFFF\U0001FFFE\U0001FFFF\U0002FFFE\U0002FFFF\U0003FFFE\U0003FFFF\U0004FFFE\U0004FFFF\U0005FFFE\U0005FFFF\U0006FFFE\U0006FFFF\U0007FFFE\U0007FFFF\U0008FFFE\U0008FFFF\U0009FFFE\U0009FFFF\U000AFFFE\U000AFFFF\U000BFFFE\U000BFFFF\U000CFFFE\U000CFFFF\U000DFFFE\U000DFFFF\U000EFFFE\U000EFFFF\U000FFFFE\U000FFFFF\U0010FFFE\U0010FFFF]" # noqa + +if _utils.supports_lone_surrogates: + # Use one extra step of indirection and create surrogates with + # eval. Not using this indirection would introduce an illegal + # unicode literal on platforms not supporting such lone + # surrogates. + assert invalid_unicode_no_surrogate[-1] == "]" and invalid_unicode_no_surrogate.count("]") == 1 + invalid_unicode_re = re.compile(invalid_unicode_no_surrogate[:-1] + + eval('"\\uD800-\\uDFFF"') + # pylint:disable=eval-used + "]") +else: + invalid_unicode_re = re.compile(invalid_unicode_no_surrogate) non_bmp_invalid_codepoints = set([0x1FFFE, 0x1FFFF, 0x2FFFE, 0x2FFFF, 0x3FFFE, 0x3FFFF, 0x4FFFE, 0x4FFFF, 0x5FFFE, 0x5FFFF, @@ -38,7 +48,7 @@ non_bmp_invalid_codepoints = set([0x1FFFE, 0x1FFFF, 0x2FFFE, 0x2FFFF, 0x3FFFE, 0xDFFFF, 0xEFFFE, 0xEFFFF, 0xFFFFE, 0xFFFFF, 0x10FFFE, 0x10FFFF]) -ascii_punctuation_re = re.compile("[\u0009-\u000D\u0020-\u002F\u003A-\u0040\u005B-\u0060\u007B-\u007E]") +ascii_punctuation_re = re.compile("[\u0009-\u000D\u0020-\u002F\u003A-\u0040\u005C\u005B-\u0060\u007B-\u007E]") # Cache for charsUntil() charsUntilRegEx = {} @@ -118,10 +128,13 @@ class BufferedStream(object): return b"".join(rv) -def HTMLInputStream(source, encoding=None, parseMeta=True, chardet=True): - if isinstance(source, http_client.HTTPResponse): - # Work around Python bug #20007: read(0) closes the connection. - # http://bugs.python.org/issue20007 +def HTMLInputStream(source, **kwargs): + # Work around Python bug #20007: read(0) closes the connection. + # http://bugs.python.org/issue20007 + if (isinstance(source, http_client.HTTPResponse) or + # Also check for addinfourl wrapping HTTPResponse + (isinstance(source, urllib.response.addbase) and + isinstance(source.fp, http_client.HTTPResponse))): isUnicode = False elif hasattr(source, "read"): isUnicode = isinstance(source.read(0), text_type) @@ -129,12 +142,13 @@ def HTMLInputStream(source, encoding=None, parseMeta=True, chardet=True): isUnicode = isinstance(source, text_type) if isUnicode: - if encoding is not None: - raise TypeError("Cannot explicitly set an encoding with a unicode string") + encodings = [x for x in kwargs if x.endswith("_encoding")] + if encodings: + raise TypeError("Cannot set an encoding with a unicode input, set %r" % encodings) - return HTMLUnicodeInputStream(source) + return HTMLUnicodeInputStream(source, **kwargs) else: - return HTMLBinaryInputStream(source, encoding, parseMeta, chardet) + return HTMLBinaryInputStream(source, **kwargs) class HTMLUnicodeInputStream(object): @@ -160,22 +174,21 @@ class HTMLUnicodeInputStream(object): regardless of any BOM or later declaration (such as in a meta element) - parseMeta - Look for a <meta> element containing encoding information - """ - # Craziness - if len("\U0010FFFF") == 1: + if not _utils.supports_lone_surrogates: + # Such platforms will have already checked for such + # surrogate errors, so no need to do this checking. + self.reportCharacterErrors = None + elif len("\U0010FFFF") == 1: self.reportCharacterErrors = self.characterErrorsUCS4 - self.replaceCharactersRegexp = re.compile("[\uD800-\uDFFF]") else: self.reportCharacterErrors = self.characterErrorsUCS2 - self.replaceCharactersRegexp = re.compile("([\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF])") # List of where new lines occur self.newLines = [0] - self.charEncoding = ("utf-8", "certain") + self.charEncoding = (lookupEncoding("utf-8"), "certain") self.dataStream = self.openStream(source) self.reset() @@ -265,12 +278,10 @@ class HTMLUnicodeInputStream(object): self._bufferedCharacter = data[-1] data = data[:-1] - self.reportCharacterErrors(data) + if self.reportCharacterErrors: + self.reportCharacterErrors(data) # Replace invalid characters - # Note U+0000 is dealt with in the tokenizer - data = self.replaceCharactersRegexp.sub("\ufffd", data) - data = data.replace("\r\n", "\n") data = data.replace("\r", "\n") @@ -280,7 +291,7 @@ class HTMLUnicodeInputStream(object): return True def characterErrorsUCS4(self, data): - for i in range(len(invalid_unicode_re.findall(data))): + for _ in range(len(invalid_unicode_re.findall(data))): self.errors.append("invalid-codepoint") def characterErrorsUCS2(self, data): @@ -293,9 +304,9 @@ class HTMLUnicodeInputStream(object): codepoint = ord(match.group()) pos = match.start() # Pretty sure there should be endianness issues here - if utils.isSurrogatePair(data[pos:pos + 2]): + if _utils.isSurrogatePair(data[pos:pos + 2]): # We have a surrogate pair! - char_val = utils.surrogatePairToCodepoint(data[pos:pos + 2]) + char_val = _utils.surrogatePairToCodepoint(data[pos:pos + 2]) if char_val in non_bmp_invalid_codepoints: self.errors.append("invalid-codepoint") skip = True @@ -378,7 +389,9 @@ class HTMLBinaryInputStream(HTMLUnicodeInputStream): """ - def __init__(self, source, encoding=None, parseMeta=True, chardet=True): + def __init__(self, source, override_encoding=None, transport_encoding=None, + same_origin_parent_encoding=None, likely_encoding=None, + default_encoding="windows-1252", useChardet=True): """Initialises the HTMLInputStream. HTMLInputStream(source, [encoding]) -> Normalized stream from source @@ -391,8 +404,6 @@ class HTMLBinaryInputStream(HTMLUnicodeInputStream): regardless of any BOM or later declaration (such as in a meta element) - parseMeta - Look for a <meta> element containing encoding information - """ # Raw Stream - for unicode objects this will encode to utf-8 and set # self.charEncoding as appropriate @@ -400,27 +411,28 @@ class HTMLBinaryInputStream(HTMLUnicodeInputStream): HTMLUnicodeInputStream.__init__(self, self.rawStream) - self.charEncoding = (codecName(encoding), "certain") - # Encoding Information # Number of bytes to use when looking for a meta element with # encoding information - self.numBytesMeta = 512 + self.numBytesMeta = 1024 # Number of bytes to use when using detecting encoding using chardet self.numBytesChardet = 100 - # Encoding to use if no other information can be found - self.defaultEncoding = "windows-1252" + # Things from args + self.override_encoding = override_encoding + self.transport_encoding = transport_encoding + self.same_origin_parent_encoding = same_origin_parent_encoding + self.likely_encoding = likely_encoding + self.default_encoding = default_encoding - # Detect encoding iff no explicit "transport level" encoding is supplied - if (self.charEncoding[0] is None): - self.charEncoding = self.detectEncoding(parseMeta, chardet) + # Determine encoding + self.charEncoding = self.determineEncoding(useChardet) + assert self.charEncoding[0] is not None # Call superclass self.reset() def reset(self): - self.dataStream = codecs.getreader(self.charEncoding[0])(self.rawStream, - 'replace') + self.dataStream = self.charEncoding[0].codec_info.streamreader(self.rawStream, 'replace') HTMLUnicodeInputStream.reset(self) def openStream(self, source): @@ -437,29 +449,50 @@ class HTMLBinaryInputStream(HTMLUnicodeInputStream): try: stream.seek(stream.tell()) - except: + except: # pylint:disable=bare-except stream = BufferedStream(stream) return stream - def detectEncoding(self, parseMeta=True, chardet=True): - # First look for a BOM + def determineEncoding(self, chardet=True): + # BOMs take precedence over everything # This will also read past the BOM if present - encoding = self.detectBOM() - confidence = "certain" - # If there is no BOM need to look for meta elements with encoding - # information - if encoding is None and parseMeta: - encoding = self.detectEncodingMeta() - confidence = "tentative" - # Guess with chardet, if avaliable - if encoding is None and chardet: - confidence = "tentative" + charEncoding = self.detectBOM(), "certain" + if charEncoding[0] is not None: + return charEncoding + + # If we've been overriden, we've been overriden + charEncoding = lookupEncoding(self.override_encoding), "certain" + if charEncoding[0] is not None: + return charEncoding + + # Now check the transport layer + charEncoding = lookupEncoding(self.transport_encoding), "certain" + if charEncoding[0] is not None: + return charEncoding + + # Look for meta elements with encoding information + charEncoding = self.detectEncodingMeta(), "tentative" + if charEncoding[0] is not None: + return charEncoding + + # Parent document encoding + charEncoding = lookupEncoding(self.same_origin_parent_encoding), "tentative" + if charEncoding[0] is not None and not charEncoding[0].name.startswith("utf-16"): + return charEncoding + + # "likely" encoding + charEncoding = lookupEncoding(self.likely_encoding), "tentative" + if charEncoding[0] is not None: + return charEncoding + + # Guess with chardet, if available + if chardet: try: - try: - from charade.universaldetector import UniversalDetector - except ImportError: - from chardet.universaldetector import UniversalDetector + from chardet.universaldetector import UniversalDetector + except ImportError: + pass + else: buffers = [] detector = UniversalDetector() while not detector.done: @@ -470,37 +503,34 @@ class HTMLBinaryInputStream(HTMLUnicodeInputStream): buffers.append(buffer) detector.feed(buffer) detector.close() - encoding = detector.result['encoding'] + encoding = lookupEncoding(detector.result['encoding']) self.rawStream.seek(0) - except ImportError: - pass - # If all else fails use the default encoding - if encoding is None: - confidence = "tentative" - encoding = self.defaultEncoding - - # Substitute for equivalent encodings: - encodingSub = {"iso-8859-1": "windows-1252"} + if encoding is not None: + return encoding, "tentative" - if encoding.lower() in encodingSub: - encoding = encodingSub[encoding.lower()] + # Try the default encoding + charEncoding = lookupEncoding(self.default_encoding), "tentative" + if charEncoding[0] is not None: + return charEncoding - return encoding, confidence + # Fallback to html5lib's default if even that hasn't worked + return lookupEncoding("windows-1252"), "tentative" def changeEncoding(self, newEncoding): assert self.charEncoding[1] != "certain" - newEncoding = codecName(newEncoding) - if newEncoding in ("utf-16", "utf-16-be", "utf-16-le"): - newEncoding = "utf-8" + newEncoding = lookupEncoding(newEncoding) if newEncoding is None: return + if newEncoding.name in ("utf-16be", "utf-16le"): + newEncoding = lookupEncoding("utf-8") + assert newEncoding is not None elif newEncoding == self.charEncoding[0]: self.charEncoding = (self.charEncoding[0], "certain") else: self.rawStream.seek(0) - self.reset() self.charEncoding = (newEncoding, "certain") - raise ReparseException("Encoding changed from %s to %s" % (self.charEncoding[0], newEncoding)) + self.reset() + raise _ReparseException("Encoding changed from %s to %s" % (self.charEncoding[0], newEncoding)) def detectBOM(self): """Attempts to detect at BOM at the start of the stream. If @@ -508,8 +538,8 @@ class HTMLBinaryInputStream(HTMLUnicodeInputStream): encoding otherwise return None""" bomDict = { codecs.BOM_UTF8: 'utf-8', - codecs.BOM_UTF16_LE: 'utf-16-le', codecs.BOM_UTF16_BE: 'utf-16-be', - codecs.BOM_UTF32_LE: 'utf-32-le', codecs.BOM_UTF32_BE: 'utf-32-be' + codecs.BOM_UTF16_LE: 'utf-16le', codecs.BOM_UTF16_BE: 'utf-16be', + codecs.BOM_UTF32_LE: 'utf-32le', codecs.BOM_UTF32_BE: 'utf-32be' } # Go to beginning of file and read in 4 bytes @@ -529,9 +559,12 @@ class HTMLBinaryInputStream(HTMLUnicodeInputStream): # Set the read position past the BOM if one was found, otherwise # set it to the start of the stream - self.rawStream.seek(encoding and seek or 0) - - return encoding + if encoding: + self.rawStream.seek(seek) + return lookupEncoding(encoding) + else: + self.rawStream.seek(0) + return None def detectEncodingMeta(self): """Report the encoding declared by the meta element @@ -542,8 +575,8 @@ class HTMLBinaryInputStream(HTMLUnicodeInputStream): self.rawStream.seek(0) encoding = parser.getEncoding() - if encoding in ("utf-16", "utf-16-be", "utf-16-le"): - encoding = "utf-8" + if encoding is not None and encoding.name in ("utf-16be", "utf-16le"): + encoding = lookupEncoding("utf-8") return encoding @@ -557,6 +590,7 @@ class EncodingBytes(bytes): return bytes.__new__(self, value.lower()) def __init__(self, value): + # pylint:disable=unused-argument self._position = -1 def __iter__(self): @@ -667,7 +701,7 @@ class EncodingParser(object): (b"<!", self.handleOther), (b"<?", self.handleOther), (b"<", self.handlePossibleStartTag)) - for byte in self.data: + for _ in self.data: keepParsing = True for key, method in methodDispatch: if self.data.matchBytes(key): @@ -706,7 +740,7 @@ class EncodingParser(object): return False elif attr[0] == b"charset": tentativeEncoding = attr[1] - codec = codecName(tentativeEncoding) + codec = lookupEncoding(tentativeEncoding) if codec is not None: self.encoding = codec return False @@ -714,7 +748,7 @@ class EncodingParser(object): contentParser = ContentAttrParser(EncodingBytes(attr[1])) tentativeEncoding = contentParser.parse() if tentativeEncoding is not None: - codec = codecName(tentativeEncoding) + codec = lookupEncoding(tentativeEncoding) if codec is not None: if hasPragma: self.encoding = codec @@ -871,16 +905,19 @@ class ContentAttrParser(object): return None -def codecName(encoding): +def lookupEncoding(encoding): """Return the python codec name corresponding to an encoding or None if the string doesn't correspond to a valid encoding.""" - if isinstance(encoding, bytes): + if isinstance(encoding, binary_type): try: encoding = encoding.decode("ascii") except UnicodeDecodeError: return None - if encoding: - canonicalName = ascii_punctuation_re.sub("", encoding).lower() - return encodings.get(canonicalName, None) + + if encoding is not None: + try: + return webencodings.lookup(encoding) + except AttributeError: + return None else: return None diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tokenizer.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_tokenizer.py index 797745787a4..6078f66aa0d 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tokenizer.py +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_tokenizer.py @@ -1,9 +1,6 @@ from __future__ import absolute_import, division, unicode_literals -try: - chr = unichr # flake8: noqa -except NameError: - pass +from six import unichr as chr from collections import deque @@ -14,9 +11,9 @@ from .constants import digits, hexDigits, EOF from .constants import tokenTypes, tagTokenTypes from .constants import replacementCharacters -from .inputstream import HTMLInputStream +from ._inputstream import HTMLInputStream -from .trie import Trie +from ._trie import Trie entitiesTrie = Trie(entities) @@ -34,16 +31,11 @@ class HTMLTokenizer(object): Points to HTMLInputStream object. """ - def __init__(self, stream, encoding=None, parseMeta=True, useChardet=True, - lowercaseElementName=True, lowercaseAttrName=True, parser=None): + def __init__(self, stream, parser=None, **kwargs): - self.stream = HTMLInputStream(stream, encoding, parseMeta, useChardet) + self.stream = HTMLInputStream(stream, **kwargs) self.parser = parser - # Perform case conversions? - self.lowercaseElementName = lowercaseElementName - self.lowercaseAttrName = lowercaseAttrName - # Setup the initial tokenizer state self.escapeFlag = False self.lastFourChars = [] @@ -147,8 +139,8 @@ class HTMLTokenizer(object): output = "&" charStack = [self.stream.char()] - if (charStack[0] in spaceCharacters or charStack[0] in (EOF, "<", "&") - or (allowedChar is not None and allowedChar == charStack[0])): + if (charStack[0] in spaceCharacters or charStack[0] in (EOF, "<", "&") or + (allowedChar is not None and allowedChar == charStack[0])): self.stream.unget(charStack[0]) elif charStack[0] == "#": @@ -235,8 +227,7 @@ class HTMLTokenizer(object): token = self.currentToken # Add token to the queue to be yielded if (token["type"] in tagTokenTypes): - if self.lowercaseElementName: - token["name"] = token["name"].translate(asciiUpper2Lower) + token["name"] = token["name"].translate(asciiUpper2Lower) if token["type"] == tokenTypes["EndTag"]: if token["data"]: self.tokenQueue.append({"type": tokenTypes["ParseError"], @@ -921,10 +912,9 @@ class HTMLTokenizer(object): # Attributes are not dropped at this stage. That happens when the # start tag token is emitted so values can still be safely appended # to attributes, but we do want to report the parse error in time. - if self.lowercaseAttrName: - self.currentToken["data"][-1][0] = ( - self.currentToken["data"][-1][0].translate(asciiUpper2Lower)) - for name, value in self.currentToken["data"][:-1]: + self.currentToken["data"][-1][0] = ( + self.currentToken["data"][-1][0].translate(asciiUpper2Lower)) + for name, _ in self.currentToken["data"][:-1]: if self.currentToken["data"][-1][0] == name: self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": "duplicate-attribute"}) @@ -1716,11 +1706,11 @@ class HTMLTokenizer(object): else: data.append(char) - data = "".join(data) + data = "".join(data) # pylint:disable=redefined-variable-type # Deal with null here rather than in the parser nullCount = data.count("\u0000") if nullCount > 0: - for i in range(nullCount): + for _ in range(nullCount): self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": "invalid-codepoint"}) data = data.replace("\u0000", "\uFFFD") diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/trie/__init__.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_trie/__init__.py index a8cca8a9acf..a5ba4bf123a 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/trie/__init__.py +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_trie/__init__.py @@ -4,9 +4,11 @@ from .py import Trie as PyTrie Trie = PyTrie +# pylint:disable=wrong-import-position try: from .datrie import Trie as DATrie except ImportError: pass else: Trie = DATrie +# pylint:enable=wrong-import-position diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/trie/_base.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_trie/_base.py index 724486b16eb..a1158bbbfa5 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/trie/_base.py +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_trie/_base.py @@ -7,13 +7,13 @@ class Trie(Mapping): """Abstract base class for tries""" def keys(self, prefix=None): - keys = super().keys() + # pylint:disable=arguments-differ + keys = super(Trie, self).keys() if prefix is None: return set(keys) - # Python 2.6: no set comprehensions - return set([x for x in keys if x.startswith(prefix)]) + return {x for x in keys if x.startswith(prefix)} def has_keys_with_prefix(self, prefix): for key in self.keys(): diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/trie/datrie.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_trie/datrie.py index 51f3d046a74..51f3d046a74 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/trie/datrie.py +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_trie/datrie.py diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/trie/py.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_trie/py.py index c2ba3da7576..c2ba3da7576 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/trie/py.py +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_trie/py.py diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/utils.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_utils.py index 2f41f4dfa60..91252f2c0a8 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/utils.py +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/_utils.py @@ -2,6 +2,8 @@ from __future__ import absolute_import, division, unicode_literals from types import ModuleType +from six import text_type + try: import xml.etree.cElementTree as default_etree except ImportError: @@ -9,7 +11,26 @@ except ImportError: __all__ = ["default_etree", "MethodDispatcher", "isSurrogatePair", - "surrogatePairToCodepoint", "moduleFactoryFactory"] + "surrogatePairToCodepoint", "moduleFactoryFactory", + "supports_lone_surrogates"] + + +# Platforms not supporting lone surrogates (\uD800-\uDFFF) should be +# caught by the below test. In general this would be any platform +# using UTF-16 as its encoding of unicode strings, such as +# Jython. This is because UTF-16 itself is based on the use of such +# surrogates, and there is no mechanism to further escape such +# escapes. +try: + _x = eval('"\\uD800"') # pylint:disable=eval-used + if not isinstance(_x, text_type): + # We need this with u"" because of http://bugs.jython.org/issue2039 + _x = eval('u"\\uD800"') # pylint:disable=eval-used + assert isinstance(_x, text_type) +except: # pylint:disable=bare-except + supports_lone_surrogates = False +else: + supports_lone_surrogates = True class MethodDispatcher(dict): @@ -31,19 +52,20 @@ class MethodDispatcher(dict): # anything here. _dictEntries = [] for name, value in items: - if type(name) in (list, tuple, frozenset, set): + if isinstance(name, (list, tuple, frozenset, set)): for item in name: _dictEntries.append((item, value)) else: _dictEntries.append((name, value)) dict.__init__(self, _dictEntries) + assert len(self) == len(_dictEntries) self.default = None def __getitem__(self, key): return dict.get(self, key, self.default) -# Some utility functions to dal with weirdness around UCS2 vs UCS4 +# Some utility functions to deal with weirdness around UCS2 vs UCS4 # python builds def isSurrogatePair(data): @@ -70,13 +92,33 @@ def moduleFactoryFactory(factory): else: name = b"_%s_factory" % baseModule.__name__ - if name in moduleCache: - return moduleCache[name] - else: + kwargs_tuple = tuple(kwargs.items()) + + try: + return moduleCache[name][args][kwargs_tuple] + except KeyError: mod = ModuleType(name) objs = factory(baseModule, *args, **kwargs) mod.__dict__.update(objs) - moduleCache[name] = mod + if "name" not in moduleCache: + moduleCache[name] = {} + if "args" not in moduleCache[name]: + moduleCache[name][args] = {} + if "kwargs" not in moduleCache[name][args]: + moduleCache[name][args][kwargs_tuple] = {} + moduleCache[name][args][kwargs_tuple] = mod return mod return moduleFactory + + +def memoize(func): + cache = {} + + def wrapped(*args, **kwargs): + key = (tuple(args), tuple(kwargs.items())) + if key not in cache: + cache[key] = func(*args, **kwargs) + return cache[key] + + return wrapped diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/constants.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/constants.py index e7089846d59..1ff804190cd 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/constants.py +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/constants.py @@ -1,292 +1,296 @@ from __future__ import absolute_import, division, unicode_literals import string -import gettext -_ = gettext.gettext EOF = None E = { "null-character": - _("Null character in input stream, replaced with U+FFFD."), + "Null character in input stream, replaced with U+FFFD.", "invalid-codepoint": - _("Invalid codepoint in stream."), + "Invalid codepoint in stream.", "incorrectly-placed-solidus": - _("Solidus (/) incorrectly placed in tag."), + "Solidus (/) incorrectly placed in tag.", "incorrect-cr-newline-entity": - _("Incorrect CR newline entity, replaced with LF."), + "Incorrect CR newline entity, replaced with LF.", "illegal-windows-1252-entity": - _("Entity used with illegal number (windows-1252 reference)."), + "Entity used with illegal number (windows-1252 reference).", "cant-convert-numeric-entity": - _("Numeric entity couldn't be converted to character " - "(codepoint U+%(charAsInt)08x)."), + "Numeric entity couldn't be converted to character " + "(codepoint U+%(charAsInt)08x).", "illegal-codepoint-for-numeric-entity": - _("Numeric entity represents an illegal codepoint: " - "U+%(charAsInt)08x."), + "Numeric entity represents an illegal codepoint: " + "U+%(charAsInt)08x.", "numeric-entity-without-semicolon": - _("Numeric entity didn't end with ';'."), + "Numeric entity didn't end with ';'.", "expected-numeric-entity-but-got-eof": - _("Numeric entity expected. Got end of file instead."), + "Numeric entity expected. Got end of file instead.", "expected-numeric-entity": - _("Numeric entity expected but none found."), + "Numeric entity expected but none found.", "named-entity-without-semicolon": - _("Named entity didn't end with ';'."), + "Named entity didn't end with ';'.", "expected-named-entity": - _("Named entity expected. Got none."), + "Named entity expected. Got none.", "attributes-in-end-tag": - _("End tag contains unexpected attributes."), + "End tag contains unexpected attributes.", 'self-closing-flag-on-end-tag': - _("End tag contains unexpected self-closing flag."), + "End tag contains unexpected self-closing flag.", "expected-tag-name-but-got-right-bracket": - _("Expected tag name. Got '>' instead."), + "Expected tag name. Got '>' instead.", "expected-tag-name-but-got-question-mark": - _("Expected tag name. Got '?' instead. (HTML doesn't " - "support processing instructions.)"), + "Expected tag name. Got '?' instead. (HTML doesn't " + "support processing instructions.)", "expected-tag-name": - _("Expected tag name. Got something else instead"), + "Expected tag name. Got something else instead", "expected-closing-tag-but-got-right-bracket": - _("Expected closing tag. Got '>' instead. Ignoring '</>'."), + "Expected closing tag. Got '>' instead. Ignoring '</>'.", "expected-closing-tag-but-got-eof": - _("Expected closing tag. Unexpected end of file."), + "Expected closing tag. Unexpected end of file.", "expected-closing-tag-but-got-char": - _("Expected closing tag. Unexpected character '%(data)s' found."), + "Expected closing tag. Unexpected character '%(data)s' found.", "eof-in-tag-name": - _("Unexpected end of file in the tag name."), + "Unexpected end of file in the tag name.", "expected-attribute-name-but-got-eof": - _("Unexpected end of file. Expected attribute name instead."), + "Unexpected end of file. Expected attribute name instead.", "eof-in-attribute-name": - _("Unexpected end of file in attribute name."), + "Unexpected end of file in attribute name.", "invalid-character-in-attribute-name": - _("Invalid character in attribute name"), + "Invalid character in attribute name", "duplicate-attribute": - _("Dropped duplicate attribute on tag."), + "Dropped duplicate attribute on tag.", "expected-end-of-tag-name-but-got-eof": - _("Unexpected end of file. Expected = or end of tag."), + "Unexpected end of file. Expected = or end of tag.", "expected-attribute-value-but-got-eof": - _("Unexpected end of file. Expected attribute value."), + "Unexpected end of file. Expected attribute value.", "expected-attribute-value-but-got-right-bracket": - _("Expected attribute value. Got '>' instead."), + "Expected attribute value. Got '>' instead.", 'equals-in-unquoted-attribute-value': - _("Unexpected = in unquoted attribute"), + "Unexpected = in unquoted attribute", 'unexpected-character-in-unquoted-attribute-value': - _("Unexpected character in unquoted attribute"), + "Unexpected character in unquoted attribute", "invalid-character-after-attribute-name": - _("Unexpected character after attribute name."), + "Unexpected character after attribute name.", "unexpected-character-after-attribute-value": - _("Unexpected character after attribute value."), + "Unexpected character after attribute value.", "eof-in-attribute-value-double-quote": - _("Unexpected end of file in attribute value (\")."), + "Unexpected end of file in attribute value (\").", "eof-in-attribute-value-single-quote": - _("Unexpected end of file in attribute value (')."), + "Unexpected end of file in attribute value (').", "eof-in-attribute-value-no-quotes": - _("Unexpected end of file in attribute value."), + "Unexpected end of file in attribute value.", "unexpected-EOF-after-solidus-in-tag": - _("Unexpected end of file in tag. Expected >"), + "Unexpected end of file in tag. Expected >", "unexpected-character-after-solidus-in-tag": - _("Unexpected character after / in tag. Expected >"), + "Unexpected character after / in tag. Expected >", "expected-dashes-or-doctype": - _("Expected '--' or 'DOCTYPE'. Not found."), + "Expected '--' or 'DOCTYPE'. Not found.", "unexpected-bang-after-double-dash-in-comment": - _("Unexpected ! after -- in comment"), + "Unexpected ! after -- in comment", "unexpected-space-after-double-dash-in-comment": - _("Unexpected space after -- in comment"), + "Unexpected space after -- in comment", "incorrect-comment": - _("Incorrect comment."), + "Incorrect comment.", "eof-in-comment": - _("Unexpected end of file in comment."), + "Unexpected end of file in comment.", "eof-in-comment-end-dash": - _("Unexpected end of file in comment (-)"), + "Unexpected end of file in comment (-)", "unexpected-dash-after-double-dash-in-comment": - _("Unexpected '-' after '--' found in comment."), + "Unexpected '-' after '--' found in comment.", "eof-in-comment-double-dash": - _("Unexpected end of file in comment (--)."), + "Unexpected end of file in comment (--).", "eof-in-comment-end-space-state": - _("Unexpected end of file in comment."), + "Unexpected end of file in comment.", "eof-in-comment-end-bang-state": - _("Unexpected end of file in comment."), + "Unexpected end of file in comment.", "unexpected-char-in-comment": - _("Unexpected character in comment found."), + "Unexpected character in comment found.", "need-space-after-doctype": - _("No space after literal string 'DOCTYPE'."), + "No space after literal string 'DOCTYPE'.", "expected-doctype-name-but-got-right-bracket": - _("Unexpected > character. Expected DOCTYPE name."), + "Unexpected > character. Expected DOCTYPE name.", "expected-doctype-name-but-got-eof": - _("Unexpected end of file. Expected DOCTYPE name."), + "Unexpected end of file. Expected DOCTYPE name.", "eof-in-doctype-name": - _("Unexpected end of file in DOCTYPE name."), + "Unexpected end of file in DOCTYPE name.", "eof-in-doctype": - _("Unexpected end of file in DOCTYPE."), + "Unexpected end of file in DOCTYPE.", "expected-space-or-right-bracket-in-doctype": - _("Expected space or '>'. Got '%(data)s'"), + "Expected space or '>'. Got '%(data)s'", "unexpected-end-of-doctype": - _("Unexpected end of DOCTYPE."), + "Unexpected end of DOCTYPE.", "unexpected-char-in-doctype": - _("Unexpected character in DOCTYPE."), + "Unexpected character in DOCTYPE.", "eof-in-innerhtml": - _("XXX innerHTML EOF"), + "XXX innerHTML EOF", "unexpected-doctype": - _("Unexpected DOCTYPE. Ignored."), + "Unexpected DOCTYPE. Ignored.", "non-html-root": - _("html needs to be the first start tag."), + "html needs to be the first start tag.", "expected-doctype-but-got-eof": - _("Unexpected End of file. Expected DOCTYPE."), + "Unexpected End of file. Expected DOCTYPE.", "unknown-doctype": - _("Erroneous DOCTYPE."), + "Erroneous DOCTYPE.", "expected-doctype-but-got-chars": - _("Unexpected non-space characters. Expected DOCTYPE."), + "Unexpected non-space characters. Expected DOCTYPE.", "expected-doctype-but-got-start-tag": - _("Unexpected start tag (%(name)s). Expected DOCTYPE."), + "Unexpected start tag (%(name)s). Expected DOCTYPE.", "expected-doctype-but-got-end-tag": - _("Unexpected end tag (%(name)s). Expected DOCTYPE."), + "Unexpected end tag (%(name)s). Expected DOCTYPE.", "end-tag-after-implied-root": - _("Unexpected end tag (%(name)s) after the (implied) root element."), + "Unexpected end tag (%(name)s) after the (implied) root element.", "expected-named-closing-tag-but-got-eof": - _("Unexpected end of file. Expected end tag (%(name)s)."), + "Unexpected end of file. Expected end tag (%(name)s).", "two-heads-are-not-better-than-one": - _("Unexpected start tag head in existing head. Ignored."), + "Unexpected start tag head in existing head. Ignored.", "unexpected-end-tag": - _("Unexpected end tag (%(name)s). Ignored."), + "Unexpected end tag (%(name)s). Ignored.", "unexpected-start-tag-out-of-my-head": - _("Unexpected start tag (%(name)s) that can be in head. Moved."), + "Unexpected start tag (%(name)s) that can be in head. Moved.", "unexpected-start-tag": - _("Unexpected start tag (%(name)s)."), + "Unexpected start tag (%(name)s).", "missing-end-tag": - _("Missing end tag (%(name)s)."), + "Missing end tag (%(name)s).", "missing-end-tags": - _("Missing end tags (%(name)s)."), + "Missing end tags (%(name)s).", "unexpected-start-tag-implies-end-tag": - _("Unexpected start tag (%(startName)s) " - "implies end tag (%(endName)s)."), + "Unexpected start tag (%(startName)s) " + "implies end tag (%(endName)s).", "unexpected-start-tag-treated-as": - _("Unexpected start tag (%(originalName)s). Treated as %(newName)s."), + "Unexpected start tag (%(originalName)s). Treated as %(newName)s.", "deprecated-tag": - _("Unexpected start tag %(name)s. Don't use it!"), + "Unexpected start tag %(name)s. Don't use it!", "unexpected-start-tag-ignored": - _("Unexpected start tag %(name)s. Ignored."), + "Unexpected start tag %(name)s. Ignored.", "expected-one-end-tag-but-got-another": - _("Unexpected end tag (%(gotName)s). " - "Missing end tag (%(expectedName)s)."), + "Unexpected end tag (%(gotName)s). " + "Missing end tag (%(expectedName)s).", "end-tag-too-early": - _("End tag (%(name)s) seen too early. Expected other end tag."), + "End tag (%(name)s) seen too early. Expected other end tag.", "end-tag-too-early-named": - _("Unexpected end tag (%(gotName)s). Expected end tag (%(expectedName)s)."), + "Unexpected end tag (%(gotName)s). Expected end tag (%(expectedName)s).", "end-tag-too-early-ignored": - _("End tag (%(name)s) seen too early. Ignored."), + "End tag (%(name)s) seen too early. Ignored.", "adoption-agency-1.1": - _("End tag (%(name)s) violates step 1, " - "paragraph 1 of the adoption agency algorithm."), + "End tag (%(name)s) violates step 1, " + "paragraph 1 of the adoption agency algorithm.", "adoption-agency-1.2": - _("End tag (%(name)s) violates step 1, " - "paragraph 2 of the adoption agency algorithm."), + "End tag (%(name)s) violates step 1, " + "paragraph 2 of the adoption agency algorithm.", "adoption-agency-1.3": - _("End tag (%(name)s) violates step 1, " - "paragraph 3 of the adoption agency algorithm."), + "End tag (%(name)s) violates step 1, " + "paragraph 3 of the adoption agency algorithm.", "adoption-agency-4.4": - _("End tag (%(name)s) violates step 4, " - "paragraph 4 of the adoption agency algorithm."), + "End tag (%(name)s) violates step 4, " + "paragraph 4 of the adoption agency algorithm.", "unexpected-end-tag-treated-as": - _("Unexpected end tag (%(originalName)s). Treated as %(newName)s."), + "Unexpected end tag (%(originalName)s). Treated as %(newName)s.", "no-end-tag": - _("This element (%(name)s) has no end tag."), + "This element (%(name)s) has no end tag.", "unexpected-implied-end-tag-in-table": - _("Unexpected implied end tag (%(name)s) in the table phase."), + "Unexpected implied end tag (%(name)s) in the table phase.", "unexpected-implied-end-tag-in-table-body": - _("Unexpected implied end tag (%(name)s) in the table body phase."), + "Unexpected implied end tag (%(name)s) in the table body phase.", "unexpected-char-implies-table-voodoo": - _("Unexpected non-space characters in " - "table context caused voodoo mode."), + "Unexpected non-space characters in " + "table context caused voodoo mode.", "unexpected-hidden-input-in-table": - _("Unexpected input with type hidden in table context."), + "Unexpected input with type hidden in table context.", "unexpected-form-in-table": - _("Unexpected form in table context."), + "Unexpected form in table context.", "unexpected-start-tag-implies-table-voodoo": - _("Unexpected start tag (%(name)s) in " - "table context caused voodoo mode."), + "Unexpected start tag (%(name)s) in " + "table context caused voodoo mode.", "unexpected-end-tag-implies-table-voodoo": - _("Unexpected end tag (%(name)s) in " - "table context caused voodoo mode."), + "Unexpected end tag (%(name)s) in " + "table context caused voodoo mode.", "unexpected-cell-in-table-body": - _("Unexpected table cell start tag (%(name)s) " - "in the table body phase."), + "Unexpected table cell start tag (%(name)s) " + "in the table body phase.", "unexpected-cell-end-tag": - _("Got table cell end tag (%(name)s) " - "while required end tags are missing."), + "Got table cell end tag (%(name)s) " + "while required end tags are missing.", "unexpected-end-tag-in-table-body": - _("Unexpected end tag (%(name)s) in the table body phase. Ignored."), + "Unexpected end tag (%(name)s) in the table body phase. Ignored.", "unexpected-implied-end-tag-in-table-row": - _("Unexpected implied end tag (%(name)s) in the table row phase."), + "Unexpected implied end tag (%(name)s) in the table row phase.", "unexpected-end-tag-in-table-row": - _("Unexpected end tag (%(name)s) in the table row phase. Ignored."), + "Unexpected end tag (%(name)s) in the table row phase. Ignored.", "unexpected-select-in-select": - _("Unexpected select start tag in the select phase " - "treated as select end tag."), + "Unexpected select start tag in the select phase " + "treated as select end tag.", "unexpected-input-in-select": - _("Unexpected input start tag in the select phase."), + "Unexpected input start tag in the select phase.", "unexpected-start-tag-in-select": - _("Unexpected start tag token (%(name)s in the select phase. " - "Ignored."), + "Unexpected start tag token (%(name)s in the select phase. " + "Ignored.", "unexpected-end-tag-in-select": - _("Unexpected end tag (%(name)s) in the select phase. Ignored."), + "Unexpected end tag (%(name)s) in the select phase. Ignored.", "unexpected-table-element-start-tag-in-select-in-table": - _("Unexpected table element start tag (%(name)s) in the select in table phase."), + "Unexpected table element start tag (%(name)s) in the select in table phase.", "unexpected-table-element-end-tag-in-select-in-table": - _("Unexpected table element end tag (%(name)s) in the select in table phase."), + "Unexpected table element end tag (%(name)s) in the select in table phase.", "unexpected-char-after-body": - _("Unexpected non-space characters in the after body phase."), + "Unexpected non-space characters in the after body phase.", "unexpected-start-tag-after-body": - _("Unexpected start tag token (%(name)s)" - " in the after body phase."), + "Unexpected start tag token (%(name)s)" + " in the after body phase.", "unexpected-end-tag-after-body": - _("Unexpected end tag token (%(name)s)" - " in the after body phase."), + "Unexpected end tag token (%(name)s)" + " in the after body phase.", "unexpected-char-in-frameset": - _("Unexpected characters in the frameset phase. Characters ignored."), + "Unexpected characters in the frameset phase. Characters ignored.", "unexpected-start-tag-in-frameset": - _("Unexpected start tag token (%(name)s)" - " in the frameset phase. Ignored."), + "Unexpected start tag token (%(name)s)" + " in the frameset phase. Ignored.", "unexpected-frameset-in-frameset-innerhtml": - _("Unexpected end tag token (frameset) " - "in the frameset phase (innerHTML)."), + "Unexpected end tag token (frameset) " + "in the frameset phase (innerHTML).", "unexpected-end-tag-in-frameset": - _("Unexpected end tag token (%(name)s)" - " in the frameset phase. Ignored."), + "Unexpected end tag token (%(name)s)" + " in the frameset phase. Ignored.", "unexpected-char-after-frameset": - _("Unexpected non-space characters in the " - "after frameset phase. Ignored."), + "Unexpected non-space characters in the " + "after frameset phase. Ignored.", "unexpected-start-tag-after-frameset": - _("Unexpected start tag (%(name)s)" - " in the after frameset phase. Ignored."), + "Unexpected start tag (%(name)s)" + " in the after frameset phase. Ignored.", "unexpected-end-tag-after-frameset": - _("Unexpected end tag (%(name)s)" - " in the after frameset phase. Ignored."), + "Unexpected end tag (%(name)s)" + " in the after frameset phase. Ignored.", "unexpected-end-tag-after-body-innerhtml": - _("Unexpected end tag after body(innerHtml)"), + "Unexpected end tag after body(innerHtml)", "expected-eof-but-got-char": - _("Unexpected non-space characters. Expected end of file."), + "Unexpected non-space characters. Expected end of file.", "expected-eof-but-got-start-tag": - _("Unexpected start tag (%(name)s)" - ". Expected end of file."), + "Unexpected start tag (%(name)s)" + ". Expected end of file.", "expected-eof-but-got-end-tag": - _("Unexpected end tag (%(name)s)" - ". Expected end of file."), + "Unexpected end tag (%(name)s)" + ". Expected end of file.", "eof-in-table": - _("Unexpected end of file. Expected table content."), + "Unexpected end of file. Expected table content.", "eof-in-select": - _("Unexpected end of file. Expected select content."), + "Unexpected end of file. Expected select content.", "eof-in-frameset": - _("Unexpected end of file. Expected frameset content."), + "Unexpected end of file. Expected frameset content.", "eof-in-script-in-script": - _("Unexpected end of file. Expected script content."), + "Unexpected end of file. Expected script content.", "eof-in-foreign-lands": - _("Unexpected end of file. Expected foreign content"), + "Unexpected end of file. Expected foreign content", "non-void-element-with-trailing-solidus": - _("Trailing solidus not allowed on element %(name)s"), + "Trailing solidus not allowed on element %(name)s", "unexpected-html-element-in-foreign-content": - _("Element %(name)s not allowed in a non-html context"), + "Element %(name)s not allowed in a non-html context", "unexpected-end-tag-before-html": - _("Unexpected end tag (%(name)s) before html."), + "Unexpected end tag (%(name)s) before html.", + "unexpected-inhead-noscript-tag": + "Element %(name)s not allowed in a inhead-noscript context", + "eof-in-head-noscript": + "Unexpected end of file. Expected inhead-noscript content", + "char-in-head-noscript": + "Unexpected non-space character. Expected inhead-noscript content", "XXX-undefined-error": - _("Undefined error (this sucks and should be fixed)"), + "Undefined error (this sucks and should be fixed)", } namespaces = { @@ -298,7 +302,7 @@ namespaces = { "xmlns": "http://www.w3.org/2000/xmlns/" } -scopingElements = frozenset(( +scopingElements = frozenset([ (namespaces["html"], "applet"), (namespaces["html"], "caption"), (namespaces["html"], "html"), @@ -316,9 +320,9 @@ scopingElements = frozenset(( (namespaces["svg"], "foreignObject"), (namespaces["svg"], "desc"), (namespaces["svg"], "title"), -)) +]) -formattingElements = frozenset(( +formattingElements = frozenset([ (namespaces["html"], "a"), (namespaces["html"], "b"), (namespaces["html"], "big"), @@ -333,9 +337,9 @@ formattingElements = frozenset(( (namespaces["html"], "strong"), (namespaces["html"], "tt"), (namespaces["html"], "u") -)) +]) -specialElements = frozenset(( +specialElements = frozenset([ (namespaces["html"], "address"), (namespaces["html"], "applet"), (namespaces["html"], "area"), @@ -416,22 +420,89 @@ specialElements = frozenset(( (namespaces["html"], "wbr"), (namespaces["html"], "xmp"), (namespaces["svg"], "foreignObject") -)) +]) -htmlIntegrationPointElements = frozenset(( - (namespaces["mathml"], "annotaion-xml"), +htmlIntegrationPointElements = frozenset([ + (namespaces["mathml"], "annotation-xml"), (namespaces["svg"], "foreignObject"), (namespaces["svg"], "desc"), (namespaces["svg"], "title") -)) +]) -mathmlTextIntegrationPointElements = frozenset(( +mathmlTextIntegrationPointElements = frozenset([ (namespaces["mathml"], "mi"), (namespaces["mathml"], "mo"), (namespaces["mathml"], "mn"), (namespaces["mathml"], "ms"), (namespaces["mathml"], "mtext") -)) +]) + +adjustSVGAttributes = { + "attributename": "attributeName", + "attributetype": "attributeType", + "basefrequency": "baseFrequency", + "baseprofile": "baseProfile", + "calcmode": "calcMode", + "clippathunits": "clipPathUnits", + "contentscripttype": "contentScriptType", + "contentstyletype": "contentStyleType", + "diffuseconstant": "diffuseConstant", + "edgemode": "edgeMode", + "externalresourcesrequired": "externalResourcesRequired", + "filterres": "filterRes", + "filterunits": "filterUnits", + "glyphref": "glyphRef", + "gradienttransform": "gradientTransform", + "gradientunits": "gradientUnits", + "kernelmatrix": "kernelMatrix", + "kernelunitlength": "kernelUnitLength", + "keypoints": "keyPoints", + "keysplines": "keySplines", + "keytimes": "keyTimes", + "lengthadjust": "lengthAdjust", + "limitingconeangle": "limitingConeAngle", + "markerheight": "markerHeight", + "markerunits": "markerUnits", + "markerwidth": "markerWidth", + "maskcontentunits": "maskContentUnits", + "maskunits": "maskUnits", + "numoctaves": "numOctaves", + "pathlength": "pathLength", + "patterncontentunits": "patternContentUnits", + "patterntransform": "patternTransform", + "patternunits": "patternUnits", + "pointsatx": "pointsAtX", + "pointsaty": "pointsAtY", + "pointsatz": "pointsAtZ", + "preservealpha": "preserveAlpha", + "preserveaspectratio": "preserveAspectRatio", + "primitiveunits": "primitiveUnits", + "refx": "refX", + "refy": "refY", + "repeatcount": "repeatCount", + "repeatdur": "repeatDur", + "requiredextensions": "requiredExtensions", + "requiredfeatures": "requiredFeatures", + "specularconstant": "specularConstant", + "specularexponent": "specularExponent", + "spreadmethod": "spreadMethod", + "startoffset": "startOffset", + "stddeviation": "stdDeviation", + "stitchtiles": "stitchTiles", + "surfacescale": "surfaceScale", + "systemlanguage": "systemLanguage", + "tablevalues": "tableValues", + "targetx": "targetX", + "targety": "targetY", + "textlength": "textLength", + "viewbox": "viewBox", + "viewtarget": "viewTarget", + "xchannelselector": "xChannelSelector", + "ychannelselector": "yChannelSelector", + "zoomandpan": "zoomAndPan" +} + +adjustMathMLAttributes = {"definitionurl": "definitionURL"} adjustForeignAttributes = { "xlink:actuate": ("xlink", "actuate", namespaces["xlink"]), @@ -451,21 +522,21 @@ adjustForeignAttributes = { unadjustForeignAttributes = dict([((ns, local), qname) for qname, (prefix, local, ns) in adjustForeignAttributes.items()]) -spaceCharacters = frozenset(( +spaceCharacters = frozenset([ "\t", "\n", "\u000C", " ", "\r" -)) +]) -tableInsertModeElements = frozenset(( +tableInsertModeElements = frozenset([ "table", "tbody", "tfoot", "thead", "tr" -)) +]) asciiLowercase = frozenset(string.ascii_lowercase) asciiUppercase = frozenset(string.ascii_uppercase) @@ -486,7 +557,7 @@ headingElements = ( "h6" ) -voidElements = frozenset(( +voidElements = frozenset([ "base", "command", "event-source", @@ -502,11 +573,11 @@ voidElements = frozenset(( "input", "source", "track" -)) +]) -cdataElements = frozenset(('title', 'textarea')) +cdataElements = frozenset(['title', 'textarea']) -rcdataElements = frozenset(( +rcdataElements = frozenset([ 'style', 'script', 'xmp', @@ -514,27 +585,28 @@ rcdataElements = frozenset(( 'noembed', 'noframes', 'noscript' -)) +]) booleanAttributes = { - "": frozenset(("irrelevant",)), - "style": frozenset(("scoped",)), - "img": frozenset(("ismap",)), - "audio": frozenset(("autoplay", "controls")), - "video": frozenset(("autoplay", "controls")), - "script": frozenset(("defer", "async")), - "details": frozenset(("open",)), - "datagrid": frozenset(("multiple", "disabled")), - "command": frozenset(("hidden", "disabled", "checked", "default")), - "hr": frozenset(("noshade")), - "menu": frozenset(("autosubmit",)), - "fieldset": frozenset(("disabled", "readonly")), - "option": frozenset(("disabled", "readonly", "selected")), - "optgroup": frozenset(("disabled", "readonly")), - "button": frozenset(("disabled", "autofocus")), - "input": frozenset(("disabled", "readonly", "required", "autofocus", "checked", "ismap")), - "select": frozenset(("disabled", "readonly", "autofocus", "multiple")), - "output": frozenset(("disabled", "readonly")), + "": frozenset(["irrelevant", "itemscope"]), + "style": frozenset(["scoped"]), + "img": frozenset(["ismap"]), + "audio": frozenset(["autoplay", "controls"]), + "video": frozenset(["autoplay", "controls"]), + "script": frozenset(["defer", "async"]), + "details": frozenset(["open"]), + "datagrid": frozenset(["multiple", "disabled"]), + "command": frozenset(["hidden", "disabled", "checked", "default"]), + "hr": frozenset(["noshade"]), + "menu": frozenset(["autosubmit"]), + "fieldset": frozenset(["disabled", "readonly"]), + "option": frozenset(["disabled", "readonly", "selected"]), + "optgroup": frozenset(["disabled", "readonly"]), + "button": frozenset(["disabled", "autofocus"]), + "input": frozenset(["disabled", "readonly", "required", "autofocus", "checked", "ismap"]), + "select": frozenset(["disabled", "readonly", "autofocus", "multiple"]), + "output": frozenset(["disabled", "readonly"]), + "iframe": frozenset(["seamless"]), } # entitiesWindows1252 has to be _ordered_ and needs to have an index. It @@ -574,7 +646,7 @@ entitiesWindows1252 = ( 376 # 0x9F 0x0178 LATIN CAPITAL LETTER Y WITH DIAERESIS ) -xmlEntities = frozenset(('lt;', 'gt;', 'amp;', 'apos;', 'quot;')) +xmlEntities = frozenset(['lt;', 'gt;', 'amp;', 'apos;', 'quot;']) entities = { "AElig": "\xc6", @@ -2815,7 +2887,6 @@ replacementCharacters = { 0x0d: "\u000D", 0x80: "\u20AC", 0x81: "\u0081", - 0x81: "\u0081", 0x82: "\u201A", 0x83: "\u0192", 0x84: "\u201E", @@ -2848,235 +2919,6 @@ replacementCharacters = { 0x9F: "\u0178", } -encodings = { - '437': 'cp437', - '850': 'cp850', - '852': 'cp852', - '855': 'cp855', - '857': 'cp857', - '860': 'cp860', - '861': 'cp861', - '862': 'cp862', - '863': 'cp863', - '865': 'cp865', - '866': 'cp866', - '869': 'cp869', - 'ansix341968': 'ascii', - 'ansix341986': 'ascii', - 'arabic': 'iso8859-6', - 'ascii': 'ascii', - 'asmo708': 'iso8859-6', - 'big5': 'big5', - 'big5hkscs': 'big5hkscs', - 'chinese': 'gbk', - 'cp037': 'cp037', - 'cp1026': 'cp1026', - 'cp154': 'ptcp154', - 'cp367': 'ascii', - 'cp424': 'cp424', - 'cp437': 'cp437', - 'cp500': 'cp500', - 'cp775': 'cp775', - 'cp819': 'windows-1252', - 'cp850': 'cp850', - 'cp852': 'cp852', - 'cp855': 'cp855', - 'cp857': 'cp857', - 'cp860': 'cp860', - 'cp861': 'cp861', - 'cp862': 'cp862', - 'cp863': 'cp863', - 'cp864': 'cp864', - 'cp865': 'cp865', - 'cp866': 'cp866', - 'cp869': 'cp869', - 'cp936': 'gbk', - 'cpgr': 'cp869', - 'cpis': 'cp861', - 'csascii': 'ascii', - 'csbig5': 'big5', - 'cseuckr': 'cp949', - 'cseucpkdfmtjapanese': 'euc_jp', - 'csgb2312': 'gbk', - 'cshproman8': 'hp-roman8', - 'csibm037': 'cp037', - 'csibm1026': 'cp1026', - 'csibm424': 'cp424', - 'csibm500': 'cp500', - 'csibm855': 'cp855', - 'csibm857': 'cp857', - 'csibm860': 'cp860', - 'csibm861': 'cp861', - 'csibm863': 'cp863', - 'csibm864': 'cp864', - 'csibm865': 'cp865', - 'csibm866': 'cp866', - 'csibm869': 'cp869', - 'csiso2022jp': 'iso2022_jp', - 'csiso2022jp2': 'iso2022_jp_2', - 'csiso2022kr': 'iso2022_kr', - 'csiso58gb231280': 'gbk', - 'csisolatin1': 'windows-1252', - 'csisolatin2': 'iso8859-2', - 'csisolatin3': 'iso8859-3', - 'csisolatin4': 'iso8859-4', - 'csisolatin5': 'windows-1254', - 'csisolatin6': 'iso8859-10', - 'csisolatinarabic': 'iso8859-6', - 'csisolatincyrillic': 'iso8859-5', - 'csisolatingreek': 'iso8859-7', - 'csisolatinhebrew': 'iso8859-8', - 'cskoi8r': 'koi8-r', - 'csksc56011987': 'cp949', - 'cspc775baltic': 'cp775', - 'cspc850multilingual': 'cp850', - 'cspc862latinhebrew': 'cp862', - 'cspc8codepage437': 'cp437', - 'cspcp852': 'cp852', - 'csptcp154': 'ptcp154', - 'csshiftjis': 'shift_jis', - 'csunicode11utf7': 'utf-7', - 'cyrillic': 'iso8859-5', - 'cyrillicasian': 'ptcp154', - 'ebcdiccpbe': 'cp500', - 'ebcdiccpca': 'cp037', - 'ebcdiccpch': 'cp500', - 'ebcdiccphe': 'cp424', - 'ebcdiccpnl': 'cp037', - 'ebcdiccpus': 'cp037', - 'ebcdiccpwt': 'cp037', - 'ecma114': 'iso8859-6', - 'ecma118': 'iso8859-7', - 'elot928': 'iso8859-7', - 'eucjp': 'euc_jp', - 'euckr': 'cp949', - 'extendedunixcodepackedformatforjapanese': 'euc_jp', - 'gb18030': 'gb18030', - 'gb2312': 'gbk', - 'gb231280': 'gbk', - 'gbk': 'gbk', - 'greek': 'iso8859-7', - 'greek8': 'iso8859-7', - 'hebrew': 'iso8859-8', - 'hproman8': 'hp-roman8', - 'hzgb2312': 'hz', - 'ibm037': 'cp037', - 'ibm1026': 'cp1026', - 'ibm367': 'ascii', - 'ibm424': 'cp424', - 'ibm437': 'cp437', - 'ibm500': 'cp500', - 'ibm775': 'cp775', - 'ibm819': 'windows-1252', - 'ibm850': 'cp850', - 'ibm852': 'cp852', - 'ibm855': 'cp855', - 'ibm857': 'cp857', - 'ibm860': 'cp860', - 'ibm861': 'cp861', - 'ibm862': 'cp862', - 'ibm863': 'cp863', - 'ibm864': 'cp864', - 'ibm865': 'cp865', - 'ibm866': 'cp866', - 'ibm869': 'cp869', - 'iso2022jp': 'iso2022_jp', - 'iso2022jp2': 'iso2022_jp_2', - 'iso2022kr': 'iso2022_kr', - 'iso646irv1991': 'ascii', - 'iso646us': 'ascii', - 'iso88591': 'windows-1252', - 'iso885910': 'iso8859-10', - 'iso8859101992': 'iso8859-10', - 'iso885911987': 'windows-1252', - 'iso885913': 'iso8859-13', - 'iso885914': 'iso8859-14', - 'iso8859141998': 'iso8859-14', - 'iso885915': 'iso8859-15', - 'iso885916': 'iso8859-16', - 'iso8859162001': 'iso8859-16', - 'iso88592': 'iso8859-2', - 'iso885921987': 'iso8859-2', - 'iso88593': 'iso8859-3', - 'iso885931988': 'iso8859-3', - 'iso88594': 'iso8859-4', - 'iso885941988': 'iso8859-4', - 'iso88595': 'iso8859-5', - 'iso885951988': 'iso8859-5', - 'iso88596': 'iso8859-6', - 'iso885961987': 'iso8859-6', - 'iso88597': 'iso8859-7', - 'iso885971987': 'iso8859-7', - 'iso88598': 'iso8859-8', - 'iso885981988': 'iso8859-8', - 'iso88599': 'windows-1254', - 'iso885991989': 'windows-1254', - 'isoceltic': 'iso8859-14', - 'isoir100': 'windows-1252', - 'isoir101': 'iso8859-2', - 'isoir109': 'iso8859-3', - 'isoir110': 'iso8859-4', - 'isoir126': 'iso8859-7', - 'isoir127': 'iso8859-6', - 'isoir138': 'iso8859-8', - 'isoir144': 'iso8859-5', - 'isoir148': 'windows-1254', - 'isoir149': 'cp949', - 'isoir157': 'iso8859-10', - 'isoir199': 'iso8859-14', - 'isoir226': 'iso8859-16', - 'isoir58': 'gbk', - 'isoir6': 'ascii', - 'koi8r': 'koi8-r', - 'koi8u': 'koi8-u', - 'korean': 'cp949', - 'ksc5601': 'cp949', - 'ksc56011987': 'cp949', - 'ksc56011989': 'cp949', - 'l1': 'windows-1252', - 'l10': 'iso8859-16', - 'l2': 'iso8859-2', - 'l3': 'iso8859-3', - 'l4': 'iso8859-4', - 'l5': 'windows-1254', - 'l6': 'iso8859-10', - 'l8': 'iso8859-14', - 'latin1': 'windows-1252', - 'latin10': 'iso8859-16', - 'latin2': 'iso8859-2', - 'latin3': 'iso8859-3', - 'latin4': 'iso8859-4', - 'latin5': 'windows-1254', - 'latin6': 'iso8859-10', - 'latin8': 'iso8859-14', - 'latin9': 'iso8859-15', - 'ms936': 'gbk', - 'mskanji': 'shift_jis', - 'pt154': 'ptcp154', - 'ptcp154': 'ptcp154', - 'r8': 'hp-roman8', - 'roman8': 'hp-roman8', - 'shiftjis': 'shift_jis', - 'tis620': 'cp874', - 'unicode11utf7': 'utf-7', - 'us': 'ascii', - 'usascii': 'ascii', - 'utf16': 'utf-16', - 'utf16be': 'utf-16-be', - 'utf16le': 'utf-16-le', - 'utf8': 'utf-8', - 'windows1250': 'cp1250', - 'windows1251': 'cp1251', - 'windows1252': 'cp1252', - 'windows1253': 'cp1253', - 'windows1254': 'cp1254', - 'windows1255': 'cp1255', - 'windows1256': 'cp1256', - 'windows1257': 'cp1257', - 'windows1258': 'cp1258', - 'windows936': 'gbk', - 'x-x-big5': 'big5'} - tokenTypes = { "Doctype": 0, "Characters": 1, @@ -3088,8 +2930,8 @@ tokenTypes = { "ParseError": 7 } -tagTokenTypes = frozenset((tokenTypes["StartTag"], tokenTypes["EndTag"], - tokenTypes["EmptyTag"])) +tagTokenTypes = frozenset([tokenTypes["StartTag"], tokenTypes["EndTag"], + tokenTypes["EmptyTag"]]) prefixes = dict([(v, k) for k, v in namespaces.items()]) @@ -3097,8 +2939,9 @@ prefixes["http://www.w3.org/1998/Math/MathML"] = "math" class DataLossWarning(UserWarning): + """Raised when the current tree is unable to represent the input data""" pass -class ReparseException(Exception): +class _ReparseException(Exception): pass diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/__init__.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/__init__.py index e69de29bb2d..e69de29bb2d 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/__init__.py +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/__init__.py diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/alphabeticalattributes.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/alphabeticalattributes.py new file mode 100644 index 00000000000..5ba926e3b09 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/alphabeticalattributes.py @@ -0,0 +1,29 @@ +from __future__ import absolute_import, division, unicode_literals + +from . import base + +from collections import OrderedDict + + +def _attr_key(attr): + """Return an appropriate key for an attribute for sorting + + Attributes have a namespace that can be either ``None`` or a string. We + can't compare the two because they're different types, so we convert + ``None`` to an empty string first. + + """ + return (attr[0][0] or ''), attr[0][1] + + +class Filter(base.Filter): + """Alphabetizes attributes for elements""" + def __iter__(self): + for token in base.Filter.__iter__(self): + if token["type"] in ("StartTag", "EmptyTag"): + attrs = OrderedDict() + for name, value in sorted(token["data"].items(), + key=_attr_key): + attrs[name] = value + token["data"] = attrs + yield token diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/_base.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/base.py index c7dbaed0fab..c7dbaed0fab 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/_base.py +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/base.py diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/inject_meta_charset.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/inject_meta_charset.py index ca33b70b530..aefb5c842c2 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/inject_meta_charset.py +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/inject_meta_charset.py @@ -1,11 +1,19 @@ from __future__ import absolute_import, division, unicode_literals -from . import _base +from . import base -class Filter(_base.Filter): +class Filter(base.Filter): + """Injects ``<meta charset=ENCODING>`` tag into head of document""" def __init__(self, source, encoding): - _base.Filter.__init__(self, source) + """Creates a Filter + + :arg source: the source token stream + + :arg encoding: the encoding to set + + """ + base.Filter.__init__(self, source) self.encoding = encoding def __iter__(self): @@ -13,7 +21,7 @@ class Filter(_base.Filter): meta_found = (self.encoding is None) pending = [] - for token in _base.Filter.__iter__(self): + for token in base.Filter.__iter__(self): type = token["type"] if type == "StartTag": if token["name"].lower() == "head": diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/lint.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/lint.py new file mode 100644 index 00000000000..acd4d7a2af1 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/lint.py @@ -0,0 +1,93 @@ +from __future__ import absolute_import, division, unicode_literals + +from six import text_type + +from . import base +from ..constants import namespaces, voidElements + +from ..constants import spaceCharacters +spaceCharacters = "".join(spaceCharacters) + + +class Filter(base.Filter): + """Lints the token stream for errors + + If it finds any errors, it'll raise an ``AssertionError``. + + """ + def __init__(self, source, require_matching_tags=True): + """Creates a Filter + + :arg source: the source token stream + + :arg require_matching_tags: whether or not to require matching tags + + """ + super(Filter, self).__init__(source) + self.require_matching_tags = require_matching_tags + + def __iter__(self): + open_elements = [] + for token in base.Filter.__iter__(self): + type = token["type"] + if type in ("StartTag", "EmptyTag"): + namespace = token["namespace"] + name = token["name"] + assert namespace is None or isinstance(namespace, text_type) + assert namespace != "" + assert isinstance(name, text_type) + assert name != "" + assert isinstance(token["data"], dict) + if (not namespace or namespace == namespaces["html"]) and name in voidElements: + assert type == "EmptyTag" + else: + assert type == "StartTag" + if type == "StartTag" and self.require_matching_tags: + open_elements.append((namespace, name)) + for (namespace, name), value in token["data"].items(): + assert namespace is None or isinstance(namespace, text_type) + assert namespace != "" + assert isinstance(name, text_type) + assert name != "" + assert isinstance(value, text_type) + + elif type == "EndTag": + namespace = token["namespace"] + name = token["name"] + assert namespace is None or isinstance(namespace, text_type) + assert namespace != "" + assert isinstance(name, text_type) + assert name != "" + if (not namespace or namespace == namespaces["html"]) and name in voidElements: + assert False, "Void element reported as EndTag token: %(tag)s" % {"tag": name} + elif self.require_matching_tags: + start = open_elements.pop() + assert start == (namespace, name) + + elif type == "Comment": + data = token["data"] + assert isinstance(data, text_type) + + elif type in ("Characters", "SpaceCharacters"): + data = token["data"] + assert isinstance(data, text_type) + assert data != "" + if type == "SpaceCharacters": + assert data.strip(spaceCharacters) == "" + + elif type == "Doctype": + name = token["name"] + assert name is None or isinstance(name, text_type) + assert token["publicId"] is None or isinstance(name, text_type) + assert token["systemId"] is None or isinstance(name, text_type) + + elif type == "Entity": + assert isinstance(token["name"], text_type) + + elif type == "SerializerError": + assert isinstance(token["data"], text_type) + + else: + assert False, "Unknown token type: %(type)s" % {"type": type} + + yield token diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/optionaltags.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/optionaltags.py index fefe0b3097b..4a865012c16 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/optionaltags.py +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/optionaltags.py @@ -1,9 +1,10 @@ from __future__ import absolute_import, division, unicode_literals -from . import _base +from . import base -class Filter(_base.Filter): +class Filter(base.Filter): + """Removes optional tags from the token stream""" def slider(self): previous1 = previous2 = None for token in self.source: @@ -11,7 +12,8 @@ class Filter(_base.Filter): yield previous2, previous1, token previous2 = previous1 previous1 = token - yield previous2, previous1, None + if previous1 is not None: + yield previous2, previous1, None def __iter__(self): for previous, token, next in self.slider(): @@ -58,7 +60,7 @@ class Filter(_base.Filter): elif tagname == 'colgroup': # A colgroup element's start tag may be omitted if the first thing # inside the colgroup element is a col element, and if the element - # is not immediately preceeded by another colgroup element whose + # is not immediately preceded by another colgroup element whose # end tag has been omitted. if type in ("StartTag", "EmptyTag"): # XXX: we do not look at the preceding event, so instead we never @@ -70,7 +72,7 @@ class Filter(_base.Filter): elif tagname == 'tbody': # A tbody element's start tag may be omitted if the first thing # inside the tbody element is a tr element, and if the element is - # not immediately preceeded by a tbody, thead, or tfoot element + # not immediately preceded by a tbody, thead, or tfoot element # whose end tag has been omitted. if type == "StartTag": # omit the thead and tfoot elements' end tag when they are diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/sanitizer.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/sanitizer.py new file mode 100644 index 00000000000..e852f53be8a --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/sanitizer.py @@ -0,0 +1,896 @@ +from __future__ import absolute_import, division, unicode_literals + +import re +from xml.sax.saxutils import escape, unescape + +from six.moves import urllib_parse as urlparse + +from . import base +from ..constants import namespaces, prefixes + +__all__ = ["Filter"] + + +allowed_elements = frozenset(( + (namespaces['html'], 'a'), + (namespaces['html'], 'abbr'), + (namespaces['html'], 'acronym'), + (namespaces['html'], 'address'), + (namespaces['html'], 'area'), + (namespaces['html'], 'article'), + (namespaces['html'], 'aside'), + (namespaces['html'], 'audio'), + (namespaces['html'], 'b'), + (namespaces['html'], 'big'), + (namespaces['html'], 'blockquote'), + (namespaces['html'], 'br'), + (namespaces['html'], 'button'), + (namespaces['html'], 'canvas'), + (namespaces['html'], 'caption'), + (namespaces['html'], 'center'), + (namespaces['html'], 'cite'), + (namespaces['html'], 'code'), + (namespaces['html'], 'col'), + (namespaces['html'], 'colgroup'), + (namespaces['html'], 'command'), + (namespaces['html'], 'datagrid'), + (namespaces['html'], 'datalist'), + (namespaces['html'], 'dd'), + (namespaces['html'], 'del'), + (namespaces['html'], 'details'), + (namespaces['html'], 'dfn'), + (namespaces['html'], 'dialog'), + (namespaces['html'], 'dir'), + (namespaces['html'], 'div'), + (namespaces['html'], 'dl'), + (namespaces['html'], 'dt'), + (namespaces['html'], 'em'), + (namespaces['html'], 'event-source'), + (namespaces['html'], 'fieldset'), + (namespaces['html'], 'figcaption'), + (namespaces['html'], 'figure'), + (namespaces['html'], 'footer'), + (namespaces['html'], 'font'), + (namespaces['html'], 'form'), + (namespaces['html'], 'header'), + (namespaces['html'], 'h1'), + (namespaces['html'], 'h2'), + (namespaces['html'], 'h3'), + (namespaces['html'], 'h4'), + (namespaces['html'], 'h5'), + (namespaces['html'], 'h6'), + (namespaces['html'], 'hr'), + (namespaces['html'], 'i'), + (namespaces['html'], 'img'), + (namespaces['html'], 'input'), + (namespaces['html'], 'ins'), + (namespaces['html'], 'keygen'), + (namespaces['html'], 'kbd'), + (namespaces['html'], 'label'), + (namespaces['html'], 'legend'), + (namespaces['html'], 'li'), + (namespaces['html'], 'm'), + (namespaces['html'], 'map'), + (namespaces['html'], 'menu'), + (namespaces['html'], 'meter'), + (namespaces['html'], 'multicol'), + (namespaces['html'], 'nav'), + (namespaces['html'], 'nextid'), + (namespaces['html'], 'ol'), + (namespaces['html'], 'output'), + (namespaces['html'], 'optgroup'), + (namespaces['html'], 'option'), + (namespaces['html'], 'p'), + (namespaces['html'], 'pre'), + (namespaces['html'], 'progress'), + (namespaces['html'], 'q'), + (namespaces['html'], 's'), + (namespaces['html'], 'samp'), + (namespaces['html'], 'section'), + (namespaces['html'], 'select'), + (namespaces['html'], 'small'), + (namespaces['html'], 'sound'), + (namespaces['html'], 'source'), + (namespaces['html'], 'spacer'), + (namespaces['html'], 'span'), + (namespaces['html'], 'strike'), + (namespaces['html'], 'strong'), + (namespaces['html'], 'sub'), + (namespaces['html'], 'sup'), + (namespaces['html'], 'table'), + (namespaces['html'], 'tbody'), + (namespaces['html'], 'td'), + (namespaces['html'], 'textarea'), + (namespaces['html'], 'time'), + (namespaces['html'], 'tfoot'), + (namespaces['html'], 'th'), + (namespaces['html'], 'thead'), + (namespaces['html'], 'tr'), + (namespaces['html'], 'tt'), + (namespaces['html'], 'u'), + (namespaces['html'], 'ul'), + (namespaces['html'], 'var'), + (namespaces['html'], 'video'), + (namespaces['mathml'], 'maction'), + (namespaces['mathml'], 'math'), + (namespaces['mathml'], 'merror'), + (namespaces['mathml'], 'mfrac'), + (namespaces['mathml'], 'mi'), + (namespaces['mathml'], 'mmultiscripts'), + (namespaces['mathml'], 'mn'), + (namespaces['mathml'], 'mo'), + (namespaces['mathml'], 'mover'), + (namespaces['mathml'], 'mpadded'), + (namespaces['mathml'], 'mphantom'), + (namespaces['mathml'], 'mprescripts'), + (namespaces['mathml'], 'mroot'), + (namespaces['mathml'], 'mrow'), + (namespaces['mathml'], 'mspace'), + (namespaces['mathml'], 'msqrt'), + (namespaces['mathml'], 'mstyle'), + (namespaces['mathml'], 'msub'), + (namespaces['mathml'], 'msubsup'), + (namespaces['mathml'], 'msup'), + (namespaces['mathml'], 'mtable'), + (namespaces['mathml'], 'mtd'), + (namespaces['mathml'], 'mtext'), + (namespaces['mathml'], 'mtr'), + (namespaces['mathml'], 'munder'), + (namespaces['mathml'], 'munderover'), + (namespaces['mathml'], 'none'), + (namespaces['svg'], 'a'), + (namespaces['svg'], 'animate'), + (namespaces['svg'], 'animateColor'), + (namespaces['svg'], 'animateMotion'), + (namespaces['svg'], 'animateTransform'), + (namespaces['svg'], 'clipPath'), + (namespaces['svg'], 'circle'), + (namespaces['svg'], 'defs'), + (namespaces['svg'], 'desc'), + (namespaces['svg'], 'ellipse'), + (namespaces['svg'], 'font-face'), + (namespaces['svg'], 'font-face-name'), + (namespaces['svg'], 'font-face-src'), + (namespaces['svg'], 'g'), + (namespaces['svg'], 'glyph'), + (namespaces['svg'], 'hkern'), + (namespaces['svg'], 'linearGradient'), + (namespaces['svg'], 'line'), + (namespaces['svg'], 'marker'), + (namespaces['svg'], 'metadata'), + (namespaces['svg'], 'missing-glyph'), + (namespaces['svg'], 'mpath'), + (namespaces['svg'], 'path'), + (namespaces['svg'], 'polygon'), + (namespaces['svg'], 'polyline'), + (namespaces['svg'], 'radialGradient'), + (namespaces['svg'], 'rect'), + (namespaces['svg'], 'set'), + (namespaces['svg'], 'stop'), + (namespaces['svg'], 'svg'), + (namespaces['svg'], 'switch'), + (namespaces['svg'], 'text'), + (namespaces['svg'], 'title'), + (namespaces['svg'], 'tspan'), + (namespaces['svg'], 'use'), +)) + +allowed_attributes = frozenset(( + # HTML attributes + (None, 'abbr'), + (None, 'accept'), + (None, 'accept-charset'), + (None, 'accesskey'), + (None, 'action'), + (None, 'align'), + (None, 'alt'), + (None, 'autocomplete'), + (None, 'autofocus'), + (None, 'axis'), + (None, 'background'), + (None, 'balance'), + (None, 'bgcolor'), + (None, 'bgproperties'), + (None, 'border'), + (None, 'bordercolor'), + (None, 'bordercolordark'), + (None, 'bordercolorlight'), + (None, 'bottompadding'), + (None, 'cellpadding'), + (None, 'cellspacing'), + (None, 'ch'), + (None, 'challenge'), + (None, 'char'), + (None, 'charoff'), + (None, 'choff'), + (None, 'charset'), + (None, 'checked'), + (None, 'cite'), + (None, 'class'), + (None, 'clear'), + (None, 'color'), + (None, 'cols'), + (None, 'colspan'), + (None, 'compact'), + (None, 'contenteditable'), + (None, 'controls'), + (None, 'coords'), + (None, 'data'), + (None, 'datafld'), + (None, 'datapagesize'), + (None, 'datasrc'), + (None, 'datetime'), + (None, 'default'), + (None, 'delay'), + (None, 'dir'), + (None, 'disabled'), + (None, 'draggable'), + (None, 'dynsrc'), + (None, 'enctype'), + (None, 'end'), + (None, 'face'), + (None, 'for'), + (None, 'form'), + (None, 'frame'), + (None, 'galleryimg'), + (None, 'gutter'), + (None, 'headers'), + (None, 'height'), + (None, 'hidefocus'), + (None, 'hidden'), + (None, 'high'), + (None, 'href'), + (None, 'hreflang'), + (None, 'hspace'), + (None, 'icon'), + (None, 'id'), + (None, 'inputmode'), + (None, 'ismap'), + (None, 'keytype'), + (None, 'label'), + (None, 'leftspacing'), + (None, 'lang'), + (None, 'list'), + (None, 'longdesc'), + (None, 'loop'), + (None, 'loopcount'), + (None, 'loopend'), + (None, 'loopstart'), + (None, 'low'), + (None, 'lowsrc'), + (None, 'max'), + (None, 'maxlength'), + (None, 'media'), + (None, 'method'), + (None, 'min'), + (None, 'multiple'), + (None, 'name'), + (None, 'nohref'), + (None, 'noshade'), + (None, 'nowrap'), + (None, 'open'), + (None, 'optimum'), + (None, 'pattern'), + (None, 'ping'), + (None, 'point-size'), + (None, 'poster'), + (None, 'pqg'), + (None, 'preload'), + (None, 'prompt'), + (None, 'radiogroup'), + (None, 'readonly'), + (None, 'rel'), + (None, 'repeat-max'), + (None, 'repeat-min'), + (None, 'replace'), + (None, 'required'), + (None, 'rev'), + (None, 'rightspacing'), + (None, 'rows'), + (None, 'rowspan'), + (None, 'rules'), + (None, 'scope'), + (None, 'selected'), + (None, 'shape'), + (None, 'size'), + (None, 'span'), + (None, 'src'), + (None, 'start'), + (None, 'step'), + (None, 'style'), + (None, 'summary'), + (None, 'suppress'), + (None, 'tabindex'), + (None, 'target'), + (None, 'template'), + (None, 'title'), + (None, 'toppadding'), + (None, 'type'), + (None, 'unselectable'), + (None, 'usemap'), + (None, 'urn'), + (None, 'valign'), + (None, 'value'), + (None, 'variable'), + (None, 'volume'), + (None, 'vspace'), + (None, 'vrml'), + (None, 'width'), + (None, 'wrap'), + (namespaces['xml'], 'lang'), + # MathML attributes + (None, 'actiontype'), + (None, 'align'), + (None, 'columnalign'), + (None, 'columnalign'), + (None, 'columnalign'), + (None, 'columnlines'), + (None, 'columnspacing'), + (None, 'columnspan'), + (None, 'depth'), + (None, 'display'), + (None, 'displaystyle'), + (None, 'equalcolumns'), + (None, 'equalrows'), + (None, 'fence'), + (None, 'fontstyle'), + (None, 'fontweight'), + (None, 'frame'), + (None, 'height'), + (None, 'linethickness'), + (None, 'lspace'), + (None, 'mathbackground'), + (None, 'mathcolor'), + (None, 'mathvariant'), + (None, 'mathvariant'), + (None, 'maxsize'), + (None, 'minsize'), + (None, 'other'), + (None, 'rowalign'), + (None, 'rowalign'), + (None, 'rowalign'), + (None, 'rowlines'), + (None, 'rowspacing'), + (None, 'rowspan'), + (None, 'rspace'), + (None, 'scriptlevel'), + (None, 'selection'), + (None, 'separator'), + (None, 'stretchy'), + (None, 'width'), + (None, 'width'), + (namespaces['xlink'], 'href'), + (namespaces['xlink'], 'show'), + (namespaces['xlink'], 'type'), + # SVG attributes + (None, 'accent-height'), + (None, 'accumulate'), + (None, 'additive'), + (None, 'alphabetic'), + (None, 'arabic-form'), + (None, 'ascent'), + (None, 'attributeName'), + (None, 'attributeType'), + (None, 'baseProfile'), + (None, 'bbox'), + (None, 'begin'), + (None, 'by'), + (None, 'calcMode'), + (None, 'cap-height'), + (None, 'class'), + (None, 'clip-path'), + (None, 'color'), + (None, 'color-rendering'), + (None, 'content'), + (None, 'cx'), + (None, 'cy'), + (None, 'd'), + (None, 'dx'), + (None, 'dy'), + (None, 'descent'), + (None, 'display'), + (None, 'dur'), + (None, 'end'), + (None, 'fill'), + (None, 'fill-opacity'), + (None, 'fill-rule'), + (None, 'font-family'), + (None, 'font-size'), + (None, 'font-stretch'), + (None, 'font-style'), + (None, 'font-variant'), + (None, 'font-weight'), + (None, 'from'), + (None, 'fx'), + (None, 'fy'), + (None, 'g1'), + (None, 'g2'), + (None, 'glyph-name'), + (None, 'gradientUnits'), + (None, 'hanging'), + (None, 'height'), + (None, 'horiz-adv-x'), + (None, 'horiz-origin-x'), + (None, 'id'), + (None, 'ideographic'), + (None, 'k'), + (None, 'keyPoints'), + (None, 'keySplines'), + (None, 'keyTimes'), + (None, 'lang'), + (None, 'marker-end'), + (None, 'marker-mid'), + (None, 'marker-start'), + (None, 'markerHeight'), + (None, 'markerUnits'), + (None, 'markerWidth'), + (None, 'mathematical'), + (None, 'max'), + (None, 'min'), + (None, 'name'), + (None, 'offset'), + (None, 'opacity'), + (None, 'orient'), + (None, 'origin'), + (None, 'overline-position'), + (None, 'overline-thickness'), + (None, 'panose-1'), + (None, 'path'), + (None, 'pathLength'), + (None, 'points'), + (None, 'preserveAspectRatio'), + (None, 'r'), + (None, 'refX'), + (None, 'refY'), + (None, 'repeatCount'), + (None, 'repeatDur'), + (None, 'requiredExtensions'), + (None, 'requiredFeatures'), + (None, 'restart'), + (None, 'rotate'), + (None, 'rx'), + (None, 'ry'), + (None, 'slope'), + (None, 'stemh'), + (None, 'stemv'), + (None, 'stop-color'), + (None, 'stop-opacity'), + (None, 'strikethrough-position'), + (None, 'strikethrough-thickness'), + (None, 'stroke'), + (None, 'stroke-dasharray'), + (None, 'stroke-dashoffset'), + (None, 'stroke-linecap'), + (None, 'stroke-linejoin'), + (None, 'stroke-miterlimit'), + (None, 'stroke-opacity'), + (None, 'stroke-width'), + (None, 'systemLanguage'), + (None, 'target'), + (None, 'text-anchor'), + (None, 'to'), + (None, 'transform'), + (None, 'type'), + (None, 'u1'), + (None, 'u2'), + (None, 'underline-position'), + (None, 'underline-thickness'), + (None, 'unicode'), + (None, 'unicode-range'), + (None, 'units-per-em'), + (None, 'values'), + (None, 'version'), + (None, 'viewBox'), + (None, 'visibility'), + (None, 'width'), + (None, 'widths'), + (None, 'x'), + (None, 'x-height'), + (None, 'x1'), + (None, 'x2'), + (namespaces['xlink'], 'actuate'), + (namespaces['xlink'], 'arcrole'), + (namespaces['xlink'], 'href'), + (namespaces['xlink'], 'role'), + (namespaces['xlink'], 'show'), + (namespaces['xlink'], 'title'), + (namespaces['xlink'], 'type'), + (namespaces['xml'], 'base'), + (namespaces['xml'], 'lang'), + (namespaces['xml'], 'space'), + (None, 'y'), + (None, 'y1'), + (None, 'y2'), + (None, 'zoomAndPan'), +)) + +attr_val_is_uri = frozenset(( + (None, 'href'), + (None, 'src'), + (None, 'cite'), + (None, 'action'), + (None, 'longdesc'), + (None, 'poster'), + (None, 'background'), + (None, 'datasrc'), + (None, 'dynsrc'), + (None, 'lowsrc'), + (None, 'ping'), + (namespaces['xlink'], 'href'), + (namespaces['xml'], 'base'), +)) + +svg_attr_val_allows_ref = frozenset(( + (None, 'clip-path'), + (None, 'color-profile'), + (None, 'cursor'), + (None, 'fill'), + (None, 'filter'), + (None, 'marker'), + (None, 'marker-start'), + (None, 'marker-mid'), + (None, 'marker-end'), + (None, 'mask'), + (None, 'stroke'), +)) + +svg_allow_local_href = frozenset(( + (None, 'altGlyph'), + (None, 'animate'), + (None, 'animateColor'), + (None, 'animateMotion'), + (None, 'animateTransform'), + (None, 'cursor'), + (None, 'feImage'), + (None, 'filter'), + (None, 'linearGradient'), + (None, 'pattern'), + (None, 'radialGradient'), + (None, 'textpath'), + (None, 'tref'), + (None, 'set'), + (None, 'use') +)) + +allowed_css_properties = frozenset(( + 'azimuth', + 'background-color', + 'border-bottom-color', + 'border-collapse', + 'border-color', + 'border-left-color', + 'border-right-color', + 'border-top-color', + 'clear', + 'color', + 'cursor', + 'direction', + 'display', + 'elevation', + 'float', + 'font', + 'font-family', + 'font-size', + 'font-style', + 'font-variant', + 'font-weight', + 'height', + 'letter-spacing', + 'line-height', + 'overflow', + 'pause', + 'pause-after', + 'pause-before', + 'pitch', + 'pitch-range', + 'richness', + 'speak', + 'speak-header', + 'speak-numeral', + 'speak-punctuation', + 'speech-rate', + 'stress', + 'text-align', + 'text-decoration', + 'text-indent', + 'unicode-bidi', + 'vertical-align', + 'voice-family', + 'volume', + 'white-space', + 'width', +)) + +allowed_css_keywords = frozenset(( + 'auto', + 'aqua', + 'black', + 'block', + 'blue', + 'bold', + 'both', + 'bottom', + 'brown', + 'center', + 'collapse', + 'dashed', + 'dotted', + 'fuchsia', + 'gray', + 'green', + '!important', + 'italic', + 'left', + 'lime', + 'maroon', + 'medium', + 'none', + 'navy', + 'normal', + 'nowrap', + 'olive', + 'pointer', + 'purple', + 'red', + 'right', + 'solid', + 'silver', + 'teal', + 'top', + 'transparent', + 'underline', + 'white', + 'yellow', +)) + +allowed_svg_properties = frozenset(( + 'fill', + 'fill-opacity', + 'fill-rule', + 'stroke', + 'stroke-width', + 'stroke-linecap', + 'stroke-linejoin', + 'stroke-opacity', +)) + +allowed_protocols = frozenset(( + 'ed2k', + 'ftp', + 'http', + 'https', + 'irc', + 'mailto', + 'news', + 'gopher', + 'nntp', + 'telnet', + 'webcal', + 'xmpp', + 'callto', + 'feed', + 'urn', + 'aim', + 'rsync', + 'tag', + 'ssh', + 'sftp', + 'rtsp', + 'afs', + 'data', +)) + +allowed_content_types = frozenset(( + 'image/png', + 'image/jpeg', + 'image/gif', + 'image/webp', + 'image/bmp', + 'text/plain', +)) + + +data_content_type = re.compile(r''' + ^ + # Match a content type <application>/<type> + (?P<content_type>[-a-zA-Z0-9.]+/[-a-zA-Z0-9.]+) + # Match any character set and encoding + (?:(?:;charset=(?:[-a-zA-Z0-9]+)(?:;(?:base64))?) + |(?:;(?:base64))?(?:;charset=(?:[-a-zA-Z0-9]+))?) + # Assume the rest is data + ,.* + $ + ''', + re.VERBOSE) + + +class Filter(base.Filter): + """Sanitizes token stream of XHTML+MathML+SVG and of inline style attributes""" + def __init__(self, + source, + allowed_elements=allowed_elements, + allowed_attributes=allowed_attributes, + allowed_css_properties=allowed_css_properties, + allowed_css_keywords=allowed_css_keywords, + allowed_svg_properties=allowed_svg_properties, + allowed_protocols=allowed_protocols, + allowed_content_types=allowed_content_types, + attr_val_is_uri=attr_val_is_uri, + svg_attr_val_allows_ref=svg_attr_val_allows_ref, + svg_allow_local_href=svg_allow_local_href): + """Creates a Filter + + :arg allowed_elements: set of elements to allow--everything else will + be escaped + + :arg allowed_attributes: set of attributes to allow in + elements--everything else will be stripped + + :arg allowed_css_properties: set of CSS properties to allow--everything + else will be stripped + + :arg allowed_css_keywords: set of CSS keywords to allow--everything + else will be stripped + + :arg allowed_svg_properties: set of SVG properties to allow--everything + else will be removed + + :arg allowed_protocols: set of allowed protocols for URIs + + :arg allowed_content_types: set of allowed content types for ``data`` URIs. + + :arg attr_val_is_uri: set of attributes that have URI values--values + that have a scheme not listed in ``allowed_protocols`` are removed + + :arg svg_attr_val_allows_ref: set of SVG attributes that can have + references + + :arg svg_allow_local_href: set of SVG elements that can have local + hrefs--these are removed + + """ + super(Filter, self).__init__(source) + self.allowed_elements = allowed_elements + self.allowed_attributes = allowed_attributes + self.allowed_css_properties = allowed_css_properties + self.allowed_css_keywords = allowed_css_keywords + self.allowed_svg_properties = allowed_svg_properties + self.allowed_protocols = allowed_protocols + self.allowed_content_types = allowed_content_types + self.attr_val_is_uri = attr_val_is_uri + self.svg_attr_val_allows_ref = svg_attr_val_allows_ref + self.svg_allow_local_href = svg_allow_local_href + + def __iter__(self): + for token in base.Filter.__iter__(self): + token = self.sanitize_token(token) + if token: + yield token + + # Sanitize the +html+, escaping all elements not in ALLOWED_ELEMENTS, and + # stripping out all attributes not in ALLOWED_ATTRIBUTES. Style attributes + # are parsed, and a restricted set, specified by ALLOWED_CSS_PROPERTIES and + # ALLOWED_CSS_KEYWORDS, are allowed through. attributes in ATTR_VAL_IS_URI + # are scanned, and only URI schemes specified in ALLOWED_PROTOCOLS are + # allowed. + # + # sanitize_html('<script> do_nasty_stuff() </script>') + # => <script> do_nasty_stuff() </script> + # sanitize_html('<a href="javascript: sucker();">Click here for $100</a>') + # => <a>Click here for $100</a> + def sanitize_token(self, token): + + # accommodate filters which use token_type differently + token_type = token["type"] + if token_type in ("StartTag", "EndTag", "EmptyTag"): + name = token["name"] + namespace = token["namespace"] + if ((namespace, name) in self.allowed_elements or + (namespace is None and + (namespaces["html"], name) in self.allowed_elements)): + return self.allowed_token(token) + else: + return self.disallowed_token(token) + elif token_type == "Comment": + pass + else: + return token + + def allowed_token(self, token): + if "data" in token: + attrs = token["data"] + attr_names = set(attrs.keys()) + + # Remove forbidden attributes + for to_remove in (attr_names - self.allowed_attributes): + del token["data"][to_remove] + attr_names.remove(to_remove) + + # Remove attributes with disallowed URL values + for attr in (attr_names & self.attr_val_is_uri): + assert attr in attrs + # I don't have a clue where this regexp comes from or why it matches those + # characters, nor why we call unescape. I just know it's always been here. + # Should you be worried by this comment in a sanitizer? Yes. On the other hand, all + # this will do is remove *more* than it otherwise would. + val_unescaped = re.sub("[`\x00-\x20\x7f-\xa0\\s]+", '', + unescape(attrs[attr])).lower() + # remove replacement characters from unescaped characters + val_unescaped = val_unescaped.replace("\ufffd", "") + try: + uri = urlparse.urlparse(val_unescaped) + except ValueError: + uri = None + del attrs[attr] + if uri and uri.scheme: + if uri.scheme not in self.allowed_protocols: + del attrs[attr] + if uri.scheme == 'data': + m = data_content_type.match(uri.path) + if not m: + del attrs[attr] + elif m.group('content_type') not in self.allowed_content_types: + del attrs[attr] + + for attr in self.svg_attr_val_allows_ref: + if attr in attrs: + attrs[attr] = re.sub(r'url\s*\(\s*[^#\s][^)]+?\)', + ' ', + unescape(attrs[attr])) + if (token["name"] in self.svg_allow_local_href and + (namespaces['xlink'], 'href') in attrs and re.search(r'^\s*[^#\s].*', + attrs[(namespaces['xlink'], 'href')])): + del attrs[(namespaces['xlink'], 'href')] + if (None, 'style') in attrs: + attrs[(None, 'style')] = self.sanitize_css(attrs[(None, 'style')]) + token["data"] = attrs + return token + + def disallowed_token(self, token): + token_type = token["type"] + if token_type == "EndTag": + token["data"] = "</%s>" % token["name"] + elif token["data"]: + assert token_type in ("StartTag", "EmptyTag") + attrs = [] + for (ns, name), v in token["data"].items(): + attrs.append(' %s="%s"' % (name if ns is None else "%s:%s" % (prefixes[ns], name), escape(v))) + token["data"] = "<%s%s>" % (token["name"], ''.join(attrs)) + else: + token["data"] = "<%s>" % token["name"] + if token.get("selfClosing"): + token["data"] = token["data"][:-1] + "/>" + + token["type"] = "Characters" + + del token["name"] + return token + + def sanitize_css(self, style): + # disallow urls + style = re.compile(r'url\s*\(\s*[^\s)]+?\s*\)\s*').sub(' ', style) + + # gauntlet + if not re.match(r"""^([:,;#%.\sa-zA-Z0-9!]|\w-\w|'[\s\w]+'|"[\s\w]+"|\([\d,\s]+\))*$""", style): + return '' + if not re.match(r"^\s*([-\w]+\s*:[^:;]*(;\s*|$))*$", style): + return '' + + clean = [] + for prop, value in re.findall(r"([-\w]+)\s*:\s*([^:;]*)", style): + if not value: + continue + if prop.lower() in self.allowed_css_properties: + clean.append(prop + ': ' + value + ';') + elif prop.split('-')[0].lower() in ['background', 'border', 'margin', + 'padding']: + for keyword in value.split(): + if keyword not in self.allowed_css_keywords and \ + not re.match(r"^(#[0-9a-fA-F]+|rgb\(\d+%?,\d*%?,?\d*%?\)?|\d{0,2}\.?\d{0,2}(cm|em|ex|in|mm|pc|pt|px|%|,|\))?)$", keyword): # noqa + break + else: + clean.append(prop + ': ' + value + ';') + elif prop.lower() in self.allowed_svg_properties: + clean.append(prop + ': ' + value + ';') + + return ' '.join(clean) diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/whitespace.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/whitespace.py index dfc60eebd35..0d12584b459 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/filters/whitespace.py +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/filters/whitespace.py @@ -2,20 +2,20 @@ from __future__ import absolute_import, division, unicode_literals import re -from . import _base +from . import base from ..constants import rcdataElements, spaceCharacters spaceCharacters = "".join(spaceCharacters) SPACES_REGEX = re.compile("[%s]+" % spaceCharacters) -class Filter(_base.Filter): - +class Filter(base.Filter): + """Collapses whitespace except in pre, textarea, and script elements""" spacePreserveElements = frozenset(["pre", "textarea"] + list(rcdataElements)) def __iter__(self): preserve = 0 - for token in _base.Filter.__iter__(self): + for token in base.Filter.__iter__(self): type = token["type"] if type == "StartTag" \ and (preserve or token["name"] in self.spacePreserveElements): diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/html5parser.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/html5parser.py index 5b9ce7d7206..9d39b9d41da 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/html5parser.py +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/html5parser.py @@ -1,38 +1,75 @@ from __future__ import absolute_import, division, unicode_literals -from six import with_metaclass +from six import with_metaclass, viewkeys import types +from collections import OrderedDict -from . import inputstream -from . import tokenizer +from . import _inputstream +from . import _tokenizer from . import treebuilders -from .treebuilders._base import Marker - -from . import utils -from . import constants -from .constants import spaceCharacters, asciiUpper2Lower -from .constants import specialElements -from .constants import headingElements -from .constants import cdataElements, rcdataElements -from .constants import tokenTypes, ReparseException, namespaces -from .constants import htmlIntegrationPointElements, mathmlTextIntegrationPointElements -from .constants import adjustForeignAttributes as adjustForeignAttributesMap - - -def parse(doc, treebuilder="etree", encoding=None, - namespaceHTMLElements=True): - """Parse a string or file-like object into a tree""" +from .treebuilders.base import Marker + +from . import _utils +from .constants import ( + spaceCharacters, asciiUpper2Lower, + specialElements, headingElements, cdataElements, rcdataElements, + tokenTypes, tagTokenTypes, + namespaces, + htmlIntegrationPointElements, mathmlTextIntegrationPointElements, + adjustForeignAttributes as adjustForeignAttributesMap, + adjustMathMLAttributes, adjustSVGAttributes, + E, + _ReparseException +) + + +def parse(doc, treebuilder="etree", namespaceHTMLElements=True, **kwargs): + """Parse an HTML document as a string or file-like object into a tree + + :arg doc: the document to parse as a string or file-like object + + :arg treebuilder: the treebuilder to use when parsing + + :arg namespaceHTMLElements: whether or not to namespace HTML elements + + :returns: parsed tree + + Example: + + >>> from html5lib.html5parser import parse + >>> parse('<html><body><p>This is a doc</p></body></html>') + <Element u'{http://www.w3.org/1999/xhtml}html' at 0x7feac4909db0> + + """ tb = treebuilders.getTreeBuilder(treebuilder) p = HTMLParser(tb, namespaceHTMLElements=namespaceHTMLElements) - return p.parse(doc, encoding=encoding) + return p.parse(doc, **kwargs) + + +def parseFragment(doc, container="div", treebuilder="etree", namespaceHTMLElements=True, **kwargs): + """Parse an HTML fragment as a string or file-like object into a tree + + :arg doc: the fragment to parse as a string or file-like object + :arg container: the container context to parse the fragment in -def parseFragment(doc, container="div", treebuilder="etree", encoding=None, - namespaceHTMLElements=True): + :arg treebuilder: the treebuilder to use when parsing + + :arg namespaceHTMLElements: whether or not to namespace HTML elements + + :returns: parsed tree + + Example: + + >>> from html5lib.html5libparser import parseFragment + >>> parseFragment('<b>this is a fragment</b>') + <Element u'DOCUMENT_FRAGMENT' at 0x7feac484b090> + + """ tb = treebuilders.getTreeBuilder(treebuilder) p = HTMLParser(tb, namespaceHTMLElements=namespaceHTMLElements) - return p.parseFragment(doc, container=container, encoding=encoding) + return p.parseFragment(doc, container=container, **kwargs) def method_decorator_metaclass(function): @@ -48,21 +85,30 @@ def method_decorator_metaclass(function): class HTMLParser(object): - """HTML parser. Generates a tree structure from a stream of (possibly - malformed) HTML""" + """HTML parser + + Generates a tree structure from a stream of (possibly malformed) HTML. - def __init__(self, tree=None, tokenizer=tokenizer.HTMLTokenizer, - strict=False, namespaceHTMLElements=True, debug=False): + """ + + def __init__(self, tree=None, strict=False, namespaceHTMLElements=True, debug=False): """ - strict - raise an exception when a parse error is encountered + :arg tree: a treebuilder class controlling the type of tree that will be + returned. Built in treebuilders can be accessed through + html5lib.treebuilders.getTreeBuilder(treeType) + + :arg strict: raise an exception when a parse error is encountered + + :arg namespaceHTMLElements: whether or not to namespace HTML elements - tree - a treebuilder class controlling the type of tree that will be - returned. Built in treebuilders can be accessed through - html5lib.treebuilders.getTreeBuilder(treeType) + :arg debug: whether or not to enable debug mode which logs things + + Example: + + >>> from html5lib.html5parser import HTMLParser + >>> parser = HTMLParser() # generates parser with etree builder + >>> parser = HTMLParser('lxml', strict=True) # generates parser with lxml builder which is strict - tokenizer - a class that provides a stream of tokens to the treebuilder. - This may be replaced for e.g. a sanitizer which converts some tags to - text """ # Raise an exception on the first error encountered @@ -71,29 +117,24 @@ class HTMLParser(object): if tree is None: tree = treebuilders.getTreeBuilder("etree") self.tree = tree(namespaceHTMLElements) - self.tokenizer_class = tokenizer self.errors = [] self.phases = dict([(name, cls(self, self.tree)) for name, cls in getPhases(debug).items()]) - def _parse(self, stream, innerHTML=False, container="div", - encoding=None, parseMeta=True, useChardet=True, **kwargs): + def _parse(self, stream, innerHTML=False, container="div", scripting=False, **kwargs): self.innerHTMLMode = innerHTML self.container = container - self.tokenizer = self.tokenizer_class(stream, encoding=encoding, - parseMeta=parseMeta, - useChardet=useChardet, - parser=self, **kwargs) + self.scripting = scripting + self.tokenizer = _tokenizer.HTMLTokenizer(stream, parser=self, **kwargs) self.reset() - while True: - try: - self.mainLoop() - break - except ReparseException: - self.reset() + try: + self.mainLoop() + except _ReparseException: + self.reset() + self.mainLoop() def reset(self): self.tree.reset() @@ -120,7 +161,7 @@ class HTMLParser(object): self.phase.insertHtmlElement() self.resetInsertionMode() else: - self.innerHTML = False + self.innerHTML = False # pylint:disable=redefined-variable-type self.phase = self.phases["initial"] self.lastPhase = None @@ -131,14 +172,13 @@ class HTMLParser(object): @property def documentEncoding(self): - """The name of the character encoding - that was used to decode the input stream, - or :obj:`None` if that is not determined yet. + """Name of the character encoding that was used to decode the input stream, or + :obj:`None` if that is not determined yet """ if not hasattr(self, 'tokenizer'): return None - return self.tokenizer.stream.charEncoding[0] + return self.tokenizer.stream.charEncoding[0].name def isHTMLIntegrationPoint(self, element): if (element.name == "annotation-xml" and @@ -163,8 +203,10 @@ class HTMLParser(object): ParseErrorToken = tokenTypes["ParseError"] for token in self.normalizedTokens(): + prev_token = None new_token = token while new_token is not None: + prev_token = new_token currentNode = self.tree.openElements[-1] if self.tree.openElements else None currentNodeNamespace = currentNode.namespace if currentNode else None currentNodeName = currentNode.name if currentNode else None @@ -183,6 +225,7 @@ class HTMLParser(object): type in (CharactersToken, SpaceCharactersToken))) or (currentNodeNamespace == namespaces["mathml"] and currentNodeName == "annotation-xml" and + type == StartTagToken and token["name"] == "svg") or (self.isHTMLIntegrationPoint(currentNode) and type in (StartTagToken, CharactersToken, SpaceCharactersToken))): @@ -203,10 +246,10 @@ class HTMLParser(object): elif type == DoctypeToken: new_token = phase.processDoctype(new_token) - if (type == StartTagToken and token["selfClosing"] - and not token["selfClosingAcknowledged"]): + if (type == StartTagToken and prev_token["selfClosing"] and + not prev_token["selfClosingAcknowledged"]): self.parseError("non-void-element-with-trailing-solidus", - {"name": token["name"]}) + {"name": prev_token["name"]}) # When the loop finishes it's EOF reprocess = True @@ -221,139 +264,89 @@ class HTMLParser(object): for token in self.tokenizer: yield self.normalizeToken(token) - def parse(self, stream, encoding=None, parseMeta=True, useChardet=True): + def parse(self, stream, *args, **kwargs): """Parse a HTML document into a well-formed tree - stream - a filelike object or string containing the HTML to be parsed + :arg stream: a file-like object or string containing the HTML to be parsed + + The optional encoding parameter must be a string that indicates + the encoding. If specified, that encoding will be used, + regardless of any BOM or later declaration (such as in a meta + element). + + :arg scripting: treat noscript elements as if JavaScript was turned on + + :returns: parsed tree + + Example: + + >>> from html5lib.html5parser import HTMLParser + >>> parser = HTMLParser() + >>> parser.parse('<html><body><p>This is a doc</p></body></html>') + <Element u'{http://www.w3.org/1999/xhtml}html' at 0x7feac4909db0> - The optional encoding parameter must be a string that indicates - the encoding. If specified, that encoding will be used, - regardless of any BOM or later declaration (such as in a meta - element) """ - self._parse(stream, innerHTML=False, encoding=encoding, - parseMeta=parseMeta, useChardet=useChardet) + self._parse(stream, False, None, *args, **kwargs) return self.tree.getDocument() - def parseFragment(self, stream, container="div", encoding=None, - parseMeta=False, useChardet=True): + def parseFragment(self, stream, *args, **kwargs): """Parse a HTML fragment into a well-formed tree fragment - container - name of the element we're setting the innerHTML property - if set to None, default to 'div' + :arg container: name of the element we're setting the innerHTML + property if set to None, default to 'div' + + :arg stream: a file-like object or string containing the HTML to be parsed + + The optional encoding parameter must be a string that indicates + the encoding. If specified, that encoding will be used, + regardless of any BOM or later declaration (such as in a meta + element) - stream - a filelike object or string containing the HTML to be parsed + :arg scripting: treat noscript elements as if JavaScript was turned on + + :returns: parsed tree + + Example: + + >>> from html5lib.html5libparser import HTMLParser + >>> parser = HTMLParser() + >>> parser.parseFragment('<b>this is a fragment</b>') + <Element u'DOCUMENT_FRAGMENT' at 0x7feac484b090> - The optional encoding parameter must be a string that indicates - the encoding. If specified, that encoding will be used, - regardless of any BOM or later declaration (such as in a meta - element) """ - self._parse(stream, True, container=container, encoding=encoding) + self._parse(stream, True, *args, **kwargs) return self.tree.getFragment() - def parseError(self, errorcode="XXX-undefined-error", datavars={}): + def parseError(self, errorcode="XXX-undefined-error", datavars=None): # XXX The idea is to make errorcode mandatory. + if datavars is None: + datavars = {} self.errors.append((self.tokenizer.stream.position(), errorcode, datavars)) if self.strict: - raise ParseError + raise ParseError(E[errorcode] % datavars) def normalizeToken(self, token): - """ HTML5 specific normalizations to the token stream """ - + # HTML5 specific normalizations to the token stream if token["type"] == tokenTypes["StartTag"]: - token["data"] = dict(token["data"][::-1]) + raw = token["data"] + token["data"] = OrderedDict(raw) + if len(raw) > len(token["data"]): + # we had some duplicated attribute, fix so first wins + token["data"].update(raw[::-1]) return token def adjustMathMLAttributes(self, token): - replacements = {"definitionurl": "definitionURL"} - for k, v in replacements.items(): - if k in token["data"]: - token["data"][v] = token["data"][k] - del token["data"][k] + adjust_attributes(token, adjustMathMLAttributes) def adjustSVGAttributes(self, token): - replacements = { - "attributename": "attributeName", - "attributetype": "attributeType", - "basefrequency": "baseFrequency", - "baseprofile": "baseProfile", - "calcmode": "calcMode", - "clippathunits": "clipPathUnits", - "contentscripttype": "contentScriptType", - "contentstyletype": "contentStyleType", - "diffuseconstant": "diffuseConstant", - "edgemode": "edgeMode", - "externalresourcesrequired": "externalResourcesRequired", - "filterres": "filterRes", - "filterunits": "filterUnits", - "glyphref": "glyphRef", - "gradienttransform": "gradientTransform", - "gradientunits": "gradientUnits", - "kernelmatrix": "kernelMatrix", - "kernelunitlength": "kernelUnitLength", - "keypoints": "keyPoints", - "keysplines": "keySplines", - "keytimes": "keyTimes", - "lengthadjust": "lengthAdjust", - "limitingconeangle": "limitingConeAngle", - "markerheight": "markerHeight", - "markerunits": "markerUnits", - "markerwidth": "markerWidth", - "maskcontentunits": "maskContentUnits", - "maskunits": "maskUnits", - "numoctaves": "numOctaves", - "pathlength": "pathLength", - "patterncontentunits": "patternContentUnits", - "patterntransform": "patternTransform", - "patternunits": "patternUnits", - "pointsatx": "pointsAtX", - "pointsaty": "pointsAtY", - "pointsatz": "pointsAtZ", - "preservealpha": "preserveAlpha", - "preserveaspectratio": "preserveAspectRatio", - "primitiveunits": "primitiveUnits", - "refx": "refX", - "refy": "refY", - "repeatcount": "repeatCount", - "repeatdur": "repeatDur", - "requiredextensions": "requiredExtensions", - "requiredfeatures": "requiredFeatures", - "specularconstant": "specularConstant", - "specularexponent": "specularExponent", - "spreadmethod": "spreadMethod", - "startoffset": "startOffset", - "stddeviation": "stdDeviation", - "stitchtiles": "stitchTiles", - "surfacescale": "surfaceScale", - "systemlanguage": "systemLanguage", - "tablevalues": "tableValues", - "targetx": "targetX", - "targety": "targetY", - "textlength": "textLength", - "viewbox": "viewBox", - "viewtarget": "viewTarget", - "xchannelselector": "xChannelSelector", - "ychannelselector": "yChannelSelector", - "zoomandpan": "zoomAndPan" - } - for originalName in list(token["data"].keys()): - if originalName in replacements: - svgName = replacements[originalName] - token["data"][svgName] = token["data"][originalName] - del token["data"][originalName] + adjust_attributes(token, adjustSVGAttributes) def adjustForeignAttributes(self, token): - replacements = adjustForeignAttributesMap - - for originalName in token["data"].keys(): - if originalName in replacements: - foreignName = replacements[originalName] - token["data"][foreignName] = token["data"][originalName] - del token["data"][originalName] + adjust_attributes(token, adjustForeignAttributesMap) def reparseTokenNormal(self, token): + # pylint:disable=unused-argument self.parser.phase() def resetInsertionMode(self): @@ -401,9 +394,7 @@ class HTMLParser(object): self.phase = new_phase def parseRCDataRawtext(self, token, contentType): - """Generic RCDATA/RAWTEXT Parsing algorithm - contentType - RCDATA or RAWTEXT - """ + # Generic RCDATA/RAWTEXT Parsing algorithm assert contentType in ("RAWTEXT", "RCDATA") self.tree.insertElement(token) @@ -418,11 +409,12 @@ class HTMLParser(object): self.phase = self.phases["text"] +@_utils.memoize def getPhases(debug): def log(function): """Logger that records which phase processes each token""" type_names = dict((value, key) for key, value in - constants.tokenTypes.items()) + tokenTypes.items()) def wrapped(self, *args, **kwargs): if function.__name__.startswith("process") and len(args) > 0: @@ -431,7 +423,7 @@ def getPhases(debug): info = {"type": type_names[token['type']]} except: raise - if token['type'] in constants.tagTokenTypes: + if token['type'] in tagTokenTypes: info["name"] = token['name'] self.parser.log.append((self.parser.tokenizer.state.__name__, @@ -450,6 +442,7 @@ def getPhases(debug): else: return type + # pylint:disable=unused-argument class Phase(with_metaclass(getMetaclass(debug, log))): """Base class for helper object that implements each phase of processing """ @@ -516,77 +509,76 @@ def getPhases(debug): if publicId != "": publicId = publicId.translate(asciiUpper2Lower) - if (not correct or token["name"] != "html" - or publicId.startswith( - ("+//silmaril//dtd html pro v0r11 19970101//", - "-//advasoft ltd//dtd html 3.0 aswedit + extensions//", - "-//as//dtd html 3.0 aswedit + extensions//", - "-//ietf//dtd html 2.0 level 1//", - "-//ietf//dtd html 2.0 level 2//", - "-//ietf//dtd html 2.0 strict level 1//", - "-//ietf//dtd html 2.0 strict level 2//", - "-//ietf//dtd html 2.0 strict//", - "-//ietf//dtd html 2.0//", - "-//ietf//dtd html 2.1e//", - "-//ietf//dtd html 3.0//", - "-//ietf//dtd html 3.2 final//", - "-//ietf//dtd html 3.2//", - "-//ietf//dtd html 3//", - "-//ietf//dtd html level 0//", - "-//ietf//dtd html level 1//", - "-//ietf//dtd html level 2//", - "-//ietf//dtd html level 3//", - "-//ietf//dtd html strict level 0//", - "-//ietf//dtd html strict level 1//", - "-//ietf//dtd html strict level 2//", - "-//ietf//dtd html strict level 3//", - "-//ietf//dtd html strict//", - "-//ietf//dtd html//", - "-//metrius//dtd metrius presentational//", - "-//microsoft//dtd internet explorer 2.0 html strict//", - "-//microsoft//dtd internet explorer 2.0 html//", - "-//microsoft//dtd internet explorer 2.0 tables//", - "-//microsoft//dtd internet explorer 3.0 html strict//", - "-//microsoft//dtd internet explorer 3.0 html//", - "-//microsoft//dtd internet explorer 3.0 tables//", - "-//netscape comm. corp.//dtd html//", - "-//netscape comm. corp.//dtd strict html//", - "-//o'reilly and associates//dtd html 2.0//", - "-//o'reilly and associates//dtd html extended 1.0//", - "-//o'reilly and associates//dtd html extended relaxed 1.0//", - "-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//", - "-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//", - "-//spyglass//dtd html 2.0 extended//", - "-//sq//dtd html 2.0 hotmetal + extensions//", - "-//sun microsystems corp.//dtd hotjava html//", - "-//sun microsystems corp.//dtd hotjava strict html//", - "-//w3c//dtd html 3 1995-03-24//", - "-//w3c//dtd html 3.2 draft//", - "-//w3c//dtd html 3.2 final//", - "-//w3c//dtd html 3.2//", - "-//w3c//dtd html 3.2s draft//", - "-//w3c//dtd html 4.0 frameset//", - "-//w3c//dtd html 4.0 transitional//", - "-//w3c//dtd html experimental 19960712//", - "-//w3c//dtd html experimental 970421//", - "-//w3c//dtd w3 html//", - "-//w3o//dtd w3 html 3.0//", - "-//webtechs//dtd mozilla html 2.0//", - "-//webtechs//dtd mozilla html//")) - or publicId in - ("-//w3o//dtd w3 html strict 3.0//en//", - "-/w3c/dtd html 4.0 transitional/en", - "html") - or publicId.startswith( - ("-//w3c//dtd html 4.01 frameset//", - "-//w3c//dtd html 4.01 transitional//")) and - systemId is None - or systemId and systemId.lower() == "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd"): + if (not correct or token["name"] != "html" or + publicId.startswith( + ("+//silmaril//dtd html pro v0r11 19970101//", + "-//advasoft ltd//dtd html 3.0 aswedit + extensions//", + "-//as//dtd html 3.0 aswedit + extensions//", + "-//ietf//dtd html 2.0 level 1//", + "-//ietf//dtd html 2.0 level 2//", + "-//ietf//dtd html 2.0 strict level 1//", + "-//ietf//dtd html 2.0 strict level 2//", + "-//ietf//dtd html 2.0 strict//", + "-//ietf//dtd html 2.0//", + "-//ietf//dtd html 2.1e//", + "-//ietf//dtd html 3.0//", + "-//ietf//dtd html 3.2 final//", + "-//ietf//dtd html 3.2//", + "-//ietf//dtd html 3//", + "-//ietf//dtd html level 0//", + "-//ietf//dtd html level 1//", + "-//ietf//dtd html level 2//", + "-//ietf//dtd html level 3//", + "-//ietf//dtd html strict level 0//", + "-//ietf//dtd html strict level 1//", + "-//ietf//dtd html strict level 2//", + "-//ietf//dtd html strict level 3//", + "-//ietf//dtd html strict//", + "-//ietf//dtd html//", + "-//metrius//dtd metrius presentational//", + "-//microsoft//dtd internet explorer 2.0 html strict//", + "-//microsoft//dtd internet explorer 2.0 html//", + "-//microsoft//dtd internet explorer 2.0 tables//", + "-//microsoft//dtd internet explorer 3.0 html strict//", + "-//microsoft//dtd internet explorer 3.0 html//", + "-//microsoft//dtd internet explorer 3.0 tables//", + "-//netscape comm. corp.//dtd html//", + "-//netscape comm. corp.//dtd strict html//", + "-//o'reilly and associates//dtd html 2.0//", + "-//o'reilly and associates//dtd html extended 1.0//", + "-//o'reilly and associates//dtd html extended relaxed 1.0//", + "-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//", + "-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//", + "-//spyglass//dtd html 2.0 extended//", + "-//sq//dtd html 2.0 hotmetal + extensions//", + "-//sun microsystems corp.//dtd hotjava html//", + "-//sun microsystems corp.//dtd hotjava strict html//", + "-//w3c//dtd html 3 1995-03-24//", + "-//w3c//dtd html 3.2 draft//", + "-//w3c//dtd html 3.2 final//", + "-//w3c//dtd html 3.2//", + "-//w3c//dtd html 3.2s draft//", + "-//w3c//dtd html 4.0 frameset//", + "-//w3c//dtd html 4.0 transitional//", + "-//w3c//dtd html experimental 19960712//", + "-//w3c//dtd html experimental 970421//", + "-//w3c//dtd w3 html//", + "-//w3o//dtd w3 html 3.0//", + "-//webtechs//dtd mozilla html 2.0//", + "-//webtechs//dtd mozilla html//")) or + publicId in ("-//w3o//dtd w3 html strict 3.0//en//", + "-/w3c/dtd html 4.0 transitional/en", + "html") or + publicId.startswith( + ("-//w3c//dtd html 4.01 frameset//", + "-//w3c//dtd html 4.01 transitional//")) and + systemId is None or + systemId and systemId.lower() == "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd"): self.parser.compatMode = "quirks" elif (publicId.startswith( ("-//w3c//dtd xhtml 1.0 frameset//", - "-//w3c//dtd xhtml 1.0 transitional//")) - or publicId.startswith( + "-//w3c//dtd xhtml 1.0 transitional//")) or + publicId.startswith( ("-//w3c//dtd html 4.01 frameset//", "-//w3c//dtd html 4.01 transitional//")) and systemId is not None): @@ -659,13 +651,13 @@ def getPhases(debug): def __init__(self, parser, tree): Phase.__init__(self, parser, tree) - self.startTagHandler = utils.MethodDispatcher([ + self.startTagHandler = _utils.MethodDispatcher([ ("html", self.startTagHtml), ("head", self.startTagHead) ]) self.startTagHandler.default = self.startTagOther - self.endTagHandler = utils.MethodDispatcher([ + self.endTagHandler = _utils.MethodDispatcher([ (("head", "body", "html", "br"), self.endTagImplyHead) ]) self.endTagHandler.default = self.endTagOther @@ -705,10 +697,11 @@ def getPhases(debug): def __init__(self, parser, tree): Phase.__init__(self, parser, tree) - self.startTagHandler = utils.MethodDispatcher([ + self.startTagHandler = _utils.MethodDispatcher([ ("html", self.startTagHtml), ("title", self.startTagTitle), - (("noscript", "noframes", "style"), self.startTagNoScriptNoFramesStyle), + (("noframes", "style"), self.startTagNoFramesStyle), + ("noscript", self.startTagNoscript), ("script", self.startTagScript), (("base", "basefont", "bgsound", "command", "link"), self.startTagBaseLinkCommand), @@ -717,7 +710,7 @@ def getPhases(debug): ]) self.startTagHandler.default = self.startTagOther - self. endTagHandler = utils.MethodDispatcher([ + self.endTagHandler = _utils.MethodDispatcher([ ("head", self.endTagHead), (("br", "html", "body"), self.endTagHtmlBodyBr) ]) @@ -759,18 +752,25 @@ def getPhases(debug): # the abstract Unicode string, and just use the # ContentAttrParser on that, but using UTF-8 allows all chars # to be encoded and as a ASCII-superset works. - data = inputstream.EncodingBytes(attributes["content"].encode("utf-8")) - parser = inputstream.ContentAttrParser(data) + data = _inputstream.EncodingBytes(attributes["content"].encode("utf-8")) + parser = _inputstream.ContentAttrParser(data) codec = parser.parse() self.parser.tokenizer.stream.changeEncoding(codec) def startTagTitle(self, token): self.parser.parseRCDataRawtext(token, "RCDATA") - def startTagNoScriptNoFramesStyle(self, token): + def startTagNoFramesStyle(self, token): # Need to decide whether to implement the scripting-disabled case self.parser.parseRCDataRawtext(token, "RAWTEXT") + def startTagNoscript(self, token): + if self.parser.scripting: + self.parser.parseRCDataRawtext(token, "RAWTEXT") + else: + self.tree.insertElement(token) + self.parser.phase = self.parser.phases["inHeadNoscript"] + def startTagScript(self, token): self.tree.insertElement(token) self.parser.tokenizer.state = self.parser.tokenizer.scriptDataState @@ -796,15 +796,75 @@ def getPhases(debug): def anythingElse(self): self.endTagHead(impliedTagToken("head")) - # XXX If we implement a parser for which scripting is disabled we need to - # implement this phase. - # - # class InHeadNoScriptPhase(Phase): + class InHeadNoscriptPhase(Phase): + def __init__(self, parser, tree): + Phase.__init__(self, parser, tree) + + self.startTagHandler = _utils.MethodDispatcher([ + ("html", self.startTagHtml), + (("basefont", "bgsound", "link", "meta", "noframes", "style"), self.startTagBaseLinkCommand), + (("head", "noscript"), self.startTagHeadNoscript), + ]) + self.startTagHandler.default = self.startTagOther + + self.endTagHandler = _utils.MethodDispatcher([ + ("noscript", self.endTagNoscript), + ("br", self.endTagBr), + ]) + self.endTagHandler.default = self.endTagOther + + def processEOF(self): + self.parser.parseError("eof-in-head-noscript") + self.anythingElse() + return True + + def processComment(self, token): + return self.parser.phases["inHead"].processComment(token) + + def processCharacters(self, token): + self.parser.parseError("char-in-head-noscript") + self.anythingElse() + return token + + def processSpaceCharacters(self, token): + return self.parser.phases["inHead"].processSpaceCharacters(token) + + def startTagHtml(self, token): + return self.parser.phases["inBody"].processStartTag(token) + + def startTagBaseLinkCommand(self, token): + return self.parser.phases["inHead"].processStartTag(token) + + def startTagHeadNoscript(self, token): + self.parser.parseError("unexpected-start-tag", {"name": token["name"]}) + + def startTagOther(self, token): + self.parser.parseError("unexpected-inhead-noscript-tag", {"name": token["name"]}) + self.anythingElse() + return token + + def endTagNoscript(self, token): + node = self.parser.tree.openElements.pop() + assert node.name == "noscript", "Expected noscript got %s" % node.name + self.parser.phase = self.parser.phases["inHead"] + + def endTagBr(self, token): + self.parser.parseError("unexpected-inhead-noscript-tag", {"name": token["name"]}) + self.anythingElse() + return token + + def endTagOther(self, token): + self.parser.parseError("unexpected-end-tag", {"name": token["name"]}) + + def anythingElse(self): + # Caller must raise parse error first! + self.endTagNoscript(impliedTagToken("noscript")) + class AfterHeadPhase(Phase): def __init__(self, parser, tree): Phase.__init__(self, parser, tree) - self.startTagHandler = utils.MethodDispatcher([ + self.startTagHandler = _utils.MethodDispatcher([ ("html", self.startTagHtml), ("body", self.startTagBody), ("frameset", self.startTagFrameset), @@ -814,8 +874,8 @@ def getPhases(debug): ("head", self.startTagHead) ]) self.startTagHandler.default = self.startTagOther - self.endTagHandler = utils.MethodDispatcher([(("body", "html", "br"), - self.endTagHtmlBodyBr)]) + self.endTagHandler = _utils.MethodDispatcher([(("body", "html", "br"), + self.endTagHtmlBodyBr)]) self.endTagHandler.default = self.endTagOther def processEOF(self): @@ -873,18 +933,18 @@ def getPhases(debug): def __init__(self, parser, tree): Phase.__init__(self, parser, tree) - # Keep a ref to this for special handling of whitespace in <pre> - self.processSpaceCharactersNonPre = self.processSpaceCharacters + # Set this to the default handler + self.processSpaceCharacters = self.processSpaceCharactersNonPre - self.startTagHandler = utils.MethodDispatcher([ + self.startTagHandler = _utils.MethodDispatcher([ ("html", self.startTagHtml), (("base", "basefont", "bgsound", "command", "link", "meta", - "noframes", "script", "style", "title"), + "script", "style", "title"), self.startTagProcessInHead), ("body", self.startTagBody), ("frameset", self.startTagFrameset), (("address", "article", "aside", "blockquote", "center", "details", - "details", "dir", "div", "dl", "fieldset", "figcaption", "figure", + "dir", "div", "dl", "fieldset", "figcaption", "figure", "footer", "header", "hgroup", "main", "menu", "nav", "ol", "p", "section", "summary", "ul"), self.startTagCloseP), @@ -910,7 +970,8 @@ def getPhases(debug): ("isindex", self.startTagIsIndex), ("textarea", self.startTagTextarea), ("iframe", self.startTagIFrame), - (("noembed", "noframes", "noscript"), self.startTagRawtext), + ("noscript", self.startTagNoscript), + (("noembed", "noframes"), self.startTagRawtext), ("select", self.startTagSelect), (("rp", "rt"), self.startTagRpRt), (("option", "optgroup"), self.startTagOpt), @@ -922,7 +983,7 @@ def getPhases(debug): ]) self.startTagHandler.default = self.startTagOther - self.endTagHandler = utils.MethodDispatcher([ + self.endTagHandler = _utils.MethodDispatcher([ ("body", self.endTagBody), ("html", self.endTagHtml), (("address", "article", "aside", "blockquote", "button", "center", @@ -941,17 +1002,9 @@ def getPhases(debug): self.endTagHandler.default = self.endTagOther def isMatchingFormattingElement(self, node1, node2): - if node1.name != node2.name or node1.namespace != node2.namespace: - return False - elif len(node1.attributes) != len(node2.attributes): - return False - else: - attributes1 = sorted(node1.attributes.items()) - attributes2 = sorted(node2.attributes.items()) - for attr1, attr2 in zip(attributes1, attributes2): - if attr1 != attr2: - return False - return True + return (node1.name == node2.name and + node1.namespace == node2.namespace and + node1.attributes == node2.attributes) # helper def addFormattingElement(self, token): @@ -987,8 +1040,8 @@ def getPhases(debug): data = token["data"] self.processSpaceCharacters = self.processSpaceCharactersNonPre if (data.startswith("\n") and - self.tree.openElements[-1].name in ("pre", "listing", "textarea") - and not self.tree.openElements[-1].hasContent()): + self.tree.openElements[-1].name in ("pre", "listing", "textarea") and + not self.tree.openElements[-1].hasContent()): data = data[1:] if data: self.tree.reconstructActiveFormattingElements() @@ -1006,7 +1059,7 @@ def getPhases(debug): for char in token["data"]])): self.parser.framesetOK = False - def processSpaceCharacters(self, token): + def processSpaceCharactersNonPre(self, token): self.tree.reconstructActiveFormattingElements() self.tree.insertText(token["data"]) @@ -1015,8 +1068,8 @@ def getPhases(debug): def startTagBody(self, token): self.parser.parseError("unexpected-start-tag", {"name": "body"}) - if (len(self.tree.openElements) == 1 - or self.tree.openElements[1].name != "body"): + if (len(self.tree.openElements) == 1 or + self.tree.openElements[1].name != "body"): assert self.parser.innerHTML else: self.parser.framesetOK = False @@ -1231,6 +1284,12 @@ def getPhases(debug): self.parser.framesetOK = False self.startTagRawtext(token) + def startTagNoscript(self, token): + if self.parser.scripting: + self.startTagRawtext(token) + else: + self.startTagOther(token) + def startTagRawtext(self, token): """iframe, noembed noframes, noscript(if scripting enabled)""" self.parser.parseRCDataRawtext(token, "RAWTEXT") @@ -1326,7 +1385,7 @@ def getPhases(debug): # Not sure this is the correct name for the parse error self.parser.parseError( "expected-one-end-tag-but-got-another", - {"expectedName": "body", "gotName": node.name}) + {"gotName": "body", "expectedName": node.name}) break self.parser.phase = self.parser.phases["afterBody"] @@ -1594,9 +1653,9 @@ def getPhases(debug): class TextPhase(Phase): def __init__(self, parser, tree): Phase.__init__(self, parser, tree) - self.startTagHandler = utils.MethodDispatcher([]) + self.startTagHandler = _utils.MethodDispatcher([]) self.startTagHandler.default = self.startTagOther - self.endTagHandler = utils.MethodDispatcher([ + self.endTagHandler = _utils.MethodDispatcher([ ("script", self.endTagScript)]) self.endTagHandler.default = self.endTagOther @@ -1628,7 +1687,7 @@ def getPhases(debug): # http://www.whatwg.org/specs/web-apps/current-work/#in-table def __init__(self, parser, tree): Phase.__init__(self, parser, tree) - self.startTagHandler = utils.MethodDispatcher([ + self.startTagHandler = _utils.MethodDispatcher([ ("html", self.startTagHtml), ("caption", self.startTagCaption), ("colgroup", self.startTagColgroup), @@ -1642,7 +1701,7 @@ def getPhases(debug): ]) self.startTagHandler.default = self.startTagOther - self.endTagHandler = utils.MethodDispatcher([ + self.endTagHandler = _utils.MethodDispatcher([ ("table", self.endTagTable), (("body", "caption", "col", "colgroup", "html", "tbody", "td", "tfoot", "th", "thead", "tr"), self.endTagIgnore) @@ -1819,14 +1878,14 @@ def getPhases(debug): def __init__(self, parser, tree): Phase.__init__(self, parser, tree) - self.startTagHandler = utils.MethodDispatcher([ + self.startTagHandler = _utils.MethodDispatcher([ ("html", self.startTagHtml), (("caption", "col", "colgroup", "tbody", "td", "tfoot", "th", "thead", "tr"), self.startTagTableElement) ]) self.startTagHandler.default = self.startTagOther - self.endTagHandler = utils.MethodDispatcher([ + self.endTagHandler = _utils.MethodDispatcher([ ("caption", self.endTagCaption), ("table", self.endTagTable), (("body", "col", "colgroup", "html", "tbody", "td", "tfoot", "th", @@ -1891,13 +1950,13 @@ def getPhases(debug): def __init__(self, parser, tree): Phase.__init__(self, parser, tree) - self.startTagHandler = utils.MethodDispatcher([ + self.startTagHandler = _utils.MethodDispatcher([ ("html", self.startTagHtml), ("col", self.startTagCol) ]) self.startTagHandler.default = self.startTagOther - self.endTagHandler = utils.MethodDispatcher([ + self.endTagHandler = _utils.MethodDispatcher([ ("colgroup", self.endTagColgroup), ("col", self.endTagCol) ]) @@ -1925,6 +1984,7 @@ def getPhases(debug): def startTagCol(self, token): self.tree.insertElement(token) self.tree.openElements.pop() + token["selfClosingAcknowledged"] = True def startTagOther(self, token): ignoreEndTag = self.ignoreEndTagColgroup() @@ -1954,7 +2014,7 @@ def getPhases(debug): # http://www.whatwg.org/specs/web-apps/current-work/#in-table0 def __init__(self, parser, tree): Phase.__init__(self, parser, tree) - self.startTagHandler = utils.MethodDispatcher([ + self.startTagHandler = _utils.MethodDispatcher([ ("html", self.startTagHtml), ("tr", self.startTagTr), (("td", "th"), self.startTagTableCell), @@ -1963,7 +2023,7 @@ def getPhases(debug): ]) self.startTagHandler.default = self.startTagOther - self.endTagHandler = utils.MethodDispatcher([ + self.endTagHandler = _utils.MethodDispatcher([ (("tbody", "tfoot", "thead"), self.endTagTableRowGroup), ("table", self.endTagTable), (("body", "caption", "col", "colgroup", "html", "td", "th", @@ -2052,7 +2112,7 @@ def getPhases(debug): # http://www.whatwg.org/specs/web-apps/current-work/#in-row def __init__(self, parser, tree): Phase.__init__(self, parser, tree) - self.startTagHandler = utils.MethodDispatcher([ + self.startTagHandler = _utils.MethodDispatcher([ ("html", self.startTagHtml), (("td", "th"), self.startTagTableCell), (("caption", "col", "colgroup", "tbody", "tfoot", "thead", @@ -2060,7 +2120,7 @@ def getPhases(debug): ]) self.startTagHandler.default = self.startTagOther - self.endTagHandler = utils.MethodDispatcher([ + self.endTagHandler = _utils.MethodDispatcher([ ("tr", self.endTagTr), ("table", self.endTagTable), (("tbody", "tfoot", "thead"), self.endTagTableRowGroup), @@ -2141,14 +2201,14 @@ def getPhases(debug): # http://www.whatwg.org/specs/web-apps/current-work/#in-cell def __init__(self, parser, tree): Phase.__init__(self, parser, tree) - self.startTagHandler = utils.MethodDispatcher([ + self.startTagHandler = _utils.MethodDispatcher([ ("html", self.startTagHtml), (("caption", "col", "colgroup", "tbody", "td", "tfoot", "th", "thead", "tr"), self.startTagTableOther) ]) self.startTagHandler.default = self.startTagOther - self.endTagHandler = utils.MethodDispatcher([ + self.endTagHandler = _utils.MethodDispatcher([ (("td", "th"), self.endTagTableCell), (("body", "caption", "col", "colgroup", "html"), self.endTagIgnore), (("table", "tbody", "tfoot", "thead", "tr"), self.endTagImply) @@ -2217,7 +2277,7 @@ def getPhases(debug): def __init__(self, parser, tree): Phase.__init__(self, parser, tree) - self.startTagHandler = utils.MethodDispatcher([ + self.startTagHandler = _utils.MethodDispatcher([ ("html", self.startTagHtml), ("option", self.startTagOption), ("optgroup", self.startTagOptgroup), @@ -2227,7 +2287,7 @@ def getPhases(debug): ]) self.startTagHandler.default = self.startTagOther - self.endTagHandler = utils.MethodDispatcher([ + self.endTagHandler = _utils.MethodDispatcher([ ("option", self.endTagOption), ("optgroup", self.endTagOptgroup), ("select", self.endTagSelect) @@ -2317,13 +2377,13 @@ def getPhases(debug): def __init__(self, parser, tree): Phase.__init__(self, parser, tree) - self.startTagHandler = utils.MethodDispatcher([ + self.startTagHandler = _utils.MethodDispatcher([ (("caption", "table", "tbody", "tfoot", "thead", "tr", "td", "th"), self.startTagTable) ]) self.startTagHandler.default = self.startTagOther - self.endTagHandler = utils.MethodDispatcher([ + self.endTagHandler = _utils.MethodDispatcher([ (("caption", "table", "tbody", "tfoot", "thead", "tr", "td", "th"), self.endTagTable) ]) @@ -2444,7 +2504,7 @@ def getPhases(debug): def processEndTag(self, token): nodeIndex = len(self.tree.openElements) - 1 node = self.tree.openElements[-1] - if node.name != token["name"]: + if node.name.translate(asciiUpper2Lower) != token["name"]: self.parser.parseError("unexpected-end-tag", {"name": token["name"]}) while True: @@ -2471,12 +2531,12 @@ def getPhases(debug): def __init__(self, parser, tree): Phase.__init__(self, parser, tree) - self.startTagHandler = utils.MethodDispatcher([ + self.startTagHandler = _utils.MethodDispatcher([ ("html", self.startTagHtml) ]) self.startTagHandler.default = self.startTagOther - self.endTagHandler = utils.MethodDispatcher([("html", self.endTagHtml)]) + self.endTagHandler = _utils.MethodDispatcher([("html", self.endTagHtml)]) self.endTagHandler.default = self.endTagOther def processEOF(self): @@ -2519,7 +2579,7 @@ def getPhases(debug): def __init__(self, parser, tree): Phase.__init__(self, parser, tree) - self.startTagHandler = utils.MethodDispatcher([ + self.startTagHandler = _utils.MethodDispatcher([ ("html", self.startTagHtml), ("frameset", self.startTagFrameset), ("frame", self.startTagFrame), @@ -2527,7 +2587,7 @@ def getPhases(debug): ]) self.startTagHandler.default = self.startTagOther - self.endTagHandler = utils.MethodDispatcher([ + self.endTagHandler = _utils.MethodDispatcher([ ("frameset", self.endTagFrameset) ]) self.endTagHandler.default = self.endTagOther @@ -2563,7 +2623,7 @@ def getPhases(debug): self.tree.openElements.pop() if (not self.parser.innerHTML and self.tree.openElements[-1].name != "frameset"): - # If we're not in innerHTML mode and the the current node is not a + # If we're not in innerHTML mode and the current node is not a # "frameset" element (anymore) then switch. self.parser.phase = self.parser.phases["afterFrameset"] @@ -2576,13 +2636,13 @@ def getPhases(debug): def __init__(self, parser, tree): Phase.__init__(self, parser, tree) - self.startTagHandler = utils.MethodDispatcher([ + self.startTagHandler = _utils.MethodDispatcher([ ("html", self.startTagHtml), ("noframes", self.startTagNoframes) ]) self.startTagHandler.default = self.startTagOther - self.endTagHandler = utils.MethodDispatcher([ + self.endTagHandler = _utils.MethodDispatcher([ ("html", self.endTagHtml) ]) self.endTagHandler.default = self.endTagOther @@ -2612,7 +2672,7 @@ def getPhases(debug): def __init__(self, parser, tree): Phase.__init__(self, parser, tree) - self.startTagHandler = utils.MethodDispatcher([ + self.startTagHandler = _utils.MethodDispatcher([ ("html", self.startTagHtml) ]) self.startTagHandler.default = self.startTagOther @@ -2650,7 +2710,7 @@ def getPhases(debug): def __init__(self, parser, tree): Phase.__init__(self, parser, tree) - self.startTagHandler = utils.MethodDispatcher([ + self.startTagHandler = _utils.MethodDispatcher([ ("html", self.startTagHtml), ("noframes", self.startTagNoFrames) ]) @@ -2681,13 +2741,14 @@ def getPhases(debug): def processEndTag(self, token): self.parser.parseError("expected-eof-but-got-end-tag", {"name": token["name"]}) + # pylint:enable=unused-argument return { "initial": InitialPhase, "beforeHtml": BeforeHtmlPhase, "beforeHead": BeforeHeadPhase, "inHead": InHeadPhase, - # XXX "inHeadNoscript": InHeadNoScriptPhase, + "inHeadNoscript": InHeadNoscriptPhase, "afterHead": AfterHeadPhase, "inBody": InBodyPhase, "text": TextPhase, @@ -2710,6 +2771,13 @@ def getPhases(debug): } +def adjust_attributes(token, replacements): + needs_adjustment = viewkeys(token['data']) & viewkeys(replacements) + if needs_adjustment: + token['data'] = OrderedDict((replacements.get(k, k), v) + for k, v in token['data'].items()) + + def impliedTagToken(name, type="EndTag", attributes=None, selfClosing=False): if attributes is None: diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/serializer.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/serializer.py new file mode 100644 index 00000000000..d6b7105d480 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/serializer.py @@ -0,0 +1,409 @@ +from __future__ import absolute_import, division, unicode_literals +from six import text_type + +import re + +from codecs import register_error, xmlcharrefreplace_errors + +from .constants import voidElements, booleanAttributes, spaceCharacters +from .constants import rcdataElements, entities, xmlEntities +from . import treewalkers, _utils +from xml.sax.saxutils import escape + +_quoteAttributeSpecChars = "".join(spaceCharacters) + "\"'=<>`" +_quoteAttributeSpec = re.compile("[" + _quoteAttributeSpecChars + "]") +_quoteAttributeLegacy = re.compile("[" + _quoteAttributeSpecChars + + "\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n" + "\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15" + "\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" + "\x20\x2f\x60\xa0\u1680\u180e\u180f\u2000" + "\u2001\u2002\u2003\u2004\u2005\u2006\u2007" + "\u2008\u2009\u200a\u2028\u2029\u202f\u205f" + "\u3000]") + + +_encode_entity_map = {} +_is_ucs4 = len("\U0010FFFF") == 1 +for k, v in list(entities.items()): + # skip multi-character entities + if ((_is_ucs4 and len(v) > 1) or + (not _is_ucs4 and len(v) > 2)): + continue + if v != "&": + if len(v) == 2: + v = _utils.surrogatePairToCodepoint(v) + else: + v = ord(v) + if v not in _encode_entity_map or k.islower(): + # prefer < over < and similarly for &, >, etc. + _encode_entity_map[v] = k + + +def htmlentityreplace_errors(exc): + if isinstance(exc, (UnicodeEncodeError, UnicodeTranslateError)): + res = [] + codepoints = [] + skip = False + for i, c in enumerate(exc.object[exc.start:exc.end]): + if skip: + skip = False + continue + index = i + exc.start + if _utils.isSurrogatePair(exc.object[index:min([exc.end, index + 2])]): + codepoint = _utils.surrogatePairToCodepoint(exc.object[index:index + 2]) + skip = True + else: + codepoint = ord(c) + codepoints.append(codepoint) + for cp in codepoints: + e = _encode_entity_map.get(cp) + if e: + res.append("&") + res.append(e) + if not e.endswith(";"): + res.append(";") + else: + res.append("&#x%s;" % (hex(cp)[2:])) + return ("".join(res), exc.end) + else: + return xmlcharrefreplace_errors(exc) + + +register_error("htmlentityreplace", htmlentityreplace_errors) + + +def serialize(input, tree="etree", encoding=None, **serializer_opts): + """Serializes the input token stream using the specified treewalker + + :arg input: the token stream to serialize + + :arg tree: the treewalker to use + + :arg encoding: the encoding to use + + :arg serializer_opts: any options to pass to the + :py:class:`html5lib.serializer.HTMLSerializer` that gets created + + :returns: the tree serialized as a string + + Example: + + >>> from html5lib.html5parser import parse + >>> from html5lib.serializer import serialize + >>> token_stream = parse('<html><body><p>Hi!</p></body></html>') + >>> serialize(token_stream, omit_optional_tags=False) + '<html><head></head><body><p>Hi!</p></body></html>' + + """ + # XXX: Should we cache this? + walker = treewalkers.getTreeWalker(tree) + s = HTMLSerializer(**serializer_opts) + return s.render(walker(input), encoding) + + +class HTMLSerializer(object): + + # attribute quoting options + quote_attr_values = "legacy" # be secure by default + quote_char = '"' + use_best_quote_char = True + + # tag syntax options + omit_optional_tags = True + minimize_boolean_attributes = True + use_trailing_solidus = False + space_before_trailing_solidus = True + + # escaping options + escape_lt_in_attrs = False + escape_rcdata = False + resolve_entities = True + + # miscellaneous options + alphabetical_attributes = False + inject_meta_charset = True + strip_whitespace = False + sanitize = False + + options = ("quote_attr_values", "quote_char", "use_best_quote_char", + "omit_optional_tags", "minimize_boolean_attributes", + "use_trailing_solidus", "space_before_trailing_solidus", + "escape_lt_in_attrs", "escape_rcdata", "resolve_entities", + "alphabetical_attributes", "inject_meta_charset", + "strip_whitespace", "sanitize") + + def __init__(self, **kwargs): + """Initialize HTMLSerializer + + :arg inject_meta_charset: Whether or not to inject the meta charset. + + Defaults to ``True``. + + :arg quote_attr_values: Whether to quote attribute values that don't + require quoting per legacy browser behavior (``"legacy"``), when + required by the standard (``"spec"``), or always (``"always"``). + + Defaults to ``"legacy"``. + + :arg quote_char: Use given quote character for attribute quoting. + + Defaults to ``"`` which will use double quotes unless attribute + value contains a double quote, in which case single quotes are + used. + + :arg escape_lt_in_attrs: Whether or not to escape ``<`` in attribute + values. + + Defaults to ``False``. + + :arg escape_rcdata: Whether to escape characters that need to be + escaped within normal elements within rcdata elements such as + style. + + Defaults to ``False``. + + :arg resolve_entities: Whether to resolve named character entities that + appear in the source tree. The XML predefined entities < > + & " ' are unaffected by this setting. + + Defaults to ``True``. + + :arg strip_whitespace: Whether to remove semantically meaningless + whitespace. (This compresses all whitespace to a single space + except within ``pre``.) + + Defaults to ``False``. + + :arg minimize_boolean_attributes: Shortens boolean attributes to give + just the attribute value, for example:: + + <input disabled="disabled"> + + becomes:: + + <input disabled> + + Defaults to ``True``. + + :arg use_trailing_solidus: Includes a close-tag slash at the end of the + start tag of void elements (empty elements whose end tag is + forbidden). E.g. ``<hr/>``. + + Defaults to ``False``. + + :arg space_before_trailing_solidus: Places a space immediately before + the closing slash in a tag using a trailing solidus. E.g. + ``<hr />``. Requires ``use_trailing_solidus=True``. + + Defaults to ``True``. + + :arg sanitize: Strip all unsafe or unknown constructs from output. + See :py:class:`html5lib.filters.sanitizer.Filter`. + + Defaults to ``False``. + + :arg omit_optional_tags: Omit start/end tags that are optional. + + Defaults to ``True``. + + :arg alphabetical_attributes: Reorder attributes to be in alphabetical order. + + Defaults to ``False``. + + """ + unexpected_args = frozenset(kwargs) - frozenset(self.options) + if len(unexpected_args) > 0: + raise TypeError("__init__() got an unexpected keyword argument '%s'" % next(iter(unexpected_args))) + if 'quote_char' in kwargs: + self.use_best_quote_char = False + for attr in self.options: + setattr(self, attr, kwargs.get(attr, getattr(self, attr))) + self.errors = [] + self.strict = False + + def encode(self, string): + assert(isinstance(string, text_type)) + if self.encoding: + return string.encode(self.encoding, "htmlentityreplace") + else: + return string + + def encodeStrict(self, string): + assert(isinstance(string, text_type)) + if self.encoding: + return string.encode(self.encoding, "strict") + else: + return string + + def serialize(self, treewalker, encoding=None): + # pylint:disable=too-many-nested-blocks + self.encoding = encoding + in_cdata = False + self.errors = [] + + if encoding and self.inject_meta_charset: + from .filters.inject_meta_charset import Filter + treewalker = Filter(treewalker, encoding) + # Alphabetical attributes is here under the assumption that none of + # the later filters add or change order of attributes; it needs to be + # before the sanitizer so escaped elements come out correctly + if self.alphabetical_attributes: + from .filters.alphabeticalattributes import Filter + treewalker = Filter(treewalker) + # WhitespaceFilter should be used before OptionalTagFilter + # for maximum efficiently of this latter filter + if self.strip_whitespace: + from .filters.whitespace import Filter + treewalker = Filter(treewalker) + if self.sanitize: + from .filters.sanitizer import Filter + treewalker = Filter(treewalker) + if self.omit_optional_tags: + from .filters.optionaltags import Filter + treewalker = Filter(treewalker) + + for token in treewalker: + type = token["type"] + if type == "Doctype": + doctype = "<!DOCTYPE %s" % token["name"] + + if token["publicId"]: + doctype += ' PUBLIC "%s"' % token["publicId"] + elif token["systemId"]: + doctype += " SYSTEM" + if token["systemId"]: + if token["systemId"].find('"') >= 0: + if token["systemId"].find("'") >= 0: + self.serializeError("System identifer contains both single and double quote characters") + quote_char = "'" + else: + quote_char = '"' + doctype += " %s%s%s" % (quote_char, token["systemId"], quote_char) + + doctype += ">" + yield self.encodeStrict(doctype) + + elif type in ("Characters", "SpaceCharacters"): + if type == "SpaceCharacters" or in_cdata: + if in_cdata and token["data"].find("</") >= 0: + self.serializeError("Unexpected </ in CDATA") + yield self.encode(token["data"]) + else: + yield self.encode(escape(token["data"])) + + elif type in ("StartTag", "EmptyTag"): + name = token["name"] + yield self.encodeStrict("<%s" % name) + if name in rcdataElements and not self.escape_rcdata: + in_cdata = True + elif in_cdata: + self.serializeError("Unexpected child element of a CDATA element") + for (_, attr_name), attr_value in token["data"].items(): + # TODO: Add namespace support here + k = attr_name + v = attr_value + yield self.encodeStrict(' ') + + yield self.encodeStrict(k) + if not self.minimize_boolean_attributes or \ + (k not in booleanAttributes.get(name, tuple()) and + k not in booleanAttributes.get("", tuple())): + yield self.encodeStrict("=") + if self.quote_attr_values == "always" or len(v) == 0: + quote_attr = True + elif self.quote_attr_values == "spec": + quote_attr = _quoteAttributeSpec.search(v) is not None + elif self.quote_attr_values == "legacy": + quote_attr = _quoteAttributeLegacy.search(v) is not None + else: + raise ValueError("quote_attr_values must be one of: " + "'always', 'spec', or 'legacy'") + v = v.replace("&", "&") + if self.escape_lt_in_attrs: + v = v.replace("<", "<") + if quote_attr: + quote_char = self.quote_char + if self.use_best_quote_char: + if "'" in v and '"' not in v: + quote_char = '"' + elif '"' in v and "'" not in v: + quote_char = "'" + if quote_char == "'": + v = v.replace("'", "'") + else: + v = v.replace('"', """) + yield self.encodeStrict(quote_char) + yield self.encode(v) + yield self.encodeStrict(quote_char) + else: + yield self.encode(v) + if name in voidElements and self.use_trailing_solidus: + if self.space_before_trailing_solidus: + yield self.encodeStrict(" /") + else: + yield self.encodeStrict("/") + yield self.encode(">") + + elif type == "EndTag": + name = token["name"] + if name in rcdataElements: + in_cdata = False + elif in_cdata: + self.serializeError("Unexpected child element of a CDATA element") + yield self.encodeStrict("</%s>" % name) + + elif type == "Comment": + data = token["data"] + if data.find("--") >= 0: + self.serializeError("Comment contains --") + yield self.encodeStrict("<!--%s-->" % token["data"]) + + elif type == "Entity": + name = token["name"] + key = name + ";" + if key not in entities: + self.serializeError("Entity %s not recognized" % name) + if self.resolve_entities and key not in xmlEntities: + data = entities[key] + else: + data = "&%s;" % name + yield self.encodeStrict(data) + + else: + self.serializeError(token["data"]) + + def render(self, treewalker, encoding=None): + """Serializes the stream from the treewalker into a string + + :arg treewalker: the treewalker to serialize + + :arg encoding: the string encoding to use + + :returns: the serialized tree + + Example: + + >>> from html5lib import parse, getTreeWalker + >>> from html5lib.serializer import HTMLSerializer + >>> token_stream = parse('<html><body>Hi!</body></html>') + >>> walker = getTreeWalker('etree') + >>> serializer = HTMLSerializer(omit_optional_tags=False) + >>> serializer.render(walker(token_stream)) + '<html><head></head><body>Hi!</body></html>' + + """ + if encoding: + return b"".join(list(self.serialize(treewalker, encoding))) + else: + return "".join(list(self.serialize(treewalker))) + + def serializeError(self, data="XXX ERROR MESSAGE NEEDED"): + # XXX The idea is to make data mandatory. + self.errors.append(data) + if self.strict: + raise SerializeError + + +class SerializeError(Exception): + """Error in serialized tree""" + pass diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/__init__.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/__init__.py index b8ce2de32e5..b8ce2de32e5 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/__init__.py +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/__init__.py diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/conftest.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/conftest.py new file mode 100644 index 00000000000..dad167c5832 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/conftest.py @@ -0,0 +1,108 @@ +from __future__ import print_function +import os.path +import sys + +import pkg_resources +import pytest + +from .tree_construction import TreeConstructionFile +from .tokenizer import TokenizerFile +from .sanitizer import SanitizerFile + +_dir = os.path.abspath(os.path.dirname(__file__)) +_root = os.path.join(_dir, "..", "..") +_testdata = os.path.join(_dir, "testdata") +_tree_construction = os.path.join(_testdata, "tree-construction") +_tokenizer = os.path.join(_testdata, "tokenizer") +_sanitizer_testdata = os.path.join(_dir, "sanitizer-testdata") + + +def fail_if_missing_pytest_expect(): + """Throws an exception halting pytest if pytest-expect isn't working""" + try: + from pytest_expect import expect # noqa + except ImportError: + header = '*' * 78 + print( + '\n' + + header + '\n' + + 'ERROR: Either pytest-expect or its dependency u-msgpack-python is not\n' + + 'installed. Please install them both before running pytest.\n' + + header + '\n', + file=sys.stderr + ) + raise + + +fail_if_missing_pytest_expect() + + +def pytest_configure(config): + msgs = [] + + if not os.path.exists(_testdata): + msg = "testdata not available! " + if os.path.exists(os.path.join(_root, ".git")): + msg += ("Please run git submodule update --init --recursive " + + "and then run tests again.") + else: + msg += ("The testdata doesn't appear to be included with this package, " + + "so finding the right version will be hard. :(") + msgs.append(msg) + + if config.option.update_xfail: + # Check for optional requirements + req_file = os.path.join(_root, "requirements-optional.txt") + if os.path.exists(req_file): + with open(req_file, "r") as fp: + for line in fp: + if (line.strip() and + not (line.startswith("-r") or + line.startswith("#"))): + if ";" in line: + spec, marker = line.strip().split(";", 1) + else: + spec, marker = line.strip(), None + req = pkg_resources.Requirement.parse(spec) + if marker and not pkg_resources.evaluate_marker(marker): + msgs.append("%s not available in this environment" % spec) + else: + try: + installed = pkg_resources.working_set.find(req) + except pkg_resources.VersionConflict: + msgs.append("Outdated version of %s installed, need %s" % (req.name, spec)) + else: + if not installed: + msgs.append("Need %s" % spec) + + # Check cElementTree + import xml.etree.ElementTree as ElementTree + + try: + import xml.etree.cElementTree as cElementTree + except ImportError: + msgs.append("cElementTree unable to be imported") + else: + if cElementTree.Element is ElementTree.Element: + msgs.append("cElementTree is just an alias for ElementTree") + + if msgs: + pytest.exit("\n".join(msgs)) + + +def pytest_collect_file(path, parent): + dir = os.path.abspath(path.dirname) + dir_and_parents = set() + while dir not in dir_and_parents: + dir_and_parents.add(dir) + dir = os.path.dirname(dir) + + if _tree_construction in dir_and_parents: + if path.ext == ".dat": + return TreeConstructionFile(path, parent) + elif _tokenizer in dir_and_parents: + if path.ext == ".test": + return TokenizerFile(path, parent) + elif _sanitizer_testdata in dir_and_parents: + if path.ext == ".dat": + return SanitizerFile(path, parent) diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/sanitizer/tests1.dat b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/sanitizer-testdata/tests1.dat index c741cb8c6fe..74e8833686c 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/testdata/sanitizer/tests1.dat +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/sanitizer-testdata/tests1.dat @@ -8,8 +8,7 @@ { "name": "IE_Comments_2", "input": "<![if !IE 5]><script>alert('XSS');</script><![endif]>", - "output": "<script>alert('XSS');</script>", - "rexml": "Ill-formed XHTML!" + "output": "<script>alert('XSS');</script>" }, { @@ -21,16 +20,13 @@ { "name": "background_attribute", "input": "<div background=\"javascript:alert('XSS')\"></div>", - "output": "<div/>", - "xhtml": "<div></div>", - "rexml": "<div></div>" + "output": "<div></div>" }, { "name": "bgsound", "input": "<bgsound src=\"javascript:alert('XSS');\" />", - "output": "<bgsound src=\"javascript:alert('XSS');\"/>", - "rexml": "<bgsound src=\"javascript:alert('XSS');\"></bgsound>" + "output": "<bgsound src=\"javascript:alert('XSS');\"></bgsound>" }, { @@ -48,57 +44,49 @@ { "name": "double_open_angle_brackets", "input": "<img src=http://ha.ckers.org/scriptlet.html <", - "output": "<img src='http://ha.ckers.org/scriptlet.html'>", - "rexml": "Ill-formed XHTML!" + "output": "" }, { "name": "double_open_angle_brackets_2", "input": "<script src=http://ha.ckers.org/scriptlet.html <", - "output": "<script src=\"http://ha.ckers.org/scriptlet.html\" <=\"\">", - "rexml": "Ill-formed XHTML!" + "output": "" }, { "name": "grave_accents", "input": "<img src=`javascript:alert('XSS')` />", - "output": "<img/>", - "rexml": "Ill-formed XHTML!" + "output": "<img/>" }, { "name": "img_dynsrc_lowsrc", "input": "<img dynsrc=\"javascript:alert('XSS')\" />", - "output": "<img/>", - "rexml": "<img />" + "output": "<img/>" }, { "name": "img_vbscript", "input": "<img src='vbscript:msgbox(\"XSS\")' />", - "output": "<img/>", - "rexml": "<img />" + "output": "<img/>" }, { "name": "input_image", "input": "<input type=\"image\" src=\"javascript:alert('XSS');\" />", - "output": "<input type='image'/>", - "rexml": "<input type='image' />" + "output": "<input type='image'/>" }, { "name": "link_stylesheets", "input": "<link rel=\"stylesheet\" href=\"javascript:alert('XSS');\" />", - "output": "<link rel=\"stylesheet\" href=\"javascript:alert('XSS');\"/>", - "rexml": "<link href=\"javascript:alert('XSS');\" rel=\"stylesheet\"/>" + "output": "<link href=\"javascript:alert('XSS');\" rel=\"stylesheet\">" }, { "name": "link_stylesheets_2", "input": "<link rel=\"stylesheet\" href=\"http://ha.ckers.org/xss.css\" />", - "output": "<link rel=\"stylesheet\" href=\"http://ha.ckers.org/xss.css\"/>", - "rexml": "<link href=\"http://ha.ckers.org/xss.css\" rel=\"stylesheet\"/>" + "output": "<link href=\"http://ha.ckers.org/xss.css\" rel=\"stylesheet\">" }, { @@ -110,43 +98,37 @@ { "name": "no_closing_script_tags", "input": "<script src=http://ha.ckers.org/xss.js?<b>", - "output": "<script src=\"http://ha.ckers.org/xss.js?&lt;b\">", - "rexml": "Ill-formed XHTML!" + "output": "<script src=\"http://ha.ckers.org/xss.js?&lt;b\"></script>" }, { "name": "non_alpha_non_digit", "input": "<script/XSS src=\"http://ha.ckers.org/xss.js\"></script>", - "output": "<script XSS=\"\" src=\"http://ha.ckers.org/xss.js\"></script>", - "rexml": "Ill-formed XHTML!" + "output": "<script src=\"http://ha.ckers.org/xss.js\" xss=\"\"></script>" }, { "name": "non_alpha_non_digit_2", "input": "<a onclick!\\#$%&()*~+-_.,:;?@[/|\\]^`=alert(\"XSS\")>foo</a>", - "output": "<a>foo</a>", - "rexml": "Ill-formed XHTML!" + "output": "<a>foo</a>" }, { "name": "non_alpha_non_digit_3", "input": "<img/src=\"http://ha.ckers.org/xss.js\"/>", - "output": "<img src='http://ha.ckers.org/xss.js'/>", - "rexml": "Ill-formed XHTML!" + "output": "<img src='http://ha.ckers.org/xss.js'/>" }, { "name": "non_alpha_non_digit_II", "input": "<a href!\\#$%&()*~+-_.,:;?@[/|]^`=alert('XSS')>foo</a>", - "output": "<a>foo</a>", - "rexml": "Ill-formed XHTML!" + "output": "<a>foo</a>" }, { "name": "non_alpha_non_digit_III", "input": "<a/href=\"javascript:alert('XSS');\">foo</a>", - "output": "<a>foo</a>", - "rexml": "Ill-formed XHTML!" + "output": "<a>foo</a>" }, { @@ -158,8 +140,7 @@ { "name": "protocol_resolution_in_script_tag", "input": "<script src=//ha.ckers.org/.j></script>", - "output": "<script src=\"//ha.ckers.org/.j\"></script>", - "rexml": "Ill-formed XHTML!" + "output": "<script src=\"//ha.ckers.org/.j\"></script>" }, { @@ -171,29 +152,25 @@ { "name": "should_allow_image_alt_attribute", "input": "<img alt='foo' onclick='bar' />", - "output": "<img alt='foo'/>", - "rexml": "<img alt='foo' />" + "output": "<img alt='foo'/>" }, { "name": "should_allow_image_height_attribute", "input": "<img height='foo' onclick='bar' />", - "output": "<img height='foo'/>", - "rexml": "<img height='foo' />" + "output": "<img height='foo'/>" }, { "name": "should_allow_image_src_attribute", "input": "<img src='foo' onclick='bar' />", - "output": "<img src='foo'/>", - "rexml": "<img src='foo' />" + "output": "<img src='foo'/>" }, { "name": "should_allow_image_width_attribute", "input": "<img width='foo' onclick='bar' />", - "output": "<img width='foo'/>", - "rexml": "<img width='foo' />" + "output": "<img width='foo'/>" }, { @@ -205,8 +182,7 @@ { "name": "should_handle_malformed_image_tags", "input": "<img \"\"\"><script>alert(\"XSS\")</script>\">", - "output": "<img/><script>alert(\"XSS\")</script>\">", - "rexml": "Ill-formed XHTML!" + "output": "<img/><script>alert(\"XSS\")</script>\">" }, { @@ -218,155 +194,133 @@ { "name": "should_not_fall_for_ridiculous_hack", "input": "<img\nsrc\n=\n\"\nj\na\nv\na\ns\nc\nr\ni\np\nt\n:\na\nl\ne\nr\nt\n(\n'\nX\nS\nS\n'\n)\n\"\n />", - "output": "<img/>", - "rexml": "<img />" + "output": "<img/>" }, { "name": "should_not_fall_for_xss_image_hack_0", "input": "<img src=\"javascript:alert('XSS');\" />", - "output": "<img/>", - "rexml": "<img />" + "output": "<img/>" }, { "name": "should_not_fall_for_xss_image_hack_1", "input": "<img src=javascript:alert('XSS') />", - "output": "<img/>", - "rexml": "Ill-formed XHTML!" + "output": "<img/>" }, { "name": "should_not_fall_for_xss_image_hack_10", "input": "<img src=\"jav
ascript:alert('XSS');\" />", - "output": "<img/>", - "rexml": "<img />" + "output": "<img/>" }, { "name": "should_not_fall_for_xss_image_hack_11", "input": "<img src=\"jav
ascript:alert('XSS');\" />", - "output": "<img/>", - "rexml": "<img />" + "output": "<img/>" }, { "name": "should_not_fall_for_xss_image_hack_12", "input": "<img src=\"  javascript:alert('XSS');\" />", - "output": "<img/>", - "rexml": "<img />" + "output": "<img/>" }, { "name": "should_not_fall_for_xss_image_hack_13", "input": "<img src=\" javascript:alert('XSS');\" />", - "output": "<img/>", - "rexml": "<img />" + "output": "<img/>" }, { "name": "should_not_fall_for_xss_image_hack_14", "input": "<img src=\" javascript:alert('XSS');\" />", - "output": "<img/>", - "rexml": "<img />" + "output": "<img/>" }, { "name": "should_not_fall_for_xss_image_hack_2", "input": "<img src=\"JaVaScRiPt:alert('XSS')\" />", - "output": "<img/>", - "rexml": "<img />" + "output": "<img/>" }, { "name": "should_not_fall_for_xss_image_hack_3", "input": "<img src='javascript:alert("XSS")' />", - "output": "<img/>", - "rexml": "<img />" + "output": "<img/>" }, { "name": "should_not_fall_for_xss_image_hack_4", "input": "<img src='javascript:alert(String.fromCharCode(88,83,83))' />", - "output": "<img/>", - "rexml": "<img />" + "output": "<img/>" }, { "name": "should_not_fall_for_xss_image_hack_5", "input": "<img src='javascript:alert('XSS')' />", - "output": "<img/>", - "rexml": "<img />" + "output": "<img/>" }, { "name": "should_not_fall_for_xss_image_hack_6", "input": "<img src='javascript:alert('XSS')' />", - "output": "<img/>", - "rexml": "<img />" + "output": "<img/>" }, { "name": "should_not_fall_for_xss_image_hack_7", "input": "<img src='javascript:alert('XSS')' />", - "output": "<img/>", - "rexml": "<img />" + "output": "<img/>" }, { "name": "should_not_fall_for_xss_image_hack_8", "input": "<img src=\"jav\tascript:alert('XSS');\" />", - "output": "<img/>", - "rexml": "<img />" + "output": "<img/>" }, { "name": "should_not_fall_for_xss_image_hack_9", "input": "<img src=\"jav	ascript:alert('XSS');\" />", - "output": "<img/>", - "rexml": "<img />" + "output": "<img/>" }, { "name": "should_sanitize_half_open_scripts", "input": "<img src=\"javascript:alert('XSS')\"", - "output": "<img/>", - "rexml": "Ill-formed XHTML!" + "output": "" }, { "name": "should_sanitize_invalid_script_tag", "input": "<script/XSS SRC=\"http://ha.ckers.org/xss.js\"></script>", - "output": "<script XSS=\"\" SRC=\"http://ha.ckers.org/xss.js\"></script>", - "rexml": "Ill-formed XHTML!" + "output": "<script src=\"http://ha.ckers.org/xss.js\" xss=\"\"></script>" }, { "name": "should_sanitize_script_tag_with_multiple_open_brackets", "input": "<<script>alert(\"XSS\");//<</script>", - "output": "<<script>alert(\"XSS\");//<</script>", - "rexml": "Ill-formed XHTML!" + "output": "<<script>alert(\"XSS\");//<</script>" }, { "name": "should_sanitize_script_tag_with_multiple_open_brackets_2", "input": "<iframe src=http://ha.ckers.org/scriptlet.html\n<", - "output": "<iframe src=\"http://ha.ckers.org/scriptlet.html\" <=\"\">", - "rexml": "Ill-formed XHTML!" + "output": "" }, { "name": "should_sanitize_tag_broken_up_by_null", "input": "<scr\u0000ipt>alert(\"XSS\")</scr\u0000ipt>", - "output": "<scr\ufffdipt>alert(\"XSS\")</scr\ufffdipt>", - "rexml": "Ill-formed XHTML!" + "output": "<scr\ufffdipt>alert(\"XSS\")</scr\ufffdipt>" }, { "name": "should_sanitize_unclosed_script", "input": "<script src=http://ha.ckers.org/xss.js?<b>", - "output": "<script src=\"http://ha.ckers.org/xss.js?&lt;b\">", - "rexml": "Ill-formed XHTML!" + "output": "<script src=\"http://ha.ckers.org/xss.js?&lt;b\"></script>" }, { @@ -384,15 +338,13 @@ { "name": "should_strip_src_attribute_in_img_with_bad_protocols", "input": "<img src=\"javascript:XSS\" title=\"1\">boo</img>", - "output": "<img title='1'/>boo", - "rexml": "<img title='1' />" + "output": "<img title='1'/>boo" }, { "name": "should_strip_src_attribute_in_img_with_bad_protocols_and_whitespace", "input": "<img src=\" javascript:XSS\" title=\"1\">boo</img>", - "output": "<img title='1'/>boo", - "rexml": "<img title='1' />" + "output": "<img title='1'/>boo" }, { @@ -410,92 +362,72 @@ { "name": "quotes_in_attributes", "input": "<img src='foo' title='\"foo\" bar' />", - "rexml": "<img src='foo' title='\"foo\" bar' />", - "output": "<img title='"foo" bar' src='foo'/>" + "output": "<img src='foo' title='\"foo\" bar'/>" }, { "name": "uri_refs_in_svg_attributes", - "input": "<rect fill='url(#foo)' />", - "rexml": "<rect fill='url(#foo)'></rect>", - "xhtml": "<rect fill='url(#foo)'></rect>", - "output": "<rect fill='url(#foo)'/>" + "input": "<svg><rect fill='url(#foo)' />", + "output": "<svg><rect fill='url(#foo)'></rect></svg>" }, { "name": "absolute_uri_refs_in_svg_attributes", - "input": "<rect fill='url(http://bad.com/) #fff' />", - "rexml": "<rect fill=' #fff'></rect>", - "xhtml": "<rect fill=' #fff'></rect>", - "output": "<rect fill=' #fff'/>" + "input": "<svg><rect fill='url(http://bad.com/) #fff' />", + "output": "<svg><rect fill=' #fff'></rect></svg>" }, { "name": "uri_ref_with_space_in svg_attribute", - "input": "<rect fill='url(\n#foo)' />", - "rexml": "<rect fill='url(\n#foo)'></rect>", - "xhtml": "<rect fill='url(\n#foo)'></rect>", - "output": "<rect fill='url(\n#foo)'/>" + "input": "<svg><rect fill='url(\n#foo)' />", + "output": "<svg><rect fill='url(\n#foo)'></rect></svg>" }, { "name": "absolute_uri_ref_with_space_in svg_attribute", - "input": "<rect fill=\"url(\nhttp://bad.com/)\" />", - "rexml": "<rect fill=' '></rect>", - "xhtml": "<rect fill=' '></rect>", - "output": "<rect fill=' '/>" + "input": "<svg><rect fill=\"url(\nhttp://bad.com/)\" />", + "output": "<svg><rect fill=' '></rect></svg>" }, { "name": "allow_html5_image_tag", "input": "<image src='foo' />", - "rexml": "<image src=\"foo\"></image>", - "output": "<image src=\"foo\"/>" + "output": "<img src='foo'/>" }, { "name": "style_attr_end_with_nothing", "input": "<div style=\"color: blue\" />", - "output": "<div style='color: blue;'/>", - "xhtml": "<div style='color: blue;'></div>", - "rexml": "<div style='color: blue;'></div>" + "output": "<div style='color: blue;'></div>" }, { "name": "style_attr_end_with_space", "input": "<div style=\"color: blue \" />", - "output": "<div style='color: blue ;'/>", - "xhtml": "<div style='color: blue ;'></div>", - "rexml": "<div style='color: blue ;'></div>" + "output": "<div style='color: blue ;'></div>" }, { "name": "style_attr_end_with_semicolon", "input": "<div style=\"color: blue;\" />", - "output": "<div style='color: blue;'/>", - "xhtml": "<div style='color: blue;'></div>", - "rexml": "<div style='color: blue;'></div>" + "output": "<div style='color: blue;'></div>" }, { "name": "style_attr_end_with_semicolon_space", "input": "<div style=\"color: blue; \" />", - "output": "<div style='color: blue;'/>", - "xhtml": "<div style='color: blue;'></div>", - "rexml": "<div style='color: blue;'></div>" + "output": "<div style='color: blue;'></div>" }, { "name": "attributes_with_embedded_quotes", "input": "<img src=doesntexist.jpg\"'onerror=\"alert(1) />", - "output": "<img src='doesntexist.jpg"'onerror="alert(1)'/>", - "rexml": "Ill-formed XHTML!" + "output": "<img src='doesntexist.jpg\"'onerror=\"alert(1)'/>" }, { "name": "attributes_with_embedded_quotes_II", "input": "<img src=notthere.jpg\"\"onerror=\"alert(2) />", - "output": "<img src='notthere.jpg""onerror="alert(2)'/>", - "rexml": "Ill-formed XHTML!" + "output": "<img src='notthere.jpg\"\"onerror=\"alert(2)'/>" } ] diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/sanitizer.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/sanitizer.py new file mode 100644 index 00000000000..93882ec477c --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/sanitizer.py @@ -0,0 +1,50 @@ +from __future__ import absolute_import, division, unicode_literals + +import codecs +import json + +import pytest + +from html5lib import parseFragment, serialize + + +class SanitizerFile(pytest.File): + def collect(self): + with codecs.open(str(self.fspath), "r", encoding="utf-8") as fp: + tests = json.load(fp) + for i, test in enumerate(tests): + yield SanitizerTest(str(i), self, test=test) + + +class SanitizerTest(pytest.Item): + def __init__(self, name, parent, test): + super(SanitizerTest, self).__init__(name, parent) + self.obj = lambda: 1 # this is to hack around skipif needing a function! + self.test = test + + def runtest(self): + input = self.test["input"] + expected = self.test["output"] + + parsed = parseFragment(input) + serialized = serialize(parsed, + sanitize=True, + omit_optional_tags=False, + use_trailing_solidus=True, + space_before_trailing_solidus=False, + quote_attr_values="always", + quote_char="'", + alphabetical_attributes=True) + errorMsg = "\n".join(["\n\nInput:", input, + "\nExpected:", expected, + "\nReceived:", serialized]) + assert expected == serialized, errorMsg + + def repr_failure(self, excinfo): + traceback = excinfo.traceback + ntraceback = traceback.cut(path=__file__) + excinfo.traceback = ntraceback.filter() + + return excinfo.getrepr(funcargs=True, + showlocals=False, + style="short", tbfilter=False) diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/serializer-testdata/core.test b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/serializer-testdata/core.test new file mode 100644 index 00000000000..70828d0d25e --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/serializer-testdata/core.test @@ -0,0 +1,395 @@ +{ + "tests": [ + { + "expected": [ + "<span title='test \"with\" &quot;'>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "span", + [ + { + "namespace": null, + "name": "title", + "value": "test \"with\" "" + } + ] + ] + ], + "description": "proper attribute value escaping" + }, + { + "expected": [ + "<span title=foo>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "span", + [ + { + "namespace": null, + "name": "title", + "value": "foo" + } + ] + ] + ], + "description": "proper attribute value non-quoting" + }, + { + "expected": [ + "<span title=\"foo<bar\">" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "span", + [ + { + "namespace": null, + "name": "title", + "value": "foo<bar" + } + ] + ] + ], + "description": "proper attribute value non-quoting (with <)" + }, + { + "expected": [ + "<span title=\"foo=bar\">" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "span", + [ + { + "namespace": null, + "name": "title", + "value": "foo=bar" + } + ] + ] + ], + "description": "proper attribute value quoting (with =)" + }, + { + "expected": [ + "<span title=\"foo>bar\">" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "span", + [ + { + "namespace": null, + "name": "title", + "value": "foo>bar" + } + ] + ] + ], + "description": "proper attribute value quoting (with >)" + }, + { + "expected": [ + "<span title='foo\"bar'>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "span", + [ + { + "namespace": null, + "name": "title", + "value": "foo\"bar" + } + ] + ] + ], + "description": "proper attribute value quoting (with \")" + }, + { + "expected": [ + "<span title=\"foo'bar\">" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "span", + [ + { + "namespace": null, + "name": "title", + "value": "foo'bar" + } + ] + ] + ], + "description": "proper attribute value quoting (with ')" + }, + { + "expected": [ + "<span title=\"foo'bar"baz\">" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "span", + [ + { + "namespace": null, + "name": "title", + "value": "foo'bar\"baz" + } + ] + ] + ], + "description": "proper attribute value quoting (with both \" and ')" + }, + { + "expected": [ + "<span title=\"foo bar\">" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "span", + [ + { + "namespace": null, + "name": "title", + "value": "foo bar" + } + ] + ] + ], + "description": "proper attribute value quoting (with space)" + }, + { + "expected": [ + "<span title=\"foo\tbar\">" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "span", + [ + { + "namespace": null, + "name": "title", + "value": "foo\tbar" + } + ] + ] + ], + "description": "proper attribute value quoting (with tab)" + }, + { + "expected": [ + "<span title=\"foo\nbar\">" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "span", + [ + { + "namespace": null, + "name": "title", + "value": "foo\nbar" + } + ] + ] + ], + "description": "proper attribute value quoting (with LF)" + }, + { + "expected": [ + "<span title=\"foo\rbar\">" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "span", + [ + { + "namespace": null, + "name": "title", + "value": "foo\rbar" + } + ] + ] + ], + "description": "proper attribute value quoting (with CR)" + }, + { + "expected": [ + "<span title=\"foo\u000bbar\">" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "span", + [ + { + "namespace": null, + "name": "title", + "value": "foo\u000bbar" + } + ] + ] + ], + "description": "proper attribute value non-quoting (with linetab)" + }, + { + "expected": [ + "<span title=\"foo\fbar\">" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "span", + [ + { + "namespace": null, + "name": "title", + "value": "foo\fbar" + } + ] + ] + ], + "description": "proper attribute value quoting (with form feed)" + }, + { + "expected": [ + "<img>" + ], + "input": [ + [ + "EmptyTag", + "img", + {} + ] + ], + "description": "void element (as EmptyTag token)" + }, + { + "expected": [ + "<!DOCTYPE foo>" + ], + "input": [ + [ + "Doctype", + "foo" + ] + ], + "description": "doctype in error" + }, + { + "expected": [ + "a<b>c&d" + ], + "input": [ + [ + "Characters", + "a<b>c&d" + ] + ], + "description": "character data", + "options": { + "encoding": "utf-8" + } + }, + { + "expected": [ + "<script>a<b>c&d" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "script", + {} + ], + [ + "Characters", + "a<b>c&d" + ] + ], + "description": "rcdata" + }, + { + "expected": [ + "<!DOCTYPE HTML>" + ], + "input": [ + [ + "Doctype", + "HTML" + ] + ], + "description": "doctype" + }, + { + "expected": [ + "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">" + ], + "input": [ + [ + "Doctype", + "HTML", + "-//W3C//DTD HTML 4.01//EN", + "http://www.w3.org/TR/html4/strict.dtd" + ] + ], + "description": "HTML 4.01 DOCTYPE" + }, + { + "expected": [ + "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">" + ], + "input": [ + [ + "Doctype", + "HTML", + "-//W3C//DTD HTML 4.01//EN" + ] + ], + "description": "HTML 4.01 DOCTYPE without system identifer" + }, + { + "expected": [ + "<!DOCTYPE html SYSTEM \"http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd\">" + ], + "input": [ + [ + "Doctype", + "html", + "", + "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd" + ] + ], + "description": "IBM DOCTYPE without public identifer" + } + ] +} diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/serializer-testdata/injectmeta.test b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/serializer-testdata/injectmeta.test new file mode 100644 index 00000000000..399590c3f35 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/serializer-testdata/injectmeta.test @@ -0,0 +1,350 @@ +{ + "tests": [ + { + "expected": [ + "" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "head", + {} + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "head" + ] + ], + "description": "no encoding", + "options": { + "inject_meta_charset": true + } + }, + { + "expected": [ + "<meta charset=utf-8>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "head", + {} + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "head" + ] + ], + "description": "empytag head", + "options": { + "encoding": "utf-8", + "inject_meta_charset": true + } + }, + { + "expected": [ + "<meta charset=utf-8><title>foo</title>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "head", + {} + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "title", + {} + ], + [ + "Characters", + "foo" + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "title" + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "head" + ] + ], + "description": "head w/title", + "options": { + "encoding": "utf-8", + "inject_meta_charset": true + } + }, + { + "expected": [ + "<meta charset=utf-8>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "head", + {} + ], + [ + "EmptyTag", + "meta", + [ + { + "namespace": null, + "name": "charset", + "value": "ascii" + } + ] + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "head" + ] + ], + "description": "head w/meta-charset", + "options": { + "encoding": "utf-8", + "inject_meta_charset": true + } + }, + { + "expected": [ + "<meta charset=utf-8><meta charset=utf-8>", + "<head><meta charset=utf-8><meta charset=ascii>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "head", + {} + ], + [ + "EmptyTag", + "meta", + [ + { + "namespace": null, + "name": "charset", + "value": "ascii" + } + ] + ], + [ + "EmptyTag", + "meta", + [ + { + "namespace": null, + "name": "charset", + "value": "ascii" + } + ] + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "head" + ] + ], + "description": "head w/ two meta-charset", + "options": { + "encoding": "utf-8", + "inject_meta_charset": true + } + }, + { + "expected": [ + "<meta charset=utf-8><meta content=noindex name=robots>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "head", + {} + ], + [ + "EmptyTag", + "meta", + [ + { + "namespace": null, + "name": "name", + "value": "robots" + }, + { + "namespace": null, + "name": "content", + "value": "noindex" + } + ] + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "head" + ] + ], + "description": "head w/robots", + "options": { + "encoding": "utf-8", + "inject_meta_charset": true + } + }, + { + "expected": [ + "<meta content=noindex name=robots><meta charset=utf-8>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "head", + {} + ], + [ + "EmptyTag", + "meta", + [ + { + "namespace": null, + "name": "name", + "value": "robots" + }, + { + "namespace": null, + "name": "content", + "value": "noindex" + } + ] + ], + [ + "EmptyTag", + "meta", + [ + { + "namespace": null, + "name": "charset", + "value": "ascii" + } + ] + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "head" + ] + ], + "description": "head w/robots & charset", + "options": { + "encoding": "utf-8", + "inject_meta_charset": true + } + }, + { + "expected": [ + "<meta content=\"text/html; charset=utf-8\" http-equiv=content-type>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "head", + {} + ], + [ + "EmptyTag", + "meta", + [ + { + "namespace": null, + "name": "http-equiv", + "value": "content-type" + }, + { + "namespace": null, + "name": "content", + "value": "text/html; charset=ascii" + } + ] + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "head" + ] + ], + "description": "head w/ charset in http-equiv content-type", + "options": { + "encoding": "utf-8", + "inject_meta_charset": true + } + }, + { + "expected": [ + "<meta content=noindex name=robots><meta content=\"text/html; charset=utf-8\" http-equiv=content-type>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "head", + {} + ], + [ + "EmptyTag", + "meta", + [ + { + "namespace": null, + "name": "name", + "value": "robots" + }, + { + "namespace": null, + "name": "content", + "value": "noindex" + } + ] + ], + [ + "EmptyTag", + "meta", + [ + { + "namespace": null, + "name": "http-equiv", + "value": "content-type" + }, + { + "namespace": null, + "name": "content", + "value": "text/html; charset=ascii" + } + ] + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "head" + ] + ], + "description": "head w/robots & charset in http-equiv content-type", + "options": { + "encoding": "utf-8", + "inject_meta_charset": true + } + } + ] +}
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/serializer-testdata/optionaltags.test b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/serializer-testdata/optionaltags.test new file mode 100644 index 00000000000..e67725ca26f --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/serializer-testdata/optionaltags.test @@ -0,0 +1,3254 @@ +{ + "tests": [ + { + "expected": [ + "<html lang=en>foo" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "html", + [ + { + "namespace": null, + "name": "lang", + "value": "en" + } + ] + ], + [ + "Characters", + "foo" + ] + ], + "description": "html start-tag followed by text, with attributes" + }, + { + "expected": [ + "<html><!--foo-->" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "html", + {} + ], + [ + "Comment", + "foo" + ] + ], + "description": "html start-tag followed by comment" + }, + { + "expected": [ + "<html> foo" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "html", + {} + ], + [ + "Characters", + " foo" + ] + ], + "description": "html start-tag followed by space character" + }, + { + "expected": [ + "foo" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "html", + {} + ], + [ + "Characters", + "foo" + ] + ], + "description": "html start-tag followed by text" + }, + { + "expected": [ + "<foo>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "html", + {} + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "foo", + {} + ] + ], + "description": "html start-tag followed by start-tag" + }, + { + "expected": [ + "</foo>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "html", + {} + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "foo" + ] + ], + "description": "html start-tag followed by end-tag" + }, + { + "expected": [ + "" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "html", + {} + ] + ], + "description": "html start-tag at EOF (shouldn't ever happen?!)" + }, + { + "expected": [ + "</html><!--foo-->" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "html" + ], + [ + "Comment", + "foo" + ] + ], + "description": "html end-tag followed by comment" + }, + { + "expected": [ + "</html> foo" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "html" + ], + [ + "Characters", + " foo" + ] + ], + "description": "html end-tag followed by space character" + }, + { + "expected": [ + "foo" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "html" + ], + [ + "Characters", + "foo" + ] + ], + "description": "html end-tag followed by text" + }, + { + "expected": [ + "<foo>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "html" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "foo", + {} + ] + ], + "description": "html end-tag followed by start-tag" + }, + { + "expected": [ + "</foo>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "html" + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "foo" + ] + ], + "description": "html end-tag followed by end-tag" + }, + { + "expected": [ + "" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "html" + ] + ], + "description": "html end-tag at EOF" + }, + { + "expected": [ + "<head><!--foo-->" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "head", + {} + ], + [ + "Comment", + "foo" + ] + ], + "description": "head start-tag followed by comment" + }, + { + "expected": [ + "<head> foo" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "head", + {} + ], + [ + "Characters", + " foo" + ] + ], + "description": "head start-tag followed by space character" + }, + { + "expected": [ + "<head>foo" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "head", + {} + ], + [ + "Characters", + "foo" + ] + ], + "description": "head start-tag followed by text" + }, + { + "expected": [ + "<foo>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "head", + {} + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "foo", + {} + ] + ], + "description": "head start-tag followed by start-tag" + }, + { + "expected": [ + "<head></foo>", + "</foo>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "head", + {} + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "foo" + ] + ], + "description": "head start-tag followed by end-tag (shouldn't ever happen?!)" + }, + { + "expected": [ + "" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "head", + {} + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "head" + ] + ], + "description": "empty head element" + }, + { + "expected": [ + "<meta>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "head", + {} + ], + [ + "EmptyTag", + "meta", + {} + ] + ], + "description": "head start-tag followed by empty-tag" + }, + { + "expected": [ + "<head>", + "" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "head", + {} + ] + ], + "description": "head start-tag at EOF (shouldn't ever happen?!)" + }, + { + "expected": [ + "</head><!--foo-->" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "head" + ], + [ + "Comment", + "foo" + ] + ], + "description": "head end-tag followed by comment" + }, + { + "expected": [ + "</head> foo" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "head" + ], + [ + "Characters", + " foo" + ] + ], + "description": "head end-tag followed by space character" + }, + { + "expected": [ + "foo" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "head" + ], + [ + "Characters", + "foo" + ] + ], + "description": "head end-tag followed by text" + }, + { + "expected": [ + "<foo>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "head" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "foo", + {} + ] + ], + "description": "head end-tag followed by start-tag" + }, + { + "expected": [ + "</foo>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "head" + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "foo" + ] + ], + "description": "head end-tag followed by end-tag" + }, + { + "expected": [ + "" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "head" + ] + ], + "description": "head end-tag at EOF" + }, + { + "expected": [ + "<body><!--foo-->" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "body", + {} + ], + [ + "Comment", + "foo" + ] + ], + "description": "body start-tag followed by comment" + }, + { + "expected": [ + "<body> foo" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "body", + {} + ], + [ + "Characters", + " foo" + ] + ], + "description": "body start-tag followed by space character" + }, + { + "expected": [ + "foo" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "body", + {} + ], + [ + "Characters", + "foo" + ] + ], + "description": "body start-tag followed by text" + }, + { + "expected": [ + "<foo>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "body", + {} + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "foo", + {} + ] + ], + "description": "body start-tag followed by start-tag" + }, + { + "expected": [ + "</foo>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "body", + {} + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "foo" + ] + ], + "description": "body start-tag followed by end-tag" + }, + { + "expected": [ + "" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "body", + {} + ] + ], + "description": "body start-tag at EOF (shouldn't ever happen?!)" + }, + { + "expected": [ + "</body><!--foo-->" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "body" + ], + [ + "Comment", + "foo" + ] + ], + "description": "body end-tag followed by comment" + }, + { + "expected": [ + "</body> foo" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "body" + ], + [ + "Characters", + " foo" + ] + ], + "description": "body end-tag followed by space character" + }, + { + "expected": [ + "foo" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "body" + ], + [ + "Characters", + "foo" + ] + ], + "description": "body end-tag followed by text" + }, + { + "expected": [ + "<foo>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "body" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "foo", + {} + ] + ], + "description": "body end-tag followed by start-tag" + }, + { + "expected": [ + "</foo>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "body" + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "foo" + ] + ], + "description": "body end-tag followed by end-tag" + }, + { + "expected": [ + "" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "body" + ] + ], + "description": "body end-tag at EOF" + }, + { + "expected": [ + "</li><!--foo-->" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "li" + ], + [ + "Comment", + "foo" + ] + ], + "description": "li end-tag followed by comment" + }, + { + "expected": [ + "</li> foo" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "li" + ], + [ + "Characters", + " foo" + ] + ], + "description": "li end-tag followed by space character" + }, + { + "expected": [ + "</li>foo" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "li" + ], + [ + "Characters", + "foo" + ] + ], + "description": "li end-tag followed by text" + }, + { + "expected": [ + "</li><foo>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "li" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "foo", + {} + ] + ], + "description": "li end-tag followed by start-tag" + }, + { + "expected": [ + "<li>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "li" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "li", + {} + ] + ], + "description": "li end-tag followed by li start-tag" + }, + { + "expected": [ + "</foo>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "li" + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "foo" + ] + ], + "description": "li end-tag followed by end-tag" + }, + { + "expected": [ + "" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "li" + ] + ], + "description": "li end-tag at EOF" + }, + { + "expected": [ + "</dt><!--foo-->" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "dt" + ], + [ + "Comment", + "foo" + ] + ], + "description": "dt end-tag followed by comment" + }, + { + "expected": [ + "</dt> foo" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "dt" + ], + [ + "Characters", + " foo" + ] + ], + "description": "dt end-tag followed by space character" + }, + { + "expected": [ + "</dt>foo" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "dt" + ], + [ + "Characters", + "foo" + ] + ], + "description": "dt end-tag followed by text" + }, + { + "expected": [ + "</dt><foo>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "dt" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "foo", + {} + ] + ], + "description": "dt end-tag followed by start-tag" + }, + { + "expected": [ + "<dt>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "dt" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "dt", + {} + ] + ], + "description": "dt end-tag followed by dt start-tag" + }, + { + "expected": [ + "<dd>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "dt" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "dd", + {} + ] + ], + "description": "dt end-tag followed by dd start-tag" + }, + { + "expected": [ + "</dt></foo>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "dt" + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "foo" + ] + ], + "description": "dt end-tag followed by end-tag" + }, + { + "expected": [ + "</dt>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "dt" + ] + ], + "description": "dt end-tag at EOF" + }, + { + "expected": [ + "</dd><!--foo-->" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "dd" + ], + [ + "Comment", + "foo" + ] + ], + "description": "dd end-tag followed by comment" + }, + { + "expected": [ + "</dd> foo" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "dd" + ], + [ + "Characters", + " foo" + ] + ], + "description": "dd end-tag followed by space character" + }, + { + "expected": [ + "</dd>foo" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "dd" + ], + [ + "Characters", + "foo" + ] + ], + "description": "dd end-tag followed by text" + }, + { + "expected": [ + "</dd><foo>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "dd" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "foo", + {} + ] + ], + "description": "dd end-tag followed by start-tag" + }, + { + "expected": [ + "<dd>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "dd" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "dd", + {} + ] + ], + "description": "dd end-tag followed by dd start-tag" + }, + { + "expected": [ + "<dt>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "dd" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "dt", + {} + ] + ], + "description": "dd end-tag followed by dt start-tag" + }, + { + "expected": [ + "</foo>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "dd" + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "foo" + ] + ], + "description": "dd end-tag followed by end-tag" + }, + { + "expected": [ + "" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "dd" + ] + ], + "description": "dd end-tag at EOF" + }, + { + "expected": [ + "</p><!--foo-->" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "p" + ], + [ + "Comment", + "foo" + ] + ], + "description": "p end-tag followed by comment" + }, + { + "expected": [ + "</p> foo" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "p" + ], + [ + "Characters", + " foo" + ] + ], + "description": "p end-tag followed by space character" + }, + { + "expected": [ + "</p>foo" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "p" + ], + [ + "Characters", + "foo" + ] + ], + "description": "p end-tag followed by text" + }, + { + "expected": [ + "</p><foo>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "p" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "foo", + {} + ] + ], + "description": "p end-tag followed by start-tag" + }, + { + "expected": [ + "<address>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "p" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "address", + {} + ] + ], + "description": "p end-tag followed by address start-tag" + }, + { + "expected": [ + "<article>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "p" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "article", + {} + ] + ], + "description": "p end-tag followed by article start-tag" + }, + { + "expected": [ + "<aside>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "p" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "aside", + {} + ] + ], + "description": "p end-tag followed by aside start-tag" + }, + { + "expected": [ + "<blockquote>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "p" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "blockquote", + {} + ] + ], + "description": "p end-tag followed by blockquote start-tag" + }, + { + "expected": [ + "<datagrid>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "p" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "datagrid", + {} + ] + ], + "description": "p end-tag followed by datagrid start-tag" + }, + { + "expected": [ + "<dialog>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "p" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "dialog", + {} + ] + ], + "description": "p end-tag followed by dialog start-tag" + }, + { + "expected": [ + "<dir>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "p" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "dir", + {} + ] + ], + "description": "p end-tag followed by dir start-tag" + }, + { + "expected": [ + "<div>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "p" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "div", + {} + ] + ], + "description": "p end-tag followed by div start-tag" + }, + { + "expected": [ + "<dl>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "p" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "dl", + {} + ] + ], + "description": "p end-tag followed by dl start-tag" + }, + { + "expected": [ + "<fieldset>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "p" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "fieldset", + {} + ] + ], + "description": "p end-tag followed by fieldset start-tag" + }, + { + "expected": [ + "<footer>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "p" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "footer", + {} + ] + ], + "description": "p end-tag followed by footer start-tag" + }, + { + "expected": [ + "<form>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "p" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "form", + {} + ] + ], + "description": "p end-tag followed by form start-tag" + }, + { + "expected": [ + "<h1>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "p" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "h1", + {} + ] + ], + "description": "p end-tag followed by h1 start-tag" + }, + { + "expected": [ + "<h2>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "p" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "h2", + {} + ] + ], + "description": "p end-tag followed by h2 start-tag" + }, + { + "expected": [ + "<h3>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "p" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "h3", + {} + ] + ], + "description": "p end-tag followed by h3 start-tag" + }, + { + "expected": [ + "<h4>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "p" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "h4", + {} + ] + ], + "description": "p end-tag followed by h4 start-tag" + }, + { + "expected": [ + "<h5>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "p" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "h5", + {} + ] + ], + "description": "p end-tag followed by h5 start-tag" + }, + { + "expected": [ + "<h6>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "p" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "h6", + {} + ] + ], + "description": "p end-tag followed by h6 start-tag" + }, + { + "expected": [ + "<header>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "p" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "header", + {} + ] + ], + "description": "p end-tag followed by header start-tag" + }, + { + "expected": [ + "<hr>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "p" + ], + [ + "EmptyTag", + "hr", + {} + ] + ], + "description": "p end-tag followed by hr empty-tag" + }, + { + "expected": [ + "<menu>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "p" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "menu", + {} + ] + ], + "description": "p end-tag followed by menu start-tag" + }, + { + "expected": [ + "<nav>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "p" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "nav", + {} + ] + ], + "description": "p end-tag followed by nav start-tag" + }, + { + "expected": [ + "<ol>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "p" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "ol", + {} + ] + ], + "description": "p end-tag followed by ol start-tag" + }, + { + "expected": [ + "<p>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "p" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "p", + {} + ] + ], + "description": "p end-tag followed by p start-tag" + }, + { + "expected": [ + "<pre>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "p" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "pre", + {} + ] + ], + "description": "p end-tag followed by pre start-tag" + }, + { + "expected": [ + "<section>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "p" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "section", + {} + ] + ], + "description": "p end-tag followed by section start-tag" + }, + { + "expected": [ + "<table>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "p" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "table", + {} + ] + ], + "description": "p end-tag followed by table start-tag" + }, + { + "expected": [ + "<ul>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "p" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "ul", + {} + ] + ], + "description": "p end-tag followed by ul start-tag" + }, + { + "expected": [ + "</foo>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "p" + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "foo" + ] + ], + "description": "p end-tag followed by end-tag" + }, + { + "expected": [ + "" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "p" + ] + ], + "description": "p end-tag at EOF" + }, + { + "expected": [ + "</optgroup><!--foo-->" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "optgroup" + ], + [ + "Comment", + "foo" + ] + ], + "description": "optgroup end-tag followed by comment" + }, + { + "expected": [ + "</optgroup> foo" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "optgroup" + ], + [ + "Characters", + " foo" + ] + ], + "description": "optgroup end-tag followed by space character" + }, + { + "expected": [ + "</optgroup>foo" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "optgroup" + ], + [ + "Characters", + "foo" + ] + ], + "description": "optgroup end-tag followed by text" + }, + { + "expected": [ + "</optgroup><foo>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "optgroup" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "foo", + {} + ] + ], + "description": "optgroup end-tag followed by start-tag" + }, + { + "expected": [ + "<optgroup>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "optgroup" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "optgroup", + {} + ] + ], + "description": "optgroup end-tag followed by optgroup start-tag" + }, + { + "expected": [ + "</foo>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "optgroup" + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "foo" + ] + ], + "description": "optgroup end-tag followed by end-tag" + }, + { + "expected": [ + "" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "optgroup" + ] + ], + "description": "optgroup end-tag at EOF" + }, + { + "expected": [ + "</option><!--foo-->" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "option" + ], + [ + "Comment", + "foo" + ] + ], + "description": "option end-tag followed by comment" + }, + { + "expected": [ + "</option> foo" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "option" + ], + [ + "Characters", + " foo" + ] + ], + "description": "option end-tag followed by space character" + }, + { + "expected": [ + "</option>foo" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "option" + ], + [ + "Characters", + "foo" + ] + ], + "description": "option end-tag followed by text" + }, + { + "expected": [ + "<optgroup>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "option" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "optgroup", + {} + ] + ], + "description": "option end-tag followed by optgroup start-tag" + }, + { + "expected": [ + "</option><foo>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "option" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "foo", + {} + ] + ], + "description": "option end-tag followed by start-tag" + }, + { + "expected": [ + "<option>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "option" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "option", + {} + ] + ], + "description": "option end-tag followed by option start-tag" + }, + { + "expected": [ + "</foo>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "option" + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "foo" + ] + ], + "description": "option end-tag followed by end-tag" + }, + { + "expected": [ + "" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "option" + ] + ], + "description": "option end-tag at EOF" + }, + { + "expected": [ + "<colgroup><!--foo-->" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "colgroup", + {} + ], + [ + "Comment", + "foo" + ] + ], + "description": "colgroup start-tag followed by comment" + }, + { + "expected": [ + "<colgroup> foo" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "colgroup", + {} + ], + [ + "Characters", + " foo" + ] + ], + "description": "colgroup start-tag followed by space character" + }, + { + "expected": [ + "<colgroup>foo" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "colgroup", + {} + ], + [ + "Characters", + "foo" + ] + ], + "description": "colgroup start-tag followed by text" + }, + { + "expected": [ + "<colgroup><foo>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "colgroup", + {} + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "foo", + {} + ] + ], + "description": "colgroup start-tag followed by start-tag" + }, + { + "expected": [ + "<table><col>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "table", + {} + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "colgroup", + {} + ], + [ + "EmptyTag", + "col", + {} + ] + ], + "description": "first colgroup in a table with a col child" + }, + { + "expected": [ + "</colgroup><col>", + "<colgroup><col>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "colgroup" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "colgroup", + {} + ], + [ + "EmptyTag", + "http://www.w3.org/1999/xhtml", + "col", + {} + ] + ], + "description": "colgroup with a col child, following another colgroup" + }, + { + "expected": [ + "<colgroup></foo>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "colgroup", + {} + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "foo" + ] + ], + "description": "colgroup start-tag followed by end-tag" + }, + { + "expected": [ + "<colgroup>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "colgroup", + {} + ] + ], + "description": "colgroup start-tag at EOF" + }, + { + "expected": [ + "</colgroup><!--foo-->" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "colgroup" + ], + [ + "Comment", + "foo" + ] + ], + "description": "colgroup end-tag followed by comment" + }, + { + "expected": [ + "</colgroup> foo" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "colgroup" + ], + [ + "Characters", + " foo" + ] + ], + "description": "colgroup end-tag followed by space character" + }, + { + "expected": [ + "foo" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "colgroup" + ], + [ + "Characters", + "foo" + ] + ], + "description": "colgroup end-tag followed by text" + }, + { + "expected": [ + "<foo>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "colgroup" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "foo", + {} + ] + ], + "description": "colgroup end-tag followed by start-tag" + }, + { + "expected": [ + "</foo>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "colgroup" + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "foo" + ] + ], + "description": "colgroup end-tag followed by end-tag" + }, + { + "expected": [ + "" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "colgroup" + ] + ], + "description": "colgroup end-tag at EOF" + }, + { + "expected": [ + "</thead><!--foo-->" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "thead" + ], + [ + "Comment", + "foo" + ] + ], + "description": "thead end-tag followed by comment" + }, + { + "expected": [ + "</thead> foo" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "thead" + ], + [ + "Characters", + " foo" + ] + ], + "description": "thead end-tag followed by space character" + }, + { + "expected": [ + "</thead>foo" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "thead" + ], + [ + "Characters", + "foo" + ] + ], + "description": "thead end-tag followed by text" + }, + { + "expected": [ + "</thead><foo>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "thead" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "foo", + {} + ] + ], + "description": "thead end-tag followed by start-tag" + }, + { + "expected": [ + "<tbody>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "thead" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "tbody", + {} + ] + ], + "description": "thead end-tag followed by tbody start-tag" + }, + { + "expected": [ + "<tfoot>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "thead" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "tfoot", + {} + ] + ], + "description": "thead end-tag followed by tfoot start-tag" + }, + { + "expected": [ + "</thead></foo>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "thead" + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "foo" + ] + ], + "description": "thead end-tag followed by end-tag" + }, + { + "expected": [ + "</thead>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "thead" + ] + ], + "description": "thead end-tag at EOF" + }, + { + "expected": [ + "<tbody><!--foo-->" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "tbody", + {} + ], + [ + "Comment", + "foo" + ] + ], + "description": "tbody start-tag followed by comment" + }, + { + "expected": [ + "<tbody> foo" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "tbody", + {} + ], + [ + "Characters", + " foo" + ] + ], + "description": "tbody start-tag followed by space character" + }, + { + "expected": [ + "<tbody>foo" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "tbody", + {} + ], + [ + "Characters", + "foo" + ] + ], + "description": "tbody start-tag followed by text" + }, + { + "expected": [ + "<tbody><foo>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "tbody", + {} + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "foo", + {} + ] + ], + "description": "tbody start-tag followed by start-tag" + }, + { + "expected": [ + "<table><tr>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "table", + {} + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "tbody", + {} + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "tr", + {} + ] + ], + "description": "first tbody in a table with a tr child" + }, + { + "expected": [ + "<tbody><tr>", + "</tbody><tr>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "tbody" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "tbody", + {} + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "tr", + {} + ] + ], + "description": "tbody with a tr child, following another tbody" + }, + { + "expected": [ + "<tbody><tr>", + "</thead><tr>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "thead" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "tbody", + {} + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "tr", + {} + ] + ], + "description": "tbody with a tr child, following a thead" + }, + { + "expected": [ + "<tbody><tr>", + "</tfoot><tr>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "tfoot" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "tbody", + {} + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "tr", + {} + ] + ], + "description": "tbody with a tr child, following a tfoot" + }, + { + "expected": [ + "<tbody></foo>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "tbody", + {} + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "foo" + ] + ], + "description": "tbody start-tag followed by end-tag" + }, + { + "expected": [ + "<tbody>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "tbody", + {} + ] + ], + "description": "tbody start-tag at EOF" + }, + { + "expected": [ + "</tbody><!--foo-->" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "tbody" + ], + [ + "Comment", + "foo" + ] + ], + "description": "tbody end-tag followed by comment" + }, + { + "expected": [ + "</tbody> foo" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "tbody" + ], + [ + "Characters", + " foo" + ] + ], + "description": "tbody end-tag followed by space character" + }, + { + "expected": [ + "</tbody>foo" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "tbody" + ], + [ + "Characters", + "foo" + ] + ], + "description": "tbody end-tag followed by text" + }, + { + "expected": [ + "</tbody><foo>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "tbody" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "foo", + {} + ] + ], + "description": "tbody end-tag followed by start-tag" + }, + { + "expected": [ + "<tbody>", + "</tbody>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "tbody" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "tbody", + {} + ] + ], + "description": "tbody end-tag followed by tbody start-tag" + }, + { + "expected": [ + "<tfoot>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "tbody" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "tfoot", + {} + ] + ], + "description": "tbody end-tag followed by tfoot start-tag" + }, + { + "expected": [ + "</foo>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "tbody" + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "foo" + ] + ], + "description": "tbody end-tag followed by end-tag" + }, + { + "expected": [ + "" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "tbody" + ] + ], + "description": "tbody end-tag at EOF" + }, + { + "expected": [ + "</tfoot><!--foo-->" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "tfoot" + ], + [ + "Comment", + "foo" + ] + ], + "description": "tfoot end-tag followed by comment" + }, + { + "expected": [ + "</tfoot> foo" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "tfoot" + ], + [ + "Characters", + " foo" + ] + ], + "description": "tfoot end-tag followed by space character" + }, + { + "expected": [ + "</tfoot>foo" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "tfoot" + ], + [ + "Characters", + "foo" + ] + ], + "description": "tfoot end-tag followed by text" + }, + { + "expected": [ + "</tfoot><foo>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "tfoot" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "foo", + {} + ] + ], + "description": "tfoot end-tag followed by start-tag" + }, + { + "expected": [ + "<tbody>", + "</tfoot>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "tfoot" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "tbody", + {} + ] + ], + "description": "tfoot end-tag followed by tbody start-tag" + }, + { + "expected": [ + "</foo>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "tfoot" + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "foo" + ] + ], + "description": "tfoot end-tag followed by end-tag" + }, + { + "expected": [ + "" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "tfoot" + ] + ], + "description": "tfoot end-tag at EOF" + }, + { + "expected": [ + "</tr><!--foo-->" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "tr" + ], + [ + "Comment", + "foo" + ] + ], + "description": "tr end-tag followed by comment" + }, + { + "expected": [ + "</tr> foo" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "tr" + ], + [ + "Characters", + " foo" + ] + ], + "description": "tr end-tag followed by space character" + }, + { + "expected": [ + "</tr>foo" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "tr" + ], + [ + "Characters", + "foo" + ] + ], + "description": "tr end-tag followed by text" + }, + { + "expected": [ + "</tr><foo>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "tr" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "foo", + {} + ] + ], + "description": "tr end-tag followed by start-tag" + }, + { + "expected": [ + "<tr>", + "</tr>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "tr" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "tr", + {} + ] + ], + "description": "tr end-tag followed by tr start-tag" + }, + { + "expected": [ + "</foo>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "tr" + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "foo" + ] + ], + "description": "tr end-tag followed by end-tag" + }, + { + "expected": [ + "" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "tr" + ] + ], + "description": "tr end-tag at EOF" + }, + { + "expected": [ + "</td><!--foo-->" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "td" + ], + [ + "Comment", + "foo" + ] + ], + "description": "td end-tag followed by comment" + }, + { + "expected": [ + "</td> foo" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "td" + ], + [ + "Characters", + " foo" + ] + ], + "description": "td end-tag followed by space character" + }, + { + "expected": [ + "</td>foo" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "td" + ], + [ + "Characters", + "foo" + ] + ], + "description": "td end-tag followed by text" + }, + { + "expected": [ + "</td><foo>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "td" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "foo", + {} + ] + ], + "description": "td end-tag followed by start-tag" + }, + { + "expected": [ + "<td>", + "</td>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "td" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "td", + {} + ] + ], + "description": "td end-tag followed by td start-tag" + }, + { + "expected": [ + "<th>", + "</td>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "td" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "th", + {} + ] + ], + "description": "td end-tag followed by th start-tag" + }, + { + "expected": [ + "</foo>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "td" + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "foo" + ] + ], + "description": "td end-tag followed by end-tag" + }, + { + "expected": [ + "" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "td" + ] + ], + "description": "td end-tag at EOF" + }, + { + "expected": [ + "</th><!--foo-->" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "th" + ], + [ + "Comment", + "foo" + ] + ], + "description": "th end-tag followed by comment" + }, + { + "expected": [ + "</th> foo" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "th" + ], + [ + "Characters", + " foo" + ] + ], + "description": "th end-tag followed by space character" + }, + { + "expected": [ + "</th>foo" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "th" + ], + [ + "Characters", + "foo" + ] + ], + "description": "th end-tag followed by text" + }, + { + "expected": [ + "</th><foo>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "th" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "foo", + {} + ] + ], + "description": "th end-tag followed by start-tag" + }, + { + "expected": [ + "<th>", + "</th>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "th" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "th", + {} + ] + ], + "description": "th end-tag followed by th start-tag" + }, + { + "expected": [ + "<td>", + "</th>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "th" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "td", + {} + ] + ], + "description": "th end-tag followed by td start-tag" + }, + { + "expected": [ + "</foo>" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "th" + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "foo" + ] + ], + "description": "th end-tag followed by end-tag" + }, + { + "expected": [ + "" + ], + "input": [ + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "th" + ] + ], + "description": "th end-tag at EOF" + } + ] +}
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/serializer-testdata/options.test b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/serializer-testdata/options.test new file mode 100644 index 00000000000..a22eebfcf3b --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/serializer-testdata/options.test @@ -0,0 +1,334 @@ +{ + "tests": [ + { + "expected": [ + "<span title='test 'with' quote_char'>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "span", + [ + { + "namespace": null, + "name": "title", + "value": "test 'with' quote_char" + } + ] + ] + ], + "description": "quote_char=\"'\"", + "options": { + "quote_char": "'" + } + }, + { + "expected": [ + "<button disabled>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "button", + [ + { + "namespace": null, + "name": "disabled", + "value": "disabled" + } + ] + ] + ], + "description": "quote_attr_values='always'", + "options": { + "quote_attr_values": "always" + } + }, + { + "expected": [ + "<div itemscope>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "div", + [ + { + "namespace": null, + "name": "itemscope", + "value": "itemscope" + } + ] + ] + ], + "description": "quote_attr_values='always' with itemscope", + "options": { + "quote_attr_values": "always" + } + }, + { + "expected": [ + "<div irrelevant>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "div", + [ + { + "namespace": null, + "name": "irrelevant", + "value": "irrelevant" + } + ] + ] + ], + "description": "quote_attr_values='always' with irrelevant", + "options": { + "quote_attr_values": "always" + } + }, + { + "expected": [ + "<div class=\"foo\">" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "div", + [ + { + "namespace": null, + "name": "class", + "value": "foo" + } + ] + ] + ], + "description": "non-minimized quote_attr_values='always'", + "options": { + "quote_attr_values": "always" + } + }, + { + "expected": [ + "<div class=foo>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "div", + [ + { + "namespace": null, + "name": "class", + "value": "foo" + } + ] + ] + ], + "description": "non-minimized quote_attr_values='legacy'", + "options": { + "quote_attr_values": "legacy" + } + }, + { + "expected": [ + "<div class=foo>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "div", + [ + { + "namespace": null, + "name": "class", + "value": "foo" + } + ] + ] + ], + "description": "non-minimized quote_attr_values='spec'", + "options": { + "quote_attr_values": "spec" + } + }, + { + "expected": [ + "<img />" + ], + "input": [ + [ + "EmptyTag", + "img", + {} + ] + ], + "description": "use_trailing_solidus=true with void element", + "options": { + "use_trailing_solidus": true + } + }, + { + "expected": [ + "<div>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "div", + {} + ] + ], + "description": "use_trailing_solidus=true with non-void element", + "options": { + "use_trailing_solidus": true + } + }, + { + "expected": [ + "<div itemscope=itemscope>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "div", + [ + { + "namespace": null, + "name": "itemscope", + "value": "itemscope" + } + ] + ] + ], + "description": "minimize_boolean_attributes=false", + "options": { + "minimize_boolean_attributes": false + } + }, + { + "expected": [ + "<div irrelevant=irrelevant>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "div", + [ + { + "namespace": null, + "name": "irrelevant", + "value": "irrelevant" + } + ] + ] + ], + "description": "minimize_boolean_attributes=false", + "options": { + "minimize_boolean_attributes": false + } + }, + { + "expected": [ + "<div itemscope=\"\">" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "div", + [ + { + "namespace": null, + "name": "itemscope", + "value": "" + } + ] + ] + ], + "description": "minimize_boolean_attributes=false with empty value", + "options": { + "minimize_boolean_attributes": false + } + }, + { + "expected": [ + "<div irrelevant=\"\">" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "div", + [ + { + "namespace": null, + "name": "irrelevant", + "value": "" + } + ] + ] + ], + "description": "minimize_boolean_attributes=false with empty value", + "options": { + "minimize_boolean_attributes": false + } + }, + { + "expected": [ + "<a title=\"a<b>c&d\">" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "a", + [ + { + "namespace": null, + "name": "title", + "value": "a<b>c&d" + } + ] + ] + ], + "description": "escape less than signs in attribute values", + "options": { + "escape_lt_in_attrs": true + } + }, + { + "expected": [ + "<script>a<b>c&d" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "script", + {} + ], + [ + "Characters", + "a<b>c&d" + ] + ], + "description": "rcdata", + "options": { + "escape_rcdata": true + } + } + ] +}
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/serializer-testdata/whitespace.test b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/serializer-testdata/whitespace.test new file mode 100644 index 00000000000..dac3a69e27f --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/serializer-testdata/whitespace.test @@ -0,0 +1,198 @@ +{ + "tests": [ + { + "expected": [ + " foo" + ], + "input": [ + [ + "Characters", + "\t\r\n\f foo" + ] + ], + "description": "bare text with leading spaces", + "options": { + "strip_whitespace": true + } + }, + { + "expected": [ + "foo " + ], + "input": [ + [ + "Characters", + "foo \t\r\n\f" + ] + ], + "description": "bare text with trailing spaces", + "options": { + "strip_whitespace": true + } + }, + { + "expected": [ + "foo bar" + ], + "input": [ + [ + "Characters", + "foo \t\r\n\f bar" + ] + ], + "description": "bare text with inner spaces", + "options": { + "strip_whitespace": true + } + }, + { + "expected": [ + "<pre>\t\r\n\f foo \t\r\n\f bar \t\r\n\f</pre>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "pre", + {} + ], + [ + "Characters", + "\t\r\n\f foo \t\r\n\f bar \t\r\n\f" + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "pre" + ] + ], + "description": "text within <pre>", + "options": { + "strip_whitespace": true + } + }, + { + "expected": [ + "<pre>\t\r\n\f fo<span>o \t\r\n\f b</span>ar \t\r\n\f</pre>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "pre", + {} + ], + [ + "Characters", + "\t\r\n\f fo" + ], + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "span", + {} + ], + [ + "Characters", + "o \t\r\n\f b" + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "span" + ], + [ + "Characters", + "ar \t\r\n\f" + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "pre" + ] + ], + "description": "text within <pre>, with inner markup", + "options": { + "strip_whitespace": true + } + }, + { + "expected": [ + "<textarea>\t\r\n\f foo \t\r\n\f bar \t\r\n\f</textarea>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "textarea", + {} + ], + [ + "Characters", + "\t\r\n\f foo \t\r\n\f bar \t\r\n\f" + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "textarea" + ] + ], + "description": "text within <textarea>", + "options": { + "strip_whitespace": true + } + }, + { + "expected": [ + "<script>\t\r\n\f foo \t\r\n\f bar \t\r\n\f</script>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "script", + {} + ], + [ + "Characters", + "\t\r\n\f foo \t\r\n\f bar \t\r\n\f" + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "script" + ] + ], + "description": "text within <script>", + "options": { + "strip_whitespace": true + } + }, + { + "expected": [ + "<style>\t\r\n\f foo \t\r\n\f bar \t\r\n\f</style>" + ], + "input": [ + [ + "StartTag", + "http://www.w3.org/1999/xhtml", + "style", + {} + ], + [ + "Characters", + "\t\r\n\f foo \t\r\n\f bar \t\r\n\f" + ], + [ + "EndTag", + "http://www.w3.org/1999/xhtml", + "style" + ] + ], + "description": "text within <style>", + "options": { + "strip_whitespace": true + } + } + ] +}
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/support.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/support.py index 41f2d2a072d..dab65c1c9d1 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/support.py +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/support.py @@ -1,5 +1,7 @@ from __future__ import absolute_import, division, unicode_literals +# pylint:disable=wrong-import-position + import os import sys import codecs @@ -13,44 +15,66 @@ sys.path.insert(0, os.path.abspath(os.path.join(base_path, os.path.pardir, os.path.pardir))) -from html5lib import treebuilders +from html5lib import treebuilders, treewalkers, treeadapters # noqa del base_path -# Build a dict of avaliable trees -treeTypes = {"DOM": treebuilders.getTreeBuilder("dom")} +# Build a dict of available trees +treeTypes = {} + +# DOM impls +treeTypes["DOM"] = { + "builder": treebuilders.getTreeBuilder("dom"), + "walker": treewalkers.getTreeWalker("dom") +} + +# ElementTree impls +import xml.etree.ElementTree as ElementTree # noqa +treeTypes['ElementTree'] = { + "builder": treebuilders.getTreeBuilder("etree", ElementTree, fullTree=True), + "walker": treewalkers.getTreeWalker("etree", ElementTree) +} -# Try whatever etree implementations are avaliable from a list that are -#"supposed" to work try: - import xml.etree.ElementTree as ElementTree - treeTypes['ElementTree'] = treebuilders.getTreeBuilder("etree", ElementTree, fullTree=True) + import xml.etree.cElementTree as cElementTree # noqa except ImportError: - try: - import elementtree.ElementTree as ElementTree - treeTypes['ElementTree'] = treebuilders.getTreeBuilder("etree", ElementTree, fullTree=True) - except ImportError: - pass + treeTypes['cElementTree'] = None +else: + # On Python 3.3 and above cElementTree is an alias, don't run them twice. + if cElementTree.Element is ElementTree.Element: + treeTypes['cElementTree'] = None + else: + treeTypes['cElementTree'] = { + "builder": treebuilders.getTreeBuilder("etree", cElementTree, fullTree=True), + "walker": treewalkers.getTreeWalker("etree", cElementTree) + } try: - import xml.etree.cElementTree as cElementTree - treeTypes['cElementTree'] = treebuilders.getTreeBuilder("etree", cElementTree, fullTree=True) + import lxml.etree as lxml # noqa except ImportError: - try: - import cElementTree - treeTypes['cElementTree'] = treebuilders.getTreeBuilder("etree", cElementTree, fullTree=True) - except ImportError: - pass + treeTypes['lxml'] = None +else: + treeTypes['lxml'] = { + "builder": treebuilders.getTreeBuilder("lxml"), + "walker": treewalkers.getTreeWalker("lxml") + } +# Genshi impls try: - import lxml.etree as lxml # flake8: noqa + import genshi # noqa except ImportError: - pass + treeTypes["genshi"] = None else: - treeTypes['lxml'] = treebuilders.getTreeBuilder("lxml") + treeTypes["genshi"] = { + "builder": treebuilders.getTreeBuilder("dom"), + "adapter": lambda tree: treeadapters.genshi.to_genshi(treewalkers.getTreeWalker("dom")(tree)), + "walker": treewalkers.getTreeWalker("genshi") + } +# pylint:enable=wrong-import-position -def get_data_files(subdirectory, files='*.dat'): - return glob.glob(os.path.join(test_dir, subdirectory, files)) + +def get_data_files(subdirectory, files='*.dat', search_dir=test_dir): + return sorted(glob.glob(os.path.join(search_dir, subdirectory, files))) class DefaultDict(dict): @@ -71,9 +95,6 @@ class TestData(object): self.encoding = encoding self.newTestHeading = newTestHeading - def __del__(self): - self.f.close() - def __iter__(self): data = DefaultDict(None) key = None @@ -128,7 +149,7 @@ convertExpected = convert(2) def errorMessage(input, expected, actual): msg = ("Input:\n%s\nExpected:\n%s\nRecieved\n%s\n" % (repr(input), repr(expected), repr(actual))) - if sys.version_info.major == 2: + if sys.version_info[0] == 2: msg = msg.encode("ascii", "backslashreplace") return msg diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_alphabeticalattributes.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_alphabeticalattributes.py new file mode 100644 index 00000000000..7d5b8e0f656 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_alphabeticalattributes.py @@ -0,0 +1,78 @@ +from __future__ import absolute_import, division, unicode_literals + +from collections import OrderedDict + +import pytest + +import html5lib +from html5lib.filters.alphabeticalattributes import Filter +from html5lib.serializer import HTMLSerializer + + +@pytest.mark.parametrize('msg, attrs, expected_attrs', [ + ( + 'no attrs', + {}, + {} + ), + ( + 'one attr', + {(None, 'alt'): 'image'}, + OrderedDict([((None, 'alt'), 'image')]) + ), + ( + 'multiple attrs', + { + (None, 'src'): 'foo', + (None, 'alt'): 'image', + (None, 'style'): 'border: 1px solid black;' + }, + OrderedDict([ + ((None, 'alt'), 'image'), + ((None, 'src'), 'foo'), + ((None, 'style'), 'border: 1px solid black;') + ]) + ), +]) +def test_alphabetizing(msg, attrs, expected_attrs): + tokens = [{'type': 'StartTag', 'name': 'img', 'data': attrs}] + output_tokens = list(Filter(tokens)) + + attrs = output_tokens[0]['data'] + assert attrs == expected_attrs + + +def test_with_different_namespaces(): + tokens = [{ + 'type': 'StartTag', + 'name': 'pattern', + 'data': { + (None, 'id'): 'patt1', + ('http://www.w3.org/1999/xlink', 'href'): '#patt2' + } + }] + output_tokens = list(Filter(tokens)) + + attrs = output_tokens[0]['data'] + assert attrs == OrderedDict([ + ((None, 'id'), 'patt1'), + (('http://www.w3.org/1999/xlink', 'href'), '#patt2') + ]) + + +def test_with_serializer(): + """Verify filter works in the context of everything else""" + parser = html5lib.HTMLParser() + dom = parser.parseFragment('<svg><pattern xlink:href="#patt2" id="patt1"></svg>') + walker = html5lib.getTreeWalker('etree') + ser = HTMLSerializer( + alphabetical_attributes=True, + quote_attr_values='always' + ) + + # FIXME(willkg): The "xlink" namespace gets dropped by the serializer. When + # that gets fixed, we can fix this expected result. + assert ( + ser.render(walker(dom)) == + '<svg><pattern id="patt1" href="#patt2"></pattern></svg>' + ) diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_encoding.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_encoding.py new file mode 100644 index 00000000000..9a411c77d28 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_encoding.py @@ -0,0 +1,116 @@ +from __future__ import absolute_import, division, unicode_literals + +import os + +import pytest + +from .support import get_data_files, test_dir, errorMessage, TestData as _TestData +from html5lib import HTMLParser, _inputstream + + +def test_basic_prescan_length(): + data = "<title>Caf\u00E9</title><!--a--><meta charset='utf-8'>".encode('utf-8') + pad = 1024 - len(data) + 1 + data = data.replace(b"-a-", b"-" + (b"a" * pad) + b"-") + assert len(data) == 1024 # Sanity + stream = _inputstream.HTMLBinaryInputStream(data, useChardet=False) + assert 'utf-8' == stream.charEncoding[0].name + + +def test_parser_reparse(): + data = "<title>Caf\u00E9</title><!--a--><meta charset='utf-8'>".encode('utf-8') + pad = 10240 - len(data) + 1 + data = data.replace(b"-a-", b"-" + (b"a" * pad) + b"-") + assert len(data) == 10240 # Sanity + stream = _inputstream.HTMLBinaryInputStream(data, useChardet=False) + assert 'windows-1252' == stream.charEncoding[0].name + p = HTMLParser(namespaceHTMLElements=False) + doc = p.parse(data, useChardet=False) + assert 'utf-8' == p.documentEncoding + assert doc.find(".//title").text == "Caf\u00E9" + + +@pytest.mark.parametrize("expected,data,kwargs", [ + ("utf-16le", b"\xFF\xFE", {"override_encoding": "iso-8859-2"}), + ("utf-16be", b"\xFE\xFF", {"override_encoding": "iso-8859-2"}), + ("utf-8", b"\xEF\xBB\xBF", {"override_encoding": "iso-8859-2"}), + ("iso-8859-2", b"", {"override_encoding": "iso-8859-2", "transport_encoding": "iso-8859-3"}), + ("iso-8859-2", b"<meta charset=iso-8859-3>", {"transport_encoding": "iso-8859-2"}), + ("iso-8859-2", b"<meta charset=iso-8859-2>", {"same_origin_parent_encoding": "iso-8859-3"}), + ("iso-8859-2", b"", {"same_origin_parent_encoding": "iso-8859-2", "likely_encoding": "iso-8859-3"}), + ("iso-8859-2", b"", {"same_origin_parent_encoding": "utf-16", "likely_encoding": "iso-8859-2"}), + ("iso-8859-2", b"", {"same_origin_parent_encoding": "utf-16be", "likely_encoding": "iso-8859-2"}), + ("iso-8859-2", b"", {"same_origin_parent_encoding": "utf-16le", "likely_encoding": "iso-8859-2"}), + ("iso-8859-2", b"", {"likely_encoding": "iso-8859-2", "default_encoding": "iso-8859-3"}), + ("iso-8859-2", b"", {"default_encoding": "iso-8859-2"}), + ("windows-1252", b"", {"default_encoding": "totally-bogus-string"}), + ("windows-1252", b"", {}), +]) +def test_parser_args(expected, data, kwargs): + stream = _inputstream.HTMLBinaryInputStream(data, useChardet=False, **kwargs) + assert expected == stream.charEncoding[0].name + p = HTMLParser() + p.parse(data, useChardet=False, **kwargs) + assert expected == p.documentEncoding + + +@pytest.mark.parametrize("kwargs", [ + {"override_encoding": "iso-8859-2"}, + {"override_encoding": None}, + {"transport_encoding": "iso-8859-2"}, + {"transport_encoding": None}, + {"same_origin_parent_encoding": "iso-8859-2"}, + {"same_origin_parent_encoding": None}, + {"likely_encoding": "iso-8859-2"}, + {"likely_encoding": None}, + {"default_encoding": "iso-8859-2"}, + {"default_encoding": None}, + {"foo_encoding": "iso-8859-2"}, + {"foo_encoding": None}, +]) +def test_parser_args_raises(kwargs): + with pytest.raises(TypeError) as exc_info: + p = HTMLParser() + p.parse("", useChardet=False, **kwargs) + assert exc_info.value.args[0].startswith("Cannot set an encoding with a unicode input") + + +def runParserEncodingTest(data, encoding): + p = HTMLParser() + assert p.documentEncoding is None + p.parse(data, useChardet=False) + encoding = encoding.lower().decode("ascii") + + assert encoding == p.documentEncoding, errorMessage(data, encoding, p.documentEncoding) + + +def runPreScanEncodingTest(data, encoding): + stream = _inputstream.HTMLBinaryInputStream(data, useChardet=False) + encoding = encoding.lower().decode("ascii") + + # Very crude way to ignore irrelevant tests + if len(data) > stream.numBytesMeta: + return + + assert encoding == stream.charEncoding[0].name, errorMessage(data, encoding, stream.charEncoding[0].name) + + +def test_encoding(): + for filename in get_data_files("encoding"): + tests = _TestData(filename, b"data", encoding=None) + for test in tests: + yield (runParserEncodingTest, test[b'data'], test[b'encoding']) + yield (runPreScanEncodingTest, test[b'data'], test[b'encoding']) + + +# pylint:disable=wrong-import-position +try: + import chardet # noqa +except ImportError: + print("chardet not found, skipping chardet tests") +else: + def test_chardet(): + with open(os.path.join(test_dir, "encoding", "chardet", "test_big5.txt"), "rb") as fp: + encoding = _inputstream.HTMLInputStream(fp.read()).charEncoding + assert encoding[0].name == "big5" +# pylint:enable=wrong-import-position diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_meta.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_meta.py new file mode 100644 index 00000000000..e42eafdba4a --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_meta.py @@ -0,0 +1,41 @@ +from __future__ import absolute_import, division, unicode_literals + +import six +from mock import Mock + +from . import support + + +def _createReprMock(r): + """Creates a mock with a __repr__ returning r + + Also provides __str__ mock with default mock behaviour""" + mock = Mock() + mock.__repr__ = Mock() + mock.__repr__.return_value = r + mock.__str__ = Mock(wraps=mock.__str__) + return mock + + +def test_errorMessage(): + # Create mock objects to take repr of + input = _createReprMock("1") + expected = _createReprMock("2") + actual = _createReprMock("3") + + # Run the actual test + r = support.errorMessage(input, expected, actual) + + # Assertions! + if six.PY2: + assert b"Input:\n1\nExpected:\n2\nRecieved\n3\n" == r + else: + assert six.PY3 + assert "Input:\n1\nExpected:\n2\nRecieved\n3\n" == r + + assert input.__repr__.call_count == 1 + assert expected.__repr__.call_count == 1 + assert actual.__repr__.call_count == 1 + assert not input.__str__.called + assert not expected.__str__.called + assert not actual.__str__.called diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_optionaltags_filter.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_optionaltags_filter.py new file mode 100644 index 00000000000..cd2821497fd --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_optionaltags_filter.py @@ -0,0 +1,7 @@ +from __future__ import absolute_import, division, unicode_literals + +from html5lib.filters.optionaltags import Filter + + +def test_empty(): + assert list(Filter([])) == [] diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_parser2.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_parser2.py new file mode 100644 index 00000000000..bcc0bf48f08 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_parser2.py @@ -0,0 +1,130 @@ +from __future__ import absolute_import, division, unicode_literals + +from six import PY2, text_type, unichr + +import io + +from . import support # noqa + +from html5lib.constants import namespaces, tokenTypes +from html5lib import parse, parseFragment, HTMLParser + + +# tests that aren't autogenerated from text files +def test_assertDoctypeCloneable(): + doc = parse('<!DOCTYPE HTML>', treebuilder="dom") + assert doc.cloneNode(True) is not None + + +def test_line_counter(): + # http://groups.google.com/group/html5lib-discuss/browse_frm/thread/f4f00e4a2f26d5c0 + assert parse("<pre>\nx\n>\n</pre>") is not None + + +def test_namespace_html_elements_0_dom(): + doc = parse("<html></html>", + treebuilder="dom", + namespaceHTMLElements=True) + assert doc.childNodes[0].namespaceURI == namespaces["html"] + + +def test_namespace_html_elements_1_dom(): + doc = parse("<html></html>", + treebuilder="dom", + namespaceHTMLElements=False) + assert doc.childNodes[0].namespaceURI is None + + +def test_namespace_html_elements_0_etree(): + doc = parse("<html></html>", + treebuilder="etree", + namespaceHTMLElements=True) + assert doc.tag == "{%s}html" % (namespaces["html"],) + + +def test_namespace_html_elements_1_etree(): + doc = parse("<html></html>", + treebuilder="etree", + namespaceHTMLElements=False) + assert doc.tag == "html" + + +def test_unicode_file(): + assert parse(io.StringIO("a")) is not None + + +def test_maintain_attribute_order(): + # This is here because we impl it in parser and not tokenizer + p = HTMLParser() + # generate loads to maximize the chance a hash-based mutation will occur + attrs = [(unichr(x), i) for i, x in enumerate(range(ord('a'), ord('z')))] + token = {'name': 'html', + 'selfClosing': False, + 'selfClosingAcknowledged': False, + 'type': tokenTypes["StartTag"], + 'data': attrs} + out = p.normalizeToken(token) + attr_order = list(out["data"].keys()) + assert attr_order == [x for x, i in attrs] + + +def test_duplicate_attribute(): + # This is here because we impl it in parser and not tokenizer + doc = parse('<p class=a class=b>') + el = doc[1][0] + assert el.get("class") == "a" + + +def test_maintain_duplicate_attribute_order(): + # This is here because we impl it in parser and not tokenizer + p = HTMLParser() + attrs = [(unichr(x), i) for i, x in enumerate(range(ord('a'), ord('z')))] + token = {'name': 'html', + 'selfClosing': False, + 'selfClosingAcknowledged': False, + 'type': tokenTypes["StartTag"], + 'data': attrs + [('a', len(attrs))]} + out = p.normalizeToken(token) + attr_order = list(out["data"].keys()) + assert attr_order == [x for x, i in attrs] + + +def test_debug_log(): + parser = HTMLParser(debug=True) + parser.parse("<!doctype html><title>a</title><p>b<script>c</script>d</p>e") + + expected = [('dataState', 'InitialPhase', 'InitialPhase', 'processDoctype', {'type': 'Doctype'}), + ('dataState', 'BeforeHtmlPhase', 'BeforeHtmlPhase', 'processStartTag', {'name': 'title', 'type': 'StartTag'}), + ('dataState', 'BeforeHeadPhase', 'BeforeHeadPhase', 'processStartTag', {'name': 'title', 'type': 'StartTag'}), + ('dataState', 'InHeadPhase', 'InHeadPhase', 'processStartTag', {'name': 'title', 'type': 'StartTag'}), + ('rcdataState', 'TextPhase', 'TextPhase', 'processCharacters', {'type': 'Characters'}), + ('dataState', 'TextPhase', 'TextPhase', 'processEndTag', {'name': 'title', 'type': 'EndTag'}), + ('dataState', 'InHeadPhase', 'InHeadPhase', 'processStartTag', {'name': 'p', 'type': 'StartTag'}), + ('dataState', 'AfterHeadPhase', 'AfterHeadPhase', 'processStartTag', {'name': 'p', 'type': 'StartTag'}), + ('dataState', 'InBodyPhase', 'InBodyPhase', 'processStartTag', {'name': 'p', 'type': 'StartTag'}), + ('dataState', 'InBodyPhase', 'InBodyPhase', 'processCharacters', {'type': 'Characters'}), + ('dataState', 'InBodyPhase', 'InBodyPhase', 'processStartTag', {'name': 'script', 'type': 'StartTag'}), + ('dataState', 'InBodyPhase', 'InHeadPhase', 'processStartTag', {'name': 'script', 'type': 'StartTag'}), + ('scriptDataState', 'TextPhase', 'TextPhase', 'processCharacters', {'type': 'Characters'}), + ('dataState', 'TextPhase', 'TextPhase', 'processEndTag', {'name': 'script', 'type': 'EndTag'}), + ('dataState', 'InBodyPhase', 'InBodyPhase', 'processCharacters', {'type': 'Characters'}), + ('dataState', 'InBodyPhase', 'InBodyPhase', 'processEndTag', {'name': 'p', 'type': 'EndTag'}), + ('dataState', 'InBodyPhase', 'InBodyPhase', 'processCharacters', {'type': 'Characters'})] + + if PY2: + for i, log in enumerate(expected): + log = [x.encode("ascii") if isinstance(x, text_type) else x for x in log] + expected[i] = tuple(log) + + assert parser.log == expected + + +def test_no_duplicate_clone(): + frag = parseFragment("<b><em><foo><foob><fooc><aside></b></em>") + assert len(frag) == 2 + + +def test_self_closing_col(): + parser = HTMLParser() + parser.parseFragment('<table><colgroup><col /></colgroup></table>') + assert not parser.errors diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_sanitizer.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_sanitizer.py new file mode 100644 index 00000000000..45046d57229 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_sanitizer.py @@ -0,0 +1,127 @@ +from __future__ import absolute_import, division, unicode_literals + +from html5lib import constants, parseFragment, serialize +from html5lib.filters import sanitizer + + +def runSanitizerTest(_, expected, input): + parsed = parseFragment(expected) + expected = serialize(parsed, + omit_optional_tags=False, + use_trailing_solidus=True, + space_before_trailing_solidus=False, + quote_attr_values="always", + quote_char='"', + alphabetical_attributes=True) + assert expected == sanitize_html(input) + + +def sanitize_html(stream): + parsed = parseFragment(stream) + serialized = serialize(parsed, + sanitize=True, + omit_optional_tags=False, + use_trailing_solidus=True, + space_before_trailing_solidus=False, + quote_attr_values="always", + quote_char='"', + alphabetical_attributes=True) + return serialized + + +def test_should_handle_astral_plane_characters(): + sanitized = sanitize_html("<p>𝒵 𝔸</p>") + expected = '<p>\U0001d4b5 \U0001d538</p>' + assert expected == sanitized + + +def test_should_allow_relative_uris(): + sanitized = sanitize_html('<p><a href="/example.com"></a></p>') + expected = '<p><a href="/example.com"></a></p>' + assert expected == sanitized + + +def test_invalid_data_uri(): + sanitized = sanitize_html('<audio controls="" src="data:foobar"></audio>') + expected = '<audio controls></audio>' + assert expected == sanitized + + +def test_invalid_ipv6_url(): + sanitized = sanitize_html('<a href="h://]">') + expected = "<a></a>" + assert expected == sanitized + + +def test_data_uri_disallowed_type(): + sanitized = sanitize_html('<audio controls="" src="data:text/html,<html>"></audio>') + expected = "<audio controls></audio>" + assert expected == sanitized + + +def test_sanitizer(): + for ns, tag_name in sanitizer.allowed_elements: + if ns != constants.namespaces["html"]: + continue + if tag_name in ['caption', 'col', 'colgroup', 'optgroup', 'option', 'table', 'tbody', 'td', + 'tfoot', 'th', 'thead', 'tr', 'select']: + continue # TODO + if tag_name == 'image': + yield (runSanitizerTest, "test_should_allow_%s_tag" % tag_name, + "<img title=\"1\"/>foo <bad>bar</bad> baz", + "<%s title='1'>foo <bad>bar</bad> baz</%s>" % (tag_name, tag_name)) + elif tag_name == 'br': + yield (runSanitizerTest, "test_should_allow_%s_tag" % tag_name, + "<br title=\"1\"/>foo <bad>bar</bad> baz<br/>", + "<%s title='1'>foo <bad>bar</bad> baz</%s>" % (tag_name, tag_name)) + elif tag_name in constants.voidElements: + yield (runSanitizerTest, "test_should_allow_%s_tag" % tag_name, + "<%s title=\"1\"/>foo <bad>bar</bad> baz" % tag_name, + "<%s title='1'>foo <bad>bar</bad> baz</%s>" % (tag_name, tag_name)) + else: + yield (runSanitizerTest, "test_should_allow_%s_tag" % tag_name, + "<%s title=\"1\">foo <bad>bar</bad> baz</%s>" % (tag_name, tag_name), + "<%s title='1'>foo <bad>bar</bad> baz</%s>" % (tag_name, tag_name)) + + for ns, attribute_name in sanitizer.allowed_attributes: + if ns is not None: + continue + if attribute_name != attribute_name.lower(): + continue # TODO + if attribute_name == 'style': + continue + attribute_value = 'foo' + if attribute_name in sanitizer.attr_val_is_uri: + attribute_value = '%s://sub.domain.tld/path/object.ext' % sanitizer.allowed_protocols[0] + yield (runSanitizerTest, "test_should_allow_%s_attribute" % attribute_name, + "<p %s=\"%s\">foo <bad>bar</bad> baz</p>" % (attribute_name, attribute_value), + "<p %s='%s'>foo <bad>bar</bad> baz</p>" % (attribute_name, attribute_value)) + + for protocol in sanitizer.allowed_protocols: + rest_of_uri = '//sub.domain.tld/path/object.ext' + if protocol == 'data': + rest_of_uri = 'image/png;base64,aGVsbG8gd29ybGQ=' + yield (runSanitizerTest, "test_should_allow_uppercase_%s_uris" % protocol, + "<img src=\"%s:%s\">foo</a>" % (protocol, rest_of_uri), + """<img src="%s:%s">foo</a>""" % (protocol, rest_of_uri)) + + for protocol in sanitizer.allowed_protocols: + rest_of_uri = '//sub.domain.tld/path/object.ext' + if protocol == 'data': + rest_of_uri = 'image/png;base64,aGVsbG8gd29ybGQ=' + protocol = protocol.upper() + yield (runSanitizerTest, "test_should_allow_uppercase_%s_uris" % protocol, + "<img src=\"%s:%s\">foo</a>" % (protocol, rest_of_uri), + """<img src="%s:%s">foo</a>""" % (protocol, rest_of_uri)) + + +def test_lowercase_color_codes_in_style(): + sanitized = sanitize_html("<p style=\"border: 1px solid #a2a2a2;\"></p>") + expected = '<p style=\"border: 1px solid #a2a2a2;\"></p>' + assert expected == sanitized + + +def test_uppercase_color_codes_in_style(): + sanitized = sanitize_html("<p style=\"border: 1px solid #A2A2A2;\"></p>") + expected = '<p style=\"border: 1px solid #A2A2A2;\"></p>' + assert expected == sanitized diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_serializer.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_serializer.py new file mode 100644 index 00000000000..9333286ef14 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_serializer.py @@ -0,0 +1,225 @@ +from __future__ import absolute_import, division, unicode_literals + +import os +import json + +import pytest + +from .support import get_data_files + +from html5lib import constants +from html5lib.filters.lint import Filter as Lint +from html5lib.serializer import HTMLSerializer, serialize +from html5lib.treewalkers.base import TreeWalker + +# pylint:disable=wrong-import-position +optionals_loaded = [] + +try: + from lxml import etree + optionals_loaded.append("lxml") +except ImportError: + pass +# pylint:enable=wrong-import-position + +default_namespace = constants.namespaces["html"] + + +class JsonWalker(TreeWalker): + def __iter__(self): + for token in self.tree: + type = token[0] + if type == "StartTag": + if len(token) == 4: + namespace, name, attrib = token[1:4] + else: + namespace = default_namespace + name, attrib = token[1:3] + yield self.startTag(namespace, name, self._convertAttrib(attrib)) + elif type == "EndTag": + if len(token) == 3: + namespace, name = token[1:3] + else: + namespace = default_namespace + name = token[1] + yield self.endTag(namespace, name) + elif type == "EmptyTag": + if len(token) == 4: + namespace, name, attrib = token[1:] + else: + namespace = default_namespace + name, attrib = token[1:] + for token in self.emptyTag(namespace, name, self._convertAttrib(attrib)): + yield token + elif type == "Comment": + yield self.comment(token[1]) + elif type in ("Characters", "SpaceCharacters"): + for token in self.text(token[1]): + yield token + elif type == "Doctype": + if len(token) == 4: + yield self.doctype(token[1], token[2], token[3]) + elif len(token) == 3: + yield self.doctype(token[1], token[2]) + else: + yield self.doctype(token[1]) + else: + raise ValueError("Unknown token type: " + type) + + def _convertAttrib(self, attribs): + """html5lib tree-walkers use a dict of (namespace, name): value for + attributes, but JSON cannot represent this. Convert from the format + in the serializer tests (a list of dicts with "namespace", "name", + and "value" as keys) to html5lib's tree-walker format.""" + attrs = {} + for attrib in attribs: + name = (attrib["namespace"], attrib["name"]) + assert(name not in attrs) + attrs[name] = attrib["value"] + return attrs + + +def serialize_html(input, options): + options = dict([(str(k), v) for k, v in options.items()]) + encoding = options.get("encoding", None) + if "encoding" in options: + del options["encoding"] + stream = Lint(JsonWalker(input), False) + serializer = HTMLSerializer(alphabetical_attributes=True, **options) + return serializer.render(stream, encoding) + + +def runSerializerTest(input, expected, options): + encoding = options.get("encoding", None) + + if encoding: + expected = list(map(lambda x: x.encode(encoding), expected)) + + result = serialize_html(input, options) + if len(expected) == 1: + assert expected[0] == result, "Expected:\n%s\nActual:\n%s\nOptions:\n%s" % (expected[0], result, str(options)) + elif result not in expected: + assert False, "Expected: %s, Received: %s" % (expected, result) + + +def throwsWithLatin1(input): + with pytest.raises(UnicodeEncodeError): + serialize_html(input, {"encoding": "iso-8859-1"}) + + +def testDoctypeName(): + throwsWithLatin1([["Doctype", "\u0101"]]) + + +def testDoctypePublicId(): + throwsWithLatin1([["Doctype", "potato", "\u0101"]]) + + +def testDoctypeSystemId(): + throwsWithLatin1([["Doctype", "potato", "potato", "\u0101"]]) + + +def testCdataCharacters(): + runSerializerTest([["StartTag", "http://www.w3.org/1999/xhtml", "style", {}], ["Characters", "\u0101"]], + ["<style>ā"], {"encoding": "iso-8859-1"}) + + +def testCharacters(): + runSerializerTest([["Characters", "\u0101"]], + ["ā"], {"encoding": "iso-8859-1"}) + + +def testStartTagName(): + throwsWithLatin1([["StartTag", "http://www.w3.org/1999/xhtml", "\u0101", []]]) + + +def testAttributeName(): + throwsWithLatin1([["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": None, "name": "\u0101", "value": "potato"}]]]) + + +def testAttributeValue(): + runSerializerTest([["StartTag", "http://www.w3.org/1999/xhtml", "span", + [{"namespace": None, "name": "potato", "value": "\u0101"}]]], + ["<span potato=ā>"], {"encoding": "iso-8859-1"}) + + +def testEndTagName(): + throwsWithLatin1([["EndTag", "http://www.w3.org/1999/xhtml", "\u0101"]]) + + +def testComment(): + throwsWithLatin1([["Comment", "\u0101"]]) + + +def testThrowsUnknownOption(): + with pytest.raises(TypeError): + HTMLSerializer(foobar=None) + + +@pytest.mark.parametrize("c", list("\t\n\u000C\x20\r\"'=<>`")) +def testSpecQuoteAttribute(c): + input_ = [["StartTag", "http://www.w3.org/1999/xhtml", "span", + [{"namespace": None, "name": "foo", "value": c}]]] + if c == '"': + output_ = ["<span foo='%s'>" % c] + else: + output_ = ['<span foo="%s">' % c] + options_ = {"quote_attr_values": "spec"} + runSerializerTest(input_, output_, options_) + + +@pytest.mark.parametrize("c", list("\t\n\u000C\x20\r\"'=<>`" + "\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n" + "\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15" + "\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" + "\x20\x2f\x60\xa0\u1680\u180e\u180f\u2000" + "\u2001\u2002\u2003\u2004\u2005\u2006\u2007" + "\u2008\u2009\u200a\u2028\u2029\u202f\u205f" + "\u3000")) +def testLegacyQuoteAttribute(c): + input_ = [["StartTag", "http://www.w3.org/1999/xhtml", "span", + [{"namespace": None, "name": "foo", "value": c}]]] + if c == '"': + output_ = ["<span foo='%s'>" % c] + else: + output_ = ['<span foo="%s">' % c] + options_ = {"quote_attr_values": "legacy"} + runSerializerTest(input_, output_, options_) + + +@pytest.fixture +def lxml_parser(): + return etree.XMLParser(resolve_entities=False) + + +@pytest.mark.skipif("lxml" not in optionals_loaded, reason="lxml not importable") +def testEntityReplacement(lxml_parser): + doc = '<!DOCTYPE html SYSTEM "about:legacy-compat"><html>β</html>' + tree = etree.fromstring(doc, parser=lxml_parser).getroottree() + result = serialize(tree, tree="lxml", omit_optional_tags=False) + assert result == '<!DOCTYPE html SYSTEM "about:legacy-compat"><html>\u03B2</html>' + + +@pytest.mark.skipif("lxml" not in optionals_loaded, reason="lxml not importable") +def testEntityXML(lxml_parser): + doc = '<!DOCTYPE html SYSTEM "about:legacy-compat"><html>></html>' + tree = etree.fromstring(doc, parser=lxml_parser).getroottree() + result = serialize(tree, tree="lxml", omit_optional_tags=False) + assert result == '<!DOCTYPE html SYSTEM "about:legacy-compat"><html>></html>' + + +@pytest.mark.skipif("lxml" not in optionals_loaded, reason="lxml not importable") +def testEntityNoResolve(lxml_parser): + doc = '<!DOCTYPE html SYSTEM "about:legacy-compat"><html>β</html>' + tree = etree.fromstring(doc, parser=lxml_parser).getroottree() + result = serialize(tree, tree="lxml", omit_optional_tags=False, + resolve_entities=False) + assert result == '<!DOCTYPE html SYSTEM "about:legacy-compat"><html>β</html>' + + +def test_serializer(): + for filename in get_data_files('serializer-testdata', '*.test', os.path.dirname(__file__)): + with open(filename) as fp: + tests = json.load(fp) + for test in tests['tests']: + yield runSerializerTest, test["input"], test["expected"], test.get("options", {}) diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_stream.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_stream.py new file mode 100644 index 00000000000..27c39538c8b --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_stream.py @@ -0,0 +1,323 @@ +from __future__ import absolute_import, division, unicode_literals + +from . import support # noqa + +import codecs +import sys +from io import BytesIO, StringIO + +import pytest + +import six +from six.moves import http_client, urllib + +from html5lib._inputstream import (BufferedStream, HTMLInputStream, + HTMLUnicodeInputStream, HTMLBinaryInputStream) +from html5lib._utils import supports_lone_surrogates + + +def test_basic(): + s = b"abc" + fp = BufferedStream(BytesIO(s)) + read = fp.read(10) + assert read == s + + +def test_read_length(): + fp = BufferedStream(BytesIO(b"abcdef")) + read1 = fp.read(1) + assert read1 == b"a" + read2 = fp.read(2) + assert read2 == b"bc" + read3 = fp.read(3) + assert read3 == b"def" + read4 = fp.read(4) + assert read4 == b"" + + +def test_tell(): + fp = BufferedStream(BytesIO(b"abcdef")) + read1 = fp.read(1) + assert read1 == b"a" + assert fp.tell() == 1 + read2 = fp.read(2) + assert read2 == b"bc" + assert fp.tell() == 3 + read3 = fp.read(3) + assert read3 == b"def" + assert fp.tell() == 6 + read4 = fp.read(4) + assert read4 == b"" + assert fp.tell() == 6 + + +def test_seek(): + fp = BufferedStream(BytesIO(b"abcdef")) + read1 = fp.read(1) + assert read1 == b"a" + fp.seek(0) + read2 = fp.read(1) + assert read2 == b"a" + read3 = fp.read(2) + assert read3 == b"bc" + fp.seek(2) + read4 = fp.read(2) + assert read4 == b"cd" + fp.seek(4) + read5 = fp.read(2) + assert read5 == b"ef" + + +def test_seek_tell(): + fp = BufferedStream(BytesIO(b"abcdef")) + read1 = fp.read(1) + assert read1 == b"a" + assert fp.tell() == 1 + fp.seek(0) + read2 = fp.read(1) + assert read2 == b"a" + assert fp.tell() == 1 + read3 = fp.read(2) + assert read3 == b"bc" + assert fp.tell() == 3 + fp.seek(2) + read4 = fp.read(2) + assert read4 == b"cd" + assert fp.tell() == 4 + fp.seek(4) + read5 = fp.read(2) + assert read5 == b"ef" + assert fp.tell() == 6 + + +class HTMLUnicodeInputStreamShortChunk(HTMLUnicodeInputStream): + _defaultChunkSize = 2 + + +class HTMLBinaryInputStreamShortChunk(HTMLBinaryInputStream): + _defaultChunkSize = 2 + + +def test_char_ascii(): + stream = HTMLInputStream(b"'", override_encoding='ascii') + assert stream.charEncoding[0].name == 'windows-1252' + assert stream.char() == "'" + + +def test_char_utf8(): + stream = HTMLInputStream('\u2018'.encode('utf-8'), override_encoding='utf-8') + assert stream.charEncoding[0].name == 'utf-8' + assert stream.char() == '\u2018' + + +def test_char_win1252(): + stream = HTMLInputStream("\xa9\xf1\u2019".encode('windows-1252')) + assert stream.charEncoding[0].name == 'windows-1252' + assert stream.char() == "\xa9" + assert stream.char() == "\xf1" + assert stream.char() == "\u2019" + + +def test_bom(): + stream = HTMLInputStream(codecs.BOM_UTF8 + b"'") + assert stream.charEncoding[0].name == 'utf-8' + assert stream.char() == "'" + + +def test_utf_16(): + stream = HTMLInputStream((' ' * 1025).encode('utf-16')) + assert stream.charEncoding[0].name in ['utf-16le', 'utf-16be'] + assert len(stream.charsUntil(' ', True)) == 1025 + + +def test_newlines(): + stream = HTMLBinaryInputStreamShortChunk(codecs.BOM_UTF8 + b"a\nbb\r\nccc\rddddxe") + assert stream.position() == (1, 0) + assert stream.charsUntil('c') == "a\nbb\n" + assert stream.position() == (3, 0) + assert stream.charsUntil('x') == "ccc\ndddd" + assert stream.position() == (4, 4) + assert stream.charsUntil('e') == "x" + assert stream.position() == (4, 5) + + +def test_newlines2(): + size = HTMLUnicodeInputStream._defaultChunkSize + stream = HTMLInputStream("\r" * size + "\n") + assert stream.charsUntil('x') == "\n" * size + + +def test_position(): + stream = HTMLBinaryInputStreamShortChunk(codecs.BOM_UTF8 + b"a\nbb\nccc\nddde\nf\ngh") + assert stream.position() == (1, 0) + assert stream.charsUntil('c') == "a\nbb\n" + assert stream.position() == (3, 0) + stream.unget("\n") + assert stream.position() == (2, 2) + assert stream.charsUntil('c') == "\n" + assert stream.position() == (3, 0) + stream.unget("\n") + assert stream.position() == (2, 2) + assert stream.char() == "\n" + assert stream.position() == (3, 0) + assert stream.charsUntil('e') == "ccc\nddd" + assert stream.position() == (4, 3) + assert stream.charsUntil('h') == "e\nf\ng" + assert stream.position() == (6, 1) + + +def test_position2(): + stream = HTMLUnicodeInputStreamShortChunk("abc\nd") + assert stream.position() == (1, 0) + assert stream.char() == "a" + assert stream.position() == (1, 1) + assert stream.char() == "b" + assert stream.position() == (1, 2) + assert stream.char() == "c" + assert stream.position() == (1, 3) + assert stream.char() == "\n" + assert stream.position() == (2, 0) + assert stream.char() == "d" + assert stream.position() == (2, 1) + + +def test_python_issue_20007(): + """ + Make sure we have a work-around for Python bug #20007 + http://bugs.python.org/issue20007 + """ + class FakeSocket(object): + def makefile(self, _mode, _bufsize=None): + # pylint:disable=unused-argument + return BytesIO(b"HTTP/1.1 200 Ok\r\n\r\nText") + + source = http_client.HTTPResponse(FakeSocket()) + source.begin() + stream = HTMLInputStream(source) + assert stream.charsUntil(" ") == "Text" + + +def test_python_issue_20007_b(): + """ + Make sure we have a work-around for Python bug #20007 + http://bugs.python.org/issue20007 + """ + if six.PY2: + return + + class FakeSocket(object): + def makefile(self, _mode, _bufsize=None): + # pylint:disable=unused-argument + return BytesIO(b"HTTP/1.1 200 Ok\r\n\r\nText") + + source = http_client.HTTPResponse(FakeSocket()) + source.begin() + wrapped = urllib.response.addinfourl(source, source.msg, "http://example.com") + stream = HTMLInputStream(wrapped) + assert stream.charsUntil(" ") == "Text" + + +@pytest.mark.parametrize("inp,num", + [("\u0000", 0), + ("\u0001", 1), + ("\u0008", 1), + ("\u0009", 0), + ("\u000A", 0), + ("\u000B", 1), + ("\u000C", 0), + ("\u000D", 0), + ("\u000E", 1), + ("\u001F", 1), + ("\u0020", 0), + ("\u007E", 0), + ("\u007F", 1), + ("\u009F", 1), + ("\u00A0", 0), + ("\uFDCF", 0), + ("\uFDD0", 1), + ("\uFDEF", 1), + ("\uFDF0", 0), + ("\uFFFD", 0), + ("\uFFFE", 1), + ("\uFFFF", 1), + ("\U0001FFFD", 0), + ("\U0001FFFE", 1), + ("\U0001FFFF", 1), + ("\U0002FFFD", 0), + ("\U0002FFFE", 1), + ("\U0002FFFF", 1), + ("\U0003FFFD", 0), + ("\U0003FFFE", 1), + ("\U0003FFFF", 1), + ("\U0004FFFD", 0), + ("\U0004FFFE", 1), + ("\U0004FFFF", 1), + ("\U0005FFFD", 0), + ("\U0005FFFE", 1), + ("\U0005FFFF", 1), + ("\U0006FFFD", 0), + ("\U0006FFFE", 1), + ("\U0006FFFF", 1), + ("\U0007FFFD", 0), + ("\U0007FFFE", 1), + ("\U0007FFFF", 1), + ("\U0008FFFD", 0), + ("\U0008FFFE", 1), + ("\U0008FFFF", 1), + ("\U0009FFFD", 0), + ("\U0009FFFE", 1), + ("\U0009FFFF", 1), + ("\U000AFFFD", 0), + ("\U000AFFFE", 1), + ("\U000AFFFF", 1), + ("\U000BFFFD", 0), + ("\U000BFFFE", 1), + ("\U000BFFFF", 1), + ("\U000CFFFD", 0), + ("\U000CFFFE", 1), + ("\U000CFFFF", 1), + ("\U000DFFFD", 0), + ("\U000DFFFE", 1), + ("\U000DFFFF", 1), + ("\U000EFFFD", 0), + ("\U000EFFFE", 1), + ("\U000EFFFF", 1), + ("\U000FFFFD", 0), + ("\U000FFFFE", 1), + ("\U000FFFFF", 1), + ("\U0010FFFD", 0), + ("\U0010FFFE", 1), + ("\U0010FFFF", 1), + ("\x01\x01\x01", 3), + ("a\x01a\x01a\x01a", 3)]) +def test_invalid_codepoints(inp, num): + stream = HTMLUnicodeInputStream(StringIO(inp)) + for _i in range(len(inp)): + stream.char() + assert len(stream.errors) == num + + +@pytest.mark.skipif(not supports_lone_surrogates, reason="doesn't support lone surrogates") +@pytest.mark.parametrize("inp,num", + [("'\\uD7FF'", 0), + ("'\\uD800'", 1), + ("'\\uDBFF'", 1), + ("'\\uDC00'", 1), + ("'\\uDFFF'", 1), + ("'\\uE000'", 0), + ("'\\uD800\\uD800\\uD800'", 3), + ("'a\\uD800a\\uD800a\\uD800a'", 3), + ("'\\uDFFF\\uDBFF'", 2), + pytest.mark.skipif(sys.maxunicode == 0xFFFF, + ("'\\uDBFF\\uDFFF'", 2), + reason="narrow Python")]) +def test_invalid_codepoints_surrogates(inp, num): + inp = eval(inp) # pylint:disable=eval-used + fp = StringIO(inp) + if ord(max(fp.read())) > 0xFFFF: + pytest.skip("StringIO altered string") + fp.seek(0) + stream = HTMLUnicodeInputStream(fp) + for _i in range(len(inp)): + stream.char() + assert len(stream.errors) == num diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_treeadapters.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_treeadapters.py index 5f38b6c33d2..95e56c00c9d 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_treeadapters.py +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_treeadapters.py @@ -1,6 +1,6 @@ from __future__ import absolute_import, division, unicode_literals -from . import support # flake8: noqa +from . import support # noqa import html5lib from html5lib.treeadapters import sax @@ -25,7 +25,7 @@ def test_to_sax(): ('endElementNS', ('http://www.w3.org/1999/xhtml', 'title'), 'title'), ('characters', '\n '), ('endElementNS', ('http://www.w3.org/1999/xhtml', 'head'), 'head'), - ('startElementNS', ('http://www.w3.org/1999/xhtml', 'body'), 'body', {}), + ('startElementNS', ('http://www.w3.org/1999/xhtml', 'body'), 'body', {}), ('startElementNS', ('http://www.w3.org/1999/xhtml', 'a'), 'a', {(None, 'href'): '/'}), ('startElementNS', ('http://www.w3.org/1999/xhtml', 'b'), 'b', {}), ('startElementNS', ('http://www.w3.org/1999/xhtml', 'p'), 'p', {}), diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_treewalkers.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_treewalkers.py new file mode 100644 index 00000000000..67fc89e55f3 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_treewalkers.py @@ -0,0 +1,136 @@ +from __future__ import absolute_import, division, unicode_literals + +import itertools + +import pytest + +try: + import lxml.etree +except ImportError: + pass + +from .support import treeTypes + +from html5lib import html5parser, treewalkers +from html5lib.filters.lint import Filter as Lint + +import re +attrlist = re.compile(r"^(\s+)\w+=.*(\n\1\w+=.*)+", re.M) + + +def sortattrs(x): + lines = x.group(0).split("\n") + lines.sort() + return "\n".join(lines) + + +def test_all_tokens(): + expected = [ + {'data': {}, 'type': 'StartTag', 'namespace': 'http://www.w3.org/1999/xhtml', 'name': 'html'}, + {'data': {}, 'type': 'StartTag', 'namespace': 'http://www.w3.org/1999/xhtml', 'name': 'head'}, + {'type': 'EndTag', 'namespace': 'http://www.w3.org/1999/xhtml', 'name': 'head'}, + {'data': {}, 'type': 'StartTag', 'namespace': 'http://www.w3.org/1999/xhtml', 'name': 'body'}, + {'data': 'a', 'type': 'Characters'}, + {'data': {}, 'type': 'StartTag', 'namespace': 'http://www.w3.org/1999/xhtml', 'name': 'div'}, + {'data': 'b', 'type': 'Characters'}, + {'type': 'EndTag', 'namespace': 'http://www.w3.org/1999/xhtml', 'name': 'div'}, + {'data': 'c', 'type': 'Characters'}, + {'type': 'EndTag', 'namespace': 'http://www.w3.org/1999/xhtml', 'name': 'body'}, + {'type': 'EndTag', 'namespace': 'http://www.w3.org/1999/xhtml', 'name': 'html'} + ] + for _, treeCls in sorted(treeTypes.items()): + if treeCls is None: + continue + p = html5parser.HTMLParser(tree=treeCls["builder"]) + document = p.parse("<html><head></head><body>a<div>b</div>c</body></html>") + document = treeCls.get("adapter", lambda x: x)(document) + output = Lint(treeCls["walker"](document)) + for expectedToken, outputToken in zip(expected, output): + assert expectedToken == outputToken + + +def set_attribute_on_first_child(docfrag, name, value, treeName): + """naively sets an attribute on the first child of the document + fragment passed in""" + setter = {'ElementTree': lambda d: d[0].set, + 'DOM': lambda d: d.firstChild.setAttribute} + setter['cElementTree'] = setter['ElementTree'] + try: + setter.get(treeName, setter['DOM'])(docfrag)(name, value) + except AttributeError: + setter['ElementTree'](docfrag)(name, value) + + +def runTreewalkerEditTest(intext, expected, attrs_to_add, tree): + """tests what happens when we add attributes to the intext""" + treeName, treeClass = tree + if treeClass is None: + pytest.skip("Treebuilder not loaded") + parser = html5parser.HTMLParser(tree=treeClass["builder"]) + document = parser.parseFragment(intext) + for nom, val in attrs_to_add: + set_attribute_on_first_child(document, nom, val, treeName) + + document = treeClass.get("adapter", lambda x: x)(document) + output = treewalkers.pprint(treeClass["walker"](document)) + output = attrlist.sub(sortattrs, output) + if output not in expected: + raise AssertionError("TreewalkerEditTest: %s\nExpected:\n%s\nReceived:\n%s" % (treeName, expected, output)) + + +def test_treewalker_six_mix(): + """Str/Unicode mix. If str attrs added to tree""" + + # On Python 2.x string literals are of type str. Unless, like this + # file, the programmer imports unicode_literals from __future__. + # In that case, string literals become objects of type unicode. + + # This test simulates a Py2 user, modifying attributes on a document + # fragment but not using the u'' syntax nor importing unicode_literals + sm_tests = [ + ('<a href="http://example.com">Example</a>', + [(str('class'), str('test123'))], + '<a>\n class="test123"\n href="http://example.com"\n "Example"'), + + ('<link href="http://example.com/cow">', + [(str('rel'), str('alternate'))], + '<link>\n href="http://example.com/cow"\n rel="alternate"\n "Example"') + ] + + for tree in sorted(treeTypes.items()): + for intext, attrs, expected in sm_tests: + yield runTreewalkerEditTest, intext, expected, attrs, tree + + +@pytest.mark.parametrize("tree,char", itertools.product(sorted(treeTypes.items()), ["x", "\u1234"])) +def test_fragment_single_char(tree, char): + expected = [ + {'data': char, 'type': 'Characters'} + ] + + treeName, treeClass = tree + if treeClass is None: + pytest.skip("Treebuilder not loaded") + + parser = html5parser.HTMLParser(tree=treeClass["builder"]) + document = parser.parseFragment(char) + document = treeClass.get("adapter", lambda x: x)(document) + output = Lint(treeClass["walker"](document)) + + assert list(output) == expected + + +@pytest.mark.skipif(treeTypes["lxml"] is None, reason="lxml not importable") +def test_lxml_xml(): + expected = [ + {'data': {}, 'name': 'div', 'namespace': None, 'type': 'StartTag'}, + {'data': {}, 'name': 'div', 'namespace': None, 'type': 'StartTag'}, + {'name': 'div', 'namespace': None, 'type': 'EndTag'}, + {'name': 'div', 'namespace': None, 'type': 'EndTag'} + ] + + lxmltree = lxml.etree.fromstring('<div><div></div></div>') + walker = treewalkers.getTreeWalker('lxml') + output = Lint(walker(lxmltree)) + + assert list(output) == expected diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_whitespace_filter.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_whitespace_filter.py new file mode 100644 index 00000000000..e9da6140a93 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/test_whitespace_filter.py @@ -0,0 +1,125 @@ +from __future__ import absolute_import, division, unicode_literals + +from html5lib.filters.whitespace import Filter +from html5lib.constants import spaceCharacters +spaceCharacters = "".join(spaceCharacters) + + +def runTest(input, expected): + output = list(Filter(input)) + errorMsg = "\n".join(["\n\nInput:", str(input), + "\nExpected:", str(expected), + "\nReceived:", str(output)]) + assert expected == output, errorMsg + + +def runTestUnmodifiedOutput(input): + runTest(input, input) + + +def testPhrasingElements(): + runTestUnmodifiedOutput( + [{"type": "Characters", "data": "This is a "}, + {"type": "StartTag", "name": "span", "data": []}, + {"type": "Characters", "data": "phrase"}, + {"type": "EndTag", "name": "span", "data": []}, + {"type": "SpaceCharacters", "data": " "}, + {"type": "Characters", "data": "with"}, + {"type": "SpaceCharacters", "data": " "}, + {"type": "StartTag", "name": "em", "data": []}, + {"type": "Characters", "data": "emphasised text"}, + {"type": "EndTag", "name": "em", "data": []}, + {"type": "Characters", "data": " and an "}, + {"type": "StartTag", "name": "img", "data": [["alt", "image"]]}, + {"type": "Characters", "data": "."}]) + + +def testLeadingWhitespace(): + runTest( + [{"type": "StartTag", "name": "p", "data": []}, + {"type": "SpaceCharacters", "data": spaceCharacters}, + {"type": "Characters", "data": "foo"}, + {"type": "EndTag", "name": "p", "data": []}], + [{"type": "StartTag", "name": "p", "data": []}, + {"type": "SpaceCharacters", "data": " "}, + {"type": "Characters", "data": "foo"}, + {"type": "EndTag", "name": "p", "data": []}]) + + +def testLeadingWhitespaceAsCharacters(): + runTest( + [{"type": "StartTag", "name": "p", "data": []}, + {"type": "Characters", "data": spaceCharacters + "foo"}, + {"type": "EndTag", "name": "p", "data": []}], + [{"type": "StartTag", "name": "p", "data": []}, + {"type": "Characters", "data": " foo"}, + {"type": "EndTag", "name": "p", "data": []}]) + + +def testTrailingWhitespace(): + runTest( + [{"type": "StartTag", "name": "p", "data": []}, + {"type": "Characters", "data": "foo"}, + {"type": "SpaceCharacters", "data": spaceCharacters}, + {"type": "EndTag", "name": "p", "data": []}], + [{"type": "StartTag", "name": "p", "data": []}, + {"type": "Characters", "data": "foo"}, + {"type": "SpaceCharacters", "data": " "}, + {"type": "EndTag", "name": "p", "data": []}]) + + +def testTrailingWhitespaceAsCharacters(): + runTest( + [{"type": "StartTag", "name": "p", "data": []}, + {"type": "Characters", "data": "foo" + spaceCharacters}, + {"type": "EndTag", "name": "p", "data": []}], + [{"type": "StartTag", "name": "p", "data": []}, + {"type": "Characters", "data": "foo "}, + {"type": "EndTag", "name": "p", "data": []}]) + + +def testWhitespace(): + runTest( + [{"type": "StartTag", "name": "p", "data": []}, + {"type": "Characters", "data": "foo" + spaceCharacters + "bar"}, + {"type": "EndTag", "name": "p", "data": []}], + [{"type": "StartTag", "name": "p", "data": []}, + {"type": "Characters", "data": "foo bar"}, + {"type": "EndTag", "name": "p", "data": []}]) + + +def testLeadingWhitespaceInPre(): + runTestUnmodifiedOutput( + [{"type": "StartTag", "name": "pre", "data": []}, + {"type": "SpaceCharacters", "data": spaceCharacters}, + {"type": "Characters", "data": "foo"}, + {"type": "EndTag", "name": "pre", "data": []}]) + + +def testLeadingWhitespaceAsCharactersInPre(): + runTestUnmodifiedOutput( + [{"type": "StartTag", "name": "pre", "data": []}, + {"type": "Characters", "data": spaceCharacters + "foo"}, + {"type": "EndTag", "name": "pre", "data": []}]) + + +def testTrailingWhitespaceInPre(): + runTestUnmodifiedOutput( + [{"type": "StartTag", "name": "pre", "data": []}, + {"type": "Characters", "data": "foo"}, + {"type": "SpaceCharacters", "data": spaceCharacters}, + {"type": "EndTag", "name": "pre", "data": []}]) + + +def testTrailingWhitespaceAsCharactersInPre(): + runTestUnmodifiedOutput( + [{"type": "StartTag", "name": "pre", "data": []}, + {"type": "Characters", "data": "foo" + spaceCharacters}, + {"type": "EndTag", "name": "pre", "data": []}]) + + +def testWhitespaceInPre(): + runTestUnmodifiedOutput( + [{"type": "StartTag", "name": "pre", "data": []}, + {"type": "Characters", "data": "foo" + spaceCharacters + "bar"}, + {"type": "EndTag", "name": "pre", "data": []}]) diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_tokenizer.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/tokenizer.py index 90315ab35d2..1440a722cb8 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/test_tokenizer.py +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/tokenizer.py @@ -1,13 +1,15 @@ from __future__ import absolute_import, division, unicode_literals +import codecs import json import warnings import re -from .support import get_data_files +import pytest +from six import unichr -from html5lib.tokenizer import HTMLTokenizer -from html5lib import constants +from html5lib._tokenizer import HTMLTokenizer +from html5lib import constants, _utils class TokenizerTestParser(object): @@ -17,6 +19,7 @@ class TokenizerTestParser(object): self._lastStartTag = lastStartTag def parse(self, stream, encoding=None, innerHTML=False): + # pylint:disable=unused-argument tokenizer = self.tokenizer(stream, encoding) self.outputTokens = [] @@ -96,8 +99,8 @@ def tokensMatch(expectedTokens, receivedTokens, ignoreErrorOrder, """ checkSelfClosing = False for token in expectedTokens: - if (token[0] == "StartTag" and len(token) == 4 - or token[0] == "EndTag" and len(token) == 3): + if (token[0] == "StartTag" and len(token) == 4 or + token[0] == "EndTag" and len(token) == 3): checkSelfClosing = True break @@ -107,6 +110,7 @@ def tokensMatch(expectedTokens, receivedTokens, ignoreErrorOrder, token.pop() if not ignoreErrorOrder and not ignoreErrors: + expectedTokens = concatenateCharacterTokens(expectedTokens) return expectedTokens == receivedTokens else: # Sort the tokens into two groups; non-parse errors and parse errors @@ -119,12 +123,42 @@ def tokensMatch(expectedTokens, receivedTokens, ignoreErrorOrder, else: if not ignoreErrors: tokens[tokenType][1].append(token) + tokens[tokenType][0] = concatenateCharacterTokens(tokens[tokenType][0]) return tokens["expected"] == tokens["received"] +_surrogateRe = re.compile(r"\\u([0-9A-Fa-f]{4})(?:\\u([0-9A-Fa-f]{4}))?") + + def unescape(test): def decode(inp): - return inp.encode("utf-8").decode("unicode-escape") + """Decode \\uXXXX escapes + + This decodes \\uXXXX escapes, possibly into non-BMP characters when + two surrogate character escapes are adjacent to each other. + """ + # This cannot be implemented using the unicode_escape codec + # because that requires its input be ISO-8859-1, and we need + # arbitrary unicode as input. + def repl(m): + if m.group(2) is not None: + high = int(m.group(1), 16) + low = int(m.group(2), 16) + if 0xD800 <= high <= 0xDBFF and 0xDC00 <= low <= 0xDFFF: + cp = ((high - 0xD800) << 10) + (low - 0xDC00) + 0x10000 + return unichr(cp) + else: + return unichr(high) + unichr(low) + else: + return unichr(int(m.group(1), 16)) + try: + return _surrogateRe.sub(repl, inp) + except ValueError: + # This occurs when unichr throws ValueError, which should + # only be for a lone-surrogate. + if _utils.supports_lone_surrogates: + raise + return None test["input"] = decode(test["input"]) for token in test["output"]: @@ -139,28 +173,6 @@ def unescape(test): return test -def runTokenizerTest(test): - warnings.resetwarnings() - warnings.simplefilter("error") - - expected = concatenateCharacterTokens(test['output']) - if 'lastStartTag' not in test: - test['lastStartTag'] = None - parser = TokenizerTestParser(test['initialState'], - test['lastStartTag']) - tokens = parser.parse(test['input']) - tokens = concatenateCharacterTokens(tokens) - received = normalizeTokens(tokens) - errorMsg = "\n".join(["\n\nInitial state:", - test['initialState'], - "\nInput:", test['input'], - "\nExpected:", repr(expected), - "\nreceived:", repr(tokens)]) - errorMsg = errorMsg - ignoreErrorOrder = test.get('ignoreErrorOrder', False) - assert tokensMatch(expected, received, ignoreErrorOrder, True), errorMsg - - def _doCapitalize(match): return match.group(1).upper() @@ -173,16 +185,68 @@ def capitalize(s): return s -def testTokenizer(): - for filename in get_data_files('tokenizer', '*.test'): - with open(filename) as fp: +class TokenizerFile(pytest.File): + def collect(self): + with codecs.open(str(self.fspath), "r", encoding="utf-8") as fp: tests = json.load(fp) - if 'tests' in tests: - for index, test in enumerate(tests['tests']): - if 'initialStates' not in test: - test["initialStates"] = ["Data state"] - if 'doubleEscaped' in test: - test = unescape(test) - for initialState in test["initialStates"]: - test["initialState"] = capitalize(initialState) - yield runTokenizerTest, test + if 'tests' in tests: + for i, test in enumerate(tests['tests']): + yield TokenizerTestCollector(str(i), self, testdata=test) + + +class TokenizerTestCollector(pytest.Collector): + def __init__(self, name, parent=None, config=None, session=None, testdata=None): + super(TokenizerTestCollector, self).__init__(name, parent, config, session) + if 'initialStates' not in testdata: + testdata["initialStates"] = ["Data state"] + if 'doubleEscaped' in testdata: + testdata = unescape(testdata) + self.testdata = testdata + + def collect(self): + for initialState in self.testdata["initialStates"]: + initialState = capitalize(initialState) + item = TokenizerTest(initialState, + self, + self.testdata, + initialState) + if self.testdata["input"] is None: + item.add_marker(pytest.mark.skipif(True, reason="Relies on lone surrogates")) + yield item + + +class TokenizerTest(pytest.Item): + def __init__(self, name, parent, test, initialState): + super(TokenizerTest, self).__init__(name, parent) + self.obj = lambda: 1 # this is to hack around skipif needing a function! + self.test = test + self.initialState = initialState + + def runtest(self): + warnings.resetwarnings() + warnings.simplefilter("error") + + expected = self.test['output'] + if 'lastStartTag' not in self.test: + self.test['lastStartTag'] = None + parser = TokenizerTestParser(self.initialState, + self.test['lastStartTag']) + tokens = parser.parse(self.test['input']) + received = normalizeTokens(tokens) + errorMsg = "\n".join(["\n\nInitial state:", + self.initialState, + "\nInput:", self.test['input'], + "\nExpected:", repr(expected), + "\nreceived:", repr(tokens)]) + errorMsg = errorMsg + ignoreErrorOrder = self.test.get('ignoreErrorOrder', False) + assert tokensMatch(expected, received, ignoreErrorOrder, True), errorMsg + + def repr_failure(self, excinfo): + traceback = excinfo.traceback + ntraceback = traceback.cut(path=__file__) + excinfo.traceback = ntraceback.filter() + + return excinfo.getrepr(funcargs=True, + showlocals=False, + style="short", tbfilter=False) diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/tokenizertotree.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/tokenizertotree.py index b841c76ce41..b841c76ce41 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/tokenizertotree.py +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/tokenizertotree.py diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/tree_construction.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/tree_construction.py new file mode 100644 index 00000000000..c6e7ca09050 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/tree_construction.py @@ -0,0 +1,204 @@ +from __future__ import absolute_import, division, unicode_literals + +import itertools +import re +import warnings +from difflib import unified_diff + +import pytest + +from .support import TestData, convert, convertExpected, treeTypes +from html5lib import html5parser, constants, treewalkers +from html5lib.filters.lint import Filter as Lint + +_attrlist_re = re.compile(r"^(\s+)\w+=.*(\n\1\w+=.*)+", re.M) + + +def sortattrs(s): + def replace(m): + lines = m.group(0).split("\n") + lines.sort() + return "\n".join(lines) + return _attrlist_re.sub(replace, s) + + +class TreeConstructionFile(pytest.File): + def collect(self): + tests = TestData(str(self.fspath), "data") + for i, test in enumerate(tests): + yield TreeConstructionTest(str(i), self, testdata=test) + + +class TreeConstructionTest(pytest.Collector): + def __init__(self, name, parent=None, config=None, session=None, testdata=None): + super(TreeConstructionTest, self).__init__(name, parent, config, session) + self.testdata = testdata + + def collect(self): + for treeName, treeAPIs in sorted(treeTypes.items()): + for x in itertools.chain(self._getParserTests(treeName, treeAPIs), + self._getTreeWalkerTests(treeName, treeAPIs)): + yield x + + def _getParserTests(self, treeName, treeAPIs): + if treeAPIs is not None and "adapter" in treeAPIs: + return + for namespaceHTMLElements in (True, False): + if namespaceHTMLElements: + nodeid = "%s::parser::namespaced" % treeName + else: + nodeid = "%s::parser::void-namespace" % treeName + item = ParserTest(nodeid, + self, + self.testdata, + treeAPIs["builder"] if treeAPIs is not None else None, + namespaceHTMLElements) + item.add_marker(getattr(pytest.mark, treeName)) + item.add_marker(pytest.mark.parser) + if namespaceHTMLElements: + item.add_marker(pytest.mark.namespaced) + if treeAPIs is None: + item.add_marker(pytest.mark.skipif(True, reason="Treebuilder not loaded")) + yield item + + def _getTreeWalkerTests(self, treeName, treeAPIs): + nodeid = "%s::treewalker" % treeName + item = TreeWalkerTest(nodeid, + self, + self.testdata, + treeAPIs) + item.add_marker(getattr(pytest.mark, treeName)) + item.add_marker(pytest.mark.treewalker) + if treeAPIs is None: + item.add_marker(pytest.mark.skipif(True, reason="Treebuilder not loaded")) + yield item + + +def convertTreeDump(data): + return "\n".join(convert(3)(data).split("\n")[1:]) + +namespaceExpected = re.compile(r"^(\s*)<(\S+)>", re.M).sub + + +class ParserTest(pytest.Item): + def __init__(self, name, parent, test, treeClass, namespaceHTMLElements): + super(ParserTest, self).__init__(name, parent) + self.obj = lambda: 1 # this is to hack around skipif needing a function! + self.test = test + self.treeClass = treeClass + self.namespaceHTMLElements = namespaceHTMLElements + + def runtest(self): + p = html5parser.HTMLParser(tree=self.treeClass, + namespaceHTMLElements=self.namespaceHTMLElements) + + input = self.test['data'] + fragmentContainer = self.test['document-fragment'] + expected = convertExpected(self.test['document']) + expectedErrors = self.test['errors'].split("\n") if self.test['errors'] else [] + + scripting = False + if 'script-on' in self.test: + scripting = True + + with warnings.catch_warnings(): + warnings.simplefilter("error") + try: + if fragmentContainer: + document = p.parseFragment(input, fragmentContainer, scripting=scripting) + else: + document = p.parse(input, scripting=scripting) + except constants.DataLossWarning: + pytest.skip("data loss warning") + + output = convertTreeDump(p.tree.testSerializer(document)) + + expected = expected + if self.namespaceHTMLElements: + expected = namespaceExpected(r"\1<html \2>", expected) + + errorMsg = "\n".join(["\n\nInput:", input, "\nExpected:", expected, + "\nReceived:", output]) + assert expected == output, errorMsg + + errStr = [] + for (line, col), errorcode, datavars in p.errors: + assert isinstance(datavars, dict), "%s, %s" % (errorcode, repr(datavars)) + errStr.append("Line: %i Col: %i %s" % (line, col, + constants.E[errorcode] % datavars)) + + errorMsg2 = "\n".join(["\n\nInput:", input, + "\nExpected errors (" + str(len(expectedErrors)) + "):\n" + "\n".join(expectedErrors), + "\nActual errors (" + str(len(p.errors)) + "):\n" + "\n".join(errStr)]) + if False: # we're currently not testing parse errors + assert len(p.errors) == len(expectedErrors), errorMsg2 + + def repr_failure(self, excinfo): + traceback = excinfo.traceback + ntraceback = traceback.cut(path=__file__) + excinfo.traceback = ntraceback.filter() + + return excinfo.getrepr(funcargs=True, + showlocals=False, + style="short", tbfilter=False) + + +class TreeWalkerTest(pytest.Item): + def __init__(self, name, parent, test, treeAPIs): + super(TreeWalkerTest, self).__init__(name, parent) + self.obj = lambda: 1 # this is to hack around skipif needing a function! + self.test = test + self.treeAPIs = treeAPIs + + def runtest(self): + p = html5parser.HTMLParser(tree=self.treeAPIs["builder"]) + + input = self.test['data'] + fragmentContainer = self.test['document-fragment'] + expected = convertExpected(self.test['document']) + + scripting = False + if 'script-on' in self.test: + scripting = True + + with warnings.catch_warnings(): + warnings.simplefilter("error") + try: + if fragmentContainer: + document = p.parseFragment(input, fragmentContainer, scripting=scripting) + else: + document = p.parse(input, scripting=scripting) + except constants.DataLossWarning: + pytest.skip("data loss warning") + + poutput = convertTreeDump(p.tree.testSerializer(document)) + namespace_expected = namespaceExpected(r"\1<html \2>", expected) + if poutput != namespace_expected: + pytest.skip("parser output incorrect") + + document = self.treeAPIs.get("adapter", lambda x: x)(document) + + try: + output = treewalkers.pprint(Lint(self.treeAPIs["walker"](document))) + output = sortattrs(output) + expected = sortattrs(expected) + diff = "".join(unified_diff([line + "\n" for line in expected.splitlines()], + [line + "\n" for line in output.splitlines()], + "Expected", "Received")) + assert expected == output, "\n".join([ + "", "Input:", input, + "", "Expected:", expected, + "", "Received:", output, + "", "Diff:", diff, + ]) + except NotImplementedError: + pytest.skip("tree walker NotImplementedError") + + def repr_failure(self, excinfo): + traceback = excinfo.traceback + ntraceback = traceback.cut(path=__file__) + excinfo.traceback = ntraceback.filter() + + return excinfo.getrepr(funcargs=True, + showlocals=False, + style="short", tbfilter=False) diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/us-ascii.html b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/us-ascii.html index 728cb6baf98..728cb6baf98 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/us-ascii.html +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/us-ascii.html diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/utf-8-bom.html b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/utf-8-bom.html index 6ac5efcedf1..6ac5efcedf1 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/tests/utf-8-bom.html +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/tests/utf-8-bom.html diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treeadapters/__init__.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treeadapters/__init__.py new file mode 100644 index 00000000000..dfeb0ba5e1c --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treeadapters/__init__.py @@ -0,0 +1,30 @@ +"""Tree adapters let you convert from one tree structure to another + +Example: + +.. code-block:: python + + import html5lib + from html5lib.treeadapters import genshi + + doc = '<html><body>Hi!</body></html>' + treebuilder = html5lib.getTreeBuilder('etree') + parser = html5lib.HTMLParser(tree=treebuilder) + tree = parser.parse(doc) + TreeWalker = html5lib.getTreeWalker('etree') + + genshi_tree = genshi.to_genshi(TreeWalker(tree)) + +""" +from __future__ import absolute_import, division, unicode_literals + +from . import sax + +__all__ = ["sax"] + +try: + from . import genshi # noqa +except ImportError: + pass +else: + __all__.append("genshi") diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treeadapters/genshi.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treeadapters/genshi.py new file mode 100644 index 00000000000..61d5fb6ac42 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treeadapters/genshi.py @@ -0,0 +1,54 @@ +from __future__ import absolute_import, division, unicode_literals + +from genshi.core import QName, Attrs +from genshi.core import START, END, TEXT, COMMENT, DOCTYPE + + +def to_genshi(walker): + """Convert a tree to a genshi tree + + :arg walker: the treewalker to use to walk the tree to convert it + + :returns: generator of genshi nodes + + """ + text = [] + for token in walker: + type = token["type"] + if type in ("Characters", "SpaceCharacters"): + text.append(token["data"]) + elif text: + yield TEXT, "".join(text), (None, -1, -1) + text = [] + + if type in ("StartTag", "EmptyTag"): + if token["namespace"]: + name = "{%s}%s" % (token["namespace"], token["name"]) + else: + name = token["name"] + attrs = Attrs([(QName("{%s}%s" % attr if attr[0] is not None else attr[1]), value) + for attr, value in token["data"].items()]) + yield (START, (QName(name), attrs), (None, -1, -1)) + if type == "EmptyTag": + type = "EndTag" + + if type == "EndTag": + if token["namespace"]: + name = "{%s}%s" % (token["namespace"], token["name"]) + else: + name = token["name"] + + yield END, QName(name), (None, -1, -1) + + elif type == "Comment": + yield COMMENT, token["data"], (None, -1, -1) + + elif type == "Doctype": + yield DOCTYPE, (token["name"], token["publicId"], + token["systemId"]), (None, -1, -1) + + else: + pass # FIXME: What to do? + + if text: + yield TEXT, "".join(text), (None, -1, -1) diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treeadapters/sax.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treeadapters/sax.py index ad47df95648..f4ccea5a256 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treeadapters/sax.py +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treeadapters/sax.py @@ -11,7 +11,13 @@ for prefix, localName, namespace in adjustForeignAttributes.values(): def to_sax(walker, handler): - """Call SAX-like content handler based on treewalker walker""" + """Call SAX-like content handler based on treewalker walker + + :arg walker: the treewalker to use to walk the tree to convert it + + :arg handler: SAX handler to use + + """ handler.startDocument() for prefix, namespace in prefix_mapping.items(): handler.startPrefixMapping(prefix, namespace) diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treebuilders/__init__.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treebuilders/__init__.py new file mode 100644 index 00000000000..d44447eaf5a --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treebuilders/__init__.py @@ -0,0 +1,88 @@ +"""A collection of modules for building different kinds of trees from HTML +documents. + +To create a treebuilder for a new type of tree, you need to do +implement several things: + +1. A set of classes for various types of elements: Document, Doctype, Comment, + Element. These must implement the interface of ``base.treebuilders.Node`` + (although comment nodes have a different signature for their constructor, + see ``treebuilders.etree.Comment``) Textual content may also be implemented + as another node type, or not, as your tree implementation requires. + +2. A treebuilder object (called ``TreeBuilder`` by convention) that inherits + from ``treebuilders.base.TreeBuilder``. This has 4 required attributes: + + * ``documentClass`` - the class to use for the bottommost node of a document + * ``elementClass`` - the class to use for HTML Elements + * ``commentClass`` - the class to use for comments + * ``doctypeClass`` - the class to use for doctypes + + It also has one required method: + + * ``getDocument`` - Returns the root node of the complete document tree + +3. If you wish to run the unit tests, you must also create a ``testSerializer`` + method on your treebuilder which accepts a node and returns a string + containing Node and its children serialized according to the format used in + the unittests + +""" + +from __future__ import absolute_import, division, unicode_literals + +from .._utils import default_etree + +treeBuilderCache = {} + + +def getTreeBuilder(treeType, implementation=None, **kwargs): + """Get a TreeBuilder class for various types of trees with built-in support + + :arg treeType: the name of the tree type required (case-insensitive). Supported + values are: + + * "dom" - A generic builder for DOM implementations, defaulting to a + xml.dom.minidom based implementation. + * "etree" - A generic builder for tree implementations exposing an + ElementTree-like interface, defaulting to xml.etree.cElementTree if + available and xml.etree.ElementTree if not. + * "lxml" - A etree-based builder for lxml.etree, handling limitations + of lxml's implementation. + + :arg implementation: (Currently applies to the "etree" and "dom" tree + types). A module implementing the tree type e.g. xml.etree.ElementTree + or xml.etree.cElementTree. + + :arg kwargs: Any additional options to pass to the TreeBuilder when + creating it. + + Example: + + >>> from html5lib.treebuilders import getTreeBuilder + >>> builder = getTreeBuilder('etree') + + """ + + treeType = treeType.lower() + if treeType not in treeBuilderCache: + if treeType == "dom": + from . import dom + # Come up with a sane default (pref. from the stdlib) + if implementation is None: + from xml.dom import minidom + implementation = minidom + # NEVER cache here, caching is done in the dom submodule + return dom.getDomModule(implementation, **kwargs).TreeBuilder + elif treeType == "lxml": + from . import etree_lxml + treeBuilderCache[treeType] = etree_lxml.TreeBuilder + elif treeType == "etree": + from . import etree + if implementation is None: + implementation = default_etree + # NEVER cache here, caching is done in the etree submodule + return etree.getETreeModule(implementation, **kwargs).TreeBuilder + else: + raise ValueError("""Unrecognised treebuilder "%s" """ % treeType) + return treeBuilderCache.get(treeType) diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treebuilders/_base.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treebuilders/base.py index 8b97cc11a21..05d97eccc89 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treebuilders/_base.py +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treebuilders/base.py @@ -21,22 +21,25 @@ listElementsMap = { class Node(object): + """Represents an item in the tree""" def __init__(self, name): - """Node representing an item in the tree. - name - The tag name associated with the node - parent - The parent of the current node (or None for the document node) - value - The value of the current node (applies to text nodes and - comments - attributes - a dict holding name, value pairs for attributes of the node - childNodes - a list of child nodes of the current node. This must - include all elements but not necessarily other node types - _flags - A list of miscellaneous flags that can be set on the node + """Creates a Node + + :arg name: The tag name associated with the node + """ + # The tag name assocaited with the node self.name = name + # The parent of the current node (or None for the document node) self.parent = None + # The value of the current node (applies to text nodes and comments) self.value = None + # A dict holding name -> value pairs for attributes of the node self.attributes = {} + # A list of child nodes of the current node. This must include all + # elements but not necessarily other node types. self.childNodes = [] + # A list of miscellaneous flags that can be set on the node. self._flags = [] def __str__(self): @@ -53,23 +56,41 @@ class Node(object): def appendChild(self, node): """Insert node as a child of the current node + + :arg node: the node to insert + """ raise NotImplementedError def insertText(self, data, insertBefore=None): """Insert data as text in the current node, positioned before the start of node insertBefore or to the end of the node's text. + + :arg data: the data to insert + + :arg insertBefore: True if you want to insert the text before the node + and False if you want to insert it after the node + """ raise NotImplementedError def insertBefore(self, node, refNode): """Insert node as a child of the current node, before refNode in the list of child nodes. Raises ValueError if refNode is not a child of - the current node""" + the current node + + :arg node: the node to insert + + :arg refNode: the child node to insert the node before + + """ raise NotImplementedError def removeChild(self, node): """Remove node from the children of the current node + + :arg node: the child node to remove + """ raise NotImplementedError @@ -77,6 +98,9 @@ class Node(object): """Move all the children of the current node to newParent. This is needed so that trees that don't store text as nodes move the text in the correct way + + :arg newParent: the node to move all this node's children to + """ # XXX - should this method be made more general? for child in self.childNodes: @@ -121,11 +145,14 @@ class ActiveFormattingElements(list): class TreeBuilder(object): """Base treebuilder implementation - documentClass - the class to use for the bottommost node of a document - elementClass - the class to use for HTML Elements - commentClass - the class to use for comments - doctypeClass - the class to use for doctypes + + * documentClass - the class to use for the bottommost node of a document + * elementClass - the class to use for HTML Elements + * commentClass - the class to use for comments + * doctypeClass - the class to use for doctypes + """ + # pylint:disable=not-callable # Document class documentClass = None @@ -143,6 +170,11 @@ class TreeBuilder(object): fragmentClass = None def __init__(self, namespaceHTMLElements): + """Create a TreeBuilder + + :arg namespaceHTMLElements: whether or not to namespace HTML elements + + """ if namespaceHTMLElements: self.defaultNamespace = "http://www.w3.org/1999/xhtml" else: @@ -166,12 +198,17 @@ class TreeBuilder(object): # If we pass a node in we match that. if we pass a string # match any node with that name exactNode = hasattr(target, "nameTuple") + if not exactNode: + if isinstance(target, text_type): + target = (namespaces["html"], target) + assert isinstance(target, tuple) listElements, invert = listElementsMap[variant] for node in reversed(self.openElements): - if (node.name == target and not exactNode or - node == target and exactNode): + if exactNode and node == target: + return True + elif not exactNode and node.nameTuple == target: return True elif (invert ^ (node.nameTuple in listElements)): return False @@ -353,19 +390,19 @@ class TreeBuilder(object): def generateImpliedEndTags(self, exclude=None): name = self.openElements[-1].name # XXX td, th and tr are not actually needed - if (name in frozenset(("dd", "dt", "li", "option", "optgroup", "p", "rp", "rt")) - and name != exclude): + if (name in frozenset(("dd", "dt", "li", "option", "optgroup", "p", "rp", "rt")) and + name != exclude): self.openElements.pop() # XXX This is not entirely what the specification says. We should # investigate it more closely. self.generateImpliedEndTags(exclude) def getDocument(self): - "Return the final tree" + """Return the final tree""" return self.document def getFragment(self): - "Return the final fragment" + """Return the final fragment""" # assert self.innerHTML fragment = self.fragmentClass() self.openElements[0].reparentChildren(fragment) @@ -373,5 +410,8 @@ class TreeBuilder(object): def testSerializer(self, node): """Serialize the subtree of node in the format required by unit tests - node - the node from which to start serializing""" + + :arg node: the node from which to start serializing + + """ raise NotImplementedError diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treebuilders/dom.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treebuilders/dom.py index 234233b7932..dcfac220bfa 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treebuilders/dom.py +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treebuilders/dom.py @@ -1,54 +1,62 @@ from __future__ import absolute_import, division, unicode_literals +from collections import MutableMapping from xml.dom import minidom, Node import weakref -from . import _base +from . import base from .. import constants from ..constants import namespaces -from ..utils import moduleFactoryFactory +from .._utils import moduleFactoryFactory def getDomBuilder(DomImplementation): Dom = DomImplementation - class AttrList(object): + class AttrList(MutableMapping): def __init__(self, element): self.element = element def __iter__(self): - return list(self.element.attributes.items()).__iter__() + return iter(self.element.attributes.keys()) def __setitem__(self, name, value): - self.element.setAttribute(name, value) + if isinstance(name, tuple): + raise NotImplementedError + else: + attr = self.element.ownerDocument.createAttribute(name) + attr.value = value + self.element.attributes[name] = attr def __len__(self): - return len(list(self.element.attributes.items())) + return len(self.element.attributes) def items(self): - return [(item[0], item[1]) for item in - list(self.element.attributes.items())] + return list(self.element.attributes.items()) - def keys(self): - return list(self.element.attributes.keys()) + def values(self): + return list(self.element.attributes.values()) def __getitem__(self, name): - return self.element.getAttribute(name) + if isinstance(name, tuple): + raise NotImplementedError + else: + return self.element.attributes[name].value - def __contains__(self, name): + def __delitem__(self, name): if isinstance(name, tuple): raise NotImplementedError else: - return self.element.hasAttribute(name) + del self.element.attributes[name] - class NodeBuilder(_base.Node): + class NodeBuilder(base.Node): def __init__(self, element): - _base.Node.__init__(self, element.nodeName) + base.Node.__init__(self, element.nodeName) self.element = element - namespace = property(lambda self: hasattr(self.element, "namespaceURI") - and self.element.namespaceURI or None) + namespace = property(lambda self: hasattr(self.element, "namespaceURI") and + self.element.namespaceURI or None) def appendChild(self, node): node.parent = self @@ -109,7 +117,7 @@ def getDomBuilder(DomImplementation): nameTuple = property(getNameTuple) - class TreeBuilder(_base.TreeBuilder): + class TreeBuilder(base.TreeBuilder): # pylint:disable=unused-variable def documentClass(self): self.dom = Dom.getDOMImplementation().createDocument(None, None, None) return weakref.proxy(self) @@ -149,15 +157,16 @@ def getDomBuilder(DomImplementation): return self.dom def getFragment(self): - return _base.TreeBuilder.getFragment(self).element + return base.TreeBuilder.getFragment(self).element def insertText(self, data, parent=None): data = data if parent != self: - _base.TreeBuilder.insertText(self, data, parent) + base.TreeBuilder.insertText(self, data, parent) else: # HACK: allow text nodes as children of the document node if hasattr(self.dom, '_child_node_types'): + # pylint:disable=protected-access if Node.TEXT_NODE not in self.dom._child_node_types: self.dom._child_node_types = list(self.dom._child_node_types) self.dom._child_node_types.append(Node.TEXT_NODE) diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treebuilders/etree.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treebuilders/etree.py index 2c8ed19f8fe..cb1d4aef503 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treebuilders/etree.py +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treebuilders/etree.py @@ -1,13 +1,15 @@ from __future__ import absolute_import, division, unicode_literals +# pylint:disable=protected-access + from six import text_type import re -from . import _base -from .. import ihatexml +from . import base +from .. import _ihatexml from .. import constants from ..constants import namespaces -from ..utils import moduleFactoryFactory +from .._utils import moduleFactoryFactory tag_regexp = re.compile("{([^}]*)}(.*)") @@ -16,7 +18,7 @@ def getETreeBuilder(ElementTreeImplementation, fullTree=False): ElementTree = ElementTreeImplementation ElementTreeCommentType = ElementTree.Comment("asd").tag - class Element(_base.Node): + class Element(base.Node): def __init__(self, name, namespace=None): self._name = name self._namespace = namespace @@ -98,6 +100,7 @@ def getETreeBuilder(ElementTreeImplementation, fullTree=False): node.parent = self def removeChild(self, node): + self._childNodes.remove(node) self._element.remove(node._element) node.parent = None @@ -139,7 +142,7 @@ def getETreeBuilder(ElementTreeImplementation, fullTree=False): if self._element.text is not None: newParent._element.text += self._element.text self._element.text = "" - _base.Node.reparentChildren(self, newParent) + base.Node.reparentChildren(self, newParent) class Comment(Element): def __init__(self, data): @@ -253,10 +256,10 @@ def getETreeBuilder(ElementTreeImplementation, fullTree=False): return "\n".join(rv) - def tostring(element): + def tostring(element): # pylint:disable=unused-variable """Serialize an element and its child nodes to a string""" rv = [] - filter = ihatexml.InfosetFilter() + filter = _ihatexml.InfosetFilter() def serializeElement(element): if isinstance(element, ElementTree.ElementTree): @@ -307,7 +310,7 @@ def getETreeBuilder(ElementTreeImplementation, fullTree=False): return "".join(rv) - class TreeBuilder(_base.TreeBuilder): + class TreeBuilder(base.TreeBuilder): # pylint:disable=unused-variable documentClass = Document doctypeClass = DocumentType elementClass = Element @@ -329,7 +332,7 @@ def getETreeBuilder(ElementTreeImplementation, fullTree=False): return self.document._element.find("html") def getFragment(self): - return _base.TreeBuilder.getFragment(self)._element + return base.TreeBuilder.getFragment(self)._element return locals() diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treebuilders/etree_lxml.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treebuilders/etree_lxml.py index 35d08efaa61..ca12a99cccf 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treebuilders/etree_lxml.py +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treebuilders/etree_lxml.py @@ -10,16 +10,17 @@ When any of these things occur, we emit a DataLossWarning """ from __future__ import absolute_import, division, unicode_literals +# pylint:disable=protected-access import warnings import re import sys -from . import _base +from . import base from ..constants import DataLossWarning from .. import constants from . import etree as etree_builders -from .. import ihatexml +from .. import _ihatexml import lxml.etree as etree @@ -53,8 +54,7 @@ class Document(object): def testSerializer(element): rv = [] - finalText = None - infosetFilter = ihatexml.InfosetFilter() + infosetFilter = _ihatexml.InfosetFilter(preventDoubleDashComments=True) def serializeElement(element, indent=0): if not hasattr(element, "tag"): @@ -79,7 +79,7 @@ def testSerializer(element): next_element = next_element.getnext() elif isinstance(element, str) or isinstance(element, bytes): # Text in a fragment - assert isinstance(element, str) or sys.version_info.major == 2 + assert isinstance(element, str) or sys.version_info[0] == 2 rv.append("|%s\"%s\"" % (' ' * indent, element)) else: # Fragment case @@ -128,16 +128,12 @@ def testSerializer(element): rv.append("|%s\"%s\"" % (' ' * (indent - 2), element.tail)) serializeElement(element, 0) - if finalText is not None: - rv.append("|%s\"%s\"" % (' ' * 2, finalText)) - return "\n".join(rv) def tostring(element): """Serialize an element and its child nodes to a string""" rv = [] - finalText = None def serializeElement(element): if not hasattr(element, "tag"): @@ -173,13 +169,10 @@ def tostring(element): serializeElement(element) - if finalText is not None: - rv.append("%s\"" % (' ' * 2, finalText)) - return "".join(rv) -class TreeBuilder(_base.TreeBuilder): +class TreeBuilder(base.TreeBuilder): documentClass = Document doctypeClass = DocumentType elementClass = None @@ -189,13 +182,15 @@ class TreeBuilder(_base.TreeBuilder): def __init__(self, namespaceHTMLElements, fullTree=False): builder = etree_builders.getETreeModule(etree, fullTree=fullTree) - infosetFilter = self.infosetFilter = ihatexml.InfosetFilter() + infosetFilter = self.infosetFilter = _ihatexml.InfosetFilter(preventDoubleDashComments=True) self.namespaceHTMLElements = namespaceHTMLElements class Attributes(dict): - def __init__(self, element, value={}): + def __init__(self, element, value=None): + if value is None: + value = {} self._element = element - dict.__init__(self, value) + dict.__init__(self, value) # pylint:disable=non-parent-init-called for key, value in self.items(): if isinstance(key, tuple): name = "{%s}%s" % (key[2], infosetFilter.coerceAttribute(key[1])) @@ -257,12 +252,12 @@ class TreeBuilder(_base.TreeBuilder): data = property(_getData, _setData) self.elementClass = Element - self.commentClass = builder.Comment + self.commentClass = Comment # self.fragmentClass = builder.DocumentFragment - _base.TreeBuilder.__init__(self, namespaceHTMLElements) + base.TreeBuilder.__init__(self, namespaceHTMLElements) def reset(self): - _base.TreeBuilder.reset(self) + base.TreeBuilder.reset(self) self.insertComment = self.insertCommentInitial self.initial_comments = [] self.doctype = None @@ -303,19 +298,20 @@ class TreeBuilder(_base.TreeBuilder): self.doctype = doctype def insertCommentInitial(self, data, parent=None): + assert parent is None or parent is self.document + assert self.document._elementTree is None self.initial_comments.append(data) def insertCommentMain(self, data, parent=None): if (parent == self.document and self.document._elementTree.getroot()[-1].tag == comment_type): - warnings.warn("lxml cannot represent adjacent comments beyond the root elements", DataLossWarning) + warnings.warn("lxml cannot represent adjacent comments beyond the root elements", DataLossWarning) super(TreeBuilder, self).insertComment(data, parent) def insertRoot(self, token): - """Create the document root""" # Because of the way libxml2 works, it doesn't seem to be possible to # alter information like the doctype after the tree has been parsed. - # Therefore we need to use the built-in parser to create our iniial + # Therefore we need to use the built-in parser to create our initial # tree, after which we can add elements like normal docStr = "" if self.doctype: @@ -344,7 +340,8 @@ class TreeBuilder(_base.TreeBuilder): # Append the initial comments: for comment_token in self.initial_comments: - root.addprevious(etree.Comment(comment_token["data"])) + comment = self.commentClass(comment_token["data"]) + root.addprevious(comment._element) # Create the root document and add the ElementTree to it self.document = self.documentClass() diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treewalkers/__init__.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treewalkers/__init__.py new file mode 100644 index 00000000000..9bec2076f3f --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treewalkers/__init__.py @@ -0,0 +1,154 @@ +"""A collection of modules for iterating through different kinds of +tree, generating tokens identical to those produced by the tokenizer +module. + +To create a tree walker for a new type of tree, you need to do +implement a tree walker object (called TreeWalker by convention) that +implements a 'serialize' method taking a tree as sole argument and +returning an iterator generating tokens. +""" + +from __future__ import absolute_import, division, unicode_literals + +from .. import constants +from .._utils import default_etree + +__all__ = ["getTreeWalker", "pprint"] + +treeWalkerCache = {} + + +def getTreeWalker(treeType, implementation=None, **kwargs): + """Get a TreeWalker class for various types of tree with built-in support + + :arg str treeType: the name of the tree type required (case-insensitive). + Supported values are: + + * "dom": The xml.dom.minidom DOM implementation + * "etree": A generic walker for tree implementations exposing an + elementtree-like interface (known to work with ElementTree, + cElementTree and lxml.etree). + * "lxml": Optimized walker for lxml.etree + * "genshi": a Genshi stream + + :arg implementation: A module implementing the tree type e.g. + xml.etree.ElementTree or cElementTree (Currently applies to the "etree" + tree type only). + + :arg kwargs: keyword arguments passed to the etree walker--for other + walkers, this has no effect + + :returns: a TreeWalker class + + """ + + treeType = treeType.lower() + if treeType not in treeWalkerCache: + if treeType == "dom": + from . import dom + treeWalkerCache[treeType] = dom.TreeWalker + elif treeType == "genshi": + from . import genshi + treeWalkerCache[treeType] = genshi.TreeWalker + elif treeType == "lxml": + from . import etree_lxml + treeWalkerCache[treeType] = etree_lxml.TreeWalker + elif treeType == "etree": + from . import etree + if implementation is None: + implementation = default_etree + # XXX: NEVER cache here, caching is done in the etree submodule + return etree.getETreeModule(implementation, **kwargs).TreeWalker + return treeWalkerCache.get(treeType) + + +def concatenateCharacterTokens(tokens): + pendingCharacters = [] + for token in tokens: + type = token["type"] + if type in ("Characters", "SpaceCharacters"): + pendingCharacters.append(token["data"]) + else: + if pendingCharacters: + yield {"type": "Characters", "data": "".join(pendingCharacters)} + pendingCharacters = [] + yield token + if pendingCharacters: + yield {"type": "Characters", "data": "".join(pendingCharacters)} + + +def pprint(walker): + """Pretty printer for tree walkers + + Takes a TreeWalker instance and pretty prints the output of walking the tree. + + :arg walker: a TreeWalker instance + + """ + output = [] + indent = 0 + for token in concatenateCharacterTokens(walker): + type = token["type"] + if type in ("StartTag", "EmptyTag"): + # tag name + if token["namespace"] and token["namespace"] != constants.namespaces["html"]: + if token["namespace"] in constants.prefixes: + ns = constants.prefixes[token["namespace"]] + else: + ns = token["namespace"] + name = "%s %s" % (ns, token["name"]) + else: + name = token["name"] + output.append("%s<%s>" % (" " * indent, name)) + indent += 2 + # attributes (sorted for consistent ordering) + attrs = token["data"] + for (namespace, localname), value in sorted(attrs.items()): + if namespace: + if namespace in constants.prefixes: + ns = constants.prefixes[namespace] + else: + ns = namespace + name = "%s %s" % (ns, localname) + else: + name = localname + output.append("%s%s=\"%s\"" % (" " * indent, name, value)) + # self-closing + if type == "EmptyTag": + indent -= 2 + + elif type == "EndTag": + indent -= 2 + + elif type == "Comment": + output.append("%s<!-- %s -->" % (" " * indent, token["data"])) + + elif type == "Doctype": + if token["name"]: + if token["publicId"]: + output.append("""%s<!DOCTYPE %s "%s" "%s">""" % + (" " * indent, + token["name"], + token["publicId"], + token["systemId"] if token["systemId"] else "")) + elif token["systemId"]: + output.append("""%s<!DOCTYPE %s "" "%s">""" % + (" " * indent, + token["name"], + token["systemId"])) + else: + output.append("%s<!DOCTYPE %s>" % (" " * indent, + token["name"])) + else: + output.append("%s<!DOCTYPE >" % (" " * indent,)) + + elif type == "Characters": + output.append("%s\"%s\"" % (" " * indent, token["data"])) + + elif type == "SpaceCharacters": + assert False, "concatenateCharacterTokens should have got rid of all Space tokens" + + else: + raise ValueError("Unknown token type, %s" % type) + + return "\n".join(output) diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/_base.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treewalkers/base.py index 34252e50c0e..80c474c4e93 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/_base.py +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treewalkers/base.py @@ -1,10 +1,10 @@ from __future__ import absolute_import, division, unicode_literals -from six import text_type, string_types - -import gettext -_ = gettext.gettext from xml.dom import Node +from ..constants import namespaces, voidElements, spaceCharacters + +__all__ = ["DOCUMENT", "DOCTYPE", "TEXT", "ELEMENT", "COMMENT", "ENTITY", "UNKNOWN", + "TreeWalker", "NonRecursiveTreeWalker"] DOCUMENT = Node.DOCUMENT_NODE DOCTYPE = Node.DOCUMENT_TYPE_NODE @@ -14,80 +14,115 @@ COMMENT = Node.COMMENT_NODE ENTITY = Node.ENTITY_NODE UNKNOWN = "<#UNKNOWN#>" -from ..constants import voidElements, spaceCharacters spaceCharacters = "".join(spaceCharacters) -def to_text(s, blank_if_none=True): - """Wrapper around six.text_type to convert None to empty string""" - if s is None: - if blank_if_none: - return "" - else: - return None - elif isinstance(s, text_type): - return s - else: - return text_type(s) +class TreeWalker(object): + """Walks a tree yielding tokens + Tokens are dicts that all have a ``type`` field specifying the type of the + token. -def is_text_or_none(string): - """Wrapper around isinstance(string_types) or is None""" - return string is None or isinstance(string, string_types) + """ + def __init__(self, tree): + """Creates a TreeWalker + :arg tree: the tree to walk -class TreeWalker(object): - def __init__(self, tree): + """ self.tree = tree def __iter__(self): raise NotImplementedError def error(self, msg): + """Generates an error token with the given message + + :arg msg: the error message + + :returns: SerializeError token + + """ return {"type": "SerializeError", "data": msg} def emptyTag(self, namespace, name, attrs, hasChildren=False): - assert namespace is None or isinstance(namespace, string_types), type(namespace) - assert isinstance(name, string_types), type(name) - assert all((namespace is None or isinstance(namespace, string_types)) and - isinstance(name, string_types) and - isinstance(value, string_types) - for (namespace, name), value in attrs.items()) - - yield {"type": "EmptyTag", "name": to_text(name, False), - "namespace": to_text(namespace), + """Generates an EmptyTag token + + :arg namespace: the namespace of the token--can be ``None`` + + :arg name: the name of the element + + :arg attrs: the attributes of the element as a dict + + :arg hasChildren: whether or not to yield a SerializationError because + this tag shouldn't have children + + :returns: EmptyTag token + + """ + yield {"type": "EmptyTag", "name": name, + "namespace": namespace, "data": attrs} if hasChildren: - yield self.error(_("Void element has children")) + yield self.error("Void element has children") def startTag(self, namespace, name, attrs): - assert namespace is None or isinstance(namespace, string_types), type(namespace) - assert isinstance(name, string_types), type(name) - assert all((namespace is None or isinstance(namespace, string_types)) and - isinstance(name, string_types) and - isinstance(value, string_types) - for (namespace, name), value in attrs.items()) + """Generates a StartTag token + + :arg namespace: the namespace of the token--can be ``None`` + + :arg name: the name of the element + + :arg attrs: the attributes of the element as a dict + :returns: StartTag token + + """ return {"type": "StartTag", - "name": text_type(name), - "namespace": to_text(namespace), - "data": dict(((to_text(namespace, False), to_text(name)), - to_text(value, False)) - for (namespace, name), value in attrs.items())} + "name": name, + "namespace": namespace, + "data": attrs} def endTag(self, namespace, name): - assert namespace is None or isinstance(namespace, string_types), type(namespace) - assert isinstance(name, string_types), type(namespace) + """Generates an EndTag token + + :arg namespace: the namespace of the token--can be ``None`` + + :arg name: the name of the element + :returns: EndTag token + + """ return {"type": "EndTag", - "name": to_text(name, False), - "namespace": to_text(namespace), - "data": {}} + "name": name, + "namespace": namespace} def text(self, data): - assert isinstance(data, string_types), type(data) + """Generates SpaceCharacters and Characters tokens + + Depending on what's in the data, this generates one or more + ``SpaceCharacters`` and ``Characters`` tokens. + + For example: + + >>> from html5lib.treewalkers.base import TreeWalker + >>> # Give it an empty tree just so it instantiates + >>> walker = TreeWalker([]) + >>> list(walker.text('')) + [] + >>> list(walker.text(' ')) + [{u'data': ' ', u'type': u'SpaceCharacters'}] + >>> list(walker.text(' abc ')) # doctest: +NORMALIZE_WHITESPACE + [{u'data': ' ', u'type': u'SpaceCharacters'}, + {u'data': u'abc', u'type': u'Characters'}, + {u'data': u' ', u'type': u'SpaceCharacters'}] + + :arg data: the text data + + :returns: one or more ``SpaceCharacters`` and ``Characters`` tokens - data = to_text(data) + """ + data = data middle = data.lstrip(spaceCharacters) left = data[:len(data) - len(middle)] if left: @@ -101,28 +136,45 @@ class TreeWalker(object): yield {"type": "SpaceCharacters", "data": right} def comment(self, data): - assert isinstance(data, string_types), type(data) + """Generates a Comment token - return {"type": "Comment", "data": text_type(data)} + :arg data: the comment - def doctype(self, name, publicId=None, systemId=None, correct=True): - assert is_text_or_none(name), type(name) - assert is_text_or_none(publicId), type(publicId) - assert is_text_or_none(systemId), type(systemId) + :returns: Comment token + """ + return {"type": "Comment", "data": data} + + def doctype(self, name, publicId=None, systemId=None): + """Generates a Doctype token + + :arg name: + + :arg publicId: + + :arg systemId: + + :returns: the Doctype token + + """ return {"type": "Doctype", - "name": to_text(name), - "publicId": to_text(publicId), - "systemId": to_text(systemId), - "correct": to_text(correct)} + "name": name, + "publicId": publicId, + "systemId": systemId} def entity(self, name): - assert isinstance(name, string_types), type(name) + """Generates an Entity token + + :arg name: the entity name + + :returns: an Entity token - return {"type": "Entity", "name": text_type(name)} + """ + return {"type": "Entity", "name": name} def unknown(self, nodeType): - return self.error(_("Unknown node type: ") + nodeType) + """Handles unknown node types""" + return self.error("Unknown node type: " + nodeType) class NonRecursiveTreeWalker(TreeWalker): @@ -154,7 +206,7 @@ class NonRecursiveTreeWalker(TreeWalker): elif type == ELEMENT: namespace, name, attributes, hasChildren = details - if name in voidElements: + if (not namespace or namespace == namespaces["html"]) and name in voidElements: for token in self.emptyTag(namespace, name, attributes, hasChildren): yield token @@ -187,7 +239,7 @@ class NonRecursiveTreeWalker(TreeWalker): type, details = details[0], details[1:] if type == ELEMENT: namespace, name, attributes, hasChildren = details - if name not in voidElements: + if (namespace and namespace != namespaces["html"]) or name not in voidElements: yield self.endTag(namespace, name) if self.tree is currentNode: currentNode = None diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/dom.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treewalkers/dom.py index a01287a9448..b0c89b001fd 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/dom.py +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treewalkers/dom.py @@ -2,19 +2,16 @@ from __future__ import absolute_import, division, unicode_literals from xml.dom import Node -import gettext -_ = gettext.gettext +from . import base -from . import _base - -class TreeWalker(_base.NonRecursiveTreeWalker): +class TreeWalker(base.NonRecursiveTreeWalker): def getNodeDetails(self, node): if node.nodeType == Node.DOCUMENT_TYPE_NODE: - return _base.DOCTYPE, node.name, node.publicId, node.systemId + return base.DOCTYPE, node.name, node.publicId, node.systemId elif node.nodeType in (Node.TEXT_NODE, Node.CDATA_SECTION_NODE): - return _base.TEXT, node.nodeValue + return base.TEXT, node.nodeValue elif node.nodeType == Node.ELEMENT_NODE: attrs = {} @@ -24,17 +21,17 @@ class TreeWalker(_base.NonRecursiveTreeWalker): attrs[(attr.namespaceURI, attr.localName)] = attr.value else: attrs[(None, attr.name)] = attr.value - return (_base.ELEMENT, node.namespaceURI, node.nodeName, + return (base.ELEMENT, node.namespaceURI, node.nodeName, attrs, node.hasChildNodes()) elif node.nodeType == Node.COMMENT_NODE: - return _base.COMMENT, node.nodeValue + return base.COMMENT, node.nodeValue elif node.nodeType in (Node.DOCUMENT_NODE, Node.DOCUMENT_FRAGMENT_NODE): - return (_base.DOCUMENT,) + return (base.DOCUMENT,) else: - return _base.UNKNOWN, node.nodeType + return base.UNKNOWN, node.nodeType def getFirstChild(self, node): return node.firstChild diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/etree.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treewalkers/etree.py index fd8a9cc9b52..d15a7eebfe8 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/etree.py +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treewalkers/etree.py @@ -1,21 +1,12 @@ from __future__ import absolute_import, division, unicode_literals -try: - from collections import OrderedDict -except ImportError: - try: - from ordereddict import OrderedDict - except ImportError: - OrderedDict = dict -import gettext -_ = gettext.gettext - +from collections import OrderedDict import re -from six import text_type +from six import string_types -from . import _base -from ..utils import moduleFactoryFactory +from . import base +from .._utils import moduleFactoryFactory tag_regexp = re.compile("{([^}]*)}(.*)") @@ -24,7 +15,7 @@ def getETreeBuilder(ElementTreeImplementation): ElementTree = ElementTreeImplementation ElementTreeCommentType = ElementTree.Comment("asd").tag - class TreeWalker(_base.NonRecursiveTreeWalker): + class TreeWalker(base.NonRecursiveTreeWalker): # pylint:disable=unused-variable """Given the particular ElementTree representation, this implementation, to avoid using recursion, returns "nodes" as tuples with the following content: @@ -40,9 +31,9 @@ def getETreeBuilder(ElementTreeImplementation): """ def getNodeDetails(self, node): if isinstance(node, tuple): # It might be the root Element - elt, key, parents, flag = node + elt, _, _, flag = node if flag in ("text", "tail"): - return _base.TEXT, getattr(elt, flag) + return base.TEXT, getattr(elt, flag) else: node = elt @@ -50,17 +41,17 @@ def getETreeBuilder(ElementTreeImplementation): node = node.getroot() if node.tag in ("DOCUMENT_ROOT", "DOCUMENT_FRAGMENT"): - return (_base.DOCUMENT,) + return (base.DOCUMENT,) elif node.tag == "<!DOCTYPE>": - return (_base.DOCTYPE, node.text, + return (base.DOCTYPE, node.text, node.get("publicId"), node.get("systemId")) elif node.tag == ElementTreeCommentType: - return _base.COMMENT, node.text + return base.COMMENT, node.text else: - assert type(node.tag) == text_type, type(node.tag) + assert isinstance(node.tag, string_types), type(node.tag) # This is assumed to be an ordinary element match = tag_regexp.match(node.tag) if match: @@ -75,7 +66,7 @@ def getETreeBuilder(ElementTreeImplementation): attrs[(match.group(1), match.group(2))] = value else: attrs[(None, name)] = value - return (_base.ELEMENT, namespace, tag, + return (base.ELEMENT, namespace, tag, attrs, len(node) or node.text) def getFirstChild(self, node): @@ -131,6 +122,7 @@ def getETreeBuilder(ElementTreeImplementation): if not parents: return parent else: + assert list(parents[-1]).count(parent) == 1 return parent, list(parents[-1]).index(parent), parents, None return locals() diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/lxmletree.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treewalkers/etree_lxml.py index bc934ac05a9..fb2363112b1 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/lxmletree.py +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treewalkers/etree_lxml.py @@ -4,12 +4,9 @@ from six import text_type from lxml import etree from ..treebuilders.etree import tag_regexp -from gettext import gettext -_ = gettext +from . import base -from . import _base - -from .. import ihatexml +from .. import _ihatexml def ensure_str(s): @@ -18,20 +15,27 @@ def ensure_str(s): elif isinstance(s, text_type): return s else: - return s.decode("utf-8", "strict") + return s.decode("ascii", "strict") class Root(object): def __init__(self, et): self.elementtree = et self.children = [] - if et.docinfo.internalDTD: - self.children.append(Doctype(self, - ensure_str(et.docinfo.root_name), - ensure_str(et.docinfo.public_id), - ensure_str(et.docinfo.system_url))) - root = et.getroot() - node = root + + try: + if et.docinfo.internalDTD: + self.children.append(Doctype(self, + ensure_str(et.docinfo.root_name), + ensure_str(et.docinfo.public_id), + ensure_str(et.docinfo.system_url))) + except AttributeError: + pass + + try: + node = et.getroot() + except AttributeError: + node = et while node.getprevious() is not None: node = node.getprevious() @@ -118,35 +122,38 @@ class FragmentWrapper(object): return len(self.obj) -class TreeWalker(_base.NonRecursiveTreeWalker): +class TreeWalker(base.NonRecursiveTreeWalker): def __init__(self, tree): - if hasattr(tree, "getroot"): - tree = Root(tree) - elif isinstance(tree, list): + # pylint:disable=redefined-variable-type + if isinstance(tree, list): + self.fragmentChildren = set(tree) tree = FragmentRoot(tree) - _base.NonRecursiveTreeWalker.__init__(self, tree) - self.filter = ihatexml.InfosetFilter() + else: + self.fragmentChildren = set() + tree = Root(tree) + base.NonRecursiveTreeWalker.__init__(self, tree) + self.filter = _ihatexml.InfosetFilter() def getNodeDetails(self, node): if isinstance(node, tuple): # Text node node, key = node - assert key in ("text", "tail"), _("Text nodes are text or tail, found %s") % key - return _base.TEXT, ensure_str(getattr(node, key)) + assert key in ("text", "tail"), "Text nodes are text or tail, found %s" % key + return base.TEXT, ensure_str(getattr(node, key)) elif isinstance(node, Root): - return (_base.DOCUMENT,) + return (base.DOCUMENT,) elif isinstance(node, Doctype): - return _base.DOCTYPE, node.name, node.public_id, node.system_id + return base.DOCTYPE, node.name, node.public_id, node.system_id elif isinstance(node, FragmentWrapper) and not hasattr(node, "tag"): - return _base.TEXT, node.obj + return base.TEXT, ensure_str(node.obj) elif node.tag == etree.Comment: - return _base.COMMENT, ensure_str(node.text) + return base.COMMENT, ensure_str(node.text) elif node.tag == etree.Entity: - return _base.ENTITY, ensure_str(node.text)[1:-1] # strip &; + return base.ENTITY, ensure_str(node.text)[1:-1] # strip &; else: # This is assumed to be an ordinary element @@ -165,11 +172,11 @@ class TreeWalker(_base.NonRecursiveTreeWalker): attrs[(match.group(1), match.group(2))] = value else: attrs[(None, name)] = value - return (_base.ELEMENT, namespace, self.filter.fromXmlName(tag), + return (base.ELEMENT, namespace, self.filter.fromXmlName(tag), attrs, len(node) > 0 or node.text) def getFirstChild(self, node): - assert not isinstance(node, tuple), _("Text nodes have no children") + assert not isinstance(node, tuple), "Text nodes have no children" assert len(node) or node.text, "Node has no children" if node.text: @@ -180,7 +187,7 @@ class TreeWalker(_base.NonRecursiveTreeWalker): def getNextSibling(self, node): if isinstance(node, tuple): # Text node node, key = node - assert key in ("text", "tail"), _("Text nodes are text or tail, found %s") % key + assert key in ("text", "tail"), "Text nodes are text or tail, found %s" % key if key == "text": # XXX: we cannot use a "bool(node) and node[0] or None" construct here # because node[0] might evaluate to False if it has no child element @@ -196,9 +203,11 @@ class TreeWalker(_base.NonRecursiveTreeWalker): def getParentNode(self, node): if isinstance(node, tuple): # Text node node, key = node - assert key in ("text", "tail"), _("Text nodes are text or tail, found %s") % key + assert key in ("text", "tail"), "Text nodes are text or tail, found %s" % key if key == "text": return node # else: fallback to "normal" processing + elif node in self.fragmentChildren: + return None return node.getparent() diff --git a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/genshistream.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treewalkers/genshi.py index f559c45d044..7483be27d4d 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/html5lib/treewalkers/genshistream.py +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/html5lib/treewalkers/genshi.py @@ -4,12 +4,12 @@ from genshi.core import QName from genshi.core import START, END, XML_NAMESPACE, DOCTYPE, TEXT from genshi.core import START_NS, END_NS, START_CDATA, END_CDATA, PI, COMMENT -from . import _base +from . import base from ..constants import voidElements, namespaces -class TreeWalker(_base.TreeWalker): +class TreeWalker(base.TreeWalker): def __iter__(self): # Buffer the events so we can pass in the following one previous = None @@ -25,7 +25,7 @@ class TreeWalker(_base.TreeWalker): yield token def tokens(self, event, next): - kind, data, pos = event + kind, data, _ = event if kind == START: tag, attribs = data name = tag.localname @@ -39,8 +39,8 @@ class TreeWalker(_base.TreeWalker): if namespace == namespaces["html"] and name in voidElements: for token in self.emptyTag(namespace, name, converted_attribs, - not next or next[0] != END - or next[1] != tag): + not next or next[0] != END or + next[1] != tag): yield token else: yield self.startTag(namespace, name, converted_attribs) @@ -48,7 +48,7 @@ class TreeWalker(_base.TreeWalker): elif kind == END: name = data.localname namespace = data.namespace - if name not in voidElements: + if namespace != namespaces["html"] or name not in voidElements: yield self.endTag(namespace, name) elif kind == COMMENT: diff --git a/tests/wpt/web-platform-tests/tools/html5lib/parse.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/parse.py index 9cbf3b8d1cc..3e65c330d92 100755 --- a/tests/wpt/web-platform-tests/tools/html5lib/parse.py +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/parse.py @@ -5,18 +5,18 @@ Parse a document to a tree, with optional profiling """ import sys -import os import traceback from optparse import OptionParser -from html5lib import html5parser, sanitizer -from html5lib.tokenizer import HTMLTokenizer +from html5lib import html5parser from html5lib import treebuilders, serializer, treewalkers from html5lib import constants +from html5lib import _utils + def parse(): optParser = getOptParser() - opts,args = optParser.parse_args() + opts, args = optParser.parse_args() encoding = "utf8" try: @@ -24,7 +24,10 @@ def parse(): # Try opening from the internet if f.startswith('http://'): try: - import urllib.request, urllib.parse, urllib.error, cgi + import urllib.request + import urllib.parse + import urllib.error + import cgi f = urllib.request.urlopen(f) contentType = f.headers.get('content-type') if contentType: @@ -40,7 +43,7 @@ def parse(): try: # Try opening from file system f = open(f, "rb") - except IOError as e: + except IOError as e: sys.stderr.write("Unable to open file: %s\n" % e) sys.exit(1) except IndexError: @@ -49,12 +52,7 @@ def parse(): treebuilder = treebuilders.getTreeBuilder(opts.treebuilder) - if opts.sanitize: - tokenizer = sanitizer.HTMLSanitizer - else: - tokenizer = HTMLTokenizer - - p = html5parser.HTMLParser(tree=treebuilder, tokenizer=tokenizer, debug=opts.log) + p = html5parser.HTMLParser(tree=treebuilder, debug=opts.log) if opts.fragment: parseMethod = p.parseFragment @@ -64,11 +62,12 @@ def parse(): if opts.profile: import cProfile import pstats - cProfile.runctx("run(parseMethod, f, encoding)", None, + cProfile.runctx("run(parseMethod, f, encoding, scripting)", None, {"run": run, "parseMethod": parseMethod, "f": f, - "encoding": encoding}, + "encoding": encoding, + "scripting": opts.scripting}, "stats.prof") # XXX - We should use a temp file here stats = pstats.Stats('stats.prof') @@ -78,27 +77,29 @@ def parse(): elif opts.time: import time t0 = time.time() - document = run(parseMethod, f, encoding) + document = run(parseMethod, f, encoding, opts.scripting) t1 = time.time() if document: printOutput(p, document, opts) t2 = time.time() - sys.stderr.write("\n\nRun took: %fs (plus %fs to print the output)"%(t1-t0, t2-t1)) + sys.stderr.write("\n\nRun took: %fs (plus %fs to print the output)" % (t1 - t0, t2 - t1)) else: - sys.stderr.write("\n\nRun took: %fs"%(t1-t0)) + sys.stderr.write("\n\nRun took: %fs" % (t1 - t0)) else: - document = run(parseMethod, f, encoding) + document = run(parseMethod, f, encoding, opts.scripting) if document: printOutput(p, document, opts) -def run(parseMethod, f, encoding): + +def run(parseMethod, f, encoding, scripting): try: - document = parseMethod(f, encoding=encoding) + document = parseMethod(f, override_encoding=encoding, scripting=scripting) except: document = None traceback.print_exc() return document + def printOutput(parser, document, opts): if opts.encoding: print("Encoding:", parser.tokenizer.stream.charEncoding) @@ -108,24 +109,32 @@ def printOutput(parser, document, opts): if document is not None: if opts.xml: - sys.stdout.write(document.toxml("utf-8")) + tb = opts.treebuilder.lower() + if tb == "dom": + document.writexml(sys.stdout, encoding="utf-8") + elif tb == "lxml": + import lxml.etree + sys.stdout.write(lxml.etree.tostring(document, encoding="unicode")) + elif tb == "etree": + sys.stdout.write(_utils.default_etree.tostring(document, encoding="unicode")) elif opts.tree: - if not hasattr(document,'__getitem__'): + if not hasattr(document, '__getitem__'): document = [document] for fragment in document: print(parser.tree.testSerializer(fragment)) - elif opts.hilite: - sys.stdout.write(document.hilite("utf-8")) elif opts.html: kwargs = {} for opt in serializer.HTMLSerializer.options: try: - kwargs[opt] = getattr(opts,opt) + kwargs[opt] = getattr(opts, opt) except: pass if not kwargs['quote_char']: del kwargs['quote_char'] + if opts.sanitize: + kwargs["sanitize"] = True + tokens = treewalkers.getTreeWalker(opts.treebuilder)(document) if sys.version_info[0] >= 3: encoding = None @@ -133,12 +142,14 @@ def printOutput(parser, document, opts): encoding = "utf-8" for text in serializer.HTMLSerializer(**kwargs).serialize(tokens, encoding=encoding): sys.stdout.write(text) - if not text.endswith('\n'): sys.stdout.write('\n') + if not text.endswith('\n'): + sys.stdout.write('\n') if opts.error: - errList=[] + errList = [] for pos, errorcode, datavars in parser.errors: - errList.append("Line %i Col %i"%pos + " " + constants.E.get(errorcode, 'Unknown error "%s"' % errorcode) % datavars) - sys.stdout.write("\nParse errors:\n" + "\n".join(errList)+"\n") + errList.append("Line %i Col %i" % pos + " " + constants.E.get(errorcode, 'Unknown error "%s"' % errorcode) % datavars) + sys.stdout.write("\nParse errors:\n" + "\n".join(errList) + "\n") + def getOptParser(): parser = OptionParser(usage=__doc__) @@ -152,7 +163,7 @@ def getOptParser(): help="Time the run using time.time (may not be accurate on all platforms, especially for short runs)") parser.add_option("-b", "--treebuilder", action="store", type="string", - dest="treebuilder", default="simpleTree") + dest="treebuilder", default="etree") parser.add_option("-e", "--error", action="store_true", default=False, dest="error", help="Print a list of parse errors") @@ -160,6 +171,9 @@ def getOptParser(): parser.add_option("-f", "--fragment", action="store_true", default=False, dest="fragment", help="Parse as a fragment") + parser.add_option("-s", "--scripting", action="store_true", default=False, + dest="scripting", help="Handle noscript tags as if scripting was enabled") + parser.add_option("", "--tree", action="store_true", default=False, dest="tree", help="Output as debug tree") @@ -169,9 +183,6 @@ def getOptParser(): parser.add_option("", "--no-html", action="store_false", default=True, dest="html", help="Don't output html") - parser.add_option("", "--hilite", action="store_true", default=False, - dest="hilite", help="Output as formatted highlighted code.") - parser.add_option("-c", "--encoding", action="store_true", default=False, dest="encoding", help="Print character encoding used") diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/pytest.ini b/tests/wpt/web-platform-tests/tools/third_party/html5lib/pytest.ini new file mode 100644 index 00000000000..8824977a8f4 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/pytest.ini @@ -0,0 +1,17 @@ +[pytest] +# Output fails, errors, xpass, and warnings; ignore doctest; make warnings errors +addopts = -rfEXw -p no:doctest --strict + +# Make xpass results be considered fail +xfail_strict = true + +# Document our markers +markers = + DOM: mark a test as a DOM tree test + ElementTree: mark a test as a ElementTree tree test + cElementTree: mark a test as a cElementTree tree test + lxml: mark a test as a lxml tree test + genshi: mark a test as a genshi tree test + parser: mark a test as a parser test + namespaced: mark a test as a namespaced parser test + treewalker: mark a test as a treewalker test diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/requirements-install.sh b/tests/wpt/web-platform-tests/tools/third_party/html5lib/requirements-install.sh new file mode 100755 index 00000000000..b7a8d96dd6c --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/requirements-install.sh @@ -0,0 +1,15 @@ +#!/bin/bash -ex + +if [[ $SIX_VERSION ]]; then + pip install six==$SIX_VERSION +fi + +pip install -r requirements-test.txt + +if [[ $USE_OPTIONAL == "true" ]]; then + pip install -r requirements-optional.txt +fi + +if [[ $CI == "true" ]]; then + pip install codecov +fi diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/requirements-optional.txt b/tests/wpt/web-platform-tests/tools/third_party/html5lib/requirements-optional.txt new file mode 100644 index 00000000000..c00fd242f6f --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/requirements-optional.txt @@ -0,0 +1,17 @@ +-r requirements.txt + +# We support a Genshi treewalker that can be used to serialize Genshi +# streams. +genshi + +# chardet can be used as a fallback in case we are unable to determine +# the encoding of a document. +chardet>=2.2 + +# lxml is supported with its own treebuilder ("lxml") and otherwise +# uses the standard ElementTree support +lxml ; platform_python_implementation == 'CPython' + +# DATrie can be used in place of our Python trie implementation for +# slightly better parsing performance. +datrie ; platform_python_implementation == 'CPython' diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/requirements-test.txt b/tests/wpt/web-platform-tests/tools/third_party/html5lib/requirements-test.txt new file mode 100644 index 00000000000..4e223a3fde1 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/requirements-test.txt @@ -0,0 +1,10 @@ +-r requirements.txt + +tox + +flake8<3.0 + +pytest==3.2.5 +coverage +pytest-expect>=1.1,<2.0 +mock diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/requirements.txt b/tests/wpt/web-platform-tests/tools/third_party/html5lib/requirements.txt new file mode 100644 index 00000000000..ae7ec3d08b9 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/requirements.txt @@ -0,0 +1,2 @@ +six>=1.9 +webencodings diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/setup.cfg b/tests/wpt/web-platform-tests/tools/third_party/html5lib/setup.cfg new file mode 100644 index 00000000000..d309fdaa3f4 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/setup.cfg @@ -0,0 +1,14 @@ +[bdist_wheel] +universal = 1 + +[pep8] +ignore = N +max-line-length = 139 +exclude = .git,__pycache__,.tox,doc + +[flake8] +ignore = N +max-line-length = 139 + +[metadata] +license_file = LICENSE diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/setup.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/setup.py new file mode 100644 index 00000000000..3e413f2a933 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/setup.py @@ -0,0 +1,125 @@ +from __future__ import print_function + +import ast +import codecs +import sys + +from os.path import join, dirname +from setuptools import setup, find_packages, __version__ as setuptools_version +from pkg_resources import parse_version + +import pkg_resources + +try: + import _markerlib.markers +except ImportError: + _markerlib = None + + +# _markerlib.default_environment() obtains its data from _VARS +# and wraps it in another dict, but _markerlib_evaluate writes +# to the dict while it is iterating the keys, causing an error +# on Python 3 only. +# Replace _markerlib.default_environment to return a custom dict +# that has all the necessary markers, and ignores any writes. + +class Python3MarkerDict(dict): + + def __setitem__(self, key, value): + pass + + def pop(self, i=-1): + return self[i] + + +if _markerlib and sys.version_info[0] == 3: + env = _markerlib.markers._VARS + for key in list(env.keys()): + new_key = key.replace('.', '_') + if new_key != key: + env[new_key] = env[key] + + _markerlib.markers._VARS = Python3MarkerDict(env) + + def default_environment(): + return _markerlib.markers._VARS + + _markerlib.default_environment = default_environment + +# Avoid the very buggy pkg_resources.parser, which doesnt consistently +# recognise the markers needed by this setup.py +# Change this to setuptools 20.10.0 to support all markers. +if pkg_resources: + if parse_version(setuptools_version) < parse_version('18.5'): + MarkerEvaluation = pkg_resources.MarkerEvaluation + + del pkg_resources.parser + pkg_resources.evaluate_marker = MarkerEvaluation._markerlib_evaluate + MarkerEvaluation.evaluate_marker = MarkerEvaluation._markerlib_evaluate + +classifiers = [ + 'Development Status :: 5 - Production/Stable', + 'Intended Audience :: Developers', + 'License :: OSI Approved :: MIT License', + 'Operating System :: OS Independent', + 'Programming Language :: Python', + 'Programming Language :: Python :: 2', + 'Programming Language :: Python :: 2.7', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.3', + 'Programming Language :: Python :: 3.4', + 'Programming Language :: Python :: 3.5', + 'Programming Language :: Python :: 3.6', + 'Topic :: Software Development :: Libraries :: Python Modules', + 'Topic :: Text Processing :: Markup :: HTML' +] + +here = dirname(__file__) +with codecs.open(join(here, 'README.rst'), 'r', 'utf8') as readme_file: + with codecs.open(join(here, 'CHANGES.rst'), 'r', 'utf8') as changes_file: + long_description = readme_file.read() + '\n' + changes_file.read() + +version = None +with open(join(here, "html5lib", "__init__.py"), "rb") as init_file: + t = ast.parse(init_file.read(), filename="__init__.py", mode="exec") + assert isinstance(t, ast.Module) + assignments = filter(lambda x: isinstance(x, ast.Assign), t.body) + for a in assignments: + if (len(a.targets) == 1 and + isinstance(a.targets[0], ast.Name) and + a.targets[0].id == "__version__" and + isinstance(a.value, ast.Str)): + version = a.value.s + +setup(name='html5lib', + version=version, + url='https://github.com/html5lib/html5lib-python', + license="MIT License", + description='HTML parser based on the WHATWG HTML specification', + long_description=long_description, + classifiers=classifiers, + maintainer='James Graham', + maintainer_email='james@hoppipolla.co.uk', + packages=find_packages(exclude=["*.tests", "*.tests.*", "tests.*", "tests"]), + install_requires=[ + 'six>=1.9', + 'webencodings', + ], + extras_require={ + # A conditional extra will only install these items when the extra is + # requested and the condition matches. + "datrie:platform_python_implementation == 'CPython'": ["datrie"], + "lxml:platform_python_implementation == 'CPython'": ["lxml"], + + # Standard extras, will be installed when the extra is requested. + "genshi": ["genshi"], + "chardet": ["chardet>=2.2"], + + # The all extra combines a standard extra which will be used anytime + # the all extra is requested, and it extends it with a conditional + # extra that will be installed whenever the condition matches and the + # all extra is requested. + "all": ["genshi", "chardet>=2.2"], + "all:platform_python_implementation == 'CPython'": ["datrie", "lxml"], + }, + ) diff --git a/tests/wpt/web-platform-tests/tools/third_party/html5lib/tox.ini b/tests/wpt/web-platform-tests/tools/third_party/html5lib/tox.ini new file mode 100644 index 00000000000..e07ef670cef --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/tox.ini @@ -0,0 +1,23 @@ +[tox] +envlist = {py27,py33,py34,py35,py36,pypy}-{base,six19,optional} + +[testenv] +deps = + optional: -r{toxinidir}/requirements-optional.txt + -r{toxinidir}/requirements-test.txt + doc: Sphinx + +passenv = + PYTEST_COMMAND + COVERAGE_RUN_OPTIONS +commands = + six19: pip install six==1.9 + {env:PYTEST_COMMAND:{envbindir}/py.test} {posargs} + flake8 {toxinidir} + +[testenv:doc] +changedir = doc +commands = sphinx-build -b html . _build + +[flake8] +exclude = ./.tox diff --git a/tests/wpt/web-platform-tests/tools/html5lib/utils/entities.py b/tests/wpt/web-platform-tests/tools/third_party/html5lib/utils/entities.py index 116a27cbc9b..6dccf5f0bfd 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/utils/entities.py +++ b/tests/wpt/web-platform-tests/tools/third_party/html5lib/utils/entities.py @@ -2,50 +2,59 @@ import json import html5lib + def parse(path="html5ents.xml"): return html5lib.parse(open(path), treebuilder="lxml") + def entity_table(tree): return dict((entity_name("".join(tr[0].xpath(".//text()"))), entity_characters(tr[1].text)) for tr in tree.xpath("//h:tbody/h:tr", - namespaces={"h":"http://www.w3.org/1999/xhtml"})) + namespaces={"h": "http://www.w3.org/1999/xhtml"})) + def entity_name(inp): return inp.strip() + def entity_characters(inp): return "".join(codepoint_to_character(item) - for item in inp.split() - if item) + for item in inp.split() + if item) + def codepoint_to_character(inp): - return ("\U000"+inp[2:]).decode("unicode-escape") + return ("\\U000" + inp[2:]).decode("unicode-escape") + def make_tests_json(entities): test_list = make_test_list(entities) tests_json = {"tests": - [make_test(*item) for item in test_list] + [make_test(*item) for item in test_list] } return tests_json + def make_test(name, characters, good): return { - "description":test_description(name, good), - "input":"&%s"%name, - "output":test_expected(name, characters, good) - } + "description": test_description(name, good), + "input": "&%s" % name, + "output": test_expected(name, characters, good) + } + def test_description(name, good): with_semicolon = name.endswith(";") - semicolon_text = {True:"with a semi-colon", - False:"without a semi-colon"}[with_semicolon] + semicolon_text = {True: "with a semi-colon", + False: "without a semi-colon"}[with_semicolon] if good: - text = "Named entity: %s %s"%(name, semicolon_text) + text = "Named entity: %s %s" % (name, semicolon_text) else: - text = "Bad named entity: %s %s"%(name, semicolon_text) + text = "Bad named entity: %s %s" % (name, semicolon_text) return text + def test_expected(name, characters, good): rv = [] if not good or not name.endswith(";"): @@ -53,6 +62,7 @@ def test_expected(name, characters, good): rv.append(["Character", characters]) return rv + def make_test_list(entities): tests = [] for entity_name, characters in entities.items(): @@ -61,20 +71,23 @@ def make_test_list(entities): tests.append((entity_name, characters, True)) return sorted(tests) + def subentity_exists(entity_name, entities): for i in range(1, len(entity_name)): if entity_name[:-i] in entities: return True return False + def make_entities_code(entities): - entities_text = "\n".join(" \"%s\": u\"%s\","%( - name, entities[name].encode( - "unicode-escape").replace("\"", "\\\"")) - for name in sorted(entities.keys())) + entities_text = "\n".join(" \"%s\": u\"%s\"," % ( + name, entities[name].encode( + "unicode-escape").replace("\"", "\\\"")) + for name in sorted(entities.keys())) return """entities = { %s -}"""%entities_text +}""" % entities_text + def main(): entities = entity_table(parse()) @@ -85,4 +98,3 @@ def main(): if __name__ == "__main__": main() - diff --git a/tests/wpt/web-platform-tests/tools/six/CHANGES b/tests/wpt/web-platform-tests/tools/third_party/six/CHANGES index 25930bd9aa1..b399882561e 100644 --- a/tests/wpt/web-platform-tests/tools/six/CHANGES +++ b/tests/wpt/web-platform-tests/tools/third_party/six/CHANGES @@ -3,8 +3,52 @@ Changelog for six This file lists the changes in each six version. -Development version -------------------- +1.11.0 +------ + +- Pull request #178: `with_metaclass` now properly proxies `__prepare__` to the + underlying metaclass. + +- Pull request #191: Allow `with_metaclass` to work with metaclasses implemented + in C. + +- Pull request #203: Add parse_http_list and parse_keqv_list to moved + urllib.request. + +- Pull request #172 and issue #171: Add unquote_to_bytes to moved urllib.parse. + +- Pull request #167: Add `six.moves.getoutput`. + +- Pull request #80: Add `six.moves.urllib_parse.splitvalue`. + +- Pull request #75: Add `six.moves.email_mime_image`. + +- Pull request #72: Avoid creating reference cycles through tracebacks in + `reraise`. + +1.10.0 +------ + +- Issue #122: Improve the performance of `six.int2byte` on Python 3. + +- Pull request #55 and issue #99: Don't add the `winreg` module to `six.moves` + on non-Windows platforms. + +- Pull request #60 and issue #108: Add `six.moves.getcwd` and + `six.moves.getcwdu`. + +- Pull request #64: Add `create_unbound_method` to create unbound methods. + +1.9.0 +----- + +- Issue #106: Support the `flush` parameter to `six.print_`. + +- Pull request #48 and issue #15: Add the `python_2_unicode_compatible` + decorator. + +- Pull request #57 and issue #50: Add several compatibility methods for unittest + assertions that were renamed between Python 2 and 3. - Issue #105 and pull request #58: Ensure `six.wraps` respects the *updated* and *assigned* arguments. @@ -18,6 +62,9 @@ Development version - Pull request #51: Add `six.view(keys|values|itmes)`, which provide dictionary views on Python 2.7+. +- Issue #112: `six.moves.reload_module` now uses the importlib module on + Python 3.4+. + 1.8.0 ----- diff --git a/tests/wpt/web-platform-tests/tools/six/LICENSE b/tests/wpt/web-platform-tests/tools/third_party/six/LICENSE index d76e024263c..f3068bfd9e0 100644 --- a/tests/wpt/web-platform-tests/tools/six/LICENSE +++ b/tests/wpt/web-platform-tests/tools/third_party/six/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2010-2014 Benjamin Peterson +Copyright (c) 2010-2017 Benjamin Peterson Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in diff --git a/tests/wpt/web-platform-tests/tools/six/MANIFEST.in b/tests/wpt/web-platform-tests/tools/third_party/six/MANIFEST.in index b924e068eee..b924e068eee 100644 --- a/tests/wpt/web-platform-tests/tools/six/MANIFEST.in +++ b/tests/wpt/web-platform-tests/tools/third_party/six/MANIFEST.in diff --git a/tests/wpt/web-platform-tests/tools/third_party/six/PKG-INFO b/tests/wpt/web-platform-tests/tools/third_party/six/PKG-INFO new file mode 100644 index 00000000000..cd5ff4bb8e4 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/six/PKG-INFO @@ -0,0 +1,41 @@ +Metadata-Version: 1.1 +Name: six +Version: 1.11.0 +Summary: Python 2 and 3 compatibility utilities +Home-page: http://pypi.python.org/pypi/six/ +Author: Benjamin Peterson +Author-email: benjamin@python.org +License: MIT +Description: .. image:: http://img.shields.io/pypi/v/six.svg + :target: https://pypi.python.org/pypi/six + + .. image:: https://travis-ci.org/benjaminp/six.svg?branch=master + :target: https://travis-ci.org/benjaminp/six + + .. image:: http://img.shields.io/badge/license-MIT-green.svg + :target: https://github.com/benjaminp/six/blob/master/LICENSE + + Six is a Python 2 and 3 compatibility library. It provides utility functions + for smoothing over the differences between the Python versions with the goal of + writing Python code that is compatible on both Python versions. See the + documentation for more information on what is provided. + + Six supports every Python version since 2.6. It is contained in only one Python + file, so it can be easily copied into your project. (The copyright and license + notice must be retained.) + + Online documentation is at http://six.rtfd.org. + + Bugs can be reported to https://github.com/benjaminp/six. The code can also + be found there. + + For questions about six or porting in general, email the python-porting mailing + list: https://mail.python.org/mailman/listinfo/python-porting + +Platform: UNKNOWN +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 3 +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: MIT License +Classifier: Topic :: Software Development :: Libraries +Classifier: Topic :: Utilities diff --git a/tests/wpt/web-platform-tests/tools/third_party/six/README.rst b/tests/wpt/web-platform-tests/tools/third_party/six/README.rst new file mode 100644 index 00000000000..c17d8d732af --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/six/README.rst @@ -0,0 +1,25 @@ +.. image:: http://img.shields.io/pypi/v/six.svg + :target: https://pypi.python.org/pypi/six + +.. image:: https://travis-ci.org/benjaminp/six.svg?branch=master + :target: https://travis-ci.org/benjaminp/six + +.. image:: http://img.shields.io/badge/license-MIT-green.svg + :target: https://github.com/benjaminp/six/blob/master/LICENSE + +Six is a Python 2 and 3 compatibility library. It provides utility functions +for smoothing over the differences between the Python versions with the goal of +writing Python code that is compatible on both Python versions. See the +documentation for more information on what is provided. + +Six supports every Python version since 2.6. It is contained in only one Python +file, so it can be easily copied into your project. (The copyright and license +notice must be retained.) + +Online documentation is at http://six.rtfd.org. + +Bugs can be reported to https://github.com/benjaminp/six. The code can also +be found there. + +For questions about six or porting in general, email the python-porting mailing +list: https://mail.python.org/mailman/listinfo/python-porting diff --git a/tests/wpt/web-platform-tests/tools/six/documentation/Makefile b/tests/wpt/web-platform-tests/tools/third_party/six/documentation/Makefile index eebafcd6d60..eebafcd6d60 100644 --- a/tests/wpt/web-platform-tests/tools/six/documentation/Makefile +++ b/tests/wpt/web-platform-tests/tools/third_party/six/documentation/Makefile diff --git a/tests/wpt/web-platform-tests/tools/six/documentation/conf.py b/tests/wpt/web-platform-tests/tools/third_party/six/documentation/conf.py index 7e54287a69e..ad925c1c1d1 100644 --- a/tests/wpt/web-platform-tests/tools/six/documentation/conf.py +++ b/tests/wpt/web-platform-tests/tools/third_party/six/documentation/conf.py @@ -33,7 +33,7 @@ master_doc = "index" # General information about the project. project = u"six" -copyright = u"2010-2014, Benjamin Peterson" +copyright = u"2010-2017, Benjamin Peterson" sys.path.append(os.path.abspath(os.path.join(".", ".."))) from six import __version__ as six_version diff --git a/tests/wpt/web-platform-tests/tools/six/documentation/index.rst b/tests/wpt/web-platform-tests/tools/third_party/six/documentation/index.rst index 9827e6695b5..dd0dc6e3bde 100644 --- a/tests/wpt/web-platform-tests/tools/six/documentation/index.rst +++ b/tests/wpt/web-platform-tests/tools/third_party/six/documentation/index.rst @@ -13,12 +13,12 @@ Python 3. It is intended to support codebases that work on both Python 2 and 3 without modification. six consists of only one Python file, so it is painless to copy into a project. -Six can be downloaded on `PyPi <http://pypi.python.org/pypi/six/>`_. Its bug -tracker and code hosting is on `BitBucket <http://bitbucket.org/gutworth/six>`_. +Six can be downloaded on `PyPi <https://pypi.python.org/pypi/six/>`_. Its bug +tracker and code hosting is on `GitHub <https://github.com/benjaminp/six>`_. The name, "six", comes from the fact that 2*3 equals 6. Why not addition? Multiplication is more powerful, and, anyway, "five" has already been snatched -away by the Zope Five project. +away by the (admittedly now moribund) Zope Five project. Indices and tables @@ -164,7 +164,9 @@ functions and methods is the stdlib :mod:`py3:inspect` module. Get the next item of iterator *it*. :exc:`py3:StopIteration` is raised if the iterator is exhausted. This is a replacement for calling ``it.next()`` - in Python 2 and ``next(it)`` in Python 3. + in Python 2 and ``next(it)`` in Python 3. Python 2.6 and above have a + builtin ``next`` function, so six's version is only necessary for Python 2.5 + compatibility. .. function:: callable(obj) @@ -232,6 +234,13 @@ functions and methods is the stdlib :mod:`py3:inspect` module. requires the *obj*'s class to be passed. +.. function:: create_unbound_method(func, cls) + + Return an unbound method object wrapping *func*. In Python 2, this will + return a :func:`py2:types.MethodType` object. In Python 3, unbound methods + do not exist and this wrapper will simply return *func*. + + .. class:: Iterator A class for making portable iterators. The intention is that it be subclassed @@ -243,7 +252,7 @@ functions and methods is the stdlib :mod:`py3:inspect` module. aliased to :class:`py3:object`.) -.. function:: wraps(wrapped, assigned=functools.WRAPPER_ASSIGNMENTS, updated=functools.WRAPPER_UPDATES) +.. decorator:: wraps(wrapped, assigned=functools.WRAPPER_ASSIGNMENTS, updated=functools.WRAPPER_UPDATES) This is exactly the :func:`py3:functools.wraps` decorator, but it sets the ``__wrapped__`` attribute on what it decorates as :func:`py3:functools.wraps` @@ -270,10 +279,11 @@ Python 2 and 3. :func:`exec` with them should be avoided. -.. function:: print_(*args, *, file=sys.stdout, end="\\n", sep=" ") +.. function:: print_(*args, *, file=sys.stdout, end="\\n", sep=" ", flush=False) Print *args* into *file*. Each argument will be separated with *sep* and - *end* will be written to the file after the last argument is printed. + *end* will be written to the file after the last argument is printed. If + *flush* is true, ``file.flush()`` will be called after all data is written. .. note:: @@ -320,7 +330,7 @@ Python 2 and 3. decorator. -.. function:: add_metaclass(metaclass) +.. decorator:: add_metaclass(metaclass) Class decorator that replaces a normally-constructed class with a metaclass-constructed one. Example usage: :: @@ -337,7 +347,7 @@ Python 2 and 3. on Python 3 or :: class MyClass(object): - __metaclass__ = MyMeta + __metaclass__ = Meta on Python 2. @@ -353,7 +363,7 @@ Binary and text data >>>>>>>>>>>>>>>>>>>> Python 3 enforces the distinction between byte strings and text strings far more -rigoriously than Python 2 does; binary data cannot be automatically coerced to +rigorously than Python 2 does; binary data cannot be automatically coerced to or from text data. six provides several functions to assist in classifying string data in all Python versions. @@ -368,7 +378,7 @@ string data in all Python versions. .. note:: Since all Python versions 2.6 and after support the ``b`` prefix, - :func:`b`, code without 2.5 support doesn't need :func:`b`. + code without 2.5 support doesn't need :func:`b`. .. function:: u(text) @@ -382,7 +392,7 @@ string data in all Python versions. .. note:: In Python 3.3, the ``u`` prefix has been reintroduced. Code that only - supports Python 3 versions greater than 3.3 thus does not need + supports Python 3 versions of 3.3 and higher thus does not need :func:`u`. .. note:: @@ -425,7 +435,7 @@ string data in all Python versions. .. data:: StringIO - This is an fake file object for textual data. It's an alias for + This is a fake file object for textual data. It's an alias for :class:`py2:StringIO.StringIO` in Python 2 and :class:`py3:io.StringIO` in Python 3. @@ -437,6 +447,48 @@ string data in all Python versions. :class:`py3:io.BytesIO`. +.. decorator:: python_2_unicode_compatible + + A class decorator that takes a class defining a ``__str__`` method. On + Python 3, the decorator does nothing. On Python 2, it aliases the + ``__str__`` method to ``__unicode__`` and creates a new ``__str__`` method + that returns the result of ``__unicode__()`` encoded with UTF-8. + + +unittest assertions +>>>>>>>>>>>>>>>>>>> + +Six contains compatibility shims for unittest assertions that have been renamed. +The parameters are the same as their aliases, but you must pass the test method +as the first argument. For example:: + + import six + import unittest + + class TestAssertCountEqual(unittest.TestCase): + def test(self): + six.assertCountEqual(self, (1, 2), [2, 1]) + +Note these functions are only available on Python 2.7 or later. + +.. function:: assertCountEqual() + + Alias for :meth:`~py3:unittest.TestCase.assertCountEqual` on Python 3 and + :meth:`~py2:unittest.TestCase.assertItemsEqual` on Python 2. + + +.. function:: assertRaisesRegex() + + Alias for :meth:`~py3:unittest.TestCase.assertRaisesRegex` on Python 3 and + :meth:`~py2:unittest.TestCase.assertRaisesRegexp` on Python 2. + + +.. function:: assertRegex() + + Alias for :meth:`~py3:unittest.TestCase.assertRegex` on Python 3 and + :meth:`~py2:unittest.TestCase.assertRegexpMatches` on Python 2. + + Renamed modules and attributes compatibility >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> @@ -480,14 +532,14 @@ functionality; its structure mimics the structure of the Python 3 from six.moves.cPickle import loads - work, six places special proxy objects in in :data:`py3:sys.modules`. These + work, six places special proxy objects in :data:`py3:sys.modules`. These proxies lazily load the underlying module when an attribute is fetched. This will fail if the underlying module is not available in the Python interpreter. For example, ``sys.modules["six.moves.winreg"].LoadKey`` would fail on any non-Windows platform. Unfortunately, some applications try to load attributes on every module in :data:`py3:sys.modules`. six mitigates this problem for some applications by pretending attributes on unimportable - modules don't exist. This hack doesn't work in every case, though. If you are + modules do not exist. This hack does not work in every case, though. If you are encountering problems with the lazy modules and don't use any from imports directly from ``six.moves`` modules, you can workaround the issue by removing the six proxy modules:: @@ -498,133 +550,143 @@ functionality; its structure mimics the structure of the Python 3 Supported renames: -+------------------------------+-------------------------------------+-------------------------------------+ -| Name | Python 2 name | Python 3 name | -+==============================+=====================================+=====================================+ -| ``builtins`` | :mod:`py2:__builtin__` | :mod:`py3:builtins` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``configparser`` | :mod:`py2:ConfigParser` | :mod:`py3:configparser` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``copyreg`` | :mod:`py2:copy_reg` | :mod:`py3:copyreg` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``cPickle`` | :mod:`py2:cPickle` | :mod:`py3:pickle` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``cStringIO`` | :func:`py2:cStringIO.StringIO` | :class:`py3:io.StringIO` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``dbm_gnu`` | :func:`py2:gdbm` | :class:`py3:dbm.gnu` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``_dummy_thread`` | :mod:`py2:dummy_thread` | :mod:`py3:_dummy_thread` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``email_mime_multipart`` | :mod:`py2:email.MIMEMultipart` | :mod:`py3:email.mime.multipart` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``email_mime_nonmultipart`` | :mod:`py2:email.MIMENonMultipart` | :mod:`py3:email.mime.nonmultipart` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``email_mime_text`` | :mod:`py2:email.MIMEText` | :mod:`py3:email.mime.text` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``email_mime_base`` | :mod:`py2:email.MIMEBase` | :mod:`py3:email.mime.base` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``filter`` | :func:`py2:itertools.ifilter` | :func:`py3:filter` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``filterfalse`` | :func:`py2:itertools.ifilterfalse` | :func:`py3:itertools.filterfalse` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``http_cookiejar`` | :mod:`py2:cookielib` | :mod:`py3:http.cookiejar` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``http_cookies`` | :mod:`py2:Cookie` | :mod:`py3:http.cookies` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``html_entities`` | :mod:`py2:htmlentitydefs` | :mod:`py3:html.entities` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``html_parser`` | :mod:`py2:HTMLParser` | :mod:`py3:html.parser` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``http_client`` | :mod:`py2:httplib` | :mod:`py3:http.client` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``BaseHTTPServer`` | :mod:`py2:BaseHTTPServer` | :mod:`py3:http.server` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``CGIHTTPServer`` | :mod:`py2:CGIHTTPServer` | :mod:`py3:http.server` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``SimpleHTTPServer`` | :mod:`py2:SimpleHTTPServer` | :mod:`py3:http.server` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``input`` | :func:`py2:raw_input` | :func:`py3:input` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``intern`` | :func:`py2:intern` | :func:`py3:sys.intern` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``map`` | :func:`py2:itertools.imap` | :func:`py3:map` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``queue`` | :mod:`py2:Queue` | :mod:`py3:queue` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``range`` | :func:`py2:xrange` | :func:`py3:range` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``reduce`` | :func:`py2:reduce` | :func:`py3:functools.reduce` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``reload_module`` | :func:`py2:reload` | :func:`py3:imp.reload` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``reprlib`` | :mod:`py2:repr` | :mod:`py3:reprlib` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``shlex_quote`` | :mod:`py2:pipes.quote` | :mod:`py3:shlex.quote` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``socketserver`` | :mod:`py2:SocketServer` | :mod:`py3:socketserver` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``_thread`` | :mod:`py2:thread` | :mod:`py3:_thread` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``tkinter`` | :mod:`py2:Tkinter` | :mod:`py3:tkinter` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``tkinter_dialog`` | :mod:`py2:Dialog` | :mod:`py3:tkinter.dialog` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``tkinter_filedialog`` | :mod:`py2:FileDialog` | :mod:`py3:tkinter.FileDialog` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``tkinter_scrolledtext`` | :mod:`py2:ScrolledText` | :mod:`py3:tkinter.scrolledtext` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``tkinter_simpledialog`` | :mod:`py2:SimpleDialog` | :mod:`py3:tkinter.simpledialog` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``tkinter_ttk`` | :mod:`py2:ttk` | :mod:`py3:tkinter.ttk` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``tkinter_tix`` | :mod:`py2:Tix` | :mod:`py3:tkinter.tix` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``tkinter_constants`` | :mod:`py2:Tkconstants` | :mod:`py3:tkinter.constants` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``tkinter_dnd`` | :mod:`py2:Tkdnd` | :mod:`py3:tkinter.dnd` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``tkinter_colorchooser`` | :mod:`py2:tkColorChooser` | :mod:`py3:tkinter.colorchooser` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``tkinter_commondialog`` | :mod:`py2:tkCommonDialog` | :mod:`py3:tkinter.commondialog` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``tkinter_tkfiledialog`` | :mod:`py2:tkFileDialog` | :mod:`py3:tkinter.filedialog` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``tkinter_font`` | :mod:`py2:tkFont` | :mod:`py3:tkinter.font` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``tkinter_messagebox`` | :mod:`py2:tkMessageBox` | :mod:`py3:tkinter.messagebox` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``tkinter_tksimpledialog`` | :mod:`py2:tkSimpleDialog` | :mod:`py3:tkinter.simpledialog` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``urllib.parse`` | See :mod:`six.moves.urllib.parse` | :mod:`py3:urllib.parse` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``urllib.error`` | See :mod:`six.moves.urllib.error` | :mod:`py3:urllib.error` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``urllib.request`` | See :mod:`six.moves.urllib.request` | :mod:`py3:urllib.request` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``urllib.response`` | See :mod:`six.moves.urllib.response`| :mod:`py3:urllib.response` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``urllib.robotparser`` | :mod:`py2:robotparser` | :mod:`py3:urllib.robotparser` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``urllib_robotparser`` | :mod:`py2:robotparser` | :mod:`py3:urllib.robotparser` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``UserDict`` | :class:`py2:UserDict.UserDict` | :class:`py3:collections.UserDict` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``UserList`` | :class:`py2:UserList.UserList` | :class:`py3:collections.UserList` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``UserString`` | :class:`py2:UserString.UserString` | :class:`py3:collections.UserString` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``winreg`` | :mod:`py2:_winreg` | :mod:`py3:winreg` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``xmlrpc_client`` | :mod:`py2:xmlrpclib` | :mod:`py3:xmlrpc.client` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``xmlrpc_server`` | :mod:`py2:SimpleXMLRPCServer` | :mod:`py3:xmlrpc.server` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``xrange`` | :func:`py2:xrange` | :func:`py3:range` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``zip`` | :func:`py2:itertools.izip` | :func:`py3:zip` | -+------------------------------+-------------------------------------+-------------------------------------+ -| ``zip_longest`` | :func:`py2:itertools.izip_longest` | :func:`py3:itertools.zip_longest` | -+------------------------------+-------------------------------------+-------------------------------------+ ++------------------------------+-------------------------------------+---------------------------------------+ +| Name | Python 2 name | Python 3 name | ++==============================+=====================================+=======================================+ +| ``builtins`` | :mod:`py2:__builtin__` | :mod:`py3:builtins` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``configparser`` | :mod:`py2:ConfigParser` | :mod:`py3:configparser` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``copyreg`` | :mod:`py2:copy_reg` | :mod:`py3:copyreg` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``cPickle`` | :mod:`py2:cPickle` | :mod:`py3:pickle` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``cStringIO`` | :func:`py2:cStringIO.StringIO` | :class:`py3:io.StringIO` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``dbm_gnu`` | :func:`py2:gdbm` | :class:`py3:dbm.gnu` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``_dummy_thread`` | :mod:`py2:dummy_thread` | :mod:`py3:_dummy_thread` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``email_mime_base`` | :mod:`py2:email.MIMEBase` | :mod:`py3:email.mime.base` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``email_mime_image`` | :mod:`py2:email.MIMEImage` | :mod:`py3:email.mime.image` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``email_mime_multipart`` | :mod:`py2:email.MIMEMultipart` | :mod:`py3:email.mime.multipart` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``email_mime_nonmultipart`` | :mod:`py2:email.MIMENonMultipart` | :mod:`py3:email.mime.nonmultipart` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``email_mime_text`` | :mod:`py2:email.MIMEText` | :mod:`py3:email.mime.text` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``filter`` | :func:`py2:itertools.ifilter` | :func:`py3:filter` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``filterfalse`` | :func:`py2:itertools.ifilterfalse` | :func:`py3:itertools.filterfalse` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``getcwd`` | :func:`py2:os.getcwdu` | :func:`py3:os.getcwd` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``getcwdb`` | :func:`py2:os.getcwd` | :func:`py3:os.getcwdb` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``getoutput`` | :func:`py2:commands.getoutput` | :func:`py3:subprocess.getoutput` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``http_cookiejar`` | :mod:`py2:cookielib` | :mod:`py3:http.cookiejar` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``http_cookies`` | :mod:`py2:Cookie` | :mod:`py3:http.cookies` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``html_entities`` | :mod:`py2:htmlentitydefs` | :mod:`py3:html.entities` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``html_parser`` | :mod:`py2:HTMLParser` | :mod:`py3:html.parser` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``http_client`` | :mod:`py2:httplib` | :mod:`py3:http.client` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``BaseHTTPServer`` | :mod:`py2:BaseHTTPServer` | :mod:`py3:http.server` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``CGIHTTPServer`` | :mod:`py2:CGIHTTPServer` | :mod:`py3:http.server` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``SimpleHTTPServer`` | :mod:`py2:SimpleHTTPServer` | :mod:`py3:http.server` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``input`` | :func:`py2:raw_input` | :func:`py3:input` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``intern`` | :func:`py2:intern` | :func:`py3:sys.intern` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``map`` | :func:`py2:itertools.imap` | :func:`py3:map` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``queue`` | :mod:`py2:Queue` | :mod:`py3:queue` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``range`` | :func:`py2:xrange` | :func:`py3:range` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``reduce`` | :func:`py2:reduce` | :func:`py3:functools.reduce` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``reload_module`` | :func:`py2:reload` | :func:`py3:imp.reload`, | +| | | :func:`py3:importlib.reload` | +| | | on Python 3.4+ | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``reprlib`` | :mod:`py2:repr` | :mod:`py3:reprlib` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``shlex_quote`` | :mod:`py2:pipes.quote` | :mod:`py3:shlex.quote` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``socketserver`` | :mod:`py2:SocketServer` | :mod:`py3:socketserver` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``_thread`` | :mod:`py2:thread` | :mod:`py3:_thread` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``tkinter`` | :mod:`py2:Tkinter` | :mod:`py3:tkinter` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``tkinter_dialog`` | :mod:`py2:Dialog` | :mod:`py3:tkinter.dialog` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``tkinter_filedialog`` | :mod:`py2:FileDialog` | :mod:`py3:tkinter.FileDialog` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``tkinter_scrolledtext`` | :mod:`py2:ScrolledText` | :mod:`py3:tkinter.scrolledtext` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``tkinter_simpledialog`` | :mod:`py2:SimpleDialog` | :mod:`py3:tkinter.simpledialog` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``tkinter_ttk`` | :mod:`py2:ttk` | :mod:`py3:tkinter.ttk` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``tkinter_tix`` | :mod:`py2:Tix` | :mod:`py3:tkinter.tix` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``tkinter_constants`` | :mod:`py2:Tkconstants` | :mod:`py3:tkinter.constants` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``tkinter_dnd`` | :mod:`py2:Tkdnd` | :mod:`py3:tkinter.dnd` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``tkinter_colorchooser`` | :mod:`py2:tkColorChooser` | :mod:`py3:tkinter.colorchooser` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``tkinter_commondialog`` | :mod:`py2:tkCommonDialog` | :mod:`py3:tkinter.commondialog` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``tkinter_tkfiledialog`` | :mod:`py2:tkFileDialog` | :mod:`py3:tkinter.filedialog` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``tkinter_font`` | :mod:`py2:tkFont` | :mod:`py3:tkinter.font` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``tkinter_messagebox`` | :mod:`py2:tkMessageBox` | :mod:`py3:tkinter.messagebox` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``tkinter_tksimpledialog`` | :mod:`py2:tkSimpleDialog` | :mod:`py3:tkinter.simpledialog` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``urllib.parse`` | See :mod:`six.moves.urllib.parse` | :mod:`py3:urllib.parse` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``urllib.error`` | See :mod:`six.moves.urllib.error` | :mod:`py3:urllib.error` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``urllib.request`` | See :mod:`six.moves.urllib.request` | :mod:`py3:urllib.request` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``urllib.response`` | See :mod:`six.moves.urllib.response`| :mod:`py3:urllib.response` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``urllib.robotparser`` | :mod:`py2:robotparser` | :mod:`py3:urllib.robotparser` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``urllib_robotparser`` | :mod:`py2:robotparser` | :mod:`py3:urllib.robotparser` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``UserDict`` | :class:`py2:UserDict.UserDict` | :class:`py3:collections.UserDict` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``UserList`` | :class:`py2:UserList.UserList` | :class:`py3:collections.UserList` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``UserString`` | :class:`py2:UserString.UserString` | :class:`py3:collections.UserString` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``winreg`` | :mod:`py2:_winreg` | :mod:`py3:winreg` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``xmlrpc_client`` | :mod:`py2:xmlrpclib` | :mod:`py3:xmlrpc.client` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``xmlrpc_server`` | :mod:`py2:SimpleXMLRPCServer` | :mod:`py3:xmlrpc.server` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``xrange`` | :func:`py2:xrange` | :func:`py3:range` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``zip`` | :func:`py2:itertools.izip` | :func:`py3:zip` | ++------------------------------+-------------------------------------+---------------------------------------+ +| ``zip_longest`` | :func:`py2:itertools.izip_longest` | :func:`py3:itertools.zip_longest` | ++------------------------------+-------------------------------------+---------------------------------------+ urllib parse <<<<<<<<<<<< @@ -659,7 +721,8 @@ and :mod:`py2:urllib`: * :func:`py2:urllib.quote_plus` * :func:`py2:urllib.splittag` * :func:`py2:urllib.splituser` -* :func:`py2:urllib.unquote` +* :func:`py2:urllib.splitvalue` +* :func:`py2:urllib.unquote` (also exposed as :func:`py3:urllib.parse.unquote_to_bytes`) * :func:`py2:urllib.unquote_plus` * :func:`py2:urllib.urlencode` @@ -706,6 +769,8 @@ and :mod:`py2:urllib2`: * :func:`py2:urllib2.urlopen` * :func:`py2:urllib2.install_opener` * :func:`py2:urllib2.build_opener` +* :func:`py2:urllib2.parse_http_list` +* :func:`py2:urllib2.parse_keqv_list` * :class:`py2:urllib2.Request` * :class:`py2:urllib2.OpenerDirector` * :class:`py2:urllib2.HTTPDefaultErrorHandler` diff --git a/tests/wpt/web-platform-tests/tools/third_party/six/setup.cfg b/tests/wpt/web-platform-tests/tools/third_party/six/setup.cfg new file mode 100644 index 00000000000..e12068c573c --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/six/setup.cfg @@ -0,0 +1,21 @@ +[bdist_wheel] +universal = 1 + +[flake8] +max-line-length = 100 +ignore = F821 + +[tool:pytest] +minversion = 2.2.0 +pep8ignore = + documentation/*.py ALL + test_six.py ALL +flakes-ignore = + documentation/*.py ALL + test_six.py ALL + six.py UndefinedName + +[egg_info] +tag_build = +tag_date = 0 + diff --git a/tests/wpt/web-platform-tests/tools/third_party/six/setup.py b/tests/wpt/web-platform-tests/tools/third_party/six/setup.py new file mode 100644 index 00000000000..ca44e100e42 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/six/setup.py @@ -0,0 +1,56 @@ +# Copyright (c) 2010-2017 Benjamin Peterson +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +from __future__ import with_statement + +# Six is a dependency of setuptools, so using setuptools creates a +# circular dependency when building a Python stack from source. We +# therefore allow falling back to distutils to install six. +try: + from setuptools import setup +except ImportError: + from distutils.core import setup + +import six + +six_classifiers = [ + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 3", + "Intended Audience :: Developers", + "License :: OSI Approved :: MIT License", + "Topic :: Software Development :: Libraries", + "Topic :: Utilities", +] + +with open("README.rst", "r") as fp: + six_long_description = fp.read() + +setup(name="six", + version=six.__version__, + author="Benjamin Peterson", + author_email="benjamin@python.org", + url="http://pypi.python.org/pypi/six/", + tests_require=["pytest"], + py_modules=["six"], + description="Python 2 and 3 compatibility utilities", + long_description=six_long_description, + license="MIT", + classifiers=six_classifiers + ) diff --git a/tests/wpt/web-platform-tests/tools/third_party/six/six.egg-info/PKG-INFO b/tests/wpt/web-platform-tests/tools/third_party/six/six.egg-info/PKG-INFO new file mode 100644 index 00000000000..cd5ff4bb8e4 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/six/six.egg-info/PKG-INFO @@ -0,0 +1,41 @@ +Metadata-Version: 1.1 +Name: six +Version: 1.11.0 +Summary: Python 2 and 3 compatibility utilities +Home-page: http://pypi.python.org/pypi/six/ +Author: Benjamin Peterson +Author-email: benjamin@python.org +License: MIT +Description: .. image:: http://img.shields.io/pypi/v/six.svg + :target: https://pypi.python.org/pypi/six + + .. image:: https://travis-ci.org/benjaminp/six.svg?branch=master + :target: https://travis-ci.org/benjaminp/six + + .. image:: http://img.shields.io/badge/license-MIT-green.svg + :target: https://github.com/benjaminp/six/blob/master/LICENSE + + Six is a Python 2 and 3 compatibility library. It provides utility functions + for smoothing over the differences between the Python versions with the goal of + writing Python code that is compatible on both Python versions. See the + documentation for more information on what is provided. + + Six supports every Python version since 2.6. It is contained in only one Python + file, so it can be easily copied into your project. (The copyright and license + notice must be retained.) + + Online documentation is at http://six.rtfd.org. + + Bugs can be reported to https://github.com/benjaminp/six. The code can also + be found there. + + For questions about six or porting in general, email the python-porting mailing + list: https://mail.python.org/mailman/listinfo/python-porting + +Platform: UNKNOWN +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 3 +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: MIT License +Classifier: Topic :: Software Development :: Libraries +Classifier: Topic :: Utilities diff --git a/tests/wpt/web-platform-tests/tools/third_party/six/six.egg-info/SOURCES.txt b/tests/wpt/web-platform-tests/tools/third_party/six/six.egg-info/SOURCES.txt new file mode 100644 index 00000000000..9a7f3dec6df --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/six/six.egg-info/SOURCES.txt @@ -0,0 +1,15 @@ +CHANGES +LICENSE +MANIFEST.in +README.rst +setup.cfg +setup.py +six.py +test_six.py +documentation/Makefile +documentation/conf.py +documentation/index.rst +six.egg-info/PKG-INFO +six.egg-info/SOURCES.txt +six.egg-info/dependency_links.txt +six.egg-info/top_level.txt
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/tools/third_party/six/six.egg-info/dependency_links.txt b/tests/wpt/web-platform-tests/tools/third_party/six/six.egg-info/dependency_links.txt new file mode 100644 index 00000000000..8b137891791 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/six/six.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/tests/wpt/web-platform-tests/tools/html5lib/requirements.txt b/tests/wpt/web-platform-tests/tools/third_party/six/six.egg-info/top_level.txt index ffe2fce4989..ffe2fce4989 100644 --- a/tests/wpt/web-platform-tests/tools/html5lib/requirements.txt +++ b/tests/wpt/web-platform-tests/tools/third_party/six/six.egg-info/top_level.txt diff --git a/tests/wpt/web-platform-tests/tools/six/six.py b/tests/wpt/web-platform-tests/tools/third_party/six/six.py index 686c20a15a6..6bf4fd38104 100644 --- a/tests/wpt/web-platform-tests/tools/six/six.py +++ b/tests/wpt/web-platform-tests/tools/third_party/six/six.py @@ -1,6 +1,4 @@ -"""Utilities for writing code that runs on Python 2 and 3""" - -# Copyright (c) 2010-2014 Benjamin Peterson +# Copyright (c) 2010-2017 Benjamin Peterson # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,6 +18,8 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. +"""Utilities for writing code that runs on Python 2 and 3""" + from __future__ import absolute_import import functools @@ -29,12 +29,13 @@ import sys import types __author__ = "Benjamin Peterson <benjamin@python.org>" -__version__ = "1.8.0" +__version__ = "1.11.0" # Useful for very coarse version differentiation. PY2 = sys.version_info[0] == 2 PY3 = sys.version_info[0] == 3 +PY34 = sys.version_info[0:2] >= (3, 4) if PY3: string_types = str, @@ -57,6 +58,7 @@ else: else: # It's possible to have sizeof(long) != sizeof(Py_ssize_t). class X(object): + def __len__(self): return 1 << 31 try: @@ -88,7 +90,7 @@ class _LazyDescr(object): def __get__(self, obj, tp): result = self._resolve() - setattr(obj, self.name, result) # Invokes __set__. + setattr(obj, self.name, result) # Invokes __set__. try: # This is a bit ugly, but it avoids running this again by # removing this descriptor. @@ -160,12 +162,14 @@ class MovedAttribute(_LazyDescr): class _SixMetaPathImporter(object): + """ A meta path importer to import six.moves and its submodules. This class implements a PEP302 finder and loader. It should be compatible with Python 2.5 and all existing versions of Python3 """ + def __init__(self, six_module_name): self.name = six_module_name self.known_modules = {} @@ -223,6 +227,7 @@ _importer = _SixMetaPathImporter(__name__) class _MovedItems(_LazyModule): + """Lazy loading of moved objects""" __path__ = [] # mark as package @@ -234,8 +239,11 @@ _moved_attributes = [ MovedAttribute("input", "__builtin__", "builtins", "raw_input", "input"), MovedAttribute("intern", "__builtin__", "sys"), MovedAttribute("map", "itertools", "builtins", "imap", "map"), + MovedAttribute("getcwd", "os", "os", "getcwdu", "getcwd"), + MovedAttribute("getcwdb", "os", "os", "getcwd", "getcwdb"), + MovedAttribute("getoutput", "commands", "subprocess"), MovedAttribute("range", "__builtin__", "builtins", "xrange", "range"), - MovedAttribute("reload_module", "__builtin__", "imp", "reload"), + MovedAttribute("reload_module", "__builtin__", "importlib" if PY34 else "imp", "reload"), MovedAttribute("reduce", "__builtin__", "functools"), MovedAttribute("shlex_quote", "pipes", "shlex", "quote"), MovedAttribute("StringIO", "StringIO", "io"), @@ -245,7 +253,6 @@ _moved_attributes = [ MovedAttribute("xrange", "__builtin__", "builtins", "xrange", "range"), MovedAttribute("zip", "itertools", "builtins", "izip", "zip"), MovedAttribute("zip_longest", "itertools", "itertools", "izip_longest", "zip_longest"), - MovedModule("builtins", "__builtin__"), MovedModule("configparser", "ConfigParser"), MovedModule("copyreg", "copy_reg"), @@ -256,10 +263,11 @@ _moved_attributes = [ MovedModule("html_entities", "htmlentitydefs", "html.entities"), MovedModule("html_parser", "HTMLParser", "html.parser"), MovedModule("http_client", "httplib", "http.client"), + MovedModule("email_mime_base", "email.MIMEBase", "email.mime.base"), + MovedModule("email_mime_image", "email.MIMEImage", "email.mime.image"), MovedModule("email_mime_multipart", "email.MIMEMultipart", "email.mime.multipart"), MovedModule("email_mime_nonmultipart", "email.MIMENonMultipart", "email.mime.nonmultipart"), MovedModule("email_mime_text", "email.MIMEText", "email.mime.text"), - MovedModule("email_mime_base", "email.MIMEBase", "email.mime.base"), MovedModule("BaseHTTPServer", "BaseHTTPServer", "http.server"), MovedModule("CGIHTTPServer", "CGIHTTPServer", "http.server"), MovedModule("SimpleHTTPServer", "SimpleHTTPServer", "http.server"), @@ -292,8 +300,13 @@ _moved_attributes = [ MovedModule("urllib_robotparser", "robotparser", "urllib.robotparser"), MovedModule("xmlrpc_client", "xmlrpclib", "xmlrpc.client"), MovedModule("xmlrpc_server", "SimpleXMLRPCServer", "xmlrpc.server"), - MovedModule("winreg", "_winreg"), ] +# Add windows specific modules. +if sys.platform == "win32": + _moved_attributes += [ + MovedModule("winreg", "_winreg"), + ] + for attr in _moved_attributes: setattr(_MovedItems, attr.name, attr) if isinstance(attr, MovedModule): @@ -307,6 +320,7 @@ _importer._add_module(moves, "moves") class Module_six_moves_urllib_parse(_LazyModule): + """Lazy loading of moved objects in six.moves.urllib_parse""" @@ -325,10 +339,12 @@ _urllib_parse_moved_attributes = [ MovedAttribute("quote_plus", "urllib", "urllib.parse"), MovedAttribute("unquote", "urllib", "urllib.parse"), MovedAttribute("unquote_plus", "urllib", "urllib.parse"), + MovedAttribute("unquote_to_bytes", "urllib", "urllib.parse", "unquote", "unquote_to_bytes"), MovedAttribute("urlencode", "urllib", "urllib.parse"), MovedAttribute("splitquery", "urllib", "urllib.parse"), MovedAttribute("splittag", "urllib", "urllib.parse"), MovedAttribute("splituser", "urllib", "urllib.parse"), + MovedAttribute("splitvalue", "urllib", "urllib.parse"), MovedAttribute("uses_fragment", "urlparse", "urllib.parse"), MovedAttribute("uses_netloc", "urlparse", "urllib.parse"), MovedAttribute("uses_params", "urlparse", "urllib.parse"), @@ -346,6 +362,7 @@ _importer._add_module(Module_six_moves_urllib_parse(__name__ + ".moves.urllib_pa class Module_six_moves_urllib_error(_LazyModule): + """Lazy loading of moved objects in six.moves.urllib_error""" @@ -365,6 +382,7 @@ _importer._add_module(Module_six_moves_urllib_error(__name__ + ".moves.urllib.er class Module_six_moves_urllib_request(_LazyModule): + """Lazy loading of moved objects in six.moves.urllib_request""" @@ -402,6 +420,8 @@ _urllib_request_moved_attributes = [ MovedAttribute("URLopener", "urllib", "urllib.request"), MovedAttribute("FancyURLopener", "urllib", "urllib.request"), MovedAttribute("proxy_bypass", "urllib", "urllib.request"), + MovedAttribute("parse_http_list", "urllib2", "urllib.request"), + MovedAttribute("parse_keqv_list", "urllib2", "urllib.request"), ] for attr in _urllib_request_moved_attributes: setattr(Module_six_moves_urllib_request, attr.name, attr) @@ -414,6 +434,7 @@ _importer._add_module(Module_six_moves_urllib_request(__name__ + ".moves.urllib. class Module_six_moves_urllib_response(_LazyModule): + """Lazy loading of moved objects in six.moves.urllib_response""" @@ -434,6 +455,7 @@ _importer._add_module(Module_six_moves_urllib_response(__name__ + ".moves.urllib class Module_six_moves_urllib_robotparser(_LazyModule): + """Lazy loading of moved objects in six.moves.urllib_robotparser""" @@ -451,6 +473,7 @@ _importer._add_module(Module_six_moves_urllib_robotparser(__name__ + ".moves.url class Module_six_moves_urllib(types.ModuleType): + """Create a six.moves.urllib namespace that resembles the Python 3 namespace""" __path__ = [] # mark as package parse = _importer._get_module("moves.urllib_parse") @@ -521,6 +544,9 @@ if PY3: create_bound_method = types.MethodType + def create_unbound_method(func, cls): + return func + Iterator = object else: def get_unbound_function(unbound): @@ -529,6 +555,9 @@ else: def create_bound_method(func, obj): return types.MethodType(func, obj, obj.__class__) + def create_unbound_method(func, cls): + return types.MethodType(func, None, cls) + class Iterator(object): def next(self): @@ -567,16 +596,16 @@ if PY3: viewitems = operator.methodcaller("items") else: def iterkeys(d, **kw): - return iter(d.iterkeys(**kw)) + return d.iterkeys(**kw) def itervalues(d, **kw): - return iter(d.itervalues(**kw)) + return d.itervalues(**kw) def iteritems(d, **kw): - return iter(d.iteritems(**kw)) + return d.iteritems(**kw) def iterlists(d, **kw): - return iter(d.iterlists(**kw)) + return d.iterlists(**kw) viewkeys = operator.methodcaller("viewkeys") @@ -595,50 +624,76 @@ _add_doc(iterlists, if PY3: def b(s): return s.encode("latin-1") + def u(s): return s unichr = chr - if sys.version_info[1] <= 1: - def int2byte(i): - return bytes((i,)) - else: - # This is about 2x faster than the implementation above on 3.2+ - int2byte = operator.methodcaller("to_bytes", 1, "big") + import struct + int2byte = struct.Struct(">B").pack + del struct byte2int = operator.itemgetter(0) indexbytes = operator.getitem iterbytes = iter import io StringIO = io.StringIO BytesIO = io.BytesIO + _assertCountEqual = "assertCountEqual" + if sys.version_info[1] <= 1: + _assertRaisesRegex = "assertRaisesRegexp" + _assertRegex = "assertRegexpMatches" + else: + _assertRaisesRegex = "assertRaisesRegex" + _assertRegex = "assertRegex" else: def b(s): return s # Workaround for standalone backslash + def u(s): return unicode(s.replace(r'\\', r'\\\\'), "unicode_escape") unichr = unichr int2byte = chr + def byte2int(bs): return ord(bs[0]) + def indexbytes(buf, i): return ord(buf[i]) iterbytes = functools.partial(itertools.imap, ord) import StringIO StringIO = BytesIO = StringIO.StringIO + _assertCountEqual = "assertItemsEqual" + _assertRaisesRegex = "assertRaisesRegexp" + _assertRegex = "assertRegexpMatches" _add_doc(b, """Byte literal""") _add_doc(u, """Text literal""") +def assertCountEqual(self, *args, **kwargs): + return getattr(self, _assertCountEqual)(*args, **kwargs) + + +def assertRaisesRegex(self, *args, **kwargs): + return getattr(self, _assertRaisesRegex)(*args, **kwargs) + + +def assertRegex(self, *args, **kwargs): + return getattr(self, _assertRegex)(*args, **kwargs) + + if PY3: exec_ = getattr(moves.builtins, "exec") - def reraise(tp, value, tb=None): - if value is None: - value = tp() - if value.__traceback__ is not tb: - raise value.with_traceback(tb) - raise value + try: + if value is None: + value = tp() + if value.__traceback__ is not tb: + raise value.with_traceback(tb) + raise value + finally: + value = None + tb = None else: def exec_(_code_, _globs_=None, _locs_=None): @@ -653,15 +708,29 @@ else: _locs_ = _globs_ exec("""exec _code_ in _globs_, _locs_""") - exec_("""def reraise(tp, value, tb=None): - raise tp, value, tb + try: + raise tp, value, tb + finally: + tb = None """) -if sys.version_info > (3, 2): +if sys.version_info[:2] == (3, 2): exec_("""def raise_from(value, from_value): - raise value from from_value + try: + if from_value is None: + raise value + raise value from from_value + finally: + value = None +""") +elif sys.version_info[:2] > (3, 2): + exec_("""def raise_from(value, from_value): + try: + raise value from from_value + finally: + value = None """) else: def raise_from(value, from_value): @@ -675,13 +744,14 @@ if print_ is None: fp = kwargs.pop("file", sys.stdout) if fp is None: return + def write(data): if not isinstance(data, basestring): data = str(data) # If the file has an encoding, encode unicode with it. if (isinstance(fp, file) and - isinstance(data, unicode) and - fp.encoding is not None): + isinstance(data, unicode) and + fp.encoding is not None): errors = getattr(fp, "errors", None) if errors is None: errors = "strict" @@ -722,6 +792,15 @@ if print_ is None: write(sep) write(arg) write(end) +if sys.version_info[:2] < (3, 3): + _print = print_ + + def print_(*args, **kwargs): + fp = kwargs.get("file", sys.stdout) + flush = kwargs.pop("flush", False) + _print(*args, **kwargs) + if flush and fp is not None: + fp.flush() _add_doc(reraise, """Reraise an exception.""") @@ -736,14 +815,20 @@ if sys.version_info[0:2] < (3, 4): else: wraps = functools.wraps + def with_metaclass(meta, *bases): """Create a base class with a metaclass.""" # This requires a bit of explanation: the basic idea is to make a dummy # metaclass for one level of class instantiation that replaces itself with # the actual metaclass. - class metaclass(meta): + class metaclass(type): + def __new__(cls, name, this_bases, d): return meta(name, bases, d) + + @classmethod + def __prepare__(cls, name, this_bases): + return meta.__prepare__(name, bases) return type.__new__(metaclass, 'temporary_class', (), {}) @@ -762,6 +847,25 @@ def add_metaclass(metaclass): return metaclass(cls.__name__, cls.__bases__, orig_vars) return wrapper + +def python_2_unicode_compatible(klass): + """ + A decorator that defines __unicode__ and __str__ methods under Python 2. + Under Python 3 it does nothing. + + To support Python 2 and 3 with a single code base, define a __str__ method + returning text and apply this decorator to the class. + """ + if PY2: + if '__str__' not in klass.__dict__: + raise ValueError("@python_2_unicode_compatible cannot be applied " + "to %s because it doesn't define __str__()." % + klass.__name__) + klass.__unicode__ = klass.__str__ + klass.__str__ = lambda self: self.__unicode__().encode('utf-8') + return klass + + # Complete the moves implementation. # This code is at the end of this module to speed up module loading. # Turn this module into a package. @@ -779,7 +883,7 @@ if sys.meta_path: # the six meta path importer, since the other six instance will have # inserted an importer with different class. if (type(importer).__name__ == "_SixMetaPathImporter" and - importer.name == __name__): + importer.name == __name__): del sys.meta_path[i] break del i, importer diff --git a/tests/wpt/web-platform-tests/tools/six/test_six.py b/tests/wpt/web-platform-tests/tools/third_party/six/test_six.py index d5555e8ac3c..43e7426dea1 100644 --- a/tests/wpt/web-platform-tests/tools/six/test_six.py +++ b/tests/wpt/web-platform-tests/tools/third_party/six/test_six.py @@ -1,6 +1,27 @@ +# Copyright (c) 2010-2017 Benjamin Peterson +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + import operator import sys import types +import unittest import py @@ -211,6 +232,12 @@ def test_map(): assert six.advance_iterator(map(lambda x: x + 1, range(2))) == 1 +def test_getoutput(): + from six.moves import getoutput + output = getoutput('echo "foo"') + assert output == 'foo' + + def test_zip(): from six.moves import zip assert six.advance_iterator(zip(range(2), range(2))) == (0, 0) @@ -389,7 +416,7 @@ def test_dictionary_iterators(monkeypatch): monkeypatch.undo() -@py.test.mark.skipif(sys.version_info[:2] < (2, 7), +@py.test.mark.skipif("sys.version_info[:2] < (2, 7)", reason="view methods on dictionaries only available on 2.7+") def test_dictionary_views(): def stock_method_name(viewwhat): @@ -455,6 +482,20 @@ def test_create_bound_method(): assert b() is x +def test_create_unbound_method(): + class X(object): + pass + + def f(self): + return self + u = six.create_unbound_method(f, X) + py.test.raises(TypeError, u) + if six.PY2: + assert isinstance(u, types.MethodType) + x = X() + assert f(x) is x + + if six.PY3: def test_b(): @@ -496,7 +537,7 @@ def test_unichr(): def test_int2byte(): assert six.int2byte(3) == six.b("\x03") - py.test.raises((OverflowError, ValueError), six.int2byte, 256) + py.test.raises(Exception, six.int2byte, 256) def test_byte2int(): @@ -635,6 +676,17 @@ def test_print_(): out = six.StringIO() six.print_(None, file=out) assert out.getvalue() == "None\n" + class FlushableStringIO(six.StringIO): + def __init__(self): + six.StringIO.__init__(self) + self.flushed = False + def flush(self): + self.flushed = True + out = FlushableStringIO() + six.print_("Hello", file=out) + assert not out.flushed + six.print_("Hello", file=out, flush=True) + assert out.flushed @py.test.mark.skipif("sys.version_info[:2] >= (2, 6)") @@ -682,6 +734,42 @@ def test_with_metaclass(): assert issubclass(X, Base) assert issubclass(X, Base2) assert X.__mro__ == (X, Base, Base2, object) + class X(six.with_metaclass(Meta)): + pass + class MetaSub(Meta): + pass + class Y(six.with_metaclass(MetaSub, X)): + pass + assert type(Y) is MetaSub + assert Y.__mro__ == (Y, X, object) + + +@py.test.mark.skipif("sys.version_info[:2] < (3, 0)") +def test_with_metaclass_prepare(): + """Test that with_metaclass causes Meta.__prepare__ to be called with the correct arguments.""" + + class MyDict(dict): + pass + + class Meta(type): + + @classmethod + def __prepare__(cls, name, bases): + namespace = MyDict(super().__prepare__(name, bases), cls=cls, bases=bases) + namespace['namespace'] = namespace + return namespace + + class Base(object): + pass + + bases = (Base,) + + class X(six.with_metaclass(Meta, *bases)): + pass + + assert getattr(X, 'cls', type) is Meta + assert getattr(X, 'bases', ()) == bases + assert isinstance(getattr(X, 'namespace', {}), MyDict) def test_wraps(): @@ -785,3 +873,62 @@ def test_add_metaclass(): __slots__ = "__weakref__", MySlotsWeakref = six.add_metaclass(Meta)(MySlotsWeakref) assert type(MySlotsWeakref) is Meta + + +@py.test.mark.skipif("sys.version_info[:2] < (2, 7) or sys.version_info[:2] in ((3, 0), (3, 1))") +def test_assertCountEqual(): + class TestAssertCountEqual(unittest.TestCase): + def test(self): + with self.assertRaises(AssertionError): + six.assertCountEqual(self, (1, 2), [3, 4, 5]) + + six.assertCountEqual(self, (1, 2), [2, 1]) + + TestAssertCountEqual('test').test() + + +@py.test.mark.skipif("sys.version_info[:2] < (2, 7)") +def test_assertRegex(): + class TestAssertRegex(unittest.TestCase): + def test(self): + with self.assertRaises(AssertionError): + six.assertRegex(self, 'test', r'^a') + + six.assertRegex(self, 'test', r'^t') + + TestAssertRegex('test').test() + + +@py.test.mark.skipif("sys.version_info[:2] < (2, 7)") +def test_assertRaisesRegex(): + class TestAssertRaisesRegex(unittest.TestCase): + def test(self): + with six.assertRaisesRegex(self, AssertionError, '^Foo'): + raise AssertionError('Foo') + + with self.assertRaises(AssertionError): + with six.assertRaisesRegex(self, AssertionError, r'^Foo'): + raise AssertionError('Bar') + + TestAssertRaisesRegex('test').test() + + +def test_python_2_unicode_compatible(): + @six.python_2_unicode_compatible + class MyTest(object): + def __str__(self): + return six.u('hello') + + def __bytes__(self): + return six.b('hello') + + my_test = MyTest() + + if six.PY2: + assert str(my_test) == six.b("hello") + assert unicode(my_test) == six.u("hello") + elif six.PY3: + assert bytes(my_test) == six.b("hello") + assert str(my_test) == six.u("hello") + + assert getattr(six.moves.builtins, 'bytes', str)(my_test) == six.b("hello") diff --git a/tests/wpt/web-platform-tests/tools/third_party/webencodings/PKG-INFO b/tests/wpt/web-platform-tests/tools/third_party/webencodings/PKG-INFO new file mode 100644 index 00000000000..2a827bbad92 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/webencodings/PKG-INFO @@ -0,0 +1,50 @@ +Metadata-Version: 1.1 +Name: webencodings +Version: 0.5.1 +Summary: Character encoding aliases for legacy web content +Home-page: https://github.com/SimonSapin/python-webencodings +Author: Geoffrey Sneddon +Author-email: me@gsnedders.com +License: BSD +Description: python-webencodings + =================== + + This is a Python implementation of the `WHATWG Encoding standard + <http://encoding.spec.whatwg.org/>`_. + + * Latest documentation: http://packages.python.org/webencodings/ + * Source code and issue tracker: + https://github.com/gsnedders/python-webencodings + * PyPI releases: http://pypi.python.org/pypi/webencodings + * License: BSD + * Python 2.6+ and 3.3+ + + In order to be compatible with legacy web content + when interpreting something like ``Content-Type: text/html; charset=latin1``, + tools need to use a particular set of aliases for encoding labels + as well as some overriding rules. + For example, ``US-ASCII`` and ``iso-8859-1`` on the web are actually + aliases for ``windows-1252``, and an UTF-8 or UTF-16 BOM takes precedence + over any other encoding declaration. + The Encoding standard defines all such details so that implementations do + not have to reverse-engineer each other. + + This module has encoding labels and BOM detection, + but the actual implementation for encoders and decoders is Python’s. + +Platform: UNKNOWN +Classifier: Development Status :: 4 - Beta +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: BSD License +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.6 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.3 +Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Topic :: Internet :: WWW/HTTP diff --git a/tests/wpt/web-platform-tests/tools/third_party/webencodings/README.rst b/tests/wpt/web-platform-tests/tools/third_party/webencodings/README.rst new file mode 100644 index 00000000000..c7e0f0cc3ef --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/webencodings/README.rst @@ -0,0 +1,25 @@ +python-webencodings +=================== + +This is a Python implementation of the `WHATWG Encoding standard +<http://encoding.spec.whatwg.org/>`_. + +* Latest documentation: http://packages.python.org/webencodings/ +* Source code and issue tracker: + https://github.com/gsnedders/python-webencodings +* PyPI releases: http://pypi.python.org/pypi/webencodings +* License: BSD +* Python 2.6+ and 3.3+ + +In order to be compatible with legacy web content +when interpreting something like ``Content-Type: text/html; charset=latin1``, +tools need to use a particular set of aliases for encoding labels +as well as some overriding rules. +For example, ``US-ASCII`` and ``iso-8859-1`` on the web are actually +aliases for ``windows-1252``, and an UTF-8 or UTF-16 BOM takes precedence +over any other encoding declaration. +The Encoding standard defines all such details so that implementations do +not have to reverse-engineer each other. + +This module has encoding labels and BOM detection, +but the actual implementation for encoders and decoders is Python’s. diff --git a/tests/wpt/web-platform-tests/tools/third_party/webencodings/setup.cfg b/tests/wpt/web-platform-tests/tools/third_party/webencodings/setup.cfg new file mode 100644 index 00000000000..460b0b40575 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/webencodings/setup.cfg @@ -0,0 +1,14 @@ +[bdist_wheel] +universal = 1 + +[build_sphinx] +source-dir = docs +build-dir = docs/_build + +[upload_sphinx] +upload-dir = docs/_build/html + +[egg_info] +tag_build = +tag_date = 0 + diff --git a/tests/wpt/web-platform-tests/tools/third_party/webencodings/setup.py b/tests/wpt/web-platform-tests/tools/third_party/webencodings/setup.py new file mode 100644 index 00000000000..cf341cfd475 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/webencodings/setup.py @@ -0,0 +1,47 @@ +from setuptools import setup, find_packages +import io +from os import path +import re + + +VERSION = re.search("VERSION = '([^']+)'", io.open( + path.join(path.dirname(__file__), 'webencodings', '__init__.py'), + encoding='utf-8' +).read().strip()).group(1) + +LONG_DESCRIPTION = io.open( + path.join(path.dirname(__file__), 'README.rst'), + encoding='utf-8' +).read() + + +setup( + name='webencodings', + version=VERSION, + url='https://github.com/SimonSapin/python-webencodings', + license='BSD', + author='Simon Sapin', + author_email='simon.sapin@exyr.org', + maintainer='Geoffrey Sneddon', + maintainer_email='me@gsnedders.com', + description='Character encoding aliases for legacy web content', + long_description=LONG_DESCRIPTION, + classifiers=[ + 'Development Status :: 4 - Beta', + 'Intended Audience :: Developers', + 'License :: OSI Approved :: BSD License', + 'Programming Language :: Python', + 'Programming Language :: Python :: 2', + 'Programming Language :: Python :: 2.6', + 'Programming Language :: Python :: 2.7', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.3', + 'Programming Language :: Python :: 3.4', + 'Programming Language :: Python :: 3.5', + 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: Implementation :: CPython', + 'Programming Language :: Python :: Implementation :: PyPy', + 'Topic :: Internet :: WWW/HTTP', + ], + packages=find_packages(), +) diff --git a/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings.egg-info/PKG-INFO b/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings.egg-info/PKG-INFO new file mode 100644 index 00000000000..2a827bbad92 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings.egg-info/PKG-INFO @@ -0,0 +1,50 @@ +Metadata-Version: 1.1 +Name: webencodings +Version: 0.5.1 +Summary: Character encoding aliases for legacy web content +Home-page: https://github.com/SimonSapin/python-webencodings +Author: Geoffrey Sneddon +Author-email: me@gsnedders.com +License: BSD +Description: python-webencodings + =================== + + This is a Python implementation of the `WHATWG Encoding standard + <http://encoding.spec.whatwg.org/>`_. + + * Latest documentation: http://packages.python.org/webencodings/ + * Source code and issue tracker: + https://github.com/gsnedders/python-webencodings + * PyPI releases: http://pypi.python.org/pypi/webencodings + * License: BSD + * Python 2.6+ and 3.3+ + + In order to be compatible with legacy web content + when interpreting something like ``Content-Type: text/html; charset=latin1``, + tools need to use a particular set of aliases for encoding labels + as well as some overriding rules. + For example, ``US-ASCII`` and ``iso-8859-1`` on the web are actually + aliases for ``windows-1252``, and an UTF-8 or UTF-16 BOM takes precedence + over any other encoding declaration. + The Encoding standard defines all such details so that implementations do + not have to reverse-engineer each other. + + This module has encoding labels and BOM detection, + but the actual implementation for encoders and decoders is Python’s. + +Platform: UNKNOWN +Classifier: Development Status :: 4 - Beta +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: BSD License +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.6 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.3 +Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Topic :: Internet :: WWW/HTTP diff --git a/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings.egg-info/SOURCES.txt b/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings.egg-info/SOURCES.txt new file mode 100644 index 00000000000..785d33ef4e9 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings.egg-info/SOURCES.txt @@ -0,0 +1,12 @@ +README.rst +setup.cfg +setup.py +webencodings/__init__.py +webencodings/labels.py +webencodings/mklabels.py +webencodings/tests.py +webencodings/x_user_defined.py +webencodings.egg-info/PKG-INFO +webencodings.egg-info/SOURCES.txt +webencodings.egg-info/dependency_links.txt +webencodings.egg-info/top_level.txt
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings.egg-info/dependency_links.txt b/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings.egg-info/dependency_links.txt new file mode 100644 index 00000000000..8b137891791 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings.egg-info/top_level.txt b/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings.egg-info/top_level.txt new file mode 100644 index 00000000000..be8fcb779f8 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings.egg-info/top_level.txt @@ -0,0 +1 @@ +webencodings diff --git a/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings/__init__.py b/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings/__init__.py new file mode 100644 index 00000000000..d21d697c887 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings/__init__.py @@ -0,0 +1,342 @@ +# coding: utf-8 +""" + + webencodings + ~~~~~~~~~~~~ + + This is a Python implementation of the `WHATWG Encoding standard + <http://encoding.spec.whatwg.org/>`. See README for details. + + :copyright: Copyright 2012 by Simon Sapin + :license: BSD, see LICENSE for details. + +""" + +from __future__ import unicode_literals + +import codecs + +from .labels import LABELS + + +VERSION = '0.5.1' + + +# Some names in Encoding are not valid Python aliases. Remap these. +PYTHON_NAMES = { + 'iso-8859-8-i': 'iso-8859-8', + 'x-mac-cyrillic': 'mac-cyrillic', + 'macintosh': 'mac-roman', + 'windows-874': 'cp874'} + +CACHE = {} + + +def ascii_lower(string): + r"""Transform (only) ASCII letters to lower case: A-Z is mapped to a-z. + + :param string: An Unicode string. + :returns: A new Unicode string. + + This is used for `ASCII case-insensitive + <http://encoding.spec.whatwg.org/#ascii-case-insensitive>`_ + matching of encoding labels. + The same matching is also used, among other things, + for `CSS keywords <http://dev.w3.org/csswg/css-values/#keywords>`_. + + This is different from the :meth:`~py:str.lower` method of Unicode strings + which also affect non-ASCII characters, + sometimes mapping them into the ASCII range: + + >>> keyword = u'Bac\N{KELVIN SIGN}ground' + >>> assert keyword.lower() == u'background' + >>> assert ascii_lower(keyword) != keyword.lower() + >>> assert ascii_lower(keyword) == u'bac\N{KELVIN SIGN}ground' + + """ + # This turns out to be faster than unicode.translate() + return string.encode('utf8').lower().decode('utf8') + + +def lookup(label): + """ + Look for an encoding by its label. + This is the spec’s `get an encoding + <http://encoding.spec.whatwg.org/#concept-encoding-get>`_ algorithm. + Supported labels are listed there. + + :param label: A string. + :returns: + An :class:`Encoding` object, or :obj:`None` for an unknown label. + + """ + # Only strip ASCII whitespace: U+0009, U+000A, U+000C, U+000D, and U+0020. + label = ascii_lower(label.strip('\t\n\f\r ')) + name = LABELS.get(label) + if name is None: + return None + encoding = CACHE.get(name) + if encoding is None: + if name == 'x-user-defined': + from .x_user_defined import codec_info + else: + python_name = PYTHON_NAMES.get(name, name) + # Any python_name value that gets to here should be valid. + codec_info = codecs.lookup(python_name) + encoding = Encoding(name, codec_info) + CACHE[name] = encoding + return encoding + + +def _get_encoding(encoding_or_label): + """ + Accept either an encoding object or label. + + :param encoding: An :class:`Encoding` object or a label string. + :returns: An :class:`Encoding` object. + :raises: :exc:`~exceptions.LookupError` for an unknown label. + + """ + if hasattr(encoding_or_label, 'codec_info'): + return encoding_or_label + + encoding = lookup(encoding_or_label) + if encoding is None: + raise LookupError('Unknown encoding label: %r' % encoding_or_label) + return encoding + + +class Encoding(object): + """Reresents a character encoding such as UTF-8, + that can be used for decoding or encoding. + + .. attribute:: name + + Canonical name of the encoding + + .. attribute:: codec_info + + The actual implementation of the encoding, + a stdlib :class:`~codecs.CodecInfo` object. + See :func:`codecs.register`. + + """ + def __init__(self, name, codec_info): + self.name = name + self.codec_info = codec_info + + def __repr__(self): + return '<Encoding %s>' % self.name + + +#: The UTF-8 encoding. Should be used for new content and formats. +UTF8 = lookup('utf-8') + +_UTF16LE = lookup('utf-16le') +_UTF16BE = lookup('utf-16be') + + +def decode(input, fallback_encoding, errors='replace'): + """ + Decode a single string. + + :param input: A byte string + :param fallback_encoding: + An :class:`Encoding` object or a label string. + The encoding to use if :obj:`input` does note have a BOM. + :param errors: Type of error handling. See :func:`codecs.register`. + :raises: :exc:`~exceptions.LookupError` for an unknown encoding label. + :return: + A ``(output, encoding)`` tuple of an Unicode string + and an :obj:`Encoding`. + + """ + # Fail early if `encoding` is an invalid label. + fallback_encoding = _get_encoding(fallback_encoding) + bom_encoding, input = _detect_bom(input) + encoding = bom_encoding or fallback_encoding + return encoding.codec_info.decode(input, errors)[0], encoding + + +def _detect_bom(input): + """Return (bom_encoding, input), with any BOM removed from the input.""" + if input.startswith(b'\xFF\xFE'): + return _UTF16LE, input[2:] + if input.startswith(b'\xFE\xFF'): + return _UTF16BE, input[2:] + if input.startswith(b'\xEF\xBB\xBF'): + return UTF8, input[3:] + return None, input + + +def encode(input, encoding=UTF8, errors='strict'): + """ + Encode a single string. + + :param input: An Unicode string. + :param encoding: An :class:`Encoding` object or a label string. + :param errors: Type of error handling. See :func:`codecs.register`. + :raises: :exc:`~exceptions.LookupError` for an unknown encoding label. + :return: A byte string. + + """ + return _get_encoding(encoding).codec_info.encode(input, errors)[0] + + +def iter_decode(input, fallback_encoding, errors='replace'): + """ + "Pull"-based decoder. + + :param input: + An iterable of byte strings. + + The input is first consumed just enough to determine the encoding + based on the precense of a BOM, + then consumed on demand when the return value is. + :param fallback_encoding: + An :class:`Encoding` object or a label string. + The encoding to use if :obj:`input` does note have a BOM. + :param errors: Type of error handling. See :func:`codecs.register`. + :raises: :exc:`~exceptions.LookupError` for an unknown encoding label. + :returns: + An ``(output, encoding)`` tuple. + :obj:`output` is an iterable of Unicode strings, + :obj:`encoding` is the :obj:`Encoding` that is being used. + + """ + + decoder = IncrementalDecoder(fallback_encoding, errors) + generator = _iter_decode_generator(input, decoder) + encoding = next(generator) + return generator, encoding + + +def _iter_decode_generator(input, decoder): + """Return a generator that first yields the :obj:`Encoding`, + then yields output chukns as Unicode strings. + + """ + decode = decoder.decode + input = iter(input) + for chunck in input: + output = decode(chunck) + if output: + assert decoder.encoding is not None + yield decoder.encoding + yield output + break + else: + # Input exhausted without determining the encoding + output = decode(b'', final=True) + assert decoder.encoding is not None + yield decoder.encoding + if output: + yield output + return + + for chunck in input: + output = decode(chunck) + if output: + yield output + output = decode(b'', final=True) + if output: + yield output + + +def iter_encode(input, encoding=UTF8, errors='strict'): + """ + “Pull”-based encoder. + + :param input: An iterable of Unicode strings. + :param encoding: An :class:`Encoding` object or a label string. + :param errors: Type of error handling. See :func:`codecs.register`. + :raises: :exc:`~exceptions.LookupError` for an unknown encoding label. + :returns: An iterable of byte strings. + + """ + # Fail early if `encoding` is an invalid label. + encode = IncrementalEncoder(encoding, errors).encode + return _iter_encode_generator(input, encode) + + +def _iter_encode_generator(input, encode): + for chunck in input: + output = encode(chunck) + if output: + yield output + output = encode('', final=True) + if output: + yield output + + +class IncrementalDecoder(object): + """ + “Push”-based decoder. + + :param fallback_encoding: + An :class:`Encoding` object or a label string. + The encoding to use if :obj:`input` does note have a BOM. + :param errors: Type of error handling. See :func:`codecs.register`. + :raises: :exc:`~exceptions.LookupError` for an unknown encoding label. + + """ + def __init__(self, fallback_encoding, errors='replace'): + # Fail early if `encoding` is an invalid label. + self._fallback_encoding = _get_encoding(fallback_encoding) + self._errors = errors + self._buffer = b'' + self._decoder = None + #: The actual :class:`Encoding` that is being used, + #: or :obj:`None` if that is not determined yet. + #: (Ie. if there is not enough input yet to determine + #: if there is a BOM.) + self.encoding = None # Not known yet. + + def decode(self, input, final=False): + """Decode one chunk of the input. + + :param input: A byte string. + :param final: + Indicate that no more input is available. + Must be :obj:`True` if this is the last call. + :returns: An Unicode string. + + """ + decoder = self._decoder + if decoder is not None: + return decoder(input, final) + + input = self._buffer + input + encoding, input = _detect_bom(input) + if encoding is None: + if len(input) < 3 and not final: # Not enough data yet. + self._buffer = input + return '' + else: # No BOM + encoding = self._fallback_encoding + decoder = encoding.codec_info.incrementaldecoder(self._errors).decode + self._decoder = decoder + self.encoding = encoding + return decoder(input, final) + + +class IncrementalEncoder(object): + """ + “Push”-based encoder. + + :param encoding: An :class:`Encoding` object or a label string. + :param errors: Type of error handling. See :func:`codecs.register`. + :raises: :exc:`~exceptions.LookupError` for an unknown encoding label. + + .. method:: encode(input, final=False) + + :param input: An Unicode string. + :param final: + Indicate that no more input is available. + Must be :obj:`True` if this is the last call. + :returns: A byte string. + + """ + def __init__(self, encoding=UTF8, errors='strict'): + encoding = _get_encoding(encoding) + self.encode = encoding.codec_info.incrementalencoder(errors).encode diff --git a/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings/labels.py b/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings/labels.py new file mode 100644 index 00000000000..29cbf91ef79 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings/labels.py @@ -0,0 +1,231 @@ +""" + + webencodings.labels + ~~~~~~~~~~~~~~~~~~~ + + Map encoding labels to their name. + + :copyright: Copyright 2012 by Simon Sapin + :license: BSD, see LICENSE for details. + +""" + +# XXX Do not edit! +# This file is automatically generated by mklabels.py + +LABELS = { + 'unicode-1-1-utf-8': 'utf-8', + 'utf-8': 'utf-8', + 'utf8': 'utf-8', + '866': 'ibm866', + 'cp866': 'ibm866', + 'csibm866': 'ibm866', + 'ibm866': 'ibm866', + 'csisolatin2': 'iso-8859-2', + 'iso-8859-2': 'iso-8859-2', + 'iso-ir-101': 'iso-8859-2', + 'iso8859-2': 'iso-8859-2', + 'iso88592': 'iso-8859-2', + 'iso_8859-2': 'iso-8859-2', + 'iso_8859-2:1987': 'iso-8859-2', + 'l2': 'iso-8859-2', + 'latin2': 'iso-8859-2', + 'csisolatin3': 'iso-8859-3', + 'iso-8859-3': 'iso-8859-3', + 'iso-ir-109': 'iso-8859-3', + 'iso8859-3': 'iso-8859-3', + 'iso88593': 'iso-8859-3', + 'iso_8859-3': 'iso-8859-3', + 'iso_8859-3:1988': 'iso-8859-3', + 'l3': 'iso-8859-3', + 'latin3': 'iso-8859-3', + 'csisolatin4': 'iso-8859-4', + 'iso-8859-4': 'iso-8859-4', + 'iso-ir-110': 'iso-8859-4', + 'iso8859-4': 'iso-8859-4', + 'iso88594': 'iso-8859-4', + 'iso_8859-4': 'iso-8859-4', + 'iso_8859-4:1988': 'iso-8859-4', + 'l4': 'iso-8859-4', + 'latin4': 'iso-8859-4', + 'csisolatincyrillic': 'iso-8859-5', + 'cyrillic': 'iso-8859-5', + 'iso-8859-5': 'iso-8859-5', + 'iso-ir-144': 'iso-8859-5', + 'iso8859-5': 'iso-8859-5', + 'iso88595': 'iso-8859-5', + 'iso_8859-5': 'iso-8859-5', + 'iso_8859-5:1988': 'iso-8859-5', + 'arabic': 'iso-8859-6', + 'asmo-708': 'iso-8859-6', + 'csiso88596e': 'iso-8859-6', + 'csiso88596i': 'iso-8859-6', + 'csisolatinarabic': 'iso-8859-6', + 'ecma-114': 'iso-8859-6', + 'iso-8859-6': 'iso-8859-6', + 'iso-8859-6-e': 'iso-8859-6', + 'iso-8859-6-i': 'iso-8859-6', + 'iso-ir-127': 'iso-8859-6', + 'iso8859-6': 'iso-8859-6', + 'iso88596': 'iso-8859-6', + 'iso_8859-6': 'iso-8859-6', + 'iso_8859-6:1987': 'iso-8859-6', + 'csisolatingreek': 'iso-8859-7', + 'ecma-118': 'iso-8859-7', + 'elot_928': 'iso-8859-7', + 'greek': 'iso-8859-7', + 'greek8': 'iso-8859-7', + 'iso-8859-7': 'iso-8859-7', + 'iso-ir-126': 'iso-8859-7', + 'iso8859-7': 'iso-8859-7', + 'iso88597': 'iso-8859-7', + 'iso_8859-7': 'iso-8859-7', + 'iso_8859-7:1987': 'iso-8859-7', + 'sun_eu_greek': 'iso-8859-7', + 'csiso88598e': 'iso-8859-8', + 'csisolatinhebrew': 'iso-8859-8', + 'hebrew': 'iso-8859-8', + 'iso-8859-8': 'iso-8859-8', + 'iso-8859-8-e': 'iso-8859-8', + 'iso-ir-138': 'iso-8859-8', + 'iso8859-8': 'iso-8859-8', + 'iso88598': 'iso-8859-8', + 'iso_8859-8': 'iso-8859-8', + 'iso_8859-8:1988': 'iso-8859-8', + 'visual': 'iso-8859-8', + 'csiso88598i': 'iso-8859-8-i', + 'iso-8859-8-i': 'iso-8859-8-i', + 'logical': 'iso-8859-8-i', + 'csisolatin6': 'iso-8859-10', + 'iso-8859-10': 'iso-8859-10', + 'iso-ir-157': 'iso-8859-10', + 'iso8859-10': 'iso-8859-10', + 'iso885910': 'iso-8859-10', + 'l6': 'iso-8859-10', + 'latin6': 'iso-8859-10', + 'iso-8859-13': 'iso-8859-13', + 'iso8859-13': 'iso-8859-13', + 'iso885913': 'iso-8859-13', + 'iso-8859-14': 'iso-8859-14', + 'iso8859-14': 'iso-8859-14', + 'iso885914': 'iso-8859-14', + 'csisolatin9': 'iso-8859-15', + 'iso-8859-15': 'iso-8859-15', + 'iso8859-15': 'iso-8859-15', + 'iso885915': 'iso-8859-15', + 'iso_8859-15': 'iso-8859-15', + 'l9': 'iso-8859-15', + 'iso-8859-16': 'iso-8859-16', + 'cskoi8r': 'koi8-r', + 'koi': 'koi8-r', + 'koi8': 'koi8-r', + 'koi8-r': 'koi8-r', + 'koi8_r': 'koi8-r', + 'koi8-u': 'koi8-u', + 'csmacintosh': 'macintosh', + 'mac': 'macintosh', + 'macintosh': 'macintosh', + 'x-mac-roman': 'macintosh', + 'dos-874': 'windows-874', + 'iso-8859-11': 'windows-874', + 'iso8859-11': 'windows-874', + 'iso885911': 'windows-874', + 'tis-620': 'windows-874', + 'windows-874': 'windows-874', + 'cp1250': 'windows-1250', + 'windows-1250': 'windows-1250', + 'x-cp1250': 'windows-1250', + 'cp1251': 'windows-1251', + 'windows-1251': 'windows-1251', + 'x-cp1251': 'windows-1251', + 'ansi_x3.4-1968': 'windows-1252', + 'ascii': 'windows-1252', + 'cp1252': 'windows-1252', + 'cp819': 'windows-1252', + 'csisolatin1': 'windows-1252', + 'ibm819': 'windows-1252', + 'iso-8859-1': 'windows-1252', + 'iso-ir-100': 'windows-1252', + 'iso8859-1': 'windows-1252', + 'iso88591': 'windows-1252', + 'iso_8859-1': 'windows-1252', + 'iso_8859-1:1987': 'windows-1252', + 'l1': 'windows-1252', + 'latin1': 'windows-1252', + 'us-ascii': 'windows-1252', + 'windows-1252': 'windows-1252', + 'x-cp1252': 'windows-1252', + 'cp1253': 'windows-1253', + 'windows-1253': 'windows-1253', + 'x-cp1253': 'windows-1253', + 'cp1254': 'windows-1254', + 'csisolatin5': 'windows-1254', + 'iso-8859-9': 'windows-1254', + 'iso-ir-148': 'windows-1254', + 'iso8859-9': 'windows-1254', + 'iso88599': 'windows-1254', + 'iso_8859-9': 'windows-1254', + 'iso_8859-9:1989': 'windows-1254', + 'l5': 'windows-1254', + 'latin5': 'windows-1254', + 'windows-1254': 'windows-1254', + 'x-cp1254': 'windows-1254', + 'cp1255': 'windows-1255', + 'windows-1255': 'windows-1255', + 'x-cp1255': 'windows-1255', + 'cp1256': 'windows-1256', + 'windows-1256': 'windows-1256', + 'x-cp1256': 'windows-1256', + 'cp1257': 'windows-1257', + 'windows-1257': 'windows-1257', + 'x-cp1257': 'windows-1257', + 'cp1258': 'windows-1258', + 'windows-1258': 'windows-1258', + 'x-cp1258': 'windows-1258', + 'x-mac-cyrillic': 'x-mac-cyrillic', + 'x-mac-ukrainian': 'x-mac-cyrillic', + 'chinese': 'gbk', + 'csgb2312': 'gbk', + 'csiso58gb231280': 'gbk', + 'gb2312': 'gbk', + 'gb_2312': 'gbk', + 'gb_2312-80': 'gbk', + 'gbk': 'gbk', + 'iso-ir-58': 'gbk', + 'x-gbk': 'gbk', + 'gb18030': 'gb18030', + 'hz-gb-2312': 'hz-gb-2312', + 'big5': 'big5', + 'big5-hkscs': 'big5', + 'cn-big5': 'big5', + 'csbig5': 'big5', + 'x-x-big5': 'big5', + 'cseucpkdfmtjapanese': 'euc-jp', + 'euc-jp': 'euc-jp', + 'x-euc-jp': 'euc-jp', + 'csiso2022jp': 'iso-2022-jp', + 'iso-2022-jp': 'iso-2022-jp', + 'csshiftjis': 'shift_jis', + 'ms_kanji': 'shift_jis', + 'shift-jis': 'shift_jis', + 'shift_jis': 'shift_jis', + 'sjis': 'shift_jis', + 'windows-31j': 'shift_jis', + 'x-sjis': 'shift_jis', + 'cseuckr': 'euc-kr', + 'csksc56011987': 'euc-kr', + 'euc-kr': 'euc-kr', + 'iso-ir-149': 'euc-kr', + 'korean': 'euc-kr', + 'ks_c_5601-1987': 'euc-kr', + 'ks_c_5601-1989': 'euc-kr', + 'ksc5601': 'euc-kr', + 'ksc_5601': 'euc-kr', + 'windows-949': 'euc-kr', + 'csiso2022kr': 'iso-2022-kr', + 'iso-2022-kr': 'iso-2022-kr', + 'utf-16be': 'utf-16be', + 'utf-16': 'utf-16le', + 'utf-16le': 'utf-16le', + 'x-user-defined': 'x-user-defined', +} diff --git a/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings/mklabels.py b/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings/mklabels.py new file mode 100644 index 00000000000..295dc928ba7 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings/mklabels.py @@ -0,0 +1,59 @@ +""" + + webencodings.mklabels + ~~~~~~~~~~~~~~~~~~~~~ + + Regenarate the webencodings.labels module. + + :copyright: Copyright 2012 by Simon Sapin + :license: BSD, see LICENSE for details. + +""" + +import json +try: + from urllib import urlopen +except ImportError: + from urllib.request import urlopen + + +def assert_lower(string): + assert string == string.lower() + return string + + +def generate(url): + parts = ['''\ +""" + + webencodings.labels + ~~~~~~~~~~~~~~~~~~~ + + Map encoding labels to their name. + + :copyright: Copyright 2012 by Simon Sapin + :license: BSD, see LICENSE for details. + +""" + +# XXX Do not edit! +# This file is automatically generated by mklabels.py + +LABELS = { +'''] + labels = [ + (repr(assert_lower(label)).lstrip('u'), + repr(encoding['name']).lstrip('u')) + for category in json.loads(urlopen(url).read().decode('ascii')) + for encoding in category['encodings'] + for label in encoding['labels']] + max_len = max(len(label) for label, name in labels) + parts.extend( + ' %s:%s %s,\n' % (label, ' ' * (max_len - len(label)), name) + for label, name in labels) + parts.append('}') + return ''.join(parts) + + +if __name__ == '__main__': + print(generate('http://encoding.spec.whatwg.org/encodings.json')) diff --git a/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings/tests.py b/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings/tests.py new file mode 100644 index 00000000000..e12c10d0330 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings/tests.py @@ -0,0 +1,153 @@ +# coding: utf-8 +""" + + webencodings.tests + ~~~~~~~~~~~~~~~~~~ + + A basic test suite for Encoding. + + :copyright: Copyright 2012 by Simon Sapin + :license: BSD, see LICENSE for details. + +""" + +from __future__ import unicode_literals + +from . import (lookup, LABELS, decode, encode, iter_decode, iter_encode, + IncrementalDecoder, IncrementalEncoder, UTF8) + + +def assert_raises(exception, function, *args, **kwargs): + try: + function(*args, **kwargs) + except exception: + return + else: # pragma: no cover + raise AssertionError('Did not raise %s.' % exception) + + +def test_labels(): + assert lookup('utf-8').name == 'utf-8' + assert lookup('Utf-8').name == 'utf-8' + assert lookup('UTF-8').name == 'utf-8' + assert lookup('utf8').name == 'utf-8' + assert lookup('utf8').name == 'utf-8' + assert lookup('utf8 ').name == 'utf-8' + assert lookup(' \r\nutf8\t').name == 'utf-8' + assert lookup('u8') is None # Python label. + assert lookup('utf-8 ') is None # Non-ASCII white space. + + assert lookup('US-ASCII').name == 'windows-1252' + assert lookup('iso-8859-1').name == 'windows-1252' + assert lookup('latin1').name == 'windows-1252' + assert lookup('LATIN1').name == 'windows-1252' + assert lookup('latin-1') is None + assert lookup('LATİN1') is None # ASCII-only case insensitivity. + + +def test_all_labels(): + for label in LABELS: + assert decode(b'', label) == ('', lookup(label)) + assert encode('', label) == b'' + for repeat in [0, 1, 12]: + output, _ = iter_decode([b''] * repeat, label) + assert list(output) == [] + assert list(iter_encode([''] * repeat, label)) == [] + decoder = IncrementalDecoder(label) + assert decoder.decode(b'') == '' + assert decoder.decode(b'', final=True) == '' + encoder = IncrementalEncoder(label) + assert encoder.encode('') == b'' + assert encoder.encode('', final=True) == b'' + # All encoding names are valid labels too: + for name in set(LABELS.values()): + assert lookup(name).name == name + + +def test_invalid_label(): + assert_raises(LookupError, decode, b'\xEF\xBB\xBF\xc3\xa9', 'invalid') + assert_raises(LookupError, encode, 'é', 'invalid') + assert_raises(LookupError, iter_decode, [], 'invalid') + assert_raises(LookupError, iter_encode, [], 'invalid') + assert_raises(LookupError, IncrementalDecoder, 'invalid') + assert_raises(LookupError, IncrementalEncoder, 'invalid') + + +def test_decode(): + assert decode(b'\x80', 'latin1') == ('€', lookup('latin1')) + assert decode(b'\x80', lookup('latin1')) == ('€', lookup('latin1')) + assert decode(b'\xc3\xa9', 'utf8') == ('é', lookup('utf8')) + assert decode(b'\xc3\xa9', UTF8) == ('é', lookup('utf8')) + assert decode(b'\xc3\xa9', 'ascii') == ('é', lookup('ascii')) + assert decode(b'\xEF\xBB\xBF\xc3\xa9', 'ascii') == ('é', lookup('utf8')) # UTF-8 with BOM + + assert decode(b'\xFE\xFF\x00\xe9', 'ascii') == ('é', lookup('utf-16be')) # UTF-16-BE with BOM + assert decode(b'\xFF\xFE\xe9\x00', 'ascii') == ('é', lookup('utf-16le')) # UTF-16-LE with BOM + assert decode(b'\xFE\xFF\xe9\x00', 'ascii') == ('\ue900', lookup('utf-16be')) + assert decode(b'\xFF\xFE\x00\xe9', 'ascii') == ('\ue900', lookup('utf-16le')) + + assert decode(b'\x00\xe9', 'UTF-16BE') == ('é', lookup('utf-16be')) + assert decode(b'\xe9\x00', 'UTF-16LE') == ('é', lookup('utf-16le')) + assert decode(b'\xe9\x00', 'UTF-16') == ('é', lookup('utf-16le')) + + assert decode(b'\xe9\x00', 'UTF-16BE') == ('\ue900', lookup('utf-16be')) + assert decode(b'\x00\xe9', 'UTF-16LE') == ('\ue900', lookup('utf-16le')) + assert decode(b'\x00\xe9', 'UTF-16') == ('\ue900', lookup('utf-16le')) + + +def test_encode(): + assert encode('é', 'latin1') == b'\xe9' + assert encode('é', 'utf8') == b'\xc3\xa9' + assert encode('é', 'utf8') == b'\xc3\xa9' + assert encode('é', 'utf-16') == b'\xe9\x00' + assert encode('é', 'utf-16le') == b'\xe9\x00' + assert encode('é', 'utf-16be') == b'\x00\xe9' + + +def test_iter_decode(): + def iter_decode_to_string(input, fallback_encoding): + output, _encoding = iter_decode(input, fallback_encoding) + return ''.join(output) + assert iter_decode_to_string([], 'latin1') == '' + assert iter_decode_to_string([b''], 'latin1') == '' + assert iter_decode_to_string([b'\xe9'], 'latin1') == 'é' + assert iter_decode_to_string([b'hello'], 'latin1') == 'hello' + assert iter_decode_to_string([b'he', b'llo'], 'latin1') == 'hello' + assert iter_decode_to_string([b'hell', b'o'], 'latin1') == 'hello' + assert iter_decode_to_string([b'\xc3\xa9'], 'latin1') == 'é' + assert iter_decode_to_string([b'\xEF\xBB\xBF\xc3\xa9'], 'latin1') == 'é' + assert iter_decode_to_string([ + b'\xEF\xBB\xBF', b'\xc3', b'\xa9'], 'latin1') == 'é' + assert iter_decode_to_string([ + b'\xEF\xBB\xBF', b'a', b'\xc3'], 'latin1') == 'a\uFFFD' + assert iter_decode_to_string([ + b'', b'\xEF', b'', b'', b'\xBB\xBF\xc3', b'\xa9'], 'latin1') == 'é' + assert iter_decode_to_string([b'\xEF\xBB\xBF'], 'latin1') == '' + assert iter_decode_to_string([b'\xEF\xBB'], 'latin1') == 'ï»' + assert iter_decode_to_string([b'\xFE\xFF\x00\xe9'], 'latin1') == 'é' + assert iter_decode_to_string([b'\xFF\xFE\xe9\x00'], 'latin1') == 'é' + assert iter_decode_to_string([ + b'', b'\xFF', b'', b'', b'\xFE\xe9', b'\x00'], 'latin1') == 'é' + assert iter_decode_to_string([ + b'', b'h\xe9', b'llo'], 'x-user-defined') == 'h\uF7E9llo' + + +def test_iter_encode(): + assert b''.join(iter_encode([], 'latin1')) == b'' + assert b''.join(iter_encode([''], 'latin1')) == b'' + assert b''.join(iter_encode(['é'], 'latin1')) == b'\xe9' + assert b''.join(iter_encode(['', 'é', '', ''], 'latin1')) == b'\xe9' + assert b''.join(iter_encode(['', 'é', '', ''], 'utf-16')) == b'\xe9\x00' + assert b''.join(iter_encode(['', 'é', '', ''], 'utf-16le')) == b'\xe9\x00' + assert b''.join(iter_encode(['', 'é', '', ''], 'utf-16be')) == b'\x00\xe9' + assert b''.join(iter_encode([ + '', 'h\uF7E9', '', 'llo'], 'x-user-defined')) == b'h\xe9llo' + + +def test_x_user_defined(): + encoded = b'2,\x0c\x0b\x1aO\xd9#\xcb\x0f\xc9\xbbt\xcf\xa8\xca' + decoded = '2,\x0c\x0b\x1aO\uf7d9#\uf7cb\x0f\uf7c9\uf7bbt\uf7cf\uf7a8\uf7ca' + encoded = b'aa' + decoded = 'aa' + assert decode(encoded, 'x-user-defined') == (decoded, lookup('x-user-defined')) + assert encode(decoded, 'x-user-defined') == encoded diff --git a/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings/x_user_defined.py b/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings/x_user_defined.py new file mode 100644 index 00000000000..d16e326024c --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/third_party/webencodings/webencodings/x_user_defined.py @@ -0,0 +1,325 @@ +# coding: utf-8 +""" + + webencodings.x_user_defined + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + An implementation of the x-user-defined encoding. + + :copyright: Copyright 2012 by Simon Sapin + :license: BSD, see LICENSE for details. + +""" + +from __future__ import unicode_literals + +import codecs + + +### Codec APIs + +class Codec(codecs.Codec): + + def encode(self, input, errors='strict'): + return codecs.charmap_encode(input, errors, encoding_table) + + def decode(self, input, errors='strict'): + return codecs.charmap_decode(input, errors, decoding_table) + + +class IncrementalEncoder(codecs.IncrementalEncoder): + def encode(self, input, final=False): + return codecs.charmap_encode(input, self.errors, encoding_table)[0] + + +class IncrementalDecoder(codecs.IncrementalDecoder): + def decode(self, input, final=False): + return codecs.charmap_decode(input, self.errors, decoding_table)[0] + + +class StreamWriter(Codec, codecs.StreamWriter): + pass + + +class StreamReader(Codec, codecs.StreamReader): + pass + + +### encodings module API + +codec_info = codecs.CodecInfo( + name='x-user-defined', + encode=Codec().encode, + decode=Codec().decode, + incrementalencoder=IncrementalEncoder, + incrementaldecoder=IncrementalDecoder, + streamreader=StreamReader, + streamwriter=StreamWriter, +) + + +### Decoding Table + +# Python 3: +# for c in range(256): print(' %r' % chr(c if c < 128 else c + 0xF700)) +decoding_table = ( + '\x00' + '\x01' + '\x02' + '\x03' + '\x04' + '\x05' + '\x06' + '\x07' + '\x08' + '\t' + '\n' + '\x0b' + '\x0c' + '\r' + '\x0e' + '\x0f' + '\x10' + '\x11' + '\x12' + '\x13' + '\x14' + '\x15' + '\x16' + '\x17' + '\x18' + '\x19' + '\x1a' + '\x1b' + '\x1c' + '\x1d' + '\x1e' + '\x1f' + ' ' + '!' + '"' + '#' + '$' + '%' + '&' + "'" + '(' + ')' + '*' + '+' + ',' + '-' + '.' + '/' + '0' + '1' + '2' + '3' + '4' + '5' + '6' + '7' + '8' + '9' + ':' + ';' + '<' + '=' + '>' + '?' + '@' + 'A' + 'B' + 'C' + 'D' + 'E' + 'F' + 'G' + 'H' + 'I' + 'J' + 'K' + 'L' + 'M' + 'N' + 'O' + 'P' + 'Q' + 'R' + 'S' + 'T' + 'U' + 'V' + 'W' + 'X' + 'Y' + 'Z' + '[' + '\\' + ']' + '^' + '_' + '`' + 'a' + 'b' + 'c' + 'd' + 'e' + 'f' + 'g' + 'h' + 'i' + 'j' + 'k' + 'l' + 'm' + 'n' + 'o' + 'p' + 'q' + 'r' + 's' + 't' + 'u' + 'v' + 'w' + 'x' + 'y' + 'z' + '{' + '|' + '}' + '~' + '\x7f' + '\uf780' + '\uf781' + '\uf782' + '\uf783' + '\uf784' + '\uf785' + '\uf786' + '\uf787' + '\uf788' + '\uf789' + '\uf78a' + '\uf78b' + '\uf78c' + '\uf78d' + '\uf78e' + '\uf78f' + '\uf790' + '\uf791' + '\uf792' + '\uf793' + '\uf794' + '\uf795' + '\uf796' + '\uf797' + '\uf798' + '\uf799' + '\uf79a' + '\uf79b' + '\uf79c' + '\uf79d' + '\uf79e' + '\uf79f' + '\uf7a0' + '\uf7a1' + '\uf7a2' + '\uf7a3' + '\uf7a4' + '\uf7a5' + '\uf7a6' + '\uf7a7' + '\uf7a8' + '\uf7a9' + '\uf7aa' + '\uf7ab' + '\uf7ac' + '\uf7ad' + '\uf7ae' + '\uf7af' + '\uf7b0' + '\uf7b1' + '\uf7b2' + '\uf7b3' + '\uf7b4' + '\uf7b5' + '\uf7b6' + '\uf7b7' + '\uf7b8' + '\uf7b9' + '\uf7ba' + '\uf7bb' + '\uf7bc' + '\uf7bd' + '\uf7be' + '\uf7bf' + '\uf7c0' + '\uf7c1' + '\uf7c2' + '\uf7c3' + '\uf7c4' + '\uf7c5' + '\uf7c6' + '\uf7c7' + '\uf7c8' + '\uf7c9' + '\uf7ca' + '\uf7cb' + '\uf7cc' + '\uf7cd' + '\uf7ce' + '\uf7cf' + '\uf7d0' + '\uf7d1' + '\uf7d2' + '\uf7d3' + '\uf7d4' + '\uf7d5' + '\uf7d6' + '\uf7d7' + '\uf7d8' + '\uf7d9' + '\uf7da' + '\uf7db' + '\uf7dc' + '\uf7dd' + '\uf7de' + '\uf7df' + '\uf7e0' + '\uf7e1' + '\uf7e2' + '\uf7e3' + '\uf7e4' + '\uf7e5' + '\uf7e6' + '\uf7e7' + '\uf7e8' + '\uf7e9' + '\uf7ea' + '\uf7eb' + '\uf7ec' + '\uf7ed' + '\uf7ee' + '\uf7ef' + '\uf7f0' + '\uf7f1' + '\uf7f2' + '\uf7f3' + '\uf7f4' + '\uf7f5' + '\uf7f6' + '\uf7f7' + '\uf7f8' + '\uf7f9' + '\uf7fa' + '\uf7fb' + '\uf7fc' + '\uf7fd' + '\uf7fe' + '\uf7ff' +) + +### Encoding table +encoding_table = codecs.charmap_build(decoding_table) diff --git a/tests/wpt/web-platform-tests/tools/wptserve/tests/functional/test_input_file.py b/tests/wpt/web-platform-tests/tools/wptserve/tests/functional/test_input_file.py new file mode 100644 index 00000000000..be7ba4291be --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/wptserve/tests/functional/test_input_file.py @@ -0,0 +1,148 @@ +from wptserve.request import InputFile +from io import BytesIO +import pytest + +wptserve = pytest.importorskip("wptserve") +bstr = b'This is a test document\nWith new lines\nSeveral in fact...' +rfile = '' +test_file = '' # This will be used to test the InputFile functions against +input_file = InputFile(None, 0) + + +def setup_function(function): + global rfile, input_file, test_file + rfile = BytesIO(bstr) + test_file = BytesIO(bstr) + input_file = InputFile(rfile, len(bstr)) + + +def teardown_function(function): + rfile.close() + test_file.close() + + +def test_seek(): + input_file.seek(2) + test_file.seek(2) + assert input_file.read(1) == test_file.read(1) + + input_file.seek(4) + test_file.seek(4) + assert input_file.read(1) == test_file.read(1) + + +def test_seek_backwards(): + input_file.seek(2) + test_file.seek(2) + assert input_file.tell() == test_file.tell() + assert input_file.read(1) == test_file.read(1) + assert input_file.tell() == test_file.tell() + + input_file.seek(0) + test_file.seek(0) + assert input_file.read(1) == test_file.read(1) + + +def test_seek_negative_offset(): + with pytest.raises(ValueError): + input_file.seek(-1) + + +def test_seek_file_bigger_than_buffer(): + old_max_buf = InputFile.max_buffer_size + InputFile.max_buffer_size = 10 + + try: + input_file = InputFile(rfile, len(bstr)) + + input_file.seek(2) + test_file.seek(2) + assert input_file.read(1) == test_file.read(1) + + input_file.seek(4) + test_file.seek(4) + assert input_file.read(1) == test_file.read(1) + finally: + InputFile.max_buffer_size = old_max_buf + + +def test_read(): + assert input_file.read() == test_file.read() + + +def test_read_file_bigger_than_buffer(): + old_max_buf = InputFile.max_buffer_size + InputFile.max_buffer_size = 10 + + try: + input_file = InputFile(rfile, len(bstr)) + assert input_file.read() == test_file.read() + finally: + InputFile.max_buffer_size = old_max_buf + + +def test_readline(): + assert input_file.readline() == test_file.readline() + assert input_file.readline() == test_file.readline() + + input_file.seek(0) + test_file.seek(0) + assert input_file.readline() == test_file.readline() + + +def test_readline_max_byte(): + line = test_file.readline() + assert input_file.readline(max_bytes=len(line)/2) == line[:len(line)/2] + assert input_file.readline(max_bytes=len(line)) == line[len(line)/2:] + + +def test_readline_max_byte_longer_than_file(): + assert input_file.readline(max_bytes=1000) == test_file.readline() + assert input_file.readline(max_bytes=1000) == test_file.readline() + + +def test_readline_file_bigger_than_buffer(): + old_max_buf = InputFile.max_buffer_size + InputFile.max_buffer_size = 10 + + try: + input_file = InputFile(rfile, len(bstr)) + + assert input_file.readline() == test_file.readline() + assert input_file.readline() == test_file.readline() + finally: + InputFile.max_buffer_size = old_max_buf + + +def test_readlines(): + assert input_file.readlines() == test_file.readlines() + + +def test_readlines_file_bigger_than_buffer(): + old_max_buf = InputFile.max_buffer_size + InputFile.max_buffer_size = 10 + + try: + input_file = InputFile(rfile, len(bstr)) + + assert input_file.readlines() == test_file.readlines() + finally: + InputFile.max_buffer_size = old_max_buf + + +def test_iter(): + for a, b in zip(input_file, test_file): + assert a == b + + +def test_iter_file_bigger_than_buffer(): + old_max_buf = InputFile.max_buffer_size + InputFile.max_buffer_size = 10 + + try: + input_file = InputFile(rfile, len(bstr)) + + for a, b in zip(input_file, test_file): + assert a == b + finally: + InputFile.max_buffer_size = old_max_buf diff --git a/tests/wpt/web-platform-tests/tools/wptserve/tests/functional/test_request.py b/tests/wpt/web-platform-tests/tools/wptserve/tests/functional/test_request.py index d0d8213cfdd..b2ef0e251da 100644 --- a/tests/wpt/web-platform-tests/tools/wptserve/tests/functional/test_request.py +++ b/tests/wpt/web-platform-tests/tools/wptserve/tests/functional/test_request.py @@ -4,6 +4,8 @@ import pytest wptserve = pytest.importorskip("wptserve") from .base import TestUsingServer +from wptserve.request import InputFile +from urllib2 import HTTPError class TestInputFile(TestUsingServer): @@ -35,6 +37,32 @@ class TestInputFile(TestUsingServer): "12345ab\ncdef", "12345ab\n", "cdef"], resp.read().split(" ")) + def test_seek_input_longer_than_buffer(self): + @wptserve.handlers.handler + def handler(request, response): + rv = [] + f = request.raw_input + f.seek(5) + rv.append(f.read(2)) + rv.append(f.tell()) + f.seek(0) + rv.append(f.tell()) + rv.append(f.tell()) + return " ".join(str(item) for item in rv) + + route = ("POST", "/test/test_seek", handler) + self.server.router.register(*route) + + old_max_buf = InputFile.max_buffer_size + InputFile.max_buffer_size = 10 + try: + resp = self.request(route[1], method="POST", body="1"*20) + self.assertEqual(200, resp.getcode()) + self.assertEqual(["11", "7", "0", "0"], + resp.read().split(" ")) + finally: + InputFile.max_buffer_size = old_max_buf + def test_iter(self): @wptserve.handlers.handler def handler(request, response): @@ -47,6 +75,25 @@ class TestInputFile(TestUsingServer): self.assertEqual(200, resp.getcode()) self.assertEqual(["12345\n", "abcdef\r\n", "zyxwv"], resp.read().split(" ")) + def test_iter_input_longer_than_buffer(self): + @wptserve.handlers.handler + def handler(request, response): + f = request.raw_input + return " ".join(line for line in f) + + route = ("POST", "/test/test_iter", handler) + self.server.router.register(*route) + + old_max_buf = InputFile.max_buffer_size + InputFile.max_buffer_size = 10 + try: + resp = self.request(route[1], method="POST", body="12345\nabcdef\r\nzyxwv") + self.assertEqual(200, resp.getcode()) + self.assertEqual(["12345\n", "abcdef\r\n", "zyxwv"], resp.read().split(" ")) + finally: + InputFile.max_buffer_size = old_max_buf + + class TestRequest(TestUsingServer): def test_body(self): @wptserve.handlers.handler @@ -69,6 +116,7 @@ class TestRequest(TestUsingServer): resp = self.request("/test/some_route") self.assertEqual("some route", resp.read()) + class TestAuth(TestUsingServer): def test_auth(self): @wptserve.handlers.handler @@ -80,6 +128,3 @@ class TestAuth(TestUsingServer): resp = self.request(route[1], auth=("test", "PASS")) self.assertEqual(200, resp.getcode()) self.assertEqual(["test", "PASS"], resp.read().split(" ")) - -if __name__ == '__main__': - unittest.main() diff --git a/tests/wpt/web-platform-tests/tools/wptserve/wptserve/request.py b/tests/wpt/web-platform-tests/tools/wptserve/wptserve/request.py index 7f49681d7ec..ce7965a1242 100644 --- a/tests/wpt/web-platform-tests/tools/wptserve/wptserve/request.py +++ b/tests/wpt/web-platform-tests/tools/wptserve/wptserve/request.py @@ -50,7 +50,7 @@ class InputFile(object): self._file_position = 0 if length > self.max_buffer_size: - self._buf = tempfile.TemporaryFile(mode="rw+b") + self._buf = tempfile.TemporaryFile() else: self._buf = StringIO.StringIO() @@ -77,13 +77,13 @@ class InputFile(object): else: old_data = "" - assert self._buf_position == self._file_position, ( + assert bytes_remaining == 0 or self._buf_position == self._file_position, ( "Before reading buffer position (%i) didn't match file position (%i)" % (self._buf_position, self._file_position)) new_data = self._file.read(bytes_remaining) self._buf.write(new_data) self._file_position += bytes_remaining - assert self._buf_position == self._file_position, ( + assert bytes_remaining == 0 or self._buf_position == self._file_position, ( "After reading buffer position (%i) didn't match file position (%i)" % (self._buf_position, self._file_position)) diff --git a/tests/wpt/web-platform-tests/url/resources/urltestdata.json b/tests/wpt/web-platform-tests/url/resources/urltestdata.json index 8c87da2bf5d..10da48b2dcd 100644 --- a/tests/wpt/web-platform-tests/url/resources/urltestdata.json +++ b/tests/wpt/web-platform-tests/url/resources/urltestdata.json @@ -4015,6 +4015,37 @@ "search": "?`{}", "hash": "" }, + "byte is ' and url is special", + { + "input": "http://host/?'", + "base": "about:blank", + "href": "http://host/?%27", + "origin": "http://host", + "protocol": "http:", + "username": "", + "password": "", + "host": "host", + "hostname": "host", + "port": "", + "pathname": "/", + "search": "?%27", + "hash": "" + }, + { + "input": "notspecial://host/?'", + "base": "about:blank", + "href": "notspecial://host/?'", + "origin": "null", + "protocol": "notspecial:", + "username": "", + "password": "", + "host": "host", + "hostname": "host", + "port": "", + "pathname": "/", + "search": "?'", + "hash": "" + }, "# Credentials in base", { "input": "/some/path", diff --git a/tests/wpt/web-platform-tests/user-timing/idlharness.any.js b/tests/wpt/web-platform-tests/user-timing/idlharness.any.js new file mode 100644 index 00000000000..47300bddb77 --- /dev/null +++ b/tests/wpt/web-platform-tests/user-timing/idlharness.any.js @@ -0,0 +1,24 @@ +// META: global=window,worker +// META: script=/resources/WebIDLParser.js +// META: script=/resources/idlharness.js + +// https://w3c.github.io/user-timing/ + +'use strict'; + +promise_test(async () => { + const idl_array = new IdlArray(); + const idl = await fetch("/interfaces/user-timing.idl").then(r => r.text()); + const hrtime = await fetch("/interfaces/hr-time.idl").then(r => r.text()); + const perf = await fetch("/interfaces/performance-timeline.idl").then(r => r.text()); + const dom = await fetch("/interfaces/dom.idl").then(r => r.text()); + + idl_array.add_idls(idl); + idl_array.add_dependency_idls(hrtime); + idl_array.add_dependency_idls(perf); + idl_array.add_dependency_idls(dom); + idl_array.add_objects({ + Performance: ["performance"] + }); + idl_array.test(); +}, "Test IDL implementation of user-timing API"); diff --git a/tests/wpt/web-platform-tests/user-timing/idlharness.html b/tests/wpt/web-platform-tests/user-timing/idlharness.html deleted file mode 100644 index ca5f7c39413..00000000000 --- a/tests/wpt/web-platform-tests/user-timing/idlharness.html +++ /dev/null @@ -1,63 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"> -<title>User Timing IDL tests</title> -<link rel="author" title="W3C" href="http://www.w3.org/" /> -<link rel="help" href="http://www.w3.org/TR/user-timing/#extensions-performance-interface"/> -<link rel="help" href="http://www.w3.org/TR/user-timing/#performancemark"/> -<link rel="help" href="http://www.w3.org/TR/user-timing/#performancemeasure"/> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="/resources/WebIDLParser.js"></script> -<script src="/resources/idlharness.js"></script> -</head> -<body> -<h1>User Timing IDL tests</h1> -<div id="log"></div> - -<pre id='untested_idl' style='display:none'> -[Exposed=(Window,Worker)] -interface Performance { -}; - -[Exposed=(Window,Worker)] -interface PerformanceEntry { -}; -</pre> - -<pre id='idl'> -partial interface Performance { - void mark(DOMString markName); - void clearMarks(optional DOMString markName); - - void measure(DOMString measureName, optional DOMString startMark, optional DOMString endMark); - void clearMeasures(optional DOMString measureName); -}; - -[Exposed=(Window,Worker)] -interface PerformanceMark : PerformanceEntry { -}; - -[Exposed=(Window,Worker)] -interface PerformanceMeasure : PerformanceEntry { -}; - -</pre> - -<script> - -(function() { - var idl_array = new IdlArray(); - - idl_array.add_untested_idls(document.getElementById("untested_idl").textContent); - idl_array.add_idls(document.getElementById("idl").textContent); - - idl_array.add_objects({Performance: ["window.performance"]}); - - idl_array.test(); -})(); - -</script> -</body> -</html> diff --git a/tests/wpt/web-platform-tests/workers/modules/dedicated-worker-import-referrer.html b/tests/wpt/web-platform-tests/workers/modules/dedicated-worker-import-referrer.html new file mode 100644 index 00000000000..01322bb1ed0 --- /dev/null +++ b/tests/wpt/web-platform-tests/workers/modules/dedicated-worker-import-referrer.html @@ -0,0 +1,209 @@ +<!DOCTYPE html> +<title>DedicatedWorker: Referrer</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> + +async function openWindow(url) { + const win = window.open(url, '_blank'); + add_result_callback(() => win.close()); + const msg_event = await new Promise(resolve => window.onmessage = resolve); + assert_equals(msg_event.data, 'LOADED'); + return win; +} + +// Returns a URL string from the current path and the given relative path. +function createURLString(relative_path) { + return (new URL(relative_path, location.href)).href; +} + +// Removes URL parameters from the given URL string and returns it. +function removeParams(url_string) { + if (!url_string) + return url_string; + let url = new URL(url_string); + for (var key of url.searchParams.keys()) + url.searchParams.delete(key); + return url.href; +} + +// Runs a referrer policy test with the given settings. This opens a new window +// that starts a dedicated worker. +// +// |settings| has options as follows: +// +// settings = { +// scriptURL: 'resources/referrer-checker.sub.js', +// windowReferrerPolicy: 'no-referrer', +// workerReferrerPolicy: 'same-origin', +// expectedReferrer: 'https://example.com/referrer-checker.py' +// }; +// +// - |scriptURL| is used for starting a new worker. +// - |windowReferrerPolicy| is set to the ReferrerPolicy HTTP header of the +// window. This policy should be applied to top-level worker module script +// loading and static imports. +// - |workerReferrerPolicy| is set to the ReferrerPolicy HTTP header of the +// worker. This policy should be applied to dynamic imports. +// - |expectedReferrer| is compared with the actual referrer. URL parameters are +// ignored. +function import_referrer_test(settings, description) { + promise_test(async () => { + let windowURL = 'resources/new-worker-window.html'; + if (settings.windowReferrerPolicy) { + windowURL += + `?pipe=header(Referrer-Policy, ${settings.windowReferrerPolicy})`; + } + + let scriptURL = settings.scriptURL; + if (settings.workerReferrerPolicy) { + // 'sub' is necessary even if the |scriptURL| contains the '.sub' + // extension because the extension doesn't work with the 'pipe' parameter. + // See an issue on the WPT's repository: + // https://github.com/web-platform-tests/wpt/issues/9345 + scriptURL += + `?pipe=sub|header(Referrer-Policy, ${settings.workerReferrerPolicy})`; + } + + const win = await openWindow(windowURL); + win.postMessage(scriptURL, '*'); + const msgEvent = await new Promise(resolve => window.onmessage = resolve); + + // Delete query parameters from the referrers to make it easy to match the + // actual referrer with the expected referrer. + const expectedReferrer = removeParams(settings.expectedReferrer); + const actualReferrer = removeParams(msgEvent.data); + assert_equals(actualReferrer, expectedReferrer); + }, description); +} + +// Tests for top-level worker module script loading. +// +// Top-level worker module script loading should obey the window's +// ReferrerPolicy, and send the window's URL as a referrer. +// +// [Current document] +// --(open)--> [Window] whose referrer policy is |windowReferrerPolicy|. +// --(new Worker)--> [Worker] should be loaded with [Window]'s URL as a +// referrer if it's allowed by |windowReferrerPolicy|. + +import_referrer_test( + { scriptURL: 'referrer-checker.py', + windowReferrerPolicy: 'no-referrer', + expectedReferrer: '' }, + 'Same-origin top-level module script loading with "no-referrer" referrer ' + + 'policy'); + +import_referrer_test( + { scriptURL: 'referrer-checker.py', + windowReferrerPolicy: 'origin', + expectedReferrer: window.location.origin + '/' }, + 'Same-origin top-level module script loading with "origin" referrer ' + + 'policy'); + +import_referrer_test( + { scriptURL: 'referrer-checker.py', + windowReferrerPolicy: 'same-origin', + expectedReferrer: createURLString('resources/referrer-window.html') }, + 'Same-origin top-level module script loading with "same-origin" referrer ' + + 'policy'); + +// Tests for static imports. +// +// Static imports should obey the window's ReferrerPolicy, and send the worker's +// URL as a referrer. +// +// [Current document] +// --(open)--> [Window] whose referrer policy is |windowReferrerPolicy|. +// --(new Worker)--> [Worker] +// --(static import)--> [Script] should be loaded with [Worker]'s URL as a +// referrer if it's allowed by |windowReferrerPolicy|. + +import_referrer_test( + { scriptURL: 'static-import-same-origin-referrer-checker-worker.js', + windowReferrerPolicy: 'no-referrer', + expectedReferrer: '' }, + 'Same-origin static import with "no-referrer" referrer policy.'); + +import_referrer_test( + { scriptURL: 'static-import-same-origin-referrer-checker-worker.js', + windowReferrerPolicy: 'origin', + expectedReferrer: window.location.origin + '/' }, + 'Same-origin static import with "origin" referrer policy.'); + +import_referrer_test( + { scriptURL: 'static-import-same-origin-referrer-checker-worker.js', + windowReferrerPolicy: 'same-origin', + expectedReferrer: createURLString( + 'resources/static-import-same-origin-referrer-checker-worker.js') }, + 'Same-origin static import with "same-origin" referrer policy.'); + +import_referrer_test( + { scriptURL: 'static-import-remote-origin-referrer-checker-worker.sub.js', + windowReferrerPolicy: 'no-referrer', + expectedReferrer: '' }, + 'Cross-origin static import with "no-referrer" referrer policy.'); + +import_referrer_test( + { scriptURL: 'static-import-remote-origin-referrer-checker-worker.sub.js', + windowReferrerPolicy: 'origin', + expectedReferrer: window.location.origin + '/' }, + 'Cross-origin static import with "origin" referrer policy.'); + +import_referrer_test( + { scriptURL: 'static-import-remote-origin-referrer-checker-worker.sub.js', + windowReferrerPolicy: 'same-origin', + expectedReferrer: '' }, + 'Cross-origin static import with "same-origin" referrer policy.'); + +// Tests for dynamic imports. +// +// Dynamic imports should obey the worker's ReferrerPolicy, and send the +// worker's URL as a referrer. Note that the worker doesn't inherit the window's +// referrer policy and it's set by the ReferrerPolicy HTTP header on the +// response of the top-level worker module script. +// +// [Current document] +// --(open)--> [Window] +// --(new Worker)--> [Worker] whose referrer policy is |workerReferrerPolicy|. +// --(dynamic import)--> [Script] should be loaded with [Worker]'s URL as a +// referrer if it's allowed by |workerReferrerPolicy|. + +import_referrer_test( + { scriptURL: 'dynamic-import-same-origin-referrer-checker-worker.js', + workerReferrerPolicy: 'no-referrer', + expectedReferrer: '' }, + 'Same-origin dynamic import with "no-referrer" referrer policy.'); + +import_referrer_test( + { scriptURL: 'dynamic-import-same-origin-referrer-checker-worker.js', + workerReferrerPolicy: 'origin', + expectedReferrer: window.location.origin + '/' }, + 'Same-origin dynamic import with "origin" referrer policy.'); + +import_referrer_test( + { scriptURL: 'dynamic-import-same-origin-referrer-checker-worker.js', + workerReferrerPolicy: 'same-origin', + expectedReferrer: createURLString( + 'resources/dynamic-import-same-origin-referrer-checker-worker.js') }, + 'Same-origin dynamic import with "same-origin" referrer policy.'); + +import_referrer_test( + { scriptURL: 'dynamic-import-remote-origin-referrer-checker-worker.sub.js', + workerReferrerPolicy: 'no-referrer', + expectedReferrer: '' }, + 'Cross-origin dynamic import with "no-referrer" referrer policy.'); + +import_referrer_test( + { scriptURL: 'dynamic-import-remote-origin-referrer-checker-worker.sub.js', + workerReferrerPolicy: 'origin', + expectedReferrer: window.location.origin + '/' }, + 'Cross-origin dynamic import with "origin" referrer policy.'); + +import_referrer_test( + { scriptURL: 'dynamic-import-remote-origin-referrer-checker-worker.sub.js', + workerReferrerPolicy: 'same-origin', + expectedReferrer: '' }, + 'Cross-origin dynamic import with "same-origin" referrer policy.'); + +</script> diff --git a/tests/wpt/web-platform-tests/workers/modules/resources/dynamic-import-remote-origin-referrer-checker-worker.sub.js b/tests/wpt/web-platform-tests/workers/modules/resources/dynamic-import-remote-origin-referrer-checker-worker.sub.js new file mode 100644 index 00000000000..522c5798ba7 --- /dev/null +++ b/tests/wpt/web-platform-tests/workers/modules/resources/dynamic-import-remote-origin-referrer-checker-worker.sub.js @@ -0,0 +1,2 @@ +// Import a remote origin script. +import('https://{{domains[www1]}}:{{ports[https][0]}}/workers/modules/resources/referrer-checker.py'); diff --git a/tests/wpt/web-platform-tests/workers/modules/resources/dynamic-import-same-origin-referrer-checker-worker.js b/tests/wpt/web-platform-tests/workers/modules/resources/dynamic-import-same-origin-referrer-checker-worker.js new file mode 100644 index 00000000000..1d68624c3cb --- /dev/null +++ b/tests/wpt/web-platform-tests/workers/modules/resources/dynamic-import-same-origin-referrer-checker-worker.js @@ -0,0 +1 @@ +import('./referrer-checker.py'); diff --git a/tests/wpt/web-platform-tests/workers/modules/resources/referrer-checker.py b/tests/wpt/web-platform-tests/workers/modules/resources/referrer-checker.py new file mode 100644 index 00000000000..83a90032caf --- /dev/null +++ b/tests/wpt/web-platform-tests/workers/modules/resources/referrer-checker.py @@ -0,0 +1,9 @@ +# Returns a worker script that posts the request's referrer header. +def main(request, response): + referrer = request.headers.get("referer", "") + + response_headers = [("Content-Type", "text/javascript"), + ("Access-Control-Allow-Origin", "*")] + + return (200, response_headers, + "postMessage('"+referrer+"')") diff --git a/tests/wpt/web-platform-tests/workers/modules/resources/static-import-remote-origin-referrer-checker-worker.sub.js b/tests/wpt/web-platform-tests/workers/modules/resources/static-import-remote-origin-referrer-checker-worker.sub.js new file mode 100644 index 00000000000..1722fc9343e --- /dev/null +++ b/tests/wpt/web-platform-tests/workers/modules/resources/static-import-remote-origin-referrer-checker-worker.sub.js @@ -0,0 +1,2 @@ +// Import a remote origin script. +import 'https://{{domains[www1]}}:{{ports[https][0]}}/workers/modules/resources/referrer-checker.py'; diff --git a/tests/wpt/web-platform-tests/workers/modules/resources/static-import-same-origin-referrer-checker-worker.js b/tests/wpt/web-platform-tests/workers/modules/resources/static-import-same-origin-referrer-checker-worker.js new file mode 100644 index 00000000000..7d564f9c434 --- /dev/null +++ b/tests/wpt/web-platform-tests/workers/modules/resources/static-import-same-origin-referrer-checker-worker.js @@ -0,0 +1 @@ +import './referrer-checker.py'; |