diff options
Diffstat (limited to 'tests')
278 files changed, 13340 insertions, 10507 deletions
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index caad2563cc9..09626072ef7 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -102103,6 +102103,18 @@ {} ] ], + "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", @@ -109051,6 +109063,90 @@ {} ] ], + "css/css-contain/contain-size-006.html": [ + [ + "/css/css-contain/contain-size-006.html", + [ + [ + "/css/css-contain/reference/contain-size-001-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-contain/contain-size-007.html": [ + [ + "/css/css-contain/contain-size-007.html", + [ + [ + "/css/css-contain/reference/contain-size-001-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-contain/contain-size-008.html": [ + [ + "/css/css-contain/contain-size-008.html", + [ + [ + "/css/css-contain/reference/contain-size-001-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-contain/contain-size-009.html": [ + [ + "/css/css-contain/contain-size-009.html", + [ + [ + "/css/css-contain/reference/contain-size-001-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-contain/contain-size-010.html": [ + [ + "/css/css-contain/contain-size-010.html", + [ + [ + "/css/css-contain/reference/contain-size-001-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-contain/contain-size-011.html": [ + [ + "/css/css-contain/contain-size-011.html", + [ + [ + "/css/css-contain/reference/contain-paint-014-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-contain/contain-size-012.html": [ + [ + "/css/css-contain/contain-size-012.html", + [ + [ + "/css/css-contain/reference/contain-paint-014-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-contain/contain-size-breaks-001.html": [ [ "/css/css-contain/contain-size-breaks-001.html", @@ -120795,6 +120891,366 @@ {} ] ], + "css/css-layout-api/constraints-data-function-failure.https.html": [ + [ + "/css/css-layout-api/constraints-data-function-failure.https.html", + [ + [ + "/css/css-layout-api/green-square-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-layout-api/constraints-data-sab-failure.https.html": [ + [ + "/css/css-layout-api/constraints-data-sab-failure.https.html", + [ + [ + "/css/css-layout-api/green-square-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-layout-api/constraints-data.https.html": [ + [ + "/css/css-layout-api/constraints-data.https.html", + [ + [ + "/css/css-layout-api/green-square-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-layout-api/constraints-fixed-block-size-absolute-left-right-vrl.https.html": [ + [ + "/css/css-layout-api/constraints-fixed-block-size-absolute-left-right-vrl.https.html", + [ + [ + "/css/css-layout-api/green-square-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-layout-api/constraints-fixed-block-size-absolute-none.https.html": [ + [ + "/css/css-layout-api/constraints-fixed-block-size-absolute-none.https.html", + [ + [ + "/css/css-layout-api/green-square-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-layout-api/constraints-fixed-block-size-absolute-top-bottom.https.html": [ + [ + "/css/css-layout-api/constraints-fixed-block-size-absolute-top-bottom.https.html", + [ + [ + "/css/css-layout-api/green-square-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-layout-api/constraints-fixed-block-size-block-none-vrl.https.html": [ + [ + "/css/css-layout-api/constraints-fixed-block-size-block-none-vrl.https.html", + [ + [ + "/css/css-layout-api/green-square-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-layout-api/constraints-fixed-block-size-block-none.https.html": [ + [ + "/css/css-layout-api/constraints-fixed-block-size-block-none.https.html", + [ + [ + "/css/css-layout-api/green-square-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-layout-api/constraints-fixed-block-size-fixed-max.https.html": [ + [ + "/css/css-layout-api/constraints-fixed-block-size-fixed-max.https.html", + [ + [ + "/css/css-layout-api/green-square-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-layout-api/constraints-fixed-block-size-fixed-min.https.html": [ + [ + "/css/css-layout-api/constraints-fixed-block-size-fixed-min.https.html", + [ + [ + "/css/css-layout-api/green-square-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-layout-api/constraints-fixed-block-size-fixed-vrl.https.html": [ + [ + "/css/css-layout-api/constraints-fixed-block-size-fixed-vrl.https.html", + [ + [ + "/css/css-layout-api/green-square-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-layout-api/constraints-fixed-block-size-fixed.https.html": [ + [ + "/css/css-layout-api/constraints-fixed-block-size-fixed.https.html", + [ + [ + "/css/css-layout-api/green-square-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-layout-api/constraints-fixed-block-size-flex-basis-vrl.https.html": [ + [ + "/css/css-layout-api/constraints-fixed-block-size-flex-basis-vrl.https.html", + [ + [ + "/css/css-layout-api/green-square-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-layout-api/constraints-fixed-block-size-flex-column-basis.https.html": [ + [ + "/css/css-layout-api/constraints-fixed-block-size-flex-column-basis.https.html", + [ + [ + "/css/css-layout-api/green-square-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-layout-api/constraints-fixed-block-size-flex-column-grow.https.html": [ + [ + "/css/css-layout-api/constraints-fixed-block-size-flex-column-grow.https.html", + [ + [ + "/css/css-layout-api/green-square-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-layout-api/constraints-fixed-block-size-flex-column-none.https.html": [ + [ + "/css/css-layout-api/constraints-fixed-block-size-flex-column-none.https.html", + [ + [ + "/css/css-layout-api/green-square-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-layout-api/constraints-fixed-block-size-flex-column-stretch-vrl.https.html": [ + [ + "/css/css-layout-api/constraints-fixed-block-size-flex-column-stretch-vrl.https.html", + [ + [ + "/css/css-layout-api/green-square-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-layout-api/constraints-fixed-block-size-flex-grow-vrl.https.html": [ + [ + "/css/css-layout-api/constraints-fixed-block-size-flex-grow-vrl.https.html", + [ + [ + "/css/css-layout-api/green-square-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-layout-api/constraints-fixed-block-size-flex-none.https.html": [ + [ + "/css/css-layout-api/constraints-fixed-block-size-flex-none.https.html", + [ + [ + "/css/css-layout-api/green-square-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-layout-api/constraints-fixed-block-size-flex-percentage-indefinite.https.html": [ + [ + "/css/css-layout-api/constraints-fixed-block-size-flex-percentage-indefinite.https.html", + [ + [ + "/css/css-layout-api/green-square-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-layout-api/constraints-fixed-block-size-flex-stretch-max.https.html": [ + [ + "/css/css-layout-api/constraints-fixed-block-size-flex-stretch-max.https.html", + [ + [ + "/css/css-layout-api/green-square-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-layout-api/constraints-fixed-block-size-flex-stretch.https.html": [ + [ + "/css/css-layout-api/constraints-fixed-block-size-flex-stretch.https.html", + [ + [ + "/css/css-layout-api/green-square-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-layout-api/constraints-fixed-block-size-grid-none.https.html": [ + [ + "/css/css-layout-api/constraints-fixed-block-size-grid-none.https.html", + [ + [ + "/css/css-layout-api/green-square-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-layout-api/constraints-fixed-block-size-grid-stretch-max.https.html": [ + [ + "/css/css-layout-api/constraints-fixed-block-size-grid-stretch-max.https.html", + [ + [ + "/css/css-layout-api/green-square-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-layout-api/constraints-fixed-block-size-grid-stretch.https.html": [ + [ + "/css/css-layout-api/constraints-fixed-block-size-grid-stretch.https.html", + [ + [ + "/css/css-layout-api/green-square-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-layout-api/constraints-fixed-block-size-grid-vrl.https.html": [ + [ + "/css/css-layout-api/constraints-fixed-block-size-grid-vrl.https.html", + [ + [ + "/css/css-layout-api/green-square-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-layout-api/constraints-fixed-block-size-percentage-indefinite.https.html": [ + [ + "/css/css-layout-api/constraints-fixed-block-size-percentage-indefinite.https.html", + [ + [ + "/css/css-layout-api/green-square-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-layout-api/constraints-fixed-block-size-percentage-vrl.https.html": [ + [ + "/css/css-layout-api/constraints-fixed-block-size-percentage-vrl.https.html", + [ + [ + "/css/css-layout-api/green-square-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-layout-api/constraints-fixed-block-size-percentage.https.html": [ + [ + "/css/css-layout-api/constraints-fixed-block-size-percentage.https.html", + [ + [ + "/css/css-layout-api/green-square-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-layout-api/constraints-fixed-block-size-quirky-body.https.html": [ + [ + "/css/css-layout-api/constraints-fixed-block-size-quirky-body.https.html", + [ + [ + "/css/css-layout-api/green-square-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-layout-api/constraints-fixed-inline-size-absolute-left-right.https.html": [ [ "/css/css-layout-api/constraints-fixed-inline-size-absolute-left-right.https.html", @@ -121023,12 +121479,60 @@ {} ] ], + "css/css-layout-api/fragment-data-function-failure.https.html": [ + [ + "/css/css-layout-api/fragment-data-function-failure.https.html", + [ + [ + "/css/css-layout-api/green-square-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-layout-api/fragment-data-immutable.https.html": [ + [ + "/css/css-layout-api/fragment-data-immutable.https.html", + [ + [ + "/css/css-layout-api/green-square-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-layout-api/fragment-data-sab-failure.https.html": [ + [ + "/css/css-layout-api/fragment-data-sab-failure.https.html", + [ + [ + "/css/css-layout-api/green-square-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-layout-api/fragment-data.https.html": [ + [ + "/css/css-layout-api/fragment-data.https.html", + [ + [ + "/css/css-layout-api/green-square-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-layout-api/layout-child-absolute.https.html": [ [ "/css/css-layout-api/layout-child-absolute.https.html", [ [ - "/css/css-layout-api/layout-child-ref.html", + "/css/css-layout-api/green-square-ref.html", "==" ] ], @@ -121040,7 +121544,7 @@ "/css/css-layout-api/layout-child-before-after.https.html", [ [ - "/css/css-layout-api/layout-child-ref.html", + "/css/css-layout-api/green-square-ref.html", "==" ] ], @@ -121052,7 +121556,7 @@ "/css/css-layout-api/layout-child-fixed.https.html", [ [ - "/css/css-layout-api/layout-child-ref.html", + "/css/css-layout-api/green-square-ref.html", "==" ] ], @@ -121064,7 +121568,7 @@ "/css/css-layout-api/layout-child-float.https.html", [ [ - "/css/css-layout-api/layout-child-ref.html", + "/css/css-layout-api/green-square-ref.html", "==" ] ], @@ -121076,7 +121580,7 @@ "/css/css-layout-api/layout-child-inflow.https.html", [ [ - "/css/css-layout-api/layout-child-ref.html", + "/css/css-layout-api/green-square-ref.html", "==" ] ], @@ -121088,7 +121592,7 @@ "/css/css-layout-api/layout-child-inlines.https.html", [ [ - "/css/css-layout-api/layout-child-ref.html", + "/css/css-layout-api/green-square-ref.html", "==" ] ], @@ -121100,7 +121604,7 @@ "/css/css-layout-api/layout-child-text.https.html", [ [ - "/css/css-layout-api/layout-child-ref.html", + "/css/css-layout-api/green-square-ref.html", "==" ] ], @@ -121112,7 +121616,7 @@ "/css/css-layout-api/perform-child-layout-available-inline-size-htb-htb.https.html", [ [ - "/css/css-layout-api/layout-child-ref.html", + "/css/css-layout-api/green-square-ref.html", "==" ] ], @@ -121124,7 +121628,7 @@ "/css/css-layout-api/perform-child-layout-available-inline-size-htb-vrl.https.html", [ [ - "/css/css-layout-api/layout-child-ref.html", + "/css/css-layout-api/green-square-ref.html", "==" ] ], @@ -121136,7 +121640,7 @@ "/css/css-layout-api/perform-child-layout-available-inline-size-vrl-htb.https.html", [ [ - "/css/css-layout-api/layout-child-ref.html", + "/css/css-layout-api/green-square-ref.html", "==" ] ], @@ -121148,7 +121652,7 @@ "/css/css-layout-api/perform-child-layout-available-inline-size-vrl-vrl.https.html", [ [ - "/css/css-layout-api/layout-child-ref.html", + "/css/css-layout-api/green-square-ref.html", "==" ] ], @@ -121160,7 +121664,7 @@ "/css/css-layout-api/perform-child-layout-fixed-block-size-vrl.https.html", [ [ - "/css/css-layout-api/layout-child-ref.html", + "/css/css-layout-api/green-square-ref.html", "==" ] ], @@ -121172,7 +121676,7 @@ "/css/css-layout-api/perform-child-layout-fixed-block-size.https.html", [ [ - "/css/css-layout-api/layout-child-ref.html", + "/css/css-layout-api/green-square-ref.html", "==" ] ], @@ -121184,7 +121688,7 @@ "/css/css-layout-api/perform-child-layout-fixed-inline-size-vrl.https.html", [ [ - "/css/css-layout-api/layout-child-ref.html", + "/css/css-layout-api/green-square-ref.html", "==" ] ], @@ -121196,7 +121700,7 @@ "/css/css-layout-api/perform-child-layout-fixed-inline-size.https.html", [ [ - "/css/css-layout-api/layout-child-ref.html", + "/css/css-layout-api/green-square-ref.html", "==" ] ], @@ -126435,6 +126939,18 @@ {} ] ], + "css/css-pseudo/placeholder-input-number.html": [ + [ + "/css/css-pseudo/placeholder-input-number.html", + [ + [ + "/css/css-pseudo/placeholder-input-number-notref.html", + "!=" + ] + ], + {} + ] + ], "css/css-regions/contentEditable/contentEditable-001.html": [ [ "/css/css-regions/contentEditable/contentEditable-001.html", @@ -129895,6 +130411,18 @@ {} ] ], + "css/css-shapes/shape-outside/shape-image/shape-image-027.html": [ + [ + "/css/css-shapes/shape-outside/shape-image/shape-image-027.html", + [ + [ + "/css/css-shapes/shape-outside/shape-image/reference/shape-image-006-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-shapes/shape-outside/supported-shapes/circle/shape-outside-circle-013.html": [ [ "/css/css-shapes/shape-outside/supported-shapes/circle/shape-outside-circle-013.html", @@ -165139,6 +165667,30 @@ {} ] ], + "css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001a.html": [ + [ + "/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001a.html", + [ + [ + "/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001-ref.html", + "==" + ] + ], + {} + ] + ], + "css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001b.html": [ + [ + "/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001b.html", + [ + [ + "/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001-ref.html", + "==" + ] + ], + {} + ] + ], "css/vendor-imports/mozilla/mozilla-central-reftests/counter-styles-3/dependent-builtin.html": [ [ "/css/vendor-imports/mozilla/mozilla-central-reftests/counter-styles-3/dependent-builtin.html", @@ -172291,30 +172843,6 @@ {} ] ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-039.html": [ - [ - "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-039.html", - [ - [ - "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-039-ref.html", - "==" - ] - ], - {} - ] - ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-040.html": [ - [ - "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-040.html", - [ - [ - "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-039-ref.html", - "==" - ] - ], - {} - ] - ], "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-041.html": [ [ "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-041.html", @@ -172363,30 +172891,6 @@ {} ] ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-045.html": [ - [ - "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-045.html", - [ - [ - "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-045-ref.html", - "==" - ] - ], - {} - ] - ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-046.html": [ - [ - "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-046.html", - [ - [ - "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-045-ref.html", - "==" - ] - ], - {} - ] - ], "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-047.html": [ [ "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-047.html", @@ -172831,30 +173335,6 @@ {} ] ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-018.html": [ - [ - "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-018.html", - [ - [ - "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-018-ref.html", - "==" - ] - ], - {} - ] - ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-019.html": [ - [ - "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-019.html", - [ - [ - "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-019-ref.html", - "==" - ] - ], - {} - ] - ], "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-020.html": [ [ "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-020.html", @@ -173215,78 +173695,6 @@ {} ] ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-026.html": [ - [ - "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-026.html", - [ - [ - "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-026-ref.html", - "==" - ] - ], - {} - ] - ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-027.html": [ - [ - "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-027.html", - [ - [ - "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-027-ref.html", - "==" - ] - ], - {} - ] - ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-028.html": [ - [ - "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-028.html", - [ - [ - "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-026-ref.html", - "==" - ] - ], - {} - ] - ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-029.html": [ - [ - "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-029.html", - [ - [ - "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-027-ref.html", - "==" - ] - ], - {} - ] - ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-030.html": [ - [ - "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-030.html", - [ - [ - "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-030-ref.html", - "==" - ] - ], - {} - ] - ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-031.html": [ - [ - "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-031.html", - [ - [ - "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-031-ref.html", - "==" - ] - ], - {} - ] - ], "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-032.html": [ [ "/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-032.html", @@ -238388,6 +238796,11 @@ {} ] ], + "css/css-animations/set-animation-play-state-to-paused-002-ref.html": [ + [ + {} + ] + ], "css/css-backgrounds/OWNERS": [ [ {} @@ -250903,7 +251316,7 @@ {} ] ], - "css/css-layout-api/layout-child-ref.html": [ + "css/css-layout-api/green-square-ref.html": [ [ {} ] @@ -250923,6 +251336,16 @@ {} ] ], + "css/css-layout-api/support/constraints-fixed-block-size-quirky-body-iframe.html": [ + [ + {} + ] + ], + "css/css-layout-api/support/constraints-fixed-block-size.js": [ + [ + {} + ] + ], "css/css-layout-api/support/constraints-fixed-inline-size.js": [ [ {} @@ -252533,6 +252956,11 @@ {} ] ], + "css/css-pseudo/placeholder-input-number-notref.html": [ + [ + {} + ] + ], "css/css-regions/OWNERS": [ [ {} @@ -265973,6 +266401,11 @@ {} ] ], + "css/support/grid.css": [ + [ + {} + ] + ], "css/support/import-green.css": [ [ {} @@ -267003,6 +267436,11 @@ {} ] ], + "css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001-ref.html": [ + [ + {} + ] + ], "css/vendor-imports/mozilla/mozilla-central-reftests/contain/reftest.list": [ [ {} @@ -269113,11 +269551,6 @@ {} ] ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-039-ref.html": [ - [ - {} - ] - ], "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-041-ref.html": [ [ {} @@ -269128,11 +269561,6 @@ {} ] ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-045-ref.html": [ - [ - {} - ] - ], "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-047-ref.html": [ [ {} @@ -269308,16 +269736,6 @@ {} ] ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-018-ref.html": [ - [ - {} - ] - ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-019-ref.html": [ - [ - {} - ] - ], "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-020-ref.html": [ [ {} @@ -269468,26 +269886,6 @@ {} ] ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-026-ref.html": [ - [ - {} - ] - ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-027-ref.html": [ - [ - {} - ] - ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-030-ref.html": [ - [ - {} - ] - ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-031-ref.html": [ - [ - {} - ] - ], "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-032-ref.html": [ [ {} @@ -272083,11 +272481,6 @@ {} ] ], - "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-hangul.html.headers": [ - [ - {} - ] - ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html.headers": [ [ {} @@ -272428,16 +272821,36 @@ {} ] ], + "encoding/resources/decode-common.js": [ + [ + {} + ] + ], "encoding/resources/decoding-helpers.js": [ [ {} ] ], + "encoding/resources/encode-form-common.js": [ + [ + {} + ] + ], + "encoding/resources/encode-href-common.js": [ + [ + {} + ] + ], "encoding/resources/encodings.js": [ [ {} ] ], + "encoding/resources/ranges.js": [ + [ + {} + ] + ], "encoding/resources/single-byte-raw.py": [ [ {} @@ -283693,11 +284106,6 @@ {} ] ], - "html/semantics/embedded-content/resources/test_page.html": [ - [ - {} - ] - ], "html/semantics/embedded-content/svg/.gitkeep": [ [ {} @@ -284198,6 +284606,11 @@ {} ] ], + "html/semantics/embedded-content/the-iframe-element/support/load-into-the-iframe.html": [ + [ + {} + ] + ], "html/semantics/embedded-content/the-iframe-element/support/navigation-changed-iframe.html": [ [ {} @@ -287638,6 +288051,16 @@ {} ] ], + "lifecycle/resources/foo.txt": [ + [ + {} + ] + ], + "lifecycle/resources/window.html": [ + [ + {} + ] + ], "longtask-timing/OWNERS": [ [ {} @@ -289348,6 +289771,11 @@ {} ] ], + "payment-handler/can-make-payment-event-constructor.https.serviceworker.js": [ + [ + {} + ] + ], "payment-handler/manifest.json": [ [ {} @@ -289358,6 +289786,11 @@ {} ] ], + "payment-handler/payment-request-event-constructor.https.serviceworker.js": [ + [ + {} + ] + ], "payment-handler/register-and-activate-service-worker.js": [ [ {} @@ -289758,6 +290191,16 @@ {} ] ], + "priority-hints/OWNERS": [ + [ + {} + ] + ], + "priority-hints/resources/stylesheet.css": [ + [ + {} + ] + ], "proximity/OWNERS": [ [ {} @@ -300388,6 +300831,11 @@ {} ] ], + "workers/modules/resources/dynamic-import-remote-origin-script-worker.sub.js": [ + [ + {} + ] + ], "workers/modules/resources/dynamic-import-worker.js": [ [ {} @@ -300413,6 +300861,11 @@ {} ] ], + "workers/modules/resources/export-on-load-script.js.headers": [ + [ + {} + ] + ], "workers/modules/resources/export-on-static-import-script.js": [ [ {} @@ -300438,6 +300891,11 @@ {} ] ], + "workers/modules/resources/new-worker-window.html": [ + [ + {} + ] + ], "workers/modules/resources/post-message-on-load-worker.js": [ [ {} @@ -300453,6 +300911,11 @@ {} ] ], + "workers/modules/resources/static-import-remote-origin-script-worker.sub.js": [ + [ + {} + ] + ], "workers/modules/resources/static-import-worker.js": [ [ {} @@ -316228,6 +316691,30 @@ {} ] ], + "css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-001.html": [ + [ + "/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-001.html", + {} + ] + ], + "css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-002.html": [ + [ + "/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-002.html", + {} + ] + ], + "css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-003.html": [ + [ + "/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-003.html", + {} + ] + ], + "css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-004.html": [ + [ + "/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-004.html", + {} + ] + ], "css/css-grid/alignment/grid-fit-content-tracks-dont-stretch-001.html": [ [ "/css/css-grid/alignment/grid-fit-content-tracks-dont-stretch-001.html", @@ -316348,6 +316835,30 @@ {} ] ], + "css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-001.html": [ + [ + "/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-001.html", + {} + ] + ], + "css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-002.html": [ + [ + "/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-002.html", + {} + ] + ], + "css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-003.html": [ + [ + "/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-003.html", + {} + ] + ], + "css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-004.html": [ + [ + "/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-004.html", + {} + ] + ], "css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-001.html": [ [ "/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-001.html", @@ -316804,6 +317315,18 @@ {} ] ], + "css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-001.html": [ + [ + "/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-001.html", + {} + ] + ], + "css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-002.html": [ + [ + "/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-002.html", + {} + ] + ], "css/css-grid/grid-definition/grid-change-fit-content-argument-001.html": [ [ "/css/css-grid/grid-definition/grid-change-fit-content-argument-001.html", @@ -327348,7 +327871,85 @@ ], "encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html": [ [ - "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html", + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html?11001-12000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html?12001-13000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html?13001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html?9001-10000", { "timeout": "long" } @@ -327364,7 +327965,85 @@ ], "encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html": [ [ - "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html", + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html?11001-12000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html?12001-13000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html?13001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html?9001-10000", { "timeout": "long" } @@ -327372,7 +328051,85 @@ ], "encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html": [ [ - "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html", + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html?11001-12000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html?12001-13000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html?13001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html?9001-10000", { "timeout": "long" } @@ -327380,7 +328137,49 @@ ], "encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html": [ [ - "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html", + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html?7001-last", { "timeout": "long" } @@ -327388,7 +328187,133 @@ ], "encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html": [ [ - "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html", + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?11001-12000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?12001-13000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?13001-14000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?14001-15000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?15001-16000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?16001-17000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?17001-18000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?18001-19000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?19001-20000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?20001-21000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?21001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html?9001-10000", { "timeout": "long" } @@ -327396,7 +328321,73 @@ ], "encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html": [ [ - "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html", + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html?11001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html?9001-10000", { "timeout": "long" } @@ -327404,7 +328395,25 @@ ], "encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc.html": [ [ - "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc.html", + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc.html?3001-last", { "timeout": "long" } @@ -327412,7 +328421,49 @@ ], "encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html": [ [ - "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html", + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html?7001-last", { "timeout": "long" } @@ -327420,7 +328471,49 @@ ], "encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html": [ [ - "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html", + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html?7001-last", { "timeout": "long" } @@ -327428,7 +328521,133 @@ ], "encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html": [ [ - "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html", + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?10001-10000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?11001-12000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?12001-13000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?13001-14000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?14001-15000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?15001-16000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?16001-17000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?17001-18000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?18001-19000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?19001-20000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?20001-21000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?21001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html?9001-10000", { "timeout": "long" } @@ -327436,7 +328655,73 @@ ], "encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html": [ [ - "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html", + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html?10001-10000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html?11001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html?9001-10000", { "timeout": "long" } @@ -327444,7 +328729,25 @@ ], "encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc.html": [ [ - "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc.html", + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc.html?3001-last", { "timeout": "long" } @@ -327452,7 +328755,49 @@ ], "encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html": [ [ - "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html", + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html?7001-last", { "timeout": "long" } @@ -327460,7 +328805,49 @@ ], "encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp.html": [ [ - "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp.html", + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp.html?7001-last", { "timeout": "long" } @@ -327476,7 +328863,49 @@ ], "encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode.html": [ [ - "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode.html", + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode.html?7001-last", { "timeout": "long" } @@ -327484,7 +328913,49 @@ ], "encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html": [ [ - "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html", + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html?7001-last", { "timeout": "long" } @@ -327492,7 +328963,127 @@ ], "encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html": [ [ - "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html", + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?11001-12000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?12001-13000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?13001-14000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?14001-15000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?15001-16000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?16001-17000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?17001-18000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?18001-19000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?19001-20000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?20001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html?9001-10000", { "timeout": "long" } @@ -327500,7 +329091,73 @@ ], "encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html": [ [ - "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html", + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html?11001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html?9001-10000", { "timeout": "long" } @@ -327508,7 +329165,25 @@ ], "encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc.html": [ [ - "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc.html", + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc.html?3001-last", { "timeout": "long" } @@ -327522,7 +329197,49 @@ ], "encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html": [ [ - "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html", + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html?7001-last", { "timeout": "long" } @@ -327530,7 +329247,127 @@ ], "encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html": [ [ - "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html", + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?11001-12000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?12001-13000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?13001-14000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?14001-15000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?15001-16000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?16001-17000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?17001-18000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?18001-19000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?19001-20000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?20001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html?9001-10000", { "timeout": "long" } @@ -327538,7 +329375,73 @@ ], "encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html": [ [ - "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html", + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html?11001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html?9001-10000", { "timeout": "long" } @@ -327546,7 +329449,25 @@ ], "encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc.html": [ [ - "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc.html", + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc.html?3001-last", { "timeout": "long" } @@ -327554,7 +329475,49 @@ ], "encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html": [ [ - "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html", + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html?7001-last", { "timeout": "long" } @@ -327562,7 +329525,49 @@ ], "encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis.html": [ [ - "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis.html", + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis.html?7001-last", { "timeout": "long" } @@ -327578,7 +329583,49 @@ ], "encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932.html": [ [ - "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932.html", + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932.html?7001-last", { "timeout": "long" } @@ -327586,7 +329633,49 @@ ], "encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji.html": [ [ - "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji.html", + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji.html?7001-last", { "timeout": "long" } @@ -327594,7 +329683,49 @@ ], "encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis.html": [ [ - "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis.html", + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis.html?7001-last", { "timeout": "long" } @@ -327602,7 +329733,49 @@ ], "encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis.html": [ [ - "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis.html", + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis.html?7001-last", { "timeout": "long" } @@ -327610,7 +329783,49 @@ ], "encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j.html": [ [ - "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j.html", + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j.html?7001-last", { "timeout": "long" } @@ -327618,7 +329833,49 @@ ], "encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis.html": [ [ - "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis.html", + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis.html?7001-last", { "timeout": "long" } @@ -327626,7 +329883,49 @@ ], "encoding/legacy-mb-japanese/shift_jis/sjis-decode.html": [ [ - "/encoding/legacy-mb-japanese/shift_jis/sjis-decode.html", + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-decode.html?7001-last", { "timeout": "long" } @@ -327634,7 +329933,49 @@ ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html": [ [ - "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html", + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html?7001-last", { "timeout": "long" } @@ -327642,7 +329983,127 @@ ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html": [ [ - "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html", + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?11001-12000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?12001-13000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?13001-14000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?14001-15000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?15001-16000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?16001-17000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?17001-18000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?18001-19000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?19001-20000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?20001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html?9001-10000", { "timeout": "long" } @@ -327650,7 +330111,73 @@ ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html": [ [ - "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html", + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html?11001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html?9001-10000", { "timeout": "long" } @@ -327658,7 +330185,25 @@ ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html": [ [ - "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html", + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html?3001-last", { "timeout": "long" } @@ -327666,7 +330211,49 @@ ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html": [ [ - "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html", + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html?7001-last", { "timeout": "long" } @@ -327674,7 +330261,49 @@ ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html": [ [ - "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html", + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html?7001-last", { "timeout": "long" } @@ -327682,7 +330311,49 @@ ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html": [ [ - "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html", + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html?7001-last", { "timeout": "long" } @@ -327690,7 +330361,49 @@ ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html": [ [ - "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html", + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html?7001-last", { "timeout": "long" } @@ -327698,7 +330411,49 @@ ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html": [ [ - "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html", + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html?7001-last", { "timeout": "long" } @@ -327706,7 +330461,49 @@ ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html": [ [ - "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html", + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html?7001-last", { "timeout": "long" } @@ -327714,7 +330511,49 @@ ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html": [ [ - "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html", + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html?7001-last", { "timeout": "long" } @@ -327722,7 +330561,133 @@ ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html": [ [ - "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html", + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?10001-10000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?11001-12000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?12001-13000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?13001-14000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?14001-15000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?15001-16000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?16001-17000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?17001-18000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?18001-19000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?19001-20000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?20001-21000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?21001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html?9001-10000", { "timeout": "long" } @@ -327730,7 +330695,73 @@ ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html": [ [ - "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html", + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html?11001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html?9001-10000", { "timeout": "long" } @@ -327738,7 +330769,25 @@ ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html": [ [ - "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html", + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html?3001-last", { "timeout": "long" } @@ -327746,7 +330795,49 @@ ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html": [ [ - "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html", + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html?7001-last", { "timeout": "long" } @@ -327754,7 +330845,109 @@ ], "encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html": [ [ - "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html", + "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html?11001-12000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html?12001-13000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html?13001-14000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html?14001-15000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html?15001-16000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html?16001-17000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html?17001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html?9001-10000", { "timeout": "long" } @@ -327762,7 +330955,109 @@ ], "encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html": [ [ - "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html", + "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html?11001-12000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html?12001-13000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html?13001-14000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html?14001-15000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html?15001-16000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html?16001-17000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html?17001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html?9001-10000", { "timeout": "long" } @@ -327842,7 +331137,109 @@ ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html": [ [ - "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html", + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html?11001-12000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html?12001-13000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html?13001-14000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html?14001-15000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html?15001-16000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html?16001-17000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html?17001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html?9001-10000", { "timeout": "long" } @@ -327850,7 +331247,109 @@ ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html": [ [ - "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html", + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html?11001-12000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html?12001-13000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html?13001-14000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html?14001-15000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html?15001-16000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html?16001-17000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html?17001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html?9001-10000", { "timeout": "long" } @@ -327858,7 +331357,145 @@ ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html": [ [ - "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html", + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?11001-12000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?12001-13000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?13001-14000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?14001-15000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?15001-16000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?16001-17000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?17001-18000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?18001-19000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?19001-20000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?20001-21000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?21001-22000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?22001-23000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?23001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html?9001-10000", { "timeout": "long" } @@ -327866,7 +331503,25 @@ ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html": [ [ - "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html", + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html?3001-last", { "timeout": "long" } @@ -327874,7 +331529,109 @@ ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html": [ [ - "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html", + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html?11001-12000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html?12001-13000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html?13001-14000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html?14001-15000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html?15001-16000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html?16001-17000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html?17001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html?9001-10000", { "timeout": "long" } @@ -327882,7 +331639,109 @@ ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html": [ [ - "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html", + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html?11001-12000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html?12001-13000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html?13001-14000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html?14001-15000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html?15001-16000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html?16001-17000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html?17001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html?9001-10000", { "timeout": "long" } @@ -327890,7 +331749,109 @@ ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html": [ [ - "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html", + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html?11001-12000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html?12001-13000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html?13001-14000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html?14001-15000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html?15001-16000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html?16001-17000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html?17001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html?9001-10000", { "timeout": "long" } @@ -327898,7 +331859,109 @@ ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html": [ [ - "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html", + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html?11001-12000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html?12001-13000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html?13001-14000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html?14001-15000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html?15001-16000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html?16001-17000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html?17001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html?9001-10000", { "timeout": "long" } @@ -327906,7 +331969,109 @@ ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html": [ [ - "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html", + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html?11001-12000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html?12001-13000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html?13001-14000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html?14001-15000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html?15001-16000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html?16001-17000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html?17001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html?9001-10000", { "timeout": "long" } @@ -327914,7 +332079,109 @@ ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html": [ [ - "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html", + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html?11001-12000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html?12001-13000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html?13001-14000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html?14001-15000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html?15001-16000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html?16001-17000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html?17001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html?9001-10000", { "timeout": "long" } @@ -327922,7 +332189,109 @@ ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html": [ [ - "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html", + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html?11001-12000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html?12001-13000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html?13001-14000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html?14001-15000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html?15001-16000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html?16001-17000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html?17001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html?9001-10000", { "timeout": "long" } @@ -327930,7 +332299,109 @@ ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html": [ [ - "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html", + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html?11001-12000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html?12001-13000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html?13001-14000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html?14001-15000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html?15001-16000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html?16001-17000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html?17001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html?9001-10000", { "timeout": "long" } @@ -327938,7 +332409,145 @@ ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html": [ [ - "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html", + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?11001-12000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?12001-13000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?13001-14000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?14001-15000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?15001-16000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?16001-17000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?17001-18000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?18001-19000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?19001-20000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?20001-21000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?21001-22000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?22001-23000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?23001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html?9001-10000", { "timeout": "long" } @@ -327946,7 +332555,25 @@ ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html": [ [ - "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html", + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html?3001-last", { "timeout": "long" } @@ -327954,7 +332581,109 @@ ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html": [ [ - "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html", + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html?11001-12000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html?12001-13000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html?13001-14000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html?14001-15000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html?15001-16000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html?16001-17000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html?17001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html?9001-10000", { "timeout": "long" } @@ -327962,7 +332691,91 @@ ], "encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html": [ [ - "/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html", + "/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html?11001-12000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html?12001-13000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html?13001-14000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html?14001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html?9001-10000", { "timeout": "long" } @@ -327970,7 +332783,91 @@ ], "encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html": [ [ - "/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html", + "/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html?11001-12000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html?12001-13000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html?13001-14000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html?14001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html?9001-10000", { "timeout": "long" } @@ -327978,7 +332875,91 @@ ], "encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html": [ [ - "/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html", + "/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html?11001-12000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html?12001-13000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html?13001-14000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html?14001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html?9001-10000", { "timeout": "long" } @@ -328026,7 +333007,91 @@ ], "encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html": [ [ - "/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html", + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html?11001-12000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html?12001-13000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html?13001-14000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html?14001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html?9001-10000", { "timeout": "long" } @@ -328034,7 +333099,91 @@ ], "encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html": [ [ - "/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html", + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html?11001-12000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html?12001-13000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html?13001-14000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html?14001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html?9001-10000", { "timeout": "long" } @@ -328042,7 +333191,91 @@ ], "encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html": [ [ - "/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html", + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html?11001-12000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html?12001-13000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html?13001-14000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html?14001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html?9001-10000", { "timeout": "long" } @@ -328050,7 +333283,133 @@ ], "encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html": [ [ - "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html", + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?11001-12000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?12001-13000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?13001-14000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?14001-15000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?15001-16000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?16001-17000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?17001-18000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?18001-19000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?19001-20000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?20001-21000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?21001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html?9001-10000", { "timeout": "long" } @@ -328058,7 +333417,133 @@ ], "encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html": [ [ - "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html", + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?11001-12000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?12001-13000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?13001-14000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?14001-15000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?15001-16000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?16001-17000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?17001-18000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?18001-19000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?19001-20000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?20001-21000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?21001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html?9001-10000", { "timeout": "long" } @@ -328066,7 +333551,91 @@ ], "encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html": [ [ - "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html", + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html?11001-12000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html?12001-13000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html?13001-14000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html?14001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html?9001-10000", { "timeout": "long" } @@ -328074,7 +333643,73 @@ ], "encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html": [ [ - "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html", + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html?11001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html?9001-10000", { "timeout": "long" } @@ -328082,7 +333717,25 @@ ], "encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html": [ [ - "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html", + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html?3001-last", { "timeout": "long" } @@ -328090,7 +333743,43 @@ ], "encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html": [ [ - "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html", + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html?6001-last", { "timeout": "long" } @@ -328098,7 +333787,91 @@ ], "encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html": [ [ - "/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html", + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html?11001-12000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html?12001-13000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html?13001-14000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html?14001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html?9001-10000", { "timeout": "long" } @@ -328106,7 +333879,91 @@ ], "encoding/legacy-mb-tchinese/big5/big5-encode-form.html": [ [ - "/encoding/legacy-mb-tchinese/big5/big5-encode-form.html", + "/encoding/legacy-mb-tchinese/big5/big5-encode-form.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form.html?11001-12000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form.html?12001-13000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form.html?13001-14000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form.html?14001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-form.html?9001-10000", { "timeout": "long" } @@ -328114,7 +333971,145 @@ ], "encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html": [ [ - "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html", + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?10001-11000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?11001-12000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?12001-13000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?13001-14000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?14001-15000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?15001-16000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?16001-17000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?17001-18000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?18001-19000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?19001-20000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?20001-21000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?21001-22000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?22001-23000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?23001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html?9001-10000", { "timeout": "long" } @@ -328122,7 +334117,73 @@ ], "encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html": [ [ - "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html", + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html?10001-10000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html?11001-last", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html?7001-8000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html?8001-9000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html?9001-10000", { "timeout": "long" } @@ -328130,7 +334191,25 @@ ], "encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html": [ [ - "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html", + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html?3001-last", { "timeout": "long" } @@ -328138,7 +334217,49 @@ ], "encoding/legacy-mb-tchinese/big5/big5-encode-href.html": [ [ - "/encoding/legacy-mb-tchinese/big5/big5-encode-href.html", + "/encoding/legacy-mb-tchinese/big5/big5-encode-href.html?1-1000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href.html?1001-2000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href.html?2001-3000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href.html?3001-4000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href.html?4001-5000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href.html?5001-6000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href.html?6001-7000", + { + "timeout": "long" + } + ], + [ + "/encoding/legacy-mb-tchinese/big5/big5-encode-href.html?7001-last", { "timeout": "long" } @@ -328152,7 +334273,19 @@ ], "encoding/single-byte-decoder.html": [ [ - "/encoding/single-byte-decoder.html", + "/encoding/single-byte-decoder.html?TextDecoder", + { + "timeout": "long" + } + ], + [ + "/encoding/single-byte-decoder.html?XMLHttpRequest", + { + "timeout": "long" + } + ], + [ + "/encoding/single-byte-decoder.html?document", { "timeout": "long" } @@ -334594,6 +340727,16 @@ {} ] ], + "html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html": [ + [ + "/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html?encoding=utf8", + {} + ], + [ + "/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html?encoding=x-cp1251", + {} + ] + ], "html/infrastructure/urls/resolving-urls/query-encoding/utf-16be.html": [ [ "/html/infrastructure/urls/resolving-urls/query-encoding/utf-16be.html", @@ -334754,6 +340897,12 @@ {} ] ], + "html/rendering/non-replaced-elements/tables/hidden-attr.html": [ + [ + "/html/rendering/non-replaced-elements/tables/hidden-attr.html", + {} + ] + ], "html/rendering/non-replaced-elements/tables/table-vspace-hspace-s.html": [ [ "/html/rendering/non-replaced-elements/tables/table-vspace-hspace-s.html", @@ -337514,12 +343663,6 @@ {} ] ], - "html/semantics/embedded-content/the-embed-element/detach-frame-on-src-change.html": [ - [ - "/html/semantics/embedded-content/the-embed-element/detach-frame-on-src-change.html", - {} - ] - ], "html/semantics/embedded-content/the-embed-element/document-getters-return-null-for-cross-origin.html": [ [ "/html/semantics/embedded-content/the-embed-element/document-getters-return-null-for-cross-origin.html", @@ -338094,12 +344237,6 @@ {} ] ], - "html/semantics/embedded-content/the-object-element/detach-frame-on-data-change.html": [ - [ - "/html/semantics/embedded-content/the-object-element/detach-frame-on-data-change.html", - {} - ] - ], "html/semantics/embedded-content/the-object-element/document-getters-return-null-for-cross-origin.html": [ [ "/html/semantics/embedded-content/the-object-element/document-getters-return-null-for-cross-origin.html", @@ -344022,6 +350159,12 @@ {} ] ], + "lifecycle/freeze.html": [ + [ + "/lifecycle/freeze.html", + {} + ] + ], "longtask-timing/longtask-attributes.html": [ [ "/longtask-timing/longtask-attributes.html", @@ -344670,6 +350813,12 @@ {} ] ], + "mediacapture-fromelement/historical.html": [ + [ + "/mediacapture-fromelement/historical.html", + {} + ] + ], "mediacapture-fromelement/idlharness.html": [ [ "/mediacapture-fromelement/idlharness.html", @@ -355754,6 +361903,12 @@ {} ] ], + "payment-handler/can-make-payment-event-constructor.https.serviceworker.html": [ + [ + "/payment-handler/can-make-payment-event-constructor.https.serviceworker.html", + {} + ] + ], "payment-handler/can-make-payment-event-constructor.https.worker.js": [ [ "/payment-handler/can-make-payment-event-constructor.https.worker.html", @@ -355782,6 +361937,24 @@ {} ] ], + "payment-handler/payment-request-event-constructor.https.html": [ + [ + "/payment-handler/payment-request-event-constructor.https.html", + {} + ] + ], + "payment-handler/payment-request-event-constructor.https.serviceworker.html": [ + [ + "/payment-handler/payment-request-event-constructor.https.serviceworker.html", + {} + ] + ], + "payment-handler/payment-request-event-constructor.https.worker.js": [ + [ + "/payment-handler/payment-request-event-constructor.https.worker.html", + {} + ] + ], "payment-handler/payment-request-event.https.html": [ [ "/payment-handler/payment-request-event.https.html", @@ -356424,6 +362597,18 @@ {} ] ], + "priority-hints/img-attr-named-constructor.tentative.html": [ + [ + "/priority-hints/img-attr-named-constructor.tentative.html", + {} + ] + ], + "priority-hints/link-attr.tentative.html": [ + [ + "/priority-hints/link-attr.tentative.html", + {} + ] + ], "proximity/ProximitySensor.https.html": [ [ "/proximity/ProximitySensor.https.html", @@ -365504,6 +371689,12 @@ {} ] ], + "resource-timing/resource_timing_buffer_full_eventually.html": [ + [ + "/resource-timing/resource_timing_buffer_full_eventually.html", + {} + ] + ], "resource-timing/resource_timing_buffer_full_when_populate_entries.html": [ [ "/resource-timing/resource_timing_buffer_full_when_populate_entries.html", @@ -369772,12 +375963,6 @@ {} ] ], - "touch-events/create-touch-touchlist.html": [ - [ - "/touch-events/create-touch-touchlist.html", - {} - ] - ], "touch-events/historical.html": [ [ "/touch-events/historical.html", @@ -376922,6 +383107,12 @@ {} ] ], + "workers/modules/dedicated-worker-import-csp.html": [ + [ + "/workers/modules/dedicated-worker-import-csp.html", + {} + ] + ], "workers/modules/dedicated-worker-import-failure.html": [ [ "/workers/modules/dedicated-worker-import-failure.html", @@ -429760,11 +435951,11 @@ "testharness" ], "cookie-store/idlharness.tentative.html": [ - "42be9e73d8e6ad3760a4c9871f6f633962f2ab85", + "043875184fa56ad41cda11e6f84314a7aebdb17f", "testharness" ], "cookie-store/idlharness_serviceworker.js": [ - "516a0596c03b9db2446ca77d70d3eb95f060e895", + "42a34fc954f517498ab68ac406c0008342204466", "support" ], "cookie-store/idlharness_serviceworker.tentative.https.html": [ @@ -490759,6 +496950,14 @@ "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-backgrounds/OWNERS": [ "656d9f4e3a66f8cb955910171b9997140e4bbd8e", "support" @@ -490768,7 +496967,7 @@ "testharness" ], "css/css-backgrounds/background-332.html": [ - "ba3453739dee1dac840b3916b09cf161752d2f1d", + "5831da212a187d7f69864475f1fae96053d3a5a7", "testharness" ], "css/css-backgrounds/background-333.html": [ @@ -495383,6 +501582,34 @@ "dfb0708ceeda5812a7434454f39a360d576597ea", "reftest" ], + "css/css-contain/contain-size-006.html": [ + "2952e1bfc74d784dd2d16867ad95199d78c08efa", + "reftest" + ], + "css/css-contain/contain-size-007.html": [ + "54d0f08274e3bb380d098fb5dbf9edeee67780f3", + "reftest" + ], + "css/css-contain/contain-size-008.html": [ + "eaff3d8150332dffa1c70fc75efd66929f8adc79", + "reftest" + ], + "css/css-contain/contain-size-009.html": [ + "727fa2cfad094c1a4e4785fb71cdc3c09a5d7f1b", + "reftest" + ], + "css/css-contain/contain-size-010.html": [ + "1bfca9e97f9135b4f4b1b456f017a641c8b85a1c", + "reftest" + ], + "css/css-contain/contain-size-011.html": [ + "c4b06e89428d47d9777610bb949714f70685dac5", + "reftest" + ], + "css/css-contain/contain-size-012.html": [ + "ea98297a40836557325e66184854e7f7c3f82660", + "reftest" + ], "css/css-contain/contain-size-breaks-001.html": [ "3a3c80029a6c126c584a21e2ff3b25e5459c32e8", "reftest" @@ -508939,6 +515166,22 @@ "7d1a1c21880b25fe0126affa850fb13bdf80470b", "testharness" ], + "css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-001.html": [ + "7387c69c5f442f72c4f253242823f97b7c26ed83", + "testharness" + ], + "css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-002.html": [ + "a95963f14832c60c44aa63915ea557fdabe3183f", + "testharness" + ], + "css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-003.html": [ + "e5c7e8adb9d33b307041429f708aae12b0203a58", + "testharness" + ], + "css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-004.html": [ + "d24ae3fb7aad80368ea4f22122e18157596bf45a", + "testharness" + ], "css/css-grid/alignment/grid-content-distribution-001.html": [ "5622a264eb2dbd6cf621ac97aa4a8ae5db82c6b3", "reftest" @@ -509263,6 +515506,22 @@ "7f95db93458af40478ad2cd6b473e8f34f62f3e8", "testharness" ], + "css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-001.html": [ + "7f2b8621613e433c84b70310c64051b4b3893a67", + "testharness" + ], + "css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-002.html": [ + "c25d5c44d2a7d07b789a2cf669f50a21f6df4f8e", + "testharness" + ], + "css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-003.html": [ + "edf4aec4ce1ba1bbda1a5e6ade38a712522623c5", + "testharness" + ], + "css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-004.html": [ + "d83d361ef95e1a4c16b33a9057d7559aaa43a242", + "testharness" + ], "css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-001.html": [ "cafc54256ea9d0cbf8990a0e04904c7ada8c5894", "testharness" @@ -509567,6 +515826,14 @@ "737ff1592425bb6e89a9edebdd072c94e926a1a9", "testharness" ], + "css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-001.html": [ + "8ff9af9ade9e12c95d7e70778635efdc2263e62b", + "testharness" + ], + "css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-002.html": [ + "28a7a3372ec47cb31afde392da0752032f416512", + "testharness" + ], "css/css-grid/alignment/self-baseline/grid-self-baseline-changes-grid-area-size-001.html": [ "e7250b61f6dc882945f73412ec73c0de7f139aad", "reftest" @@ -510895,6 +517162,126 @@ "a999a2a7ad8981879cdc984bf602939a23a60ea6", "testharness" ], + "css/css-layout-api/constraints-data-function-failure.https.html": [ + "5158c7620d4e5aa9d88455fbbd88277572cdcb63", + "reftest" + ], + "css/css-layout-api/constraints-data-sab-failure.https.html": [ + "ce21d5ca8c3059f7f1a6981bda3ff37802cea27d", + "reftest" + ], + "css/css-layout-api/constraints-data.https.html": [ + "371958d97ba951172a283a653f2064def1327a32", + "reftest" + ], + "css/css-layout-api/constraints-fixed-block-size-absolute-left-right-vrl.https.html": [ + "ef743bb31278b2a9cb3fef53a1afa430bf347eaf", + "reftest" + ], + "css/css-layout-api/constraints-fixed-block-size-absolute-none.https.html": [ + "0eac283ecc975a020075ce274eeb61b9c456b375", + "reftest" + ], + "css/css-layout-api/constraints-fixed-block-size-absolute-top-bottom.https.html": [ + "ec737a097b1c43e87a75da98808630d87def3820", + "reftest" + ], + "css/css-layout-api/constraints-fixed-block-size-block-none-vrl.https.html": [ + "0f5b86acd6ed8acd65a9f0f42d6cc58a6647fa1a", + "reftest" + ], + "css/css-layout-api/constraints-fixed-block-size-block-none.https.html": [ + "59a141464e16d51ca3d80c5c4a8288ff8941a499", + "reftest" + ], + "css/css-layout-api/constraints-fixed-block-size-fixed-max.https.html": [ + "4e49d34d2fc28f15d52e83c27aa8e4fc49dc40f6", + "reftest" + ], + "css/css-layout-api/constraints-fixed-block-size-fixed-min.https.html": [ + "5785b9c3512c74fd297aa73bcdd6265c8008fd4c", + "reftest" + ], + "css/css-layout-api/constraints-fixed-block-size-fixed-vrl.https.html": [ + "a7eafe481062365a3367cedfd30ed3a3a21ec7ab", + "reftest" + ], + "css/css-layout-api/constraints-fixed-block-size-fixed.https.html": [ + "bb8c0b95f1d382cfce289a17d29dea571e938c2d", + "reftest" + ], + "css/css-layout-api/constraints-fixed-block-size-flex-basis-vrl.https.html": [ + "a1868fd28509931b4c447c866e7669b7129e8380", + "reftest" + ], + "css/css-layout-api/constraints-fixed-block-size-flex-column-basis.https.html": [ + "53458ee7f683668a621cf82ab30212ee74bad83f", + "reftest" + ], + "css/css-layout-api/constraints-fixed-block-size-flex-column-grow.https.html": [ + "04f4fdd074cf2726211d2718d4aa14b816ca0214", + "reftest" + ], + "css/css-layout-api/constraints-fixed-block-size-flex-column-none.https.html": [ + "166a66ce956b3b49b2d00ce88e808739065acc9d", + "reftest" + ], + "css/css-layout-api/constraints-fixed-block-size-flex-column-stretch-vrl.https.html": [ + "9bd9cccaea90f3c472a254ac41738716d921845d", + "reftest" + ], + "css/css-layout-api/constraints-fixed-block-size-flex-grow-vrl.https.html": [ + "8c82d4c094b1ff74f2638b2182880fc55c00737a", + "reftest" + ], + "css/css-layout-api/constraints-fixed-block-size-flex-none.https.html": [ + "b35d8ca45539171ff4a3360e223bb476b81e131e", + "reftest" + ], + "css/css-layout-api/constraints-fixed-block-size-flex-percentage-indefinite.https.html": [ + "c4a30e47f6758a2ec98d4c122b09caf8efb7244d", + "reftest" + ], + "css/css-layout-api/constraints-fixed-block-size-flex-stretch-max.https.html": [ + "07155efe3bf9a2a48f1e76180176dca76c2e0096", + "reftest" + ], + "css/css-layout-api/constraints-fixed-block-size-flex-stretch.https.html": [ + "9a34469e3eb5b89f76739b26082cc97f356c5d3d", + "reftest" + ], + "css/css-layout-api/constraints-fixed-block-size-grid-none.https.html": [ + "fda1fa1d2dc49d9b3721165a6f55eb680ed0d958", + "reftest" + ], + "css/css-layout-api/constraints-fixed-block-size-grid-stretch-max.https.html": [ + "8eb9641f5eba2aedcc4f8445ea55eff0574b07a2", + "reftest" + ], + "css/css-layout-api/constraints-fixed-block-size-grid-stretch.https.html": [ + "392a866a7fd24e58b28169f0aa23a58abceb4c6f", + "reftest" + ], + "css/css-layout-api/constraints-fixed-block-size-grid-vrl.https.html": [ + "e4e6a64e131de62dd18223bdffe0404f8e890464", + "reftest" + ], + "css/css-layout-api/constraints-fixed-block-size-percentage-indefinite.https.html": [ + "6bb68de285ec3eefeaf7ddd6a4bba6ea867865e4", + "reftest" + ], + "css/css-layout-api/constraints-fixed-block-size-percentage-vrl.https.html": [ + "20143f108250817b376b3be48d1569d83d305a08", + "reftest" + ], + "css/css-layout-api/constraints-fixed-block-size-percentage.https.html": [ + "9afd79b298034ada9c1d46c1c5ce90f40ce619b3", + "reftest" + ], + "css/css-layout-api/constraints-fixed-block-size-quirky-body.https.html": [ + "a6d5724f25ca05b3d205166a04e9a53f5b227527", + "reftest" + ], "css/css-layout-api/constraints-fixed-inline-size-absolute-left-right.https.html": [ "15f8dde88dd066b5525a6b8990206ac567f48b2a", "reftest" @@ -510983,72 +517370,88 @@ "464a929254bba9991b03e2d0d161c0274c7c4b59", "support" ], + "css/css-layout-api/fragment-data-function-failure.https.html": [ + "3237c10bd95c4d0b25b8fe2db8768b5f7f50f18b", + "reftest" + ], + "css/css-layout-api/fragment-data-immutable.https.html": [ + "d0321eef8d3412607090ac77ef9b160ff6b2a3cd", + "reftest" + ], + "css/css-layout-api/fragment-data-sab-failure.https.html": [ + "bc91309fddc5146b0258a4a9e362625c1ef1e5cb", + "reftest" + ], + "css/css-layout-api/fragment-data.https.html": [ + "525c663bd7e9844af8f42429d936558b95a66188", + "reftest" + ], + "css/css-layout-api/green-square-ref.html": [ + "925277c0e5cc163b9f39d878b9b39d7f822dda51", + "support" + ], "css/css-layout-api/inline-style-layout-function.https.html": [ "f421a9c0fb4c930922281a88eeaa45ae69adab51", "testharness" ], "css/css-layout-api/layout-child-absolute.https.html": [ - "39c26ad4eb1c455e911ad1d963494096f8560f9a", + "42a689b586a297b9f40f18eee0806d587da00351", "reftest" ], "css/css-layout-api/layout-child-before-after.https.html": [ - "77408947564e138eff1f85fa71be05a0303bc9dc", + "6836c7c8b81adda98e8de4041e0b505d1e0dbdd7", "reftest" ], "css/css-layout-api/layout-child-fixed.https.html": [ - "61fafcd052444e4d996748b9c132101b754747e7", + "ca84f12d5982ef9f1a6531f41721d76bf2a1c8c6", "reftest" ], "css/css-layout-api/layout-child-float.https.html": [ - "8840ae8518ade98bf38614ef92df20c19b65a667", + "a0e2c43f60ba1376090a32df5e9625faaac23274", "reftest" ], "css/css-layout-api/layout-child-inflow.https.html": [ - "d1034937a934ac7900ecd59d958de00c769a73cf", + "af6fdd340c5e81b02dc99012cc990c0fcc9e68bb", "reftest" ], "css/css-layout-api/layout-child-inlines.https.html": [ - "048d886c9388151a792bdc12fb8098aa53249cfd", + "fd8144258a9c4ce17e2fb0fc7439060341ad93e7", "reftest" ], - "css/css-layout-api/layout-child-ref.html": [ - "1688098230f9fb825bc73134dff15dcf5ff9782d", - "support" - ], "css/css-layout-api/layout-child-text.https.html": [ - "567ff67317cae9906e6d159dc232c41464a4e7c6", + "82a8fada6d99e40410ab415e2b34af219dac94c0", "reftest" ], "css/css-layout-api/perform-child-layout-available-inline-size-htb-htb.https.html": [ - "7db4f5c2bebe031f0689be2569ba4ca266535052", + "5671810501fc3095f8c72b94a1b4ef03711683c3", "reftest" ], "css/css-layout-api/perform-child-layout-available-inline-size-htb-vrl.https.html": [ - "f22cc9627b7b2ad797cc722f3d369355ffce4f60", + "a7c8ead348cc60e4a75b9f059411a0e5da02f469", "reftest" ], "css/css-layout-api/perform-child-layout-available-inline-size-vrl-htb.https.html": [ - "0e34d5b8b86aa6551e6e6a31eb086bd84b61c636", + "4e983d5db151d48f39a018394f2d23bbecbed347", "reftest" ], "css/css-layout-api/perform-child-layout-available-inline-size-vrl-vrl.https.html": [ - "d619b57c395710bc2e133e05774c9a06bfd19749", + "52edc3ff48579820b9511de7930aa5f72a7b3c59", "reftest" ], "css/css-layout-api/perform-child-layout-fixed-block-size-vrl.https.html": [ - "907b9b1255516caab731555686e5c6b5517eb3f9", + "3fa3ddc4c728eaa1e120c9aa7845dd60881c6348", "reftest" ], "css/css-layout-api/perform-child-layout-fixed-block-size.https.html": [ - "3560b1f8249f945e1453e3e8e53745ef1941405f", + "67ffdaf070d916be1867105239bc477ac2c553ea", "reftest" ], "css/css-layout-api/perform-child-layout-fixed-inline-size-vrl.https.html": [ - "dfc48415ddbfecad7b382c4efe290b1b8da4ebac", + "f341a69a76cfd564117f57d67e4740d73592fbf8", "reftest" ], "css/css-layout-api/perform-child-layout-fixed-inline-size.https.html": [ - "bae125f32f28d0cfa7db449cfb10437cb4df12a3", + "3f1a6187f48a669d5032f9b161926b588a7ed968", "reftest" ], "css/css-layout-api/position-fragment-htb-ltr.https.html": [ @@ -511095,6 +517498,14 @@ "361b3c82c37c0068d23ae23e96d8e9185d3765b0", "reftest" ], + "css/css-layout-api/support/constraints-fixed-block-size-quirky-body-iframe.html": [ + "874a80d6bc5e5cfa8f8fe6c224e7e3c999d81d1e", + "support" + ], + "css/css-layout-api/support/constraints-fixed-block-size.js": [ + "9e15bc74f332c532b149f43465851d79d9e9c850", + "support" + ], "css/css-layout-api/support/constraints-fixed-inline-size.js": [ "ed0224a380c50a7e83d23a95be5a4348ce5bf706", "support" @@ -514292,7 +520703,7 @@ "testharness" ], "css/css-properties-values-api/registered-property-cssom.html": [ - "0fecf81c4089cb67107a9339ee52cd2c44cde60b", + "01035477e322cd4465fd53619592cc2afe11e203", "testharness" ], "css/css-properties-values-api/registered-property-initial.html": [ @@ -514379,6 +520790,14 @@ "f11765ff416808470d52dde2500106c294243469", "reftest" ], + "css/css-pseudo/placeholder-input-number-notref.html": [ + "c005e33b7e50074d19c0afd7d9790a38b29ef52e", + "support" + ], + "css/css-pseudo/placeholder-input-number.html": [ + "90f5c1a64e8171cfce64820b30ad7feafd6e5b06", + "reftest" + ], "css/css-regions/OWNERS": [ "a10a15c87ddef84355e4bbc8b8966cf0738e9d69", "support" @@ -517347,6 +523766,10 @@ "a7cbad00762e590050f118a84ef5d6a6fbbb3db3", "reftest" ], + "css/css-shapes/shape-outside/shape-image/shape-image-027.html": [ + "14d6e34ac39967dcf29b3140c5745458f26ed59d", + "reftest" + ], "css/css-shapes/shape-outside/shape-image/support/animated.gif": [ "c5252926d8dbf82c06cdb615fda708ca7728f0bb", "support" @@ -529056,7 +535479,7 @@ "support" ], "css/css-transitions/support/properties.js": [ - "c789935bb1a3077f539d20363e6dbeeda1d8cc6e", + "a9958d79bf07ddc168a9face2a9ced0f7bf3ce7a", "support" ], "css/css-transitions/support/ruler-h-50%.png": [ @@ -531804,11 +538227,11 @@ "reftest" ], "css/css-ui/outline-017.html": [ - "ea35906d51fbff221644d993c0f2ca3ca3fbdd71", + "ac0b5e2868e9c937cf1e9b603198108a63105e67", "testharness" ], "css/css-ui/outline-018.html": [ - "3135c237dffc1408758b1c8dc6721921f9fb0279", + "6f966db0723027aa857bce91fd3dfe1939c09732", "testharness" ], "css/css-ui/outline-019.html": [ @@ -544331,6 +550754,10 @@ "0e795989a9acaa0d153c31a0a965f6aa7600e024", "support" ], + "css/support/grid.css": [ + "6bb300b8baebf700481ea162fb7b41913fcca29c", + "support" + ], "css/support/import-green.css": [ "db4f420efdb292d6520be1a3bf052ed3f6f9e7e3", "support" @@ -545807,8 +552234,20 @@ "360f5b95b4eef2bf80101f172557f2fe65f57ca7", "reftest" ], + "css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001-ref.html": [ + "ff91f01a50b38d04a7eb2e90c0bdc8783d8119a3", + "support" + ], + "css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001a.html": [ + "5e3d3c92160892f27ad68f404df1b4268ade951b", + "reftest" + ], + "css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001b.html": [ + "eb0fef0df552a64733d7e46a1b8752d6825f1f8b", + "reftest" + ], "css/vendor-imports/mozilla/mozilla-central-reftests/contain/reftest.list": [ - "3e3a27b01ddb31c64f0e223a990cb3818aea6b80", + "361cc42bb96b840d65cdda9593a543388173c4a8", "support" ], "css/vendor-imports/mozilla/mozilla-central-reftests/counter-styles-3/dependent-builtin-ref.html": [ @@ -549916,7 +556355,7 @@ "support" ], "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/reftest.list": [ - "dd45c0949b1301d526a2ea5b66684e1c7a8b812c", + "dcb7840f1dd2ccd57087826c2e11b960589ff729", "support" ], "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-border-box-001-ref.html": [ @@ -550079,18 +556518,6 @@ "61d2d2a07e2dcbd24a15b733f7c9d7dd3735ebd1", "reftest" ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-039-ref.html": [ - "80ba877ecdbb12e5f000dee707c5af2df4629a9b", - "support" - ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-039.html": [ - "0dad5434390d2500568fab4ca82d98147995f2a4", - "reftest" - ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-040.html": [ - "7eaa3c8183209024684ff9a15f6b332802d91cb6", - "reftest" - ], "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-041-ref.html": [ "dcdc6fdf1ff9c749b6ed0dabc9029e641336832b", "support" @@ -550115,18 +556542,6 @@ "c669e12f7d26e25364eab72272e5964bb989cad3", "reftest" ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-045-ref.html": [ - "538d22bff3687524f756303205ad18dac9e182cf", - "support" - ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-045.html": [ - "8458a75aec990428264f039927377d683e4bfef9", - "reftest" - ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-046.html": [ - "bfb735e59e22b55f8e3c42827ca8bcbe7a612774", - "reftest" - ], "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-047-ref.html": [ "4a138f3175f7d46a2a38643e9803ede5408db9cf", "support" @@ -550415,22 +556830,6 @@ "628ef0b6c08230db7fca6639be71c63c0001156f", "reftest" ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-018-ref.html": [ - "e32f844e70a6f1b7c5c25fa691ba77321b557213", - "support" - ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-018.html": [ - "1d24d1acde6249154c8aecccf51c3f3d5bfc3f36", - "reftest" - ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-019-ref.html": [ - "7c0b699db61f02c5f197133c66439f699a80fd70", - "support" - ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-019.html": [ - "8ad1c65a27f12deb7b75865eb2b89905a4bbd4f0", - "reftest" - ], "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-020-ref.html": [ "8e109e72edb9cb0d3c97677db8a98462da83054f", "support" @@ -550671,46 +557070,6 @@ "9393c2e2250dfc1bf3ffdd68f2c352890d1e0ee8", "reftest" ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-026-ref.html": [ - "322ec7ee1fb932cb6f1908c376be2915d6e50459", - "support" - ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-026.html": [ - "9fea24b92061f9f679b9565d9040e4b29a18b4c3", - "reftest" - ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-027-ref.html": [ - "e91e35a1af0a2fa21e31f8ea3fa903f6d862ad13", - "support" - ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-027.html": [ - "b27883660453186155c9b761402ae4c038f2394c", - "reftest" - ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-028.html": [ - "6753ffe3a09c2a71fc67efcd1041ed90de12e87c", - "reftest" - ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-029.html": [ - "de39a15da093018531838cac20c59494cb6050b2", - "reftest" - ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-030-ref.html": [ - "05d0d53f6d038702733e4acd9562e35b2b992881", - "support" - ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-030.html": [ - "0f653c07806f0064d1583a7ddaeb171734188062", - "reftest" - ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-031-ref.html": [ - "7bbccdb15fdf67a67bbc243c342c668fbef23af8", - "support" - ], - "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-031.html": [ - "217e140bdd429d6889102e43253e6fb64dca4705", - "reftest" - ], "css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-032-ref.html": [ "890dd0754f2c985719c75200dd9ef70e8c1abe14", "support" @@ -550724,7 +557083,7 @@ "support" ], "css/vendor-imports/mozilla/mozilla-central-reftests/sync-tests-filter": [ - "2c4512ec008c997d1254b5822ade227c057b7e24", + "3055eafd3bf887f11c0c386419397910ad438d23", "support" ], "css/vendor-imports/mozilla/mozilla-central-reftests/sync-tests.sh": [ @@ -553764,7 +560123,7 @@ "support" ], "docs/_writing-tests/testdriver.md": [ - "2ffb3871fb13e6acd3171205bf80517dca06bcfe", + "92538a06939f447ae351409886833494f42f36ec", "support" ], "docs/_writing-tests/testharness-api.md": [ @@ -554104,7 +560463,7 @@ "testharness" ], "dom/interfaces.html": [ - "3308c9f3341c12ce99217309eba608e50cca669d", + "5053c2d407ac6261313df3f9d9699f08e9f89d4d", "testharness" ], "dom/lists/DOMTokenList-Iterable.html": [ @@ -556180,7 +562539,7 @@ "testharness" ], "encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html": [ - "aef28a54f483ec66edbd9b0ea500d25f3966c4cb", + "bf13e044c17b8789f91a276db5f5d4c999b580da", "testharness" ], "encoding/legacy-mb-japanese/euc-jp/eucjp-decode-errors.html": [ @@ -556188,11 +562547,11 @@ "testharness" ], "encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html": [ - "8c76fc5373dbd2c62c1f15b97889cb43a4c2a6ef", + "8a30b25890d5a12aac42456f689fd875deda2c5b", "testharness" ], "encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html": [ - "1d5e6367dd725c7d8863503e66b9750f469ab3ee", + "525a6ebf58e88289d0afffcfca2ef4124f4ead3c", "testharness" ], "encoding/legacy-mb-japanese/euc-jp/eucjp-decoder.js": [ @@ -556200,7 +562559,7 @@ "support" ], "encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html": [ - "42ac7feefc19dc6ef09ff292bc8584dd376802a2", + "3c7c5a00b11e1ad9b5a02ece0aa047fcfe834359", "testharness" ], "encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html.headers": [ @@ -556208,7 +562567,7 @@ "support" ], "encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html": [ - "64fcbe6783d68372c9a03a1e732ad7acbfff925f", + "bcfbb57961356d1e31750ac359e9d3f7c0a88f53", "testharness" ], "encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html.headers": [ @@ -556216,7 +562575,7 @@ "support" ], "encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html": [ - "e7897095737650b30287cf4e618f5502d8bf86e2", + "23d5f4f9d39d7fa09ff318cabb5ec40bffdd052c", "testharness" ], "encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html.headers": [ @@ -556224,7 +562583,7 @@ "support" ], "encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc.html": [ - "f4245d39d4435d9c00b981d220677ff0e3579106", + "8f2cb89122e9c0f0e3ab3bf77d3b5bff37aa6134", "testharness" ], "encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc.html.headers": [ @@ -556232,7 +562591,7 @@ "support" ], "encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html": [ - "2b4e86fdf26006eefd3ac5093bda1d02258b0121", + "f162cd29b4d351891bb0bdb5b4146960d457d8b2", "testharness" ], "encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html.headers": [ @@ -556240,7 +562599,7 @@ "support" ], "encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html": [ - "18240913dc69be3419e51987315842b3168253c8", + "392b0f0499cec695478b661ca1507d457c30fce6", "testharness" ], "encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html.headers": [ @@ -556248,7 +562607,7 @@ "support" ], "encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html": [ - "3ff8533d6e7c59ea4a2fe98255e140b7b583ef2c", + "033c5ce0f5b992f81ccf4838da120ea097268548", "testharness" ], "encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html.headers": [ @@ -556256,7 +562615,7 @@ "support" ], "encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html": [ - "eeb61c360f85949479c970652c81532d27e38892", + "fc46574bdb29fdd33a850b5cfc15640e02587185", "testharness" ], "encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html.headers": [ @@ -556264,7 +562623,7 @@ "support" ], "encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc.html": [ - "6c1e0582aae5a1dc83ea286feebebe69c6e218e8", + "d29e9e9db1c7f578e440992655930d4cd5c8d7be", "testharness" ], "encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc.html.headers": [ @@ -556272,7 +562631,7 @@ "support" ], "encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html": [ - "d0e0236048f578b35a5956295d2a295660a2c297", + "9d5acd1a4f5e064e2202ddbad2a17ef4ab488c4f", "testharness" ], "encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html.headers": [ @@ -556324,7 +562683,7 @@ "support" ], "encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp.html": [ - "25764a359d3d95c75a7e3b2008e912c80ef69194", + "da92868efb96b1748a7e4f285020f0c804e4c400", "testharness" ], "encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-errors.html": [ @@ -556332,7 +562691,7 @@ "testharness" ], "encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode.html": [ - "3982165d2f78d500d87fa9a4590da8cdc3c0ae9c", + "2cb6b373f63113b5624f71cb216ccf8bed37e7b5", "testharness" ], "encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decoder.js": [ @@ -556340,7 +562699,7 @@ "support" ], "encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html": [ - "d3751457c76d5dacd10a7dad1f22ceb7837c68a2", + "621b1de6e75367b61d375e7dbc7bfe8c39e710bd", "testharness" ], "encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html.headers": [ @@ -556348,7 +562707,7 @@ "support" ], "encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html": [ - "d2cbf81979d2755352b9f007c40a6340b60e74d3", + "a22811fdbd126d98b234c2618919f65b426bfeec", "testharness" ], "encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html.headers": [ @@ -556356,7 +562715,7 @@ "support" ], "encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html": [ - "b6b1deba45ea2621747d292443758adfb075e27e", + "d938cb4fbbed96bfbb220f11877ca27ee03871b4", "testharness" ], "encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html.headers": [ @@ -556364,7 +562723,7 @@ "support" ], "encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc.html": [ - "4cb2e185dedbd21c3632b7a31e883580e71b366f", + "f9ad40795ffb35ee57725f047470f9f8b989af09", "testharness" ], "encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc.html.headers": [ @@ -556376,7 +562735,7 @@ "testharness" ], "encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html": [ - "89dd8a641b8eb05e47cc2d23dd452cdfc9f9dfc9", + "507fc186dc5c64e1e3c4293a88a1754ef90b9d00", "testharness" ], "encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html.headers": [ @@ -556384,7 +562743,7 @@ "support" ], "encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html": [ - "cdc3fe8fc70539fc6415e2d3b43fda6f87d09262", + "c50d0ffb66e826113397c0af8ef20b7e9794a179", "testharness" ], "encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html.headers": [ @@ -556392,7 +562751,7 @@ "support" ], "encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html": [ - "19c4224bda8f399f090f3ea4d77c10a0f47513e8", + "85fe1bf7660307d50b86f4387c5a5046ca7aa299", "testharness" ], "encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html.headers": [ @@ -556400,7 +562759,7 @@ "support" ], "encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc.html": [ - "a99791f74775a996f49e4b60a369d5b81d289c0d", + "e6c2f034f4ab0e02fa5d04a5f9c5228508fa4403", "testharness" ], "encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc.html.headers": [ @@ -556408,7 +562767,7 @@ "support" ], "encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html": [ - "d823114d271354e58578547d0de3b570d9705282", + "0ef7ca4a1a35b65def6b7bbe79f34e5f6144be88", "testharness" ], "encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html.headers": [ @@ -556452,39 +562811,39 @@ "support" ], "encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis.html": [ - "d4d171de17f81f98cd240ff08257fcb33e1d2b54", + "bd6d995cc4f6d72956ce7119cb288946500f2c15", "testharness" ], "encoding/legacy-mb-japanese/shift_jis/sjis-decode-errors.html": [ - "f2c37c888dff50feebd5797adfe265e82ae2afde", + "ddc4b88916e3f3dc5f919789945b11e434dd76b2", "testharness" ], "encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932.html": [ - "c866259244a4460f41869311e9ee194fb57045ca", + "f3de45d5173c529d05bb906e8191b30fe5dac66c", "testharness" ], "encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji.html": [ - "b62ce57f3f53cc455507c64266f6b9e4e6ad25f8", + "30b69d7eec2d048b6a1acd440ca7515ee76327b5", "testharness" ], "encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis.html": [ - "ce645b76538fb62b63e9a9cd71bdfc57293f71f9", + "48f45d5a25657754e42622e9f79d02e739d77258", "testharness" ], "encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis.html": [ - "bdc93e4f8aa501cb1d144278cb30df9c8e1ee76b", + "63c2f9498942d7b13bc26ec421abd5e72c788ff2", "testharness" ], "encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j.html": [ - "14db20c9e48a3ba187d86225af2173f509ffc69d", + "c9c5b8250cccc94cbc749ddacd18b7ffc6473442", "testharness" ], "encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis.html": [ - "96d67ef3a09f579192b60469b1c6f0fcea709e83", + "03614895d1a2522a457144f087e351a424e92dcf", "testharness" ], "encoding/legacy-mb-japanese/shift_jis/sjis-decode.html": [ - "aa249b101da22936c53da5a3ae535bdac2bcd8d9", + "abdbda4bc542db01ddbf7d4c9f66871d0058e649", "testharness" ], "encoding/legacy-mb-japanese/shift_jis/sjis-decoder.js": [ @@ -556492,7 +562851,7 @@ "support" ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html": [ - "22a6fef29cf831742bea680190d79a7ad9f7a344", + "f94b04e6ab996b9e5b0ebdd3f50bff13a04bd127", "testharness" ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html.headers": [ @@ -556500,7 +562859,7 @@ "support" ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html": [ - "034b3f10660076f877d7e78699cd5103d8c955f7", + "6c166a30f84f442a3aeb803aa9861c406718baee", "testharness" ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html.headers": [ @@ -556508,7 +562867,7 @@ "support" ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html": [ - "abe031cce4bec1c40f37fcff428b874ef3ef1f76", + "525bdeabe49b13f9b5bb5e2156ad66c8f3b230aa", "testharness" ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html.headers": [ @@ -556516,7 +562875,7 @@ "support" ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html": [ - "dcba1f4b6755e55ed5dbfa3d2cff642324aa6c2a", + "51f0add5cd60a3c5a1fa0180bd179706c4854acd", "testharness" ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html.headers": [ @@ -556524,7 +562883,7 @@ "support" ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html": [ - "81a3377b7bcef81ea1472c4751e8e8d4724a603b", + "353830975d0543c9b046fe464d5807f74024837b", "testharness" ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html.headers": [ @@ -556532,7 +562891,7 @@ "support" ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html": [ - "e1e71336c2799dad56fef0e2d84f626ed7f86e5e", + "be457f064d92e48d7bda8a702f6cbb4a2da44a3b", "testharness" ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html.headers": [ @@ -556540,7 +562899,7 @@ "support" ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html": [ - "edf365f82441e1e50f128be66dc11ccb71402e16", + "3d5d0c96a849e1703eb26e639a6aa3fe295550ae", "testharness" ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html.headers": [ @@ -556548,7 +562907,7 @@ "support" ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html": [ - "2d537643263ef5731f5cfe91a9023173c9402b23", + "cef1e1c91b0ef8cab130956fcb11edf73c277871", "testharness" ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html.headers": [ @@ -556556,7 +562915,7 @@ "support" ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html": [ - "9879e7651eae4894739cdf47d27e557cd986ecda", + "2a7f888b37dfc07cd8b8ea193a2007beaa5c6082", "testharness" ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html.headers": [ @@ -556564,7 +562923,7 @@ "support" ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html": [ - "f435452102431058c9337d5bd1f7a133f9d0bb97", + "e156f06bc96da020bcf638d3687bdfad07f0c813", "testharness" ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html.headers": [ @@ -556572,7 +562931,7 @@ "support" ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html": [ - "cfd117bfde470ed113357ebcb9d47a8f106c0ff0", + "3b4a6dac670f2524430c9a1536d47d2ae99ec84d", "testharness" ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html.headers": [ @@ -556580,7 +562939,7 @@ "support" ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html": [ - "94990204891a673ed591a05bd4423b8d22a907ac", + "191b78f2db1a27fa19970985a330e77ed5e48578", "testharness" ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html.headers": [ @@ -556588,7 +562947,7 @@ "support" ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html": [ - "e3ef37abf1fb9d6a39f391c4e5a4b376cad808c8", + "45a31e542d8ce2839199b9d5598c7661bc3c1086", "testharness" ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html.headers": [ @@ -556596,7 +562955,7 @@ "support" ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html": [ - "a1cfb188c286c2f34d95fe2ca180dd577da1d7b5", + "229147d988fe811900fd70479e9fe24212722785", "testharness" ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html.headers": [ @@ -556604,7 +562963,7 @@ "support" ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html": [ - "8aec6118dd060483017b49e802cfe3ad30cef367", + "6d44e049b4acc41e5522c0d66e8823079f0c456c", "testharness" ], "encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html.headers": [ @@ -556688,11 +563047,11 @@ "support" ], "encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html": [ - "9e729590a574c8e0a9f6e07d378197c2bafde0a2", + "a2d3709f65d703d9518ec577823fbd9919eea5fd", "testharness" ], "encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html": [ - "d4a4a944fc1cf03a0780fcf4309e4061324c8098", + "612b024e2237c8a36506a1104665e7848d7a6ebd", "testharness" ], "encoding/legacy-mb-korean/euc-kr/euckr-decode-errors.html": [ @@ -556700,35 +563059,35 @@ "testharness" ], "encoding/legacy-mb-korean/euc-kr/euckr-decode-iso-ir-149.html": [ - "bf9d9edd88da4ddff223800fa6ae68852b73cb99", + "3268a3d47cb3dedc7a351f8801f56dd498cb8947", "testharness" ], "encoding/legacy-mb-korean/euc-kr/euckr-decode-korean.html": [ - "6ae51030974e7e607c6a3fea34eafbf10de62605", + "b90a6e57dc93ddc00b6fdc83c90c044c10d55e07", "testharness" ], "encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1987.html": [ - "c8381944a21d5b44dc9a984068987a4030dd5319", + "a765380a8ac54c9e61e2d7b349faa14d0e99bd03", "testharness" ], "encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1989.html": [ - "6eb5b0d291030e565210ae8546f14e641b8a187b", + "a5b6c6964b6a8db2b064b23c3b6bfce08ee89189", "testharness" ], "encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc5601.html": [ - "430d70a811f3469fdbf90159b6a78d2b2fdd93da", + "50f5d0981e0a76ee172e71bd6631bfa1c70a9f42", "testharness" ], "encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc_5601.html": [ - "f9ea25a81d5268a20b7a9673496142fba7f14189", + "70d7606a3c067b5c3d1c6f718ffd797427b5e687", "testharness" ], "encoding/legacy-mb-korean/euc-kr/euckr-decode-windows-949.html": [ - "8306399cd88ee735be247e8a3f102a03ff905ac6", + "fe47649bcc1adaa7ab5cdbc023f0d2f302ae58cd", "testharness" ], "encoding/legacy-mb-korean/euc-kr/euckr-decode.html": [ - "294baa8a7364504443d9ddbabeadfd8fda0e19f3", + "5d59a4333e4f15676035025cb8ead4b9f2484181", "testharness" ], "encoding/legacy-mb-korean/euc-kr/euckr-decoder.js": [ @@ -556736,7 +563095,7 @@ "support" ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html": [ - "5530823dd5556d646b4a0f9090cf402e847c4827", + "f0eabf16eb6d56d4c6a98df6cacf5c69b6f33a7e", "testharness" ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html.headers": [ @@ -556744,7 +563103,7 @@ "support" ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html": [ - "569abb7b5211b3c404a8c5b73781fa576c471770", + "ec39f68af9894ab6b633d57ac58060ae1ee49d77", "testharness" ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html.headers": [ @@ -556752,19 +563111,15 @@ "support" ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html": [ - "f9710ba55e4f6781f14f7b292c767cf87fc40090", + "369a386e8983d3c15e3cd7ac6ff8ba10b28cfa5e", "testharness" ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html.headers": [ "c79f9150befa2f7ce67d17069da7fb66f7f22ca0", "support" ], - "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-hangul.html.headers": [ - "c79f9150befa2f7ce67d17069da7fb66f7f22ca0", - "support" - ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html": [ - "936dedf12d56abe3083061a68b6be806a8cb8503", + "9aba79ce67863933b57323f7f6df3f3ce09b492d", "testharness" ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html.headers": [ @@ -556772,7 +563127,7 @@ "support" ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html": [ - "5a480ddabd671ab24b9fbc6485ae1bb543787ddb", + "152db8284caf186d03bfca5396a72fe6a1715449", "testharness" ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html.headers": [ @@ -556780,7 +563135,7 @@ "support" ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html": [ - "3a161c00a862191e63b03672edd165a4b2488bf4", + "0dc06f5158ee41f26e801c2a584bd207118d8fbc", "testharness" ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html.headers": [ @@ -556788,7 +563143,7 @@ "support" ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html": [ - "196a6bf5cb61ae5743f676ca18c59b5c559926ec", + "3cb58cf45311173bd63449dd264ebc8e77e7461f", "testharness" ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html.headers": [ @@ -556796,7 +563151,7 @@ "support" ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html": [ - "b7d941acafd598b06b2898108815f5a3c849b7e2", + "4fbe2e412e07a5cc24876287f0ab57dbf83b9aa6", "testharness" ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html.headers": [ @@ -556804,7 +563159,7 @@ "support" ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html": [ - "c67014bd3da49c1d87c830af119c5b3c3e8deb65", + "8ee3ad26f51776368b5f86f4302b654523d8c5bc", "testharness" ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html.headers": [ @@ -556812,7 +563167,7 @@ "support" ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html": [ - "b1fb4fcb8ea4ef38ef88df5229e3d315790a8110", + "29531cacec50549c48d974b7cbbb1b70da4be633", "testharness" ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html.headers": [ @@ -556820,7 +563175,7 @@ "support" ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html": [ - "7ce4b142ff073509b76b4f473dd1bff1211ce8c8", + "9b6d8d4ad8412aef0c1ee1300ff14f8730865200", "testharness" ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html.headers": [ @@ -556828,7 +563183,7 @@ "support" ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html": [ - "934c25bf57b7a57390d38cc2f21230b16e142241", + "e3d95055e6f362332fd1d4513f470695c25e530a", "testharness" ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html.headers": [ @@ -556836,7 +563191,7 @@ "support" ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html": [ - "e855d30690f5aed7043442f233cbb77fc209bca0", + "01d7933e6995c9afbeba289b0e2219d636b8cc7f", "testharness" ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html.headers": [ @@ -556844,7 +563199,7 @@ "support" ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html": [ - "f4caa1544f2291f394f58a4835f1fb5962baac14", + "450bf6c9b7250a7d42c8708169836c8aed2aedd4", "testharness" ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html.headers": [ @@ -556852,7 +563207,7 @@ "support" ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html": [ - "20b152603cbca961959653c8c042ea004f58334f", + "447babc2cfcbc5fc54662313b173d143e975b46c", "testharness" ], "encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html.headers": [ @@ -556956,15 +563311,15 @@ "support" ], "encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html": [ - "1e41252d834091a1f2069eb83ceb04c1ae502aed", + "91e0b0cb5f782cb1bd195660d17c66d78a137cb4", "testharness" ], "encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html": [ - "61bff3fa165736f77d1f09b0d3087acaa66f2fa9", + "ae14165428b3673d2cd527cff137259957ea7086", "testharness" ], "encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html": [ - "bb60208f1d75de351e057310415db81869f39be6", + "4002f3e151202fcbb53c3a6f29e6a36551e61a45", "testharness" ], "encoding/legacy-mb-tchinese/big5/big5-decode-errors.html": [ @@ -556972,15 +563327,15 @@ "testharness" ], "encoding/legacy-mb-tchinese/big5/big5-decode-extra.html": [ - "2f8917690621f23c8844bf7a1f93713e878f6841", + "a4583386ccad9d8d7b660c0d244d0168376755e9", "testharness" ], "encoding/legacy-mb-tchinese/big5/big5-decode-x-x-big5.html": [ - "3e0cba9f9ca8692767e535a5f4328edec151d3fb", + "3d15d5795e6c21a33ac8f98a25c5b6f8b871d2f7", "testharness" ], "encoding/legacy-mb-tchinese/big5/big5-decode.html": [ - "a1d709dad31f27e9c3a5c958a3f666bf79c6fe9f", + "2837ce392411f8b9fbc7c4a4fbade9f4f0054806", "testharness" ], "encoding/legacy-mb-tchinese/big5/big5-decoder.js": [ @@ -556996,7 +563351,7 @@ "support" ], "encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html": [ - "e9ab06a4999556053f53e5c9ee951d47411b0d2b", + "4a41623b8368b6c4c5fcc52dcc390a3eee9485e4", "testharness" ], "encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html.headers": [ @@ -557004,7 +563359,7 @@ "support" ], "encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html": [ - "136bc3abafdfe069b32ddfae85056bbaffd0d7ca", + "c514b499b57d3bcf662dd2b954f4fe5256a72d8a", "testharness" ], "encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html.headers": [ @@ -557012,7 +563367,7 @@ "support" ], "encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html": [ - "ed5c833f250f1713193b56371298c73b4b412d50", + "9c3eca4c97f67b7ff880416a0a225c185adb75c8", "testharness" ], "encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html.headers": [ @@ -557020,7 +563375,7 @@ "support" ], "encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html": [ - "7201211915cb8ae3ac0b7f5656c295f3c08b3089", + "af131ebf35d5750b332fd4e5c9399c03dc3d0a20", "testharness" ], "encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html.headers": [ @@ -557028,7 +563383,7 @@ "support" ], "encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html": [ - "3eb05f9627d84506e9d730b9e26021403963d0f9", + "fe3afde373c382f9146b5fa0a78a89fccb6c0958", "testharness" ], "encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html.headers": [ @@ -557036,7 +563391,7 @@ "support" ], "encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html": [ - "d4e49734b115c0bf3f0ab2ddc7a3de4556866e9c", + "211d59bef871f43bb979550d69c91e70dae79272", "testharness" ], "encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html.headers": [ @@ -557044,7 +563399,7 @@ "support" ], "encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html": [ - "b24f67557b5e6ef966484b4c0b6b1c90a69b24ee", + "abbb5eb1a72e74e2b17806ce88bc53020b8b9047", "testharness" ], "encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html.headers": [ @@ -557052,7 +563407,7 @@ "support" ], "encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html": [ - "f4ce13cd0e392452ce160d0b688315ef039e2e56", + "a3f87cfd6a2b9b3f25ca57526c3e1a511f499c09", "testharness" ], "encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html.headers": [ @@ -557060,11 +563415,11 @@ "support" ], "encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html": [ - "4e83b4a9d2695780b0ad87ac8519f36b83778ee6", + "a99abd3f7f02c3b47ffe1138aa59946a7bf80af6", "testharness" ], "encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html": [ - "6014d5a50918d4d16389df0c7a07f71bd78babeb", + "460dc28c00c2d39d04f36c7f49951ed2337489b5", "testharness" ], "encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html.headers": [ @@ -557072,7 +563427,7 @@ "support" ], "encoding/legacy-mb-tchinese/big5/big5-encode-form.html": [ - "3d272e5b51ca3bcd8bb34807024df71807da3c05", + "44d2bb9c0707c78e0e8fd07d0a8dea7694972af4", "testharness" ], "encoding/legacy-mb-tchinese/big5/big5-encode-form.html.headers": [ @@ -557080,7 +563435,7 @@ "support" ], "encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html": [ - "90cbc57fb49501ff276c2198235f0d5c2d5561eb", + "cd684a384fa563ba8bad826bdb77878e71198590", "testharness" ], "encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html.headers": [ @@ -557088,7 +563443,7 @@ "support" ], "encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html": [ - "2ec76262a6bc1a789999fd51b394a66a878bc6bf", + "cfa27f2ec91d0f38416a12f9581eb09e3169f91b", "testharness" ], "encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html.headers": [ @@ -557096,7 +563451,7 @@ "support" ], "encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html": [ - "ba76ce0d3d04f97074c712ce6b11a7d6b523fb33", + "f55a2bfb2bc00720126b19e7aace7869b2e0e5c5", "testharness" ], "encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html.headers": [ @@ -557104,7 +563459,7 @@ "support" ], "encoding/legacy-mb-tchinese/big5/big5-encode-href.html": [ - "6df38fd56a6eee0b2a8fbe84dc62258fef405ea9", + "7470f06a2c26f807162834dec74e848b7bd1a004", "testharness" ], "encoding/legacy-mb-tchinese/big5/big5-encode-href.html.headers": [ @@ -557179,14 +563534,30 @@ "10ebae214ee7307c8087206a318ce8b5765ed8e9", "testharness" ], + "encoding/resources/decode-common.js": [ + "36c584cd9a1d53ad082cb7333e9a58b4b98bc764", + "support" + ], "encoding/resources/decoding-helpers.js": [ "e8e58f30dff991e6aa6a20553081a1754bf02300", "support" ], + "encoding/resources/encode-form-common.js": [ + "41e0388191f050af6c52ee0269c994b843dca5ea", + "support" + ], + "encoding/resources/encode-href-common.js": [ + "c3caa03d8bbbe33d586f28b8ebbeecbe565bb919", + "support" + ], "encoding/resources/encodings.js": [ "66626403db30a2778878a187df339b0bfd767495", "support" ], + "encoding/resources/ranges.js": [ + "2e09b999f7839eee5286dff052791dfd6a92cbef", + "support" + ], "encoding/resources/single-byte-raw.py": [ "a5e5464b00944713d7e90d3e5f9313ef2924b375", "support" @@ -557228,7 +563599,7 @@ "support" ], "encoding/single-byte-decoder.html": [ - "2f64550e5e845fa2de949577f0756a021bede269", + "60eb39cc7d5115ee50611e81bbd332228ef4e03b", "testharness" ], "encoding/textdecoder-byte-order-marks.html": [ @@ -570307,6 +576678,10 @@ "34aa7e5a7d4daba412fa700859913cf9def77565", "testharness" ], + "html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html": [ + "582924c0e77e2519c4bac3f5bdc00f55a35f715b", + "testharness" + ], "html/infrastructure/urls/resolving-urls/query-encoding/resources/blank.py": [ "e55787bc9f46f01aece15afed2ce0686d143dc03", "support" @@ -570324,7 +576699,7 @@ "support" ], "html/infrastructure/urls/resolving-urls/query-encoding/resources/resolve-url.js": [ - "af372062048142740f83dd95feded927cf3a225b", + "d9e268c55bb478e5f1bc2fd88c5cb415b462179f", "support" ], "html/infrastructure/urls/resolving-urls/query-encoding/resources/resource.py": [ @@ -570987,6 +577362,10 @@ "610932708cb18b8022ca64b8c9f3f59d8cf1ae56", "testharness" ], + "html/rendering/non-replaced-elements/tables/hidden-attr.html": [ + "dd0173850f4593c883b24f28a750462bf0bae0e5", + "testharness" + ], "html/rendering/non-replaced-elements/tables/table-border-1-ref.html": [ "1f3aa494ba434211a8cdcd1be289e702856fa05a", "support" @@ -573443,10 +579822,6 @@ "a1657fc9e655ad0a30ced47a1412b6c34ba964b9", "support" ], - "html/semantics/embedded-content/resources/test_page.html": [ - "7865ad89746586ea71fa92621192417de57223ca", - "support" - ], "html/semantics/embedded-content/svg/.gitkeep": [ "da39a3ee5e6b4b0d3255bfef95601890afd80709", "support" @@ -574171,10 +580546,6 @@ "da39a3ee5e6b4b0d3255bfef95601890afd80709", "support" ], - "html/semantics/embedded-content/the-embed-element/detach-frame-on-src-change.html": [ - "55e68ad2312d4079ce4be558ef361f6f56977d58", - "testharness" - ], "html/semantics/embedded-content/the-embed-element/document-getters-return-null-for-cross-origin.html": [ "3d75c8c998b3f98f2023311826dcd1d4c21d3361", "testharness" @@ -574312,15 +580683,15 @@ "testharness" ], "html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-1.html": [ - "4010899a36a52436b56867762390e9b27768f706", + "5feddab3d35d2b430f8cc490539a44b45d3f9d2e", "testharness" ], "html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-2.html": [ - "9d640f248b376f6bc6a95d09b948e49a3f655954", + "b8713028abdcf1e30cd6d8b2bcbf4ce2d75aade9", "testharness" ], "html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-3.html": [ - "96453a352d2bed1d208e203594bcb24ab8ee37cd", + "fbd0fec2032b0d8acb8d3ce7f15994a78c52437e", "testharness" ], "html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation_by_user_activation-manual.html": [ @@ -574687,6 +581058,10 @@ "508194946db6e8f892208a8b413565a4d76e6687", "support" ], + "html/semantics/embedded-content/the-iframe-element/support/load-into-the-iframe.html": [ + "f079e597fe12b27f9071e124b13d4e369abbdce0", + "support" + ], "html/semantics/embedded-content/the-iframe-element/support/navigation-changed-iframe.html": [ "9dd191a0b5d9c15972363e260228956f7f487c7d", "support" @@ -574911,10 +581286,6 @@ "da39a3ee5e6b4b0d3255bfef95601890afd80709", "support" ], - "html/semantics/embedded-content/the-object-element/detach-frame-on-data-change.html": [ - "c534d05044768f72015e9cea7dd45b582ecf0368", - "testharness" - ], "html/semantics/embedded-content/the-object-element/document-getters-return-null-for-cross-origin.html": [ "f9f22673579147c7591d5f71467d6655140702b9", "testharness" @@ -577560,11 +583931,11 @@ "testharness" ], "html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-nonce-classic.html": [ - "20a6c6de42fe72fe375ccd8c9c8763191afa78f9", + "d49f673f10045316bf897ded5d0cd24ab3933a5b", "testharness" ], "html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-nonce-module.html": [ - "93f2cc8f3e88e0cbf508acd64f9a28bdcaff25b0", + "2566b1d80cd2617c62667c300fe9568a640fe1a5", "testharness" ], "html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-of-promise-result.html": [ @@ -581487,6 +587858,18 @@ "28b559875ce9514702d181cb4cb5e0a207083e2d", "testharness" ], + "lifecycle/freeze.html": [ + "aca6ab2b23924ff891dc2abc26eb3067ad099e5b", + "testharness" + ], + "lifecycle/resources/foo.txt": [ + "b909d6288b51d2b2dfe06382f057a5892826949b", + "support" + ], + "lifecycle/resources/window.html": [ + "3c839ba3697d5ce8bcda99824af7dea7b37534c1", + "support" + ], "longtask-timing/OWNERS": [ "30a9c29ba53bac131c0cca801c01dddb4779824e", "support" @@ -582624,13 +589007,17 @@ "testharness" ], "mediacapture-fromelement/creation.html": [ - "18289cfde81c16db6d3e728623113be0bde3454f", + "7da9c5086e88c1cf97b492b1bedce6897602a5c8", "testharness" ], "mediacapture-fromelement/ended.html": [ "c816abe4302804f8e3ba65bad23443812111acb1", "testharness" ], + "mediacapture-fromelement/historical.html": [ + "9fa955b3f3a20222b140db3e706967ddb3979e25", + "testharness" + ], "mediacapture-fromelement/idlharness.html": [ "ceeb48e7982eb88561f4c1630cb0fcf15d9cf73c", "testharness" @@ -590948,11 +597335,19 @@ "support" ], "payment-handler/can-make-payment-event-constructor.https.html": [ - "f48b21e7376a7a45b7e121a4331362ecd46f8dcd", + "5eeaa854caf0fb1acdf97bc5ff2ccf7124666e19", + "testharness" + ], + "payment-handler/can-make-payment-event-constructor.https.serviceworker.html": [ + "c9cc7e69b6d7c3e9c3534f35e2d00641907eff4a", "testharness" ], + "payment-handler/can-make-payment-event-constructor.https.serviceworker.js": [ + "458ed84353bd49b297e1631520f543191b27fc29", + "support" + ], "payment-handler/can-make-payment-event-constructor.https.worker.js": [ - "4a77b5b3444c490b673b7c08862f1565b705f0e2", + "e5fd666fc5cf21a62db0b7fd95ba669fcfbdb7ff", "testharness" ], "payment-handler/can-make-payment-event.https.html": [ @@ -590975,6 +597370,22 @@ "372d636227a5be6ede37e7d67cf24d03030eccf5", "testharness" ], + "payment-handler/payment-request-event-constructor.https.html": [ + "b07b93ae26288b6c8a25ddf008c7d12176fa81ef", + "testharness" + ], + "payment-handler/payment-request-event-constructor.https.serviceworker.html": [ + "b93e463283262caff46dd629164d98a785d7b58b", + "testharness" + ], + "payment-handler/payment-request-event-constructor.https.serviceworker.js": [ + "40e4245cc754e24c6ba757b8ab6ed67f16c6d1e8", + "support" + ], + "payment-handler/payment-request-event-constructor.https.worker.js": [ + "6f034b0c41cbcd5c21992d8650b015a1a7844eeb", + "testharness" + ], "payment-handler/payment-request-event.https.html": [ "37e76b630197399daa3eb5ea49e8a4150c61c29c", "testharness" @@ -592219,6 +598630,22 @@ "f64f2ab5d0afa93e5adfa327e478936c0e295823", "support" ], + "priority-hints/OWNERS": [ + "bb8339b99aba30b127cd21f1396278ba55aec1c9", + "support" + ], + "priority-hints/img-attr-named-constructor.tentative.html": [ + "7c30cb250fb854916a8bf87a4fd5c049ee1dcf5b", + "testharness" + ], + "priority-hints/link-attr.tentative.html": [ + "39dd57841d9752f9220473c5de3a99d1c8ca18a1", + "testharness" + ], + "priority-hints/resources/stylesheet.css": [ + "bb230110dd1cf4647e020d7172bc375e972c7b41", + "support" + ], "proximity/OWNERS": [ "8de2a4a7f850b2d52ab3102b585fe38828b6d08d", "support" @@ -600427,6 +606854,10 @@ "ccf716aec242f3ec6d3754e4dd43456954d45d3c", "testharness" ], + "resource-timing/resource_timing_buffer_full_eventually.html": [ + "5c0a85e6e61a11fca1682b30b6b68f317f9c343e", + "testharness" + ], "resource-timing/resource_timing_buffer_full_when_populate_entries.html": [ "af0727706a4160a49aabe131b2f3a4bbca8268e0", "testharness" @@ -602312,7 +608743,7 @@ "testharness" ], "service-workers/service-worker/import-scripts-updated-flag.https.html": [ - "e902940bec870cf548c576b5fd06d2e71fd3f97a", + "16cfa33f95de96bc0a2bc8b1102127f0e4922bd6", "testharness" ], "service-workers/service-worker/indexeddb.https.html": [ @@ -603160,7 +609591,7 @@ "support" ], "service-workers/service-worker/resources/import-scripts-updated-flag-worker.js": [ - "b83d48b7ed268293b4788e36bcd7293b1b15e751", + "979fca5a705f9794b898e2b3c2c75e7133487ee4", "support" ], "service-workers/service-worker/resources/import-scripts-version.py": [ @@ -608699,12 +615130,8 @@ "eae596140c284a25bfe482676c2762729d00b7ee", "support" ], - "touch-events/create-touch-touchlist.html": [ - "4872b365fc9e704fc873b411dd0ab60a509531ab", - "testharness" - ], "touch-events/historical.html": [ - "0ccfb39ef6b094dadc6e6ac91de937b5180b2c84", + "2a748b6f1b66874fa613f3188125a04c95587976", "testharness" ], "touch-events/multi-touch-interactions-manual.html": [ @@ -609344,7 +615771,7 @@ "support" ], "url/README.md": [ - "17ffb158bda35ef8b55f8f7f5f084df2e0651bfc", + "37bbc0fb70e865c45ff369a434de1a4a0a2bbc3e", "support" ], "url/a-element-origin-xhtml.xhtml": [ @@ -610820,11 +617247,11 @@ "support" ], "web-animations/animation-model/animation-types/accumulation-per-property.html": [ - "b26f3961d1913de731906ff0eed9a8548df7bbb2", + "40be406294368fc2eccb9a4e525c1f2bb40a3683", "testharness" ], "web-animations/animation-model/animation-types/addition-per-property.html": [ - "c16ee3be3338bd5831ff3eab455cbf6943aa8d5b", + "0077ef18e19f57f2f6b1b312079a9c8d03bd1714", "testharness" ], "web-animations/animation-model/animation-types/discrete.html": [ @@ -610832,11 +617259,11 @@ "testharness" ], "web-animations/animation-model/animation-types/interpolation-per-property.html": [ - "2bcb2919b3034042d8a61d7af5de099a42386451", + "ab09cd8b77d05a1036f9976c3f0e92a6d9e183f3", "testharness" ], "web-animations/animation-model/animation-types/property-list.js": [ - "3d3b60b27f20c298ccb7a3abb628054817f2b079", + "9416f470f1ac1d320bb4d46461938e85946439e2", "support" ], "web-animations/animation-model/animation-types/property-types.js": [ @@ -611144,7 +617571,7 @@ "testharness" ], "web-nfc/nfc_push.https.html": [ - "ada53723b88641d04566f76f7af366f45ec783e9", + "6db968d910771fe1f4bcc1378eb45d0568c89071", "testharness" ], "web-nfc/nfc_push_ArrayBuffer-manual.https.html": [ @@ -613328,7 +619755,7 @@ "testharness" ], "webrtc/RTCPeerConnection-helper.js": [ - "d579dd68118d72c06455d8ccdbeb666f8f39c58a", + "40f17015da70851164337b2a8b1c020a95b95679", "support" ], "webrtc/RTCPeerConnection-iceConnectionState.html": [ @@ -613408,7 +619835,7 @@ "testharness" ], "webrtc/RTCPeerConnection-setRemoteDescription.html": [ - "dc96d96b1bd10da63021adbd2a48b2f4fb35d31f", + "cfcda3a660de85ce376e423aa122d8bca1e36413", "testharness" ], "webrtc/RTCPeerConnection-track-stats.https.html": [ @@ -618507,6 +624934,10 @@ "6bffa3be83d81e2faa93119e710e4fee93fb855e", "testharness" ], + "workers/modules/dedicated-worker-import-csp.html": [ + "e889866185addcccf72828df7e75cec387cffab5", + "testharness" + ], "workers/modules/dedicated-worker-import-failure.html": [ "63b2320a3ecf6133a3525574bf5a1d185d1f3aa7", "testharness" @@ -618520,7 +624951,7 @@ "testharness" ], "workers/modules/dedicated-worker-options-credentials.html": [ - "1d6a1629f81d26efcd05bf1c7d40011609238f4f", + "f182ac364e933ce744b18c0ca6e03ae975a883a3", "testharness" ], "workers/modules/dedicated-worker-options-credentials.html.headers": [ @@ -618543,6 +624974,10 @@ "9d64de6e63d110e6eff89a124e94cdec9d1802c2", "support" ], + "workers/modules/resources/dynamic-import-remote-origin-script-worker.sub.js": [ + "bb2d9e0c4c641451640987cecb2f28eff3f8b518", + "support" + ], "workers/modules/resources/dynamic-import-worker.js": [ "9db02105e0ee1300518ca70259d4a93671062219", "support" @@ -618563,6 +624998,10 @@ "fab13482dce29d3150f4eb06b1375c2610ab07f3", "support" ], + "workers/modules/resources/export-on-load-script.js.headers": [ + "90d51a5e46cc58404dd5ec1e9e4e10934a6c0707", + "support" + ], "workers/modules/resources/export-on-static-import-script.js": [ "fccc8ed2855b857d435d71382ed056f94be6e69d", "support" @@ -618583,6 +625022,10 @@ "7a6cdac13e91d27348e63310fc53443948a51aa6", "support" ], + "workers/modules/resources/new-worker-window.html": [ + "46ae6f9fe4975ca75c0d6534710238e6140aaa4a", + "support" + ], "workers/modules/resources/post-message-on-load-worker.js": [ "c67a79ade775435a67e5999d17e7cdda450c8e50", "support" @@ -618595,6 +625038,10 @@ "e8e1f0aedcc780aac742af01387dd151b10104bc", "support" ], + "workers/modules/resources/static-import-remote-origin-script-worker.sub.js": [ + "2f0657e4a67fb1e5e5c6c8bb81fcc084a846ad71", + "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 new file mode 100644 index 00000000000..d0b39d4e03b --- /dev/null +++ b/tests/wpt/metadata/css/css-animations/set-animation-play-state-to-paused-002.html.ini @@ -0,0 +1,2 @@ +[set-animation-play-state-to-paused-002.html] + expected: TIMEOUT diff --git a/tests/wpt/metadata/css/css-values/vh_not_refreshing_on_chrome.html.ini b/tests/wpt/metadata/css/css-values/vh_not_refreshing_on_chrome.html.ini new file mode 100644 index 00000000000..26435e28b09 --- /dev/null +++ b/tests/wpt/metadata/css/css-values/vh_not_refreshing_on_chrome.html.ini @@ -0,0 +1,2 @@ +[vh_not_refreshing_on_chrome.html] + expected: FAIL diff --git a/tests/wpt/metadata/encoding/single-byte-decoder.html.ini b/tests/wpt/metadata/encoding/single-byte-decoder.html.ini index 66ecfdda227..e72e5bd6ddf 100644 --- a/tests/wpt/metadata/encoding/single-byte-decoder.html.ini +++ b/tests/wpt/metadata/encoding/single-byte-decoder.html.ini @@ -1,3 +1,11 @@ [single-byte-decoder.html] type: testharness disabled: iframe thread issue 5247 + +[single-byte-decoder.html?document] + expected: CRASH + +[single-byte-decoder.html?XMLHttpRequest] + expected: CRASH + +[single-byte-decoder.html?TextDecoder] diff --git a/tests/wpt/metadata/html/rendering/non-replaced-elements/tables/hidden-attr.html.ini b/tests/wpt/metadata/html/rendering/non-replaced-elements/tables/hidden-attr.html.ini new file mode 100644 index 00000000000..97739eea68e --- /dev/null +++ b/tests/wpt/metadata/html/rendering/non-replaced-elements/tables/hidden-attr.html.ini @@ -0,0 +1,4 @@ +[hidden-attr.html] + [UA style for hidden attribute on table elements] + expected: FAIL + diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-embed-element/detach-frame-on-src-change.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-embed-element/detach-frame-on-src-change.html.ini deleted file mode 100644 index 4e889b4e220..00000000000 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-embed-element/detach-frame-on-src-change.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[detach-frame-on-src-change.html] - [\n <embed>'s browsing context is discarded on 'src' attribute change.\n ] - expected: FAIL - diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-1.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-1.html.ini index b17c9667a66..112399ba1de 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-1.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-1.html.ini @@ -3,3 +3,6 @@ [Check that sandboxed iframe can perform navigation on the top frame\n when allow-top-navigation is set] expected: FAIL + [Frames with `allow-top-navigation` should be able to navigate the top frame.] + expected: FAIL + diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-2.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-2.html.ini index f5edfc06313..438eaaa18bd 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-2.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-2.html.ini @@ -3,3 +3,6 @@ [Check that sandboxed iframe cannot perform navigation on the top\n frame when allow-top-navigation is not set] expected: FAIL + [Frames without `allow-top-navigation` should not be able to navigate the top frame.] + expected: FAIL + diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-3.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-3.html.ini index 2defbd51c27..fa79043795f 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-3.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-3.html.ini @@ -3,3 +3,6 @@ [Check that sandboxed iframe can perform navigation on the top frame\n when allow-top-navigation is set (even when\n allow-top-navigation-by-user-activation is set)] expected: FAIL + [Frames with `allow-top-navigation` should be able to navigate the top frame even when `allow-top-navigation-by-user-activation` is set.] + expected: FAIL + diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-object-element/detach-frame-on-data-change.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-object-element/detach-frame-on-data-change.html.ini deleted file mode 100644 index fb2d065fdd2..00000000000 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-object-element/detach-frame-on-data-change.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[detach-frame-on-data-change.html] - [\n <object>'s browsing context is discarded on 'data' attribute change.\n ] - expected: FAIL - diff --git a/tests/wpt/metadata/touch-events/create-touch-touchlist.html.ini b/tests/wpt/metadata/touch-events/create-touch-touchlist.html.ini deleted file mode 100644 index a1f18edc547..00000000000 --- a/tests/wpt/metadata/touch-events/create-touch-touchlist.html.ini +++ /dev/null @@ -1,8 +0,0 @@ -[create-touch-touchlist.html] - type: testharness - [document.createTouchList exists and correctly creates a TouchList from a single Touch] - expected: FAIL - - [document.createTouchList exists and correctly creates a TouchList from two Touch objects] - expected: FAIL - diff --git a/tests/wpt/metadata/touch-events/historical.html.ini b/tests/wpt/metadata/touch-events/historical.html.ini index 07822f74e3c..d3709baeef7 100644 --- a/tests/wpt/metadata/touch-events/historical.html.ini +++ b/tests/wpt/metadata/touch-events/historical.html.ini @@ -14,3 +14,9 @@ [Document::createTouch] expected: FAIL + [TouchList::identifiedTouch] + expected: FAIL + + [Document::createTouchList] + expected: FAIL + diff --git a/tests/wpt/metadata/workers/modules/dedicated-worker-import-csp.html.ini b/tests/wpt/metadata/workers/modules/dedicated-worker-import-csp.html.ini new file mode 100644 index 00000000000..b1f404b57f5 --- /dev/null +++ b/tests/wpt/metadata/workers/modules/dedicated-worker-import-csp.html.ini @@ -0,0 +1,4 @@ +[dedicated-worker-import-csp.html] + [DedicatedWorker: CSP for ES Modules] + expected: FAIL + 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/web-platform-tests/cookie-store/idlharness.tentative.html b/tests/wpt/web-platform-tests/cookie-store/idlharness.tentative.html index 98354275814..b9cab343ffb 100644 --- a/tests/wpt/web-platform-tests/cookie-store/idlharness.tentative.html +++ b/tests/wpt/web-platform-tests/cookie-store/idlharness.tentative.html @@ -54,8 +54,8 @@ promise_test(async t => { idl_array.add_idls(cookie_store); idl_array.add_objects({ - CookieStore: [self.cookieStore], - CookieChangeEvent: [new CookieChangeEvent('change')], + CookieStore: ["self.cookieStore"], + CookieChangeEvent: ["new CookieChangeEvent('change')"], }); idl_array.test(); }, 'Interface test'); diff --git a/tests/wpt/web-platform-tests/cookie-store/idlharness_serviceworker.js b/tests/wpt/web-platform-tests/cookie-store/idlharness_serviceworker.js index ba804132ca4..1b28b2895f1 100644 --- a/tests/wpt/web-platform-tests/cookie-store/idlharness_serviceworker.js +++ b/tests/wpt/web-platform-tests/cookie-store/idlharness_serviceworker.js @@ -35,9 +35,9 @@ promise_test(async t => { idl_array.add_idls(cookie_store); idl_array.add_objects({ - CookieStore: [self.cookieStore], + CookieStore: ["self.cookieStore"], ExtendableCookieChangeEvent: [ - new ExtendableCookieChangeEvent('cookiechange')], + "new ExtendableCookieChangeEvent('cookiechange')"], }); idl_array.test(); }, 'Interface test'); 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 new file mode 100644 index 00000000000..16bcb212c41 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-animations/set-animation-play-state-to-paused-002-ref.html @@ -0,0 +1,36 @@ +<!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 new file mode 100644 index 00000000000..210d0274b85 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-animations/set-animation-play-state-to-paused-002.html @@ -0,0 +1,95 @@ +<!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-backgrounds/background-332.html b/tests/wpt/web-platform-tests/css/css-backgrounds/background-332.html index 2621cb669b7..8a6d8d458d2 100644 --- a/tests/wpt/web-platform-tests/css/css-backgrounds/background-332.html +++ b/tests/wpt/web-platform-tests/css/css-backgrounds/background-332.html @@ -22,8 +22,8 @@ test(function() { assert_equals(cs.getPropertyValue("background-image"), - "url(support/60x60-green.png)", "background specified value for background-image"); - }, "background_specified_image"); + 'url("' + new URL("support/60x60-green.png", window.location.href).href + '")'); + }, "Computed value for background-image after setting background shorthand"); test(function() { assert_equals(cs.getPropertyValue("background-position"), diff --git a/tests/wpt/web-platform-tests/css/css-contain/contain-size-006.html b/tests/wpt/web-platform-tests/css/css-contain/contain-size-006.html new file mode 100644 index 00000000000..dc1773efac5 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-contain/contain-size-006.html @@ -0,0 +1,17 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Containment Test: Size containment on table-cell</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-size"> +<link rel="match" href="reference/contain-size-001-ref.html"> +<meta name=assert content="Size containment doesn't apply to table-cell elements."> +<style> +div { + display: table-cell; + contain: size; + overflow: hidden; +} +</style> + +<p>This test passes if you can see the word PASS below.</p> +<div>PASS</div> diff --git a/tests/wpt/web-platform-tests/css/css-contain/contain-size-007.html b/tests/wpt/web-platform-tests/css/css-contain/contain-size-007.html new file mode 100644 index 00000000000..9cf6d91e8f6 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-contain/contain-size-007.html @@ -0,0 +1,17 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Containment Test: Size containment on table-row-group</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-size"> +<link rel="match" href="reference/contain-size-001-ref.html"> +<meta name=assert content="Size containment doesn't apply to table-row-group elements."> +<style> +div { + display: table-row-group; + contain: size; + overflow: hidden; +} +</style> + +<p>This test passes if you can see the word PASS below.</p> +<div>PASS</div> diff --git a/tests/wpt/web-platform-tests/css/css-contain/contain-size-008.html b/tests/wpt/web-platform-tests/css/css-contain/contain-size-008.html new file mode 100644 index 00000000000..07ba0e2c897 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-contain/contain-size-008.html @@ -0,0 +1,17 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Containment Test: Size containment on table-header-group</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-size"> +<link rel="match" href="reference/contain-size-001-ref.html"> +<meta name=assert content="Size containment doesn't apply to table-header-group elements."> +<style> +div { + display: table-header-group; + contain: size; + overflow: hidden; +} +</style> + +<p>This test passes if you can see the word PASS below.</p> +<div>PASS</div> diff --git a/tests/wpt/web-platform-tests/css/css-contain/contain-size-009.html b/tests/wpt/web-platform-tests/css/css-contain/contain-size-009.html new file mode 100644 index 00000000000..a3ca43c2f8d --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-contain/contain-size-009.html @@ -0,0 +1,17 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Containment Test: Size containment on table-footer-group</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-size"> +<link rel="match" href="reference/contain-size-001-ref.html"> +<meta name=assert content="Size containment doesn't apply to table-footer-group elements."> +<style> +div { + display: table-footer-group; + contain: size; + overflow: hidden; +} +</style> + +<p>This test passes if you can see the word PASS below.</p> +<div>PASS</div> diff --git a/tests/wpt/web-platform-tests/css/css-contain/contain-size-010.html b/tests/wpt/web-platform-tests/css/css-contain/contain-size-010.html new file mode 100644 index 00000000000..a28110d0808 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-contain/contain-size-010.html @@ -0,0 +1,17 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Containment Test: Size containment on table-row</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-size"> +<link rel="match" href="reference/contain-size-001-ref.html"> +<meta name=assert content="Size containment doesn't apply to table-row elements."> +<style> +div { + display: table-row; + contain: size; + overflow: hidden; +} +</style> + +<p>This test passes if you can see the word PASS below.</p> +<div>PASS</div> diff --git a/tests/wpt/web-platform-tests/css/css-contain/contain-size-011.html b/tests/wpt/web-platform-tests/css/css-contain/contain-size-011.html new file mode 100644 index 00000000000..0d8e3670a03 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-contain/contain-size-011.html @@ -0,0 +1,17 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Containment Test: Size containment on table-caption</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-size"> +<link rel="match" href="reference/contain-paint-014-ref.html"> +<meta name=assert content="Size containment does apply to table-caption elements."> +<style> +div { + display: table-caption; + contain: size; + overflow: hidden; +} +</style> + +<p>This test passes if you can NOT see the word FAIL below.</p> +<div>FAIL</div> diff --git a/tests/wpt/web-platform-tests/css/css-contain/contain-size-012.html b/tests/wpt/web-platform-tests/css/css-contain/contain-size-012.html new file mode 100644 index 00000000000..af56444f987 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-contain/contain-size-012.html @@ -0,0 +1,17 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Containment Test: Size containment on table</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-size"> +<link rel="match" href="reference/contain-paint-014-ref.html"> +<meta name=assert content="Size containment does apply to table elements."> +<style> +div { + display: table; + contain: size; + overflow: hidden; +} +</style> + +<p>This test passes if you can NOT see the word FAIL below.</p> +<div>FAIL</div> diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-001.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-001.html new file mode 100644 index 00000000000..bce62cfbdda --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-001.html @@ -0,0 +1,67 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Grid Layout Test: Self-Baseline alignment along column-axis on fixed sized grids and synthesized baselines</title> +<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com"> +<link rel="help" href="https://drafts.csswg.org/css-grid-1/#alignment"> +<link rel="help" href="https://drafts.csswg.org/css-grid-1/#column-align"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-items"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-alignment"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-justify-self-baseline"> +<link rel="help" href="https://drafts.csswg.org/css-align/#synthesize-baseline"> +<link rel="stylesheet" href="../../support/grid.css"> +<link rel="stylesheet" href="../../support/alignment.css"> +<meta name="assert" content="Grid items orthogonal to the Baseline Alignment Context should use their border-box 'under' edge as synthesized baseline."> +<style> +.container { position: relative; } +.grid { + position: relative; + text-orientation: sideways; + grid: 200px 100px / 100px 200px; + font-family: Ahem; +} +.bigFont { font-size: 50px; } +.height25 { height: 25px; } +.width25 { width: 25px; } +.width300 { width: 300px; } + +.paddingLeft { padding-left: 25px; } +.paddingRight { padding-right: 25px; } +</style> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/check-layout-th.js"></script> +<body onload="checkLayout('.grid')"> + +<pre>Horizontal grid and verticalRL item</pre> + +<div class="grid width300 alignItemsBaseline"> + <div class="firstRowFirstColumn verticalRL" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="200">ÉÉ É ÉÉÉ É ÉÉ É</div> + <div class="firstRowSecondColumn bigFont" data-offset-x="100" data-offset-y="160" data-expected-width="200" data-expected-height="100">É É ÉÉ</div> + <div class="autoRowAutoColumnSpanning2 height25"></div> +</div> + +<pre>Horizontal grid and verticalLR item</pre> + +<div class="grid width300 alignItemsBaseline"> + <div class="firstRowFirstColumn verticalLR" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="200">ÉÉ É ÉÉÉ É ÉÉ É</div> + <div class="firstRowSecondColumn bigFont" data-offset-x="100" data-offset-y="160" data-expected-width="200" data-expected-height="100">É É ÉÉ</div> + <div class="autoRowAutoColumnSpanning2 height25"></div> +</div> + +<pre>VerticalLR grid and Horizontal item</pre> + +<div class="grid alignItemsBaseline verticalLR"> + <div class="firstRowFirstColumn horizontalTB" data-offset-x="35" data-offset-y="0" data-expected-width="200" data-expected-height="100">ÉÉ É ÉÉÉ É ÉÉ É</div> + <div class="firstRowSecondColumn bigFont paddingLeft" data-offset-x="0" data-offset-y="100" data-expected-width="125" data-expected-height="200">É É ÉÉ</div> + <div class="autoRowAutoColumnSpanning2 width25"></div> +</div> + +<pre>VerticalRL grid and Horizontal item</pre> + +<div class="grid alignItemsBaseline verticalRL"> + <div class="firstRowFirstColumn horizontalTB" data-offset-x="100" data-offset-y="0" data-expected-width="200" data-expected-height="100">ÉÉ É ÉÉÉ É ÉÉ É</div> + <div class="firstRowSecondColumn bigFont paddingRight" data-offset-x="40" data-offset-y="100" data-expected-width="125" data-expected-height="200">É É ÉÉ</div> + <div class="autoRowAutoColumnSpanning2 width25"></div> +</div> + +</body> diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-002.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-002.html new file mode 100644 index 00000000000..d5757ffb0ee --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-002.html @@ -0,0 +1,60 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Grid Layout Test: Self-Baseline alignment along column-axis on fixed sized grids and synthesized baselines</title> +<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com"> +<link rel="help" href="https://drafts.csswg.org/css-grid-1/#alignment"> +<link rel="help" href="https://drafts.csswg.org/css-grid-1/#column-align"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-items"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-alignment"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-justify-self-baseline"> +<link rel="help" href="https://drafts.csswg.org/css-align/#synthesize-baseline"> +<link rel="stylesheet" href="../../support/grid.css"> +<link rel="stylesheet" href="../../support/alignment.css"> +<meta name="assert" content="Empty grid items with fixed size should use their border-box 'under' edge as synthesized baseline."> +<style> +.grid { + position: relative; + text-orientation: sideways; + grid: 200px 100px / 100px 200px; + font-family: Ahem; +} +.bigFont { font-size: 50px; } +.height25 { height: 25px; } +.width25 { width: 25px; } +.width300 { width: 300px; } + +.paddingLeft { padding-left: 20px; } +.paddingRight { padding-right: 20px; } + +.fixedHeight { height: 125px; } +.fixedWidth { width: 125px; } + +</style> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/check-layout-th.js"></script> +<body onload="checkLayout('.grid')"> + +<pre>Horizontal grid and item with fixed height</pre> + +<div class="grid width300 alignItemsBaseline"> + <div class="firstRowFirstColumn fixedHeight" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="125"></div> + <div class="firstRowSecondColumn bigFont" data-offset-x="100" data-offset-y="85" data-expected-width="200" data-expected-height="100">É É ÉÉ</div> + <div class="autoRowAutoColumnSpanning2 height25"></div> +</div> + +<pre>VerticalLR grid and item with fixed width</pre> + +<div class="grid alignItemsBaseline verticalLR"> + <div class="firstRowFirstColumn fixedWidth" data-offset-x="30" data-offset-y="0" data-expected-width="125" data-expected-height="100"></div> + <div class="firstRowSecondColumn bigFont paddingLeft" data-offset-x="0" data-offset-y="100" data-expected-width="120" data-expected-height="200">É É ÉÉ</div> + <div class="autoRowAutoColumnSpanning2 width25"></div> +</div> + +<pre>VerticalRL grid and item with fixed width</pre> + +<div class="grid alignItemsBaseline verticalRL"> + <div class="firstRowFirstColumn fixedWidth" data-offset-x="175" data-offset-y="0" data-expected-width="125" data-expected-height="100"></div> + <div class="firstRowSecondColumn bigFont paddingRight" data-offset-x="115" data-offset-y="100" data-expected-width="120" data-expected-height="200">É É ÉÉ</div> + <div class="autoRowAutoColumnSpanning2 width25"></div> +</div> diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-003.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-003.html new file mode 100644 index 00000000000..22e03201b38 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-003.html @@ -0,0 +1,64 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Grid Layout Test: Self-Baseline alignment along column-axis on fixed sized grids and synthesized baselines</title> +<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com"> +<link rel="help" href="https://drafts.csswg.org/css-grid-1/#alignment"> +<link rel="help" href="https://drafts.csswg.org/css-grid-1/#column-align"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-items"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-alignment"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-justify-self-baseline"> +<link rel="help" href="https://drafts.csswg.org/css-align/#synthesize-baseline"> +<link rel="stylesheet" href="../../support/grid.css"> +<link rel="stylesheet" href="../../support/alignment.css"> +<meta name="assert" content="Empty grid items with relative size should use their border-box 'under' edge as synthesized baseline."> +<style> +.grid { + position: relative; + text-orientation: sideways; + grid: 200px 100px / 100px 200px; + font-family: Ahem; +} +.bigFont { font-size: 50px; } +.height25 { height: 25px; } +.height75 { height: 75px; } +.width25 { width: 25px; } +.width75 { width: 75px; } +.width300 { width: 300px; } + +.paddingLeft { padding-left: 20px; } +.paddingRight { padding-right: 20px; } + +.relativeHeight { height: 50%; } +.relativeWidth { width: 50%; } + +</style> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/check-layout-th.js"></script> +<body onload="checkLayout('.grid')"> + +<pre>Horizontal grid and item with relative height</pre> + +<div class="grid width300 alignItemsBaseline"> + <div class="firstRowFirstColumn relativeHeight" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="100"></div> + <div class="firstRowSecondColumn bigFont" data-offset-x="100" data-offset-y="60" data-expected-width="200" data-expected-height="100">É É ÉÉ</div> + <div class="autoRowAutoColumnSpanning2 height25"></div> +</div> + +<pre>VerticalLR grid and item with relative width</pre> + +<div class="grid alignItemsBaseline verticalLR"> + <div class="firstRowFirstColumn relativeWidth" data-offset-x="30" data-offset-y="0" data-expected-width="100" data-expected-height="100"></div> + <div class="firstRowSecondColumn bigFont paddingLeft" data-offset-x="0" data-offset-y="100" data-expected-width="120" data-expected-height="200">É É ÉÉ</div> + <div class="autoRowAutoColumnSpanning2 width25"></div> +</div> + +<pre>VerticalRL grid and item with rlative width</pre> + +<div class="grid alignItemsBaseline verticalRL"> + <div class="firstRowFirstColumn relativeWidth" data-offset-x="200" data-offset-y="0" data-expected-width="100" data-expected-height="100"></div> + <div class="firstRowSecondColumn bigFont paddingRight" data-offset-x="140" data-offset-y="100" data-expected-width="120" data-expected-height="200">É É ÉÉ</div> + <div class="autoRowAutoColumnSpanning2 width25"></div> +</div> + +</body> diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-004.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-004.html new file mode 100644 index 00000000000..3630eee3755 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-004.html @@ -0,0 +1,60 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Grid Layout Test: Self-Baseline alignment along column-axis on content-sized grids and synthesized baselines</title> +<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com"> +<link rel="help" href="https://drafts.csswg.org/css-grid-1/#alignment"> +<link rel="help" href="https://drafts.csswg.org/css-grid-1/#column-align"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-items"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-alignment"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-justify-self-baseline"> +<link rel="help" href="https://drafts.csswg.org/css-align/#synthesize-baseline"> +<link rel="stylesheet" href="../../support/grid.css"> +<link rel="stylesheet" href="../../support/alignment.css"> +<meta name="assert" content="Grid items orthogonal to the Baseline Alignment Context should use their border-box 'under' edge as synthesized baseline."> +<meta name="assert" content="Empty grid items with fixed size should use their border-box 'under' edge as synthesized baseline."> +<style> +.grid { + position: relative; + text-orientation: sideways; + grid: auto auto / 100px 200px; + font-family: Ahem; +} +.bigFont { font-size: 50px; } +.height25 { height: 25px; } +.width25 { width: 25px; } +.width300 { width: 300px; } + +.paddingLeft { padding-left: 20px; } +.paddingRight { padding-right: 20px; } + +.fixedHeight { height: 125px; } +.fixedWidth { width: 125px; } +</style> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/check-layout-th.js"></script> +<body onload="checkLayout('.grid')"> + +<pre>Horizontal grid and item with fixed height</pre> + +<div class="grid width300 alignItemsBaseline"> + <div class="firstRowFirstColumn fixedHeight" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="125"></div> + <div class="firstRowSecondColumn bigFont" data-offset-x="100" data-offset-y="85" data-expected-width="200" data-expected-height="100">É É ÉÉ</div> + <div class="autoRowAutoColumnSpanning2 height25"></div> +</div> + +<pre>VerticalLR grid and item with fixed width</pre> + +<div class="grid alignItemsBaseline verticalLR"> + <div class="firstRowFirstColumn fixedWidth" data-offset-x="30" data-offset-y="0" data-expected-width="125" data-expected-height="100"></div> + <div class="firstRowSecondColumn bigFont paddingLeft" data-offset-x="0" data-offset-y="100" data-expected-width="120" data-expected-height="200">É É ÉÉ</div> + <div class="autoRowAutoColumnSpanning2 width25"></div> +</div> + +<pre>VerticalRL grid and item with fixed width</pre> + +<div class="grid alignItemsBaseline verticalRL"> + <div class="firstRowFirstColumn fixedWidth" data-offset-x="85" data-offset-y="0" data-expected-width="125" data-expected-height="100"></div> + <div class="firstRowSecondColumn bigFont paddingRight" data-offset-x="25" data-offset-y="100" data-expected-width="120" data-expected-height="200">É É ÉÉ</div> + <div class="autoRowAutoColumnSpanning2 width25"></div> +</div> diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-001.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-001.html new file mode 100644 index 00000000000..e5a68498fc4 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-001.html @@ -0,0 +1,69 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Grid Layout Test: Self-Baseline alignment along row-axis on fixed sized grids and synthesized baselines</title> +<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com"> +<link rel="help" href="https://drafts.csswg.org/css-grid-1/#alignment"> +<link rel="help" href="https://drafts.csswg.org/css-grid-1/#row-align"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-items"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-alignment"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-justify-self-baseline"> +<link rel="help" href="https://drafts.csswg.org/css-align/#synthesize-baseline"> +<link rel="stylesheet" href="../../support/grid.css"> +<link rel="stylesheet" href="../../support/alignment.css"> +<meta name="assert" content="Grid items orthogonal to the Baseline Alignment Context should use their border-box 'under' edge as synthesized baseline."> +<style> +.container { position: relative; } +.grid { + position: relative; + text-orientation: sideways; + grid: 100px 200px / 200px 100px; + font-family: Ahem; +} +.bigFont { font-size: 50px; } +.height25 { height: 25px; } +.width25 { width: 25px; } +.width200 { width: 200px; } +.width300 { width: 300px; } + +.paddingLeft { padding-left: 25px; } +.paddingRight { padding-right: 25px; } +</style> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/check-layout-th.js"></script> +<body onload="checkLayout('.grid')"> + +<pre>Horizontal grid and verticalRL item</pre> + +<div class="grid width300 justifyItemsBaseline"> + <div class="firstRowFirstColumn" data-offset-x="60" data-offset-y="0" data-expected-width="200" data-expected-height="100">ÉÉ É ÉÉÉ É ÉÉ É</div> + <div class="secondRowFirstColumn bigFont paddingRight verticalRL" data-offset-x="0" data-offset-y="100" data-expected-width="125" data-expected-height="200">É É ÉÉ</div> + <div class="autoRowSpanning2AutoColumn width25"></div> +</div> + +<pre>Horizontal grid and verticalLR item</pre> + +<div class="grid width300 justifyItemsBaseline"> + <div class="firstRowFirstColumn" data-offset-x="35" data-offset-y="0" data-expected-width="200" data-expected-height="100">ÉÉ É ÉÉÉ É ÉÉ É</div> + <div class="secondRowFirstColumn bigFont paddingLeft verticalLR" data-offset-x="0" data-offset-y="100" data-expected-width="125" data-expected-height="200">É É ÉÉ</div> + <div class="autoRowSpanning2AutoColumn width25"></div> +</div> + +<pre>VerticalLR grid and Horizontal item</pre> + +<div class="grid justifyItemsBaseline verticalLR"> + <div class="firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="200">ÉÉ É ÉÉÉ É ÉÉ É</div> + <div class="secondRowFirstColumn bigFont horizontalTB" data-offset-x="100" data-offset-y="160" data-expected-width="200" data-expected-height="100">É É ÉÉ</div> + <div class="autoRowSpanning2AutoColumn height25"></div> +</div> + +<pre>VerticalLR grid and Horizontal item</pre> + +<div class="grid justifyItemsBaseline verticalRL"> + <div class="firstRowFirstColumn" data-offset-x="200" data-offset-y="0" data-expected-width="100" data-expected-height="200">ÉÉ É ÉÉÉ É ÉÉ É</div> + <div class="secondRowFirstColumn bigFont horizontalTB" data-offset-x="0" data-offset-y="160" data-expected-width="200" data-expected-height="100">É É ÉÉ</div> + <div class="autoRowSpanning2AutoColumn height25"></div> +</div> + + +</body> diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-002.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-002.html new file mode 100644 index 00000000000..c43b8563f48 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-002.html @@ -0,0 +1,72 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Grid Layout Test: Self-Baseline alignment along row-axis on fixed sized grids and synthesized baselines</title> +<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com"> +<link rel="help" href="https://drafts.csswg.org/css-grid-1/#alignment"> +<link rel="help" href="https://drafts.csswg.org/css-grid-1/#row-align"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-items"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-alignment"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-justify-self-baseline"> +<link rel="help" href="https://drafts.csswg.org/css-align/#synthesize-baseline"> +<link rel="stylesheet" href="../../support/grid.css"> +<link rel="stylesheet" href="../../support/alignment.css"> +<meta name="assert" content="Empty grid items with fixed size should use their border-box 'under' edge as synthesized baseline."> +<style> +.container { position: relative; } +.grid { + position: relative; + text-orientation: sideways; + grid: 100px 200px / 200px 100px; + font-family: Ahem; +} +.bigFont { font-size: 50px; } +.height25 { height: 25px; } +.width25 { width: 25px; } +.width200 { width: 200px; } +.width300 { width: 300px; } + +.paddingLeft { padding-left: 20px; } +.paddingRight { padding-right: 20px; } + +.fixedHeight { height: 125px; } +.fixedWidth { width: 125px; } +</style> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/check-layout-th.js"></script> +<body onload="checkLayout('.grid')"> + +<pre>Horizontal grid and verticalLR item with fixed width</pre> + +<div class="grid width300 justifyItemsBaseline"> + <div class="firstRowFirstColumn fixedWidth" data-offset-x="30" data-offset-y="0" data-expected-width="125" data-expected-height="100"></div> + <div class="secondRowFirstColumn bigFont paddingLeft verticalLR" data-offset-x="0" data-offset-y="100" data-expected-width="120" data-expected-height="200">É É ÉÉ</div> + <div class="autoRowSpanning2AutoColumn width25"></div> +</div> + +<pre>Horizontal grid and verticalRL item with fixed width</pre> + +<div class="grid width300 justifyItemsBaseline"> + <div class="firstRowFirstColumn fixedWidth" data-offset-x="60" data-offset-y="0" data-expected-width="125" data-expected-height="100"></div> + <div class="secondRowFirstColumn bigFont paddingRight verticalRL" data-offset-x="0" data-offset-y="100" data-expected-width="120" data-expected-height="200">É É ÉÉ</div> + <div class="autoRowSpanning2AutoColumn width25"></div> +</div> + +<pre>VerticalLR grid and item with fixed height</pre> + +<div class="grid justifyItemsBaseline verticalLR"> + <div class="firstRowFirstColumn fixedHeight" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="125"></div> + <div class="secondRowFirstColumn bigFont horizontalTB" data-offset-x="100" data-offset-y="85" data-expected-width="200" data-expected-height="100">É É ÉÉ</div> + <div class="autoRowSpanning2AutoColumn height25"></div> +</div> + +<pre>VerticalRL grid and item with fixed width</pre> + +<div class="grid justifyItemsBaseline verticalRL"> + <div class="firstRowFirstColumn fixedHeight" data-offset-x="200" data-offset-y="0" data-expected-width="100" data-expected-height="125"></div> + <div class="secondRowFirstColumn bigFont horizontalTB" data-offset-x="0" data-offset-y="85" data-expected-width="200" data-expected-height="100">É É ÉÉ</div> + <div class="autoRowSpanning2AutoColumn height25"></div> +</div> + + +</body> diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-003.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-003.html new file mode 100644 index 00000000000..b9c60ff7fbe --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-003.html @@ -0,0 +1,72 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Grid Layout Test: Self-Baseline alignment along row-axis on fixed sized grids and synthesized baselines</title> +<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com"> +<link rel="help" href="https://drafts.csswg.org/css-grid-1/#alignment"> +<link rel="help" href="https://drafts.csswg.org/css-grid-1/#row-align"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-items"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-alignment"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-justify-self-baseline"> +<link rel="help" href="https://drafts.csswg.org/css-align/#synthesize-baseline"> +<link rel="stylesheet" href="../../support/grid.css"> +<link rel="stylesheet" href="../../support/alignment.css"> +<meta name="assert" content="Empty grid items with relative size should use their border-box 'under' edge as synthesized baseline."> +<style> +.container { position: relative; } +.grid { + position: relative; + text-orientation: sideways; + grid: 100px 200px / 200px 100px; + font-family: Ahem; +} +.bigFont { font-size: 50px; } +.height25 { height: 25px; } +.width25 { width: 25px; } +.width200 { width: 200px; } +.width300 { width: 300px; } + +.paddingLeft { padding-left: 20px; } +.paddingRight { padding-right: 20px; } + +.relativeHeight { height: 50%; } +.relativeWidth { width: 50%; } +</style> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/check-layout-th.js"></script> +<body onload="checkLayout('.grid')"> + +<pre>Horizontal grid and verticalLR item with relative width</pre> + +<div class="grid width300 justifyItemsBaseline"> + <div class="firstRowFirstColumn relativeWidth" data-offset-x="30" data-offset-y="0" data-expected-width="100" data-expected-height="100"></div> + <div class="secondRowFirstColumn bigFont paddingLeft verticalLR" data-offset-x="0" data-offset-y="100" data-expected-width="120" data-expected-height="200">É É ÉÉ</div> + <div class="autoRowSpanning2AutoColumn width25"></div> +</div> + +<pre>Horizontal grid and verticalRL item with relative width</pre> + +<div class="grid width300 justifyItemsBaseline"> + <div class="firstRowFirstColumn relativeWidth" data-offset-x="60" data-offset-y="0" data-expected-width="100" data-expected-height="100"></div> + <div class="secondRowFirstColumn bigFont paddingRight verticalRL" data-offset-x="0" data-offset-y="100" data-expected-width="120" data-expected-height="200">É É ÉÉ</div> + <div class="autoRowSpanning2AutoColumn width25"></div> +</div> + +<pre>VerticalLR grid and item with relative height</pre> + +<div class="grid justifyItemsBaseline verticalLR"> + <div class="firstRowFirstColumn relativeHeight" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="100"></div> + <div class="secondRowFirstColumn bigFont horizontalTB" data-offset-x="100" data-offset-y="60" data-expected-width="200" data-expected-height="100">É É ÉÉ</div> + <div class="autoRowSpanning2AutoColumn height25"></div> +</div> + +<pre>VerticalRL grid and item with relative height</pre> + +<div class="grid justifyItemsBaseline verticalRL"> + <div class="firstRowFirstColumn relativeHeight" data-offset-x="200" data-offset-y="0" data-expected-width="100" data-expected-height="100"></div> + <div class="secondRowFirstColumn bigFont horizontalTB" data-offset-x="0" data-offset-y="60" data-expected-width="200" data-expected-height="100">É É ÉÉ</div> + <div class="autoRowSpanning2AutoColumn height25"></div> +</div> + + +</body> diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-004.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-004.html new file mode 100644 index 00000000000..d1f3959ed78 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-004.html @@ -0,0 +1,72 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Grid Layout Test: Self-Baseline alignment along row-axis on content-sized grids and synthesized baselines</title> +<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com"> +<link rel="help" href="https://drafts.csswg.org/css-grid-1/#alignment"> +<link rel="help" href="https://drafts.csswg.org/css-grid-1/#row-align"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-items"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-alignment"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-justify-self-baseline"> +<link rel="help" href="https://drafts.csswg.org/css-align/#synthesize-baseline"> +<link rel="stylesheet" href="../../support/grid.css"> +<link rel="stylesheet" href="../../support/alignment.css"> +<meta name="assert" content="Empty grid items with fixed size should use their border-box 'under' edge as synthesized baseline."> +<style> +.container { position: relative; } +.inline-grid { + position: relative; + text-orientation: sideways; + grid: 100px 200px / auto auto; + font-family: Ahem; +} +.bigFont { font-size: 50px; } +.height25 { height: 25px; } +.width25 { width: 25px; } +.width200 { width: 200px; } +.width300 { width: 300px; } + +.paddingLeft { padding-left: 20px; } +.paddingRight { padding-right: 20px; } + +.fixedHeight { height: 125px; } +.fixedWidth { width: 125px; } +</style> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/check-layout-th.js"></script> +<body onload="checkLayout('.inline-grid')"> + +<pre>Horizontal grid and verticalLR item with relative width</pre> + +<div class="inline-grid justifyItemsBaseline" data-expected-width="180" data-expected-height="300"> + <div class="firstRowFirstColumn fixedWidth" data-offset-x="30" data-offset-y="0" data-expected-width="125" data-expected-height="100"></div> + <div class="secondRowFirstColumn bigFont paddingLeft verticalLR" data-offset-x="0" data-offset-y="100" data-expected-width="120" data-expected-height="200">É É ÉÉ</div> + <div class="autoRowSpanning2AutoColumn width25"></div> +</div> + +<pre>Horizontal grid and verticalRL item with fixed width</pre> + +<div class="inline-grid justifyItemsBaseline" data-expected-width="210" data-expected-height="300"> + <div class="firstRowFirstColumn fixedWidth" data-offset-x="60" data-offset-y="0" data-expected-width="125" data-expected-height="100"></div> + <div class="secondRowFirstColumn bigFont paddingRight verticalRL" data-offset-x="0" data-offset-y="100" data-expected-width="120" data-expected-height="200">É É ÉÉ</div> + <div class="autoRowSpanning2AutoColumn width25"></div> +</div> + +<pre>VerticalLR grid and item with fixed height</pre> + +<div class="inline-grid justifyItemsBaseline verticalLR"> + <div class="firstRowFirstColumn fixedHeight" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="125"></div> + <div class="secondRowFirstColumn bigFont horizontalTB" data-offset-x="100" data-offset-y="85" data-expected-width="200" data-expected-height="100">É É ÉÉ</div> + <div class="autoRowSpanning2AutoColumn height25"></div> +</div> + +<pre>VerticalRL grid and item with fixed height</pre> + +<div class="inline-grid justifyItemsBaseline verticalRL"> + <div class="firstRowFirstColumn fixedHeight" data-offset-x="200" data-offset-y="0" data-expected-width="100" data-expected-height="125"></div> + <div class="secondRowFirstColumn bigFont horizontalTB" data-offset-x="0" data-offset-y="85" data-expected-width="200" data-expected-height="100">É É ÉÉ</div> + <div class="autoRowSpanning2AutoColumn height25"></div> +</div> + + +</body> diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-001.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-001.html new file mode 100644 index 00000000000..b35b16d648d --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-001.html @@ -0,0 +1,128 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Grid Layout Test: Self-Baseline alignment and sizing cyclic dependency</title> +<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com"> +<link rel="help" href="https://drafts.csswg.org/css-grid-1/#alignment"> +<link rel="help" href="https://drafts.csswg.org/css-grid-1/#column-align"> +<link rel="help" href="https://drafts.csswg.org/css-grid-1/#row-align"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-items"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-items"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-alignment"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-justify-self-baseline"> +<link rel="stylesheet" href="../../support/grid.css"> +<link rel="stylesheet" href="../../support/alignment.css"> +<meta name="assert" content="Grid items with relative size in the inline or block axis and an intrinsically-sized column or row respectively, don't participate in baseline alignment in the, row-like or column-like respectively, shared alignment context."> +<style> +.inline-grid { + position: relative; + border: solid; + text-orientation: sideways; + font-family: Ahem; +} + +.columns { grid-template-columns: 100px 100px; } +.rows { grid-template-rows: 100px 100px; } + +.min-content-columns { grid-auto-columns: min-content; } +.max-content-columns { grid-auto-columns: max-content; } +.fit-content-columns { grid-auto-columns: fit-content; } +.flex-columns { grid-auto-columns: 1fr; } +.min-content-rows { grid-auto-rows: min-content; } +.max-content-rows { grid-auto-rows: max-content; } +.fit-content-rows { grid-auto-rows: fit-content; } +.flex-rows { grid-auto-rows: 1fr; } + +.height25 { height: 25px; } +.height50 { height: 50px; } +.height200 { height: 200px; } +.width25 { width: 25px; } +.width50 { width: 50px; } +.width200 { width: 200px; } + +.height200Percent { height: 200%; } +.width200Percent { width: 200%; } +</style> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/check-layout-th.js"></script> +<body onload="checkLayout('.inline-grid')"> + +<pre>auto-sized rows - items with relative height</pre> + +<div class="inline-grid alignItemsBaseline columns"> + <div class="firstRowFirstColumn height50" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="50"></div> + <div class="firstRowSecondColumn height200Percent" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="100"></div> + <div class="autoRowAutoColumnSpanning2 height25" data-offset-x="0" data-offset-y="50" data-expected-width="200" data-expected-height="25"></div> +</div> + +<pre>min-content-sized rows - items with relative height</pre> + +<div class="inline-grid alignItemsBaseline columns min-content-rows"> + <div class="firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="80">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="firstRowSecondColumn height200Percent" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="160"></div> + <div class="autoRowAutoColumnSpanning2 height25" data-offset-x="0" data-offset-y="80" data-expected-width="200" data-expected-height="25"></div> +</div> + +<pre>max-content-sized rows - items with relative height</pre> + +<div class="inline-grid alignItemsBaseline columns max-content-rows"> + <div class="firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="80">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="firstRowSecondColumn height200Percent" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="160"></div> + <div class="autoRowAutoColumnSpanning2 height25" data-offset-x="0" data-offset-y="80" data-expected-width="200" data-expected-height="25"></div> +</div> + +<pre>fit-content-sized rows - items with relative height</pre> + +<div class="inline-grid alignItemsBaseline columns fit-content-rows"> + <div class="firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="80">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="firstRowSecondColumn height200Percent" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="160"></div> + <div class="autoRowAutoColumnSpanning2 height25" data-offset-x="0" data-offset-y="80" data-expected-width="200" data-expected-height="25"></div> +</div> + +<pre>flexible-sized rows - items with relative height</pre> + +<div class="inline-grid alignItemsBaseline columns flex-rows"> + <div class="firstRowFirstColumn height50" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="50"></div> + <div class="firstRowSecondColumn height200Percent" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="100"></div> + <div class="autoRowAutoColumnSpanning2 height25" data-offset-x="0" data-offset-y="50" data-expected-width="200" data-expected-height="25"></div> +</div> + +<pre>auto-sized columns - items with relative width</pre> + +<div class="inline-grid justifyItemsBaseline rows"> + <div class="firstRowFirstColumn verticalRL width50" data-offset-x="0" data-offset-y="0" data-expected-width="50" data-expected-height="100"></div> + <div class="secondRowFirstColumn verticalRL width200Percent" data-offset-x="0" data-offset-y="100" data-expected-width="100" data-expected-height="100"></div> + <div class="firstRowSpanning2AutoColumn verticalRL width25" data-offset-x="50" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> +</div> + +<pre>min-content-sized columns - items with relative width</pre> + +<div class="inline-grid justifyItemsBaseline rows min-content-columns"> + <div class="firstRowFirstColumn verticalRL" data-offset-x="0" data-offset-y="0" data-expected-width="80" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="secondRowFirstColumn verticalRL width200Percent" data-offset-x="0" data-offset-y="100" data-expected-width="160" data-expected-height="100"></div> + <div class="firstRowSpanning2AutoColumn verticalRL width25" data-offset-x="80" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> +</div> + +<pre>max-content-sized columns - items with relative width</pre> + +<div class="inline-grid justifyItemsBaseline rows max-content-columns"> + <div class="firstRowFirstColumn verticalRL" data-offset-x="0" data-offset-y="0" data-expected-width="80" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="secondRowFirstColumn verticalRL width200Percent" data-offset-x="0" data-offset-y="100" data-expected-width="160" data-expected-height="100"></div> + <div class="firstRowSpanning2AutoColumn verticalRL width25" data-offset-x="80" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> +</div> + +<pre>fit-content-sized columns - items with relative width</pre> + +<div class="inline-grid justifyItemsBaseline rows fit-content-columns"> + <div class="firstRowFirstColumn verticalRL" data-offset-x="0" data-offset-y="0" data-expected-width="80" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="secondRowFirstColumn verticalRL width200Percent" data-offset-x="0" data-offset-y="100" data-expected-width="160" data-expected-height="100"></div> + <div class="firstRowSpanning2AutoColumn verticalRL width25" data-offset-x="80" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> +</div> + +<pre>flexible-sized columns - items with relative width</pre> + +<div class="inline-grid justifyItemsBaseline rows flex-columns"> + <div class="firstRowFirstColumn verticalRL width50" data-offset-x="0" data-offset-y="0" data-expected-width="50" data-expected-height="100"></div> + <div class="secondRowFirstColumn verticalRL width200Percent" data-offset-x="0" data-offset-y="100" data-expected-width="100" data-expected-height="100"></div> + <div class="firstRowSpanning2AutoColumn verticalRL width25" data-offset-x="50" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> +</div> diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-002.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-002.html new file mode 100644 index 00000000000..4d0f506c7b6 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-002.html @@ -0,0 +1,178 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Grid Layout Test: Self-Baseline alignment and sizing cyclic dependency</title> +<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com"> +<link rel="help" href="https://drafts.csswg.org/css-grid-1/#alignment"> +<link rel="help" href="https://drafts.csswg.org/css-grid-1/#column-align"> +<link rel="help" href="https://drafts.csswg.org/css-grid-1/#row-align"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-items"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-items"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-alignment"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-justify-self-baseline"> +<link rel="stylesheet" href="../../support/grid.css"> +<link rel="stylesheet" href="../../support/alignment.css"> +<meta name="assert" content="Grid items orthogonal to the Baseline Context along the inline or block axis and an intrinsically-sized column or row respectively, don't participate in baseline alignment in the, row-like or column-like respectively, shared alignment context."> +<style> +.inline-grid { + position: relative; + border: solid; + text-orientation: sideways; + font-family: Ahem; +} + +.columns { grid-template-columns: 100px 100px; } +.rows { grid-template-rows: 100px 100px; } + +.min-content-columns { grid-auto-columns: min-content; } +.max-content-columns { grid-auto-columns: max-content; } +.fit-content-columns { grid-auto-columns: fit-content; } +.flex-columns { grid-auto-columns: 1fr; } +.min-content-rows { grid-auto-rows: min-content; } +.max-content-rows { grid-auto-rows: max-content; } +.fit-content-rows { grid-auto-rows: fit-content; } +.flex-rows { grid-auto-rows: 1fr; } + +.height25 { height: 25px; } +.height50 { height: 50px; } +.height200 { height: 200px; } +.width25 { width: 25px; } +.width50 { width: 50px; } +.width200 { width: 200px; } + +.bigFont { font-size: 50px; } +.paddingLeft { padding-left: 25px; } +.paddingBottom { padding-bottom: 25px; } +.paddingRight { padding-right: 25px; } +</style> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/check-layout-th.js"></script> +<body onload="checkLayout('.inline-grid')"> + +<pre>auto-sized rows - horizonal grid and verticalLR item - column-axis baseline</pre> + +<div class="inline-grid alignItemsBaseline columns height200"> + <div class="firstRowFirstColumn bigFont paddingBottom" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="75">É</div> + <div class="firstRowSecondColumn verticalLR" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="175">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="autoRowAutoColumnSpanning2 height25" data-offset-x="0" data-offset-y="175" data-expected-width="200" data-expected-height="25"></div> +</div> + +<pre>min-content-sized rows - horizonal grid and verticalLR item - column-axis baseline</pre> + +<div class="inline-grid alignItemsBaseline columns min-content-rows"> + <div class="firstRowFirstColumn bigFont paddingBottom" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="75">É</div> + <div class="firstRowSecondColumn verticalLR" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="75">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="autoRowAutoColumnSpanning2 height25" data-offset-x="0" data-offset-y="75" data-expected-width="200" data-expected-height="25"></div> +</div> + +<pre>max-content-sized rows - horizonal grid and verticalLR item - column-axis baseline</pre> + +<div class="inline-grid alignItemsBaseline columns max-content-rows"> + <div class="firstRowFirstColumn bigFont paddingBottom" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="75">É</div> + <div class="firstRowSecondColumn verticalLR" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="416">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="autoRowAutoColumnSpanning2 height25" data-offset-x="0" data-offset-y="416" data-expected-width="200" data-expected-height="25"></div> +</div> + +<pre>fit-content-sized rows - horizonal grid and verticalLR item - column-axis baseline</pre> + +<div class="inline-grid alignItemsBaseline columns fit-content-rows"> + <div class="firstRowFirstColumn bigFont paddingBottom" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="75">É</div> + <div class="firstRowSecondColumn verticalLR" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="416">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="autoRowAutoColumnSpanning2 height25" data-offset-x="0" data-offset-y="416" data-expected-width="200" data-expected-height="25"></div> +</div> + +<pre>auto-sized columns - horizontal grid item - row-axis baseline</pre> + +<div class="inline-grid justifyItemsBaseline rows width200"> + <div class="firstRowFirstColumn bigFont verticalLR paddingLeft" data-offset-x="0" data-offset-y="0" data-expected-width="75" data-expected-height="100">É</div> + <div class="secondRowFirstColumn" data-offset-x="0" data-offset-y="100" data-expected-width="175" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="firstRowSpanning2AutoColumn width25" data-offset-x="175" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> +</div> + +<pre>min-content-sized columns - horizontal grid item - row-axis baseline</pre> + +<div class="inline-grid justifyItemsBaseline rows min-content-columns"> + <div class="firstRowFirstColumn bigFont verticalLR paddingLeft" data-offset-x="0" data-offset-y="0" data-expected-width="75" data-expected-height="100">É</div> + <div class="secondRowFirstColumn" data-offset-x="0" data-offset-y="100" data-expected-width="75" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="firstRowSpanning2AutoColumn width25" data-offset-x="75" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> +</div> + +<pre>max-content-sized columns - horizontal grid item - row-axis baseline</pre> + +<div class="inline-grid justifyItemsBaseline rows max-content-columns"> + <div class="firstRowFirstColumn bigFont verticalLR paddingLeft" data-offset-x="0" data-offset-y="0" data-expected-width="75" data-expected-height="100">É</div> + <div class="secondRowFirstColumn" data-offset-x="0" data-offset-y="100" data-expected-width="416" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="firstRowSpanning2AutoColumn width25" data-offset-x="416" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> +</div> + +<pre>fit-content-sized columns - horizontal grid item - row-axis baseline</pre> + +<div class="inline-grid justifyItemsBaseline rows fit-content-columns"> + <div class="firstRowFirstColumn bigFont verticalLR paddingLeft" data-offset-x="0" data-offset-y="0" data-expected-width="75" data-expected-height="100">É</div> + <div class="secondRowFirstColumn" data-offset-x="0" data-offset-y="100" data-expected-width="416" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="firstRowSpanning2AutoColumn width25" data-offset-x="416" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> +</div> + +<pre>auto-sized rows - verticalLR grid and horizontal item - column-axis baseline</pre> + +<div class="inline-grid verticalLR alignItemsBaseline columns width200"> + <div class="firstRowFirstColumn bigFont paddingLeft" data-offset-x="0" data-offset-y="0" data-expected-width="75" data-expected-height="100">É</div> + <div class="firstRowSecondColumn horizontalTB" data-offset-x="0" data-offset-y="100" data-expected-width="175" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="autoRowAutoColumnSpanning2 width25" data-offset-x="175" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> +</div> + +<pre>min-content-sized rows - verticalLR grid and horizontal item - column-axis baseline</pre> + +<div class="inline-grid verticalLR alignItemsBaseline columns min-content-rows"> + <div class="firstRowFirstColumn bigFont paddingLeft" data-offset-x="0" data-offset-y="0" data-expected-width="75" data-expected-height="100">É</div> + <div class="firstRowSecondColumn horizontalTB" data-offset-x="0" data-offset-y="100" data-expected-width="75" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="autoRowAutoColumnSpanning2 width25" data-offset-x="75" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> +</div> + +<pre>max-content-sized rows - verticalLR grid and horizontal item - column-axis baseline</pre> + +<div class="inline-grid verticalLR alignItemsBaseline columns max-content-rows"> + <div class="firstRowFirstColumn bigFont paddingLeft" data-offset-x="0" data-offset-y="0" data-expected-width="75" data-expected-height="100">É</div> + <div class="firstRowSecondColumn horizontalTB" data-offset-x="0" data-offset-y="100" data-expected-width="416" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="autoRowAutoColumnSpanning2 width25" data-offset-x="416" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> +</div> + +<pre>fit-content-sized rows - verticalLR grid and horizontal item - column-axis baseline</pre> + +<div class="inline-grid verticalLR alignItemsBaseline columns fit-content-rows"> + <div class="firstRowFirstColumn bigFont paddingLeft" data-offset-x="0" data-offset-y="0" data-expected-width="75" data-expected-height="100">É</div> + <div class="firstRowSecondColumn horizontalTB" data-offset-x="0" data-offset-y="100" data-expected-width="416" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="autoRowAutoColumnSpanning2 width25" data-offset-x="416" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> +</div> + +<pre>auto-sized rows - verticalRL grid and horizontal item - column-axis baseline</pre> + +<div class="inline-grid verticalRL alignItemsBaseline columns width200"> + <div class="firstRowFirstColumn bigFont paddingRight" data-offset-x="125" data-offset-y="0" data-expected-width="75" data-expected-height="100">É</div> + <div class="firstRowSecondColumn horizontalTB" data-offset-x="25" data-offset-y="100" data-expected-width="175" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="autoRowAutoColumnSpanning2 width25" data-offset-x="0" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> +</div> + +<pre>min-content-sized rows - verticalRL grid and horizontal item - column-axis baseline</pre> + +<div class="inline-grid verticalRL alignItemsBaseline columns min-content-rows"> + <div class="firstRowFirstColumn bigFont paddingRight" data-offset-x="25" data-offset-y="0" data-expected-width="75" data-expected-height="100">É</div> + <div class="firstRowSecondColumn horizontalTB" data-offset-x="25" data-offset-y="100" data-expected-width="75" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="autoRowAutoColumnSpanning2 width25" data-offset-x="0" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> +</div> + +<pre>max-content-sized rows - verticalRL grid and horizontal item - column-axis baseline</pre> + +<div class="inline-grid verticalRL alignItemsBaseline columns max-content-rows"> + <div class="firstRowFirstColumn bigFont paddingRight" data-offset-x="366" data-offset-y="0" data-expected-width="75" data-expected-height="100">É</div> + <div class="firstRowSecondColumn horizontalTB" data-offset-x="25" data-offset-y="100" data-expected-width="416" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="autoRowAutoColumnSpanning2 width25" data-offset-x="0" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> +</div> + +<pre>fit-content-sized rows - verticalRL grid and horizontal item - column-axis baseline</pre> + +<div class="inline-grid verticalRL alignItemsBaseline columns fit-content-rows"> + <div class="firstRowFirstColumn bigFont paddingRight" data-offset-x="366" data-offset-y="0" data-expected-width="75" data-expected-height="100">É</div> + <div class="firstRowSecondColumn horizontalTB" data-offset-x="25" data-offset-y="100" data-expected-width="416" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="autoRowAutoColumnSpanning2 width25" data-offset-x="0" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> +</div> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-data-function-failure.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-data-function-failure.https.html new file mode 100644 index 00000000000..394f68c6141 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-data-function-failure.https.html @@ -0,0 +1,63 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-data"> +<link rel="match" href="green-square-ref.html"> +<meta name="assert" content="This test checks that a function can't be passed to a child layout." /> +<style> +.test { + background: red; + width: 100px; +} + +@supports (display: layout(parent)) { + .test { + display: layout(parent); + background: green; + } + + .child { + display: layout(child); + } +} +</style> +<script src="/common/reftest-wait.js"></script> +<script src="/common/worklet-reftest.js"></script> + +<div class="test"> + <div class="child"></div> +</div> + +<script id="code" type="text/worklet"> +registerLayout('parent', class { + *intrinsicSizes() {} + *layout() {} + *layout([child], edges, constraints, styleMap) { + let childFragment = null; + + try { + childFragment = yield child.layoutNextFragment({ + data: { fn: function() {} } + }); + } catch(e) { + // Success! The structured cloning algorithm should have thrown an error. + childFragment = yield child.layoutNextFragment({}); + return {autoBlockSize: 100, childFragments: [childFragment]}; + } + + return {autoBlockSize: 0, childFragments: [childFragment]}; + } +}); + +registerLayout('child', class { + *intrinsicSizes() {} + *layout() {} + *layout() { + return {autoBlockSize: 0}; + } +}); +</script> + +<script> +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, document.getElementById('code').textContent); +</script> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-data-sab-failure.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-data-sab-failure.https.html new file mode 100644 index 00000000000..eb652d9a552 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-data-sab-failure.https.html @@ -0,0 +1,68 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-data"> +<link rel="match" href="green-square-ref.html"> +<meta name="assert" content="This test checks that a SharedArrayBuffer can't be passed to a child layout." /> +<style> +.test { + background: red; + width: 100px; +} + +@supports (display: layout(parent)) { + .test { + display: layout(parent); + background: green; + } + + .child { + display: layout(child); + } +} +</style> +<script src="/common/reftest-wait.js"></script> +<script src="/common/worklet-reftest.js"></script> + +<div class="test"> + <div class="child"></div> +</div> + +<script id="code" type="text/worklet"> +registerLayout('parent', class { + *intrinsicSizes() {} + *layout() {} + *layout([child], edges, constraints, styleMap) { + let childFragment = null; + + try { + // We need SABs to be enabled to properly run this test. + if (typeof SharedArrayBuffer !== 'undefined') { + childFragment = yield child.layoutNextFragment({ + data: { sab: new SharedArrayBuffer(4) } + }); + } else { + throw Error(); + } + } catch(e) { + // Success! The structured cloning algorithm should have thrown an error. + childFragment = yield child.layoutNextFragment({}); + return {autoBlockSize: 100, childFragments: [childFragment]}; + } + + return {autoBlockSize: 0, childFragments: [childFragment]}; + } +}); + +registerLayout('child', class { + *intrinsicSizes() {} + *layout() {} + *layout() { + return {autoBlockSize: 0}; + } +}); +</script> + +<script> +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, document.getElementById('code').textContent); +</script> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-data.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-data.https.html new file mode 100644 index 00000000000..b7b6964acb2 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-data.https.html @@ -0,0 +1,71 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-data"> +<link rel="match" href="green-square-ref.html"> +<meta name="assert" content="This test checks that passing data to a child layout works correctly." /> +<style> +.test { + background: red; + width: 100px; +} + +@supports (display: layout(parent)) { + .test { + display: layout(parent); + background: green; + } + + .child { + display: layout(child); + } +} +</style> +<script src="/common/reftest-wait.js"></script> +<script src="/common/worklet-reftest.js"></script> + +<div class="test"> + <div class="child"></div> +</div> + +<script id="code" type="text/worklet"> +const DATA = { + str: 'hello', + num: 42, + obj: {str2: 'world'}, +}; + +registerLayout('parent', class { + *intrinsicSizes() {} + *layout() {} + *layout([child], edges, constraints, styleMap) { + + const childFragment = yield child.layoutNextFragment({data: DATA}); + + // If the child's block-size is 100 the structured cloning worked. + if (childFragment.blockSize === 100) { + return {autoBlockSize: 100, childFragments: [childFragment]}; + } + + return {autoBlockSize: 0, childFragments: [childFragment]}; + } +}); + +registerLayout('child', class { + *intrinsicSizes() {} + *layout() {} + *layout(children, edges, constraints, styleMap) { + // Use JSON.stringify to make sure the structured cloning worked. + if (constraints.data !== DATA && + JSON.stringify(constraints.data) === JSON.stringify(DATA)) { + return {autoBlockSize: 100}; + } + + return {autoBlockSize: 0}; + } +}); +</script> + +<script> +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, document.getElementById('code').textContent); +</script> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-absolute-left-right-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-absolute-left-right-vrl.https.html new file mode 100644 index 00000000000..4a376d7ae24 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-absolute-left-right-vrl.https.html @@ -0,0 +1,40 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> +<link rel="match" href="green-square-ref.html"> +<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> +<style> +body { + position: relative; + width: 120px; +} + +.test { + writing-mode: vertical-rl; + background: red; + position: absolute; + left: 0px; + right: 20px; + --expected-block-size: 100; +} + +.child { + background: green; +} + +@supports (display: layout(test)) { + .test { + display: layout(test); + } +} +</style> +<script src="/common/reftest-wait.js"></script> +<script src="/common/worklet-reftest.js"></script> + +<div class="test"> + <div class="child"></div> +</div> + +<script> +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'}); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-absolute-none.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-absolute-none.https.html new file mode 100644 index 00000000000..7a695e0d8dc --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-absolute-none.https.html @@ -0,0 +1,36 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> +<link rel="match" href="green-square-ref.html"> +<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> +<style> +body { + position: relative; +} + +.test { + background: red; + position: absolute; + --expected-block-size: null; +} + +.child { + background: green; +} + +@supports (display: layout(test)) { + .test { + display: layout(test); + } +} +</style> +<script src="/common/reftest-wait.js"></script> +<script src="/common/worklet-reftest.js"></script> + +<div class="test"> + <div class="child"></div> +</div> + +<script> +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'}); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-absolute-top-bottom.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-absolute-top-bottom.https.html new file mode 100644 index 00000000000..7cbee8295ce --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-absolute-top-bottom.https.html @@ -0,0 +1,39 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> +<link rel="match" href="green-square-ref.html"> +<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> +<style> +body { + position: relative; + height: 120px; +} + +.test { + background: red; + position: absolute; + top: 0px; + bottom: 20px; + --expected-block-size: 100; +} + +.child { + background: green; +} + +@supports (display: layout(test)) { + .test { + display: layout(test); + } +} +</style> +<script src="/common/reftest-wait.js"></script> +<script src="/common/worklet-reftest.js"></script> + +<div class="test"> + <div class="child"></div> +</div> + +<script> +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'}); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-block-none-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-block-none-vrl.https.html new file mode 100644 index 00000000000..6f36abe73bc --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-block-none-vrl.https.html @@ -0,0 +1,32 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> +<link rel="match" href="green-square-ref.html"> +<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> +<style> +.test { + writing-mode: vertical-lr; + background: red; + --expected-block-size: null; +} + +.child { + background: green; +} + +@supports (display: layout(test)) { + .test { + display: layout(test); + } +} +</style> +<script src="/common/reftest-wait.js"></script> +<script src="/common/worklet-reftest.js"></script> + +<div class="test"> + <div class="child"></div> +</div> + +<script> +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'}); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-block-none.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-block-none.https.html new file mode 100644 index 00000000000..4fd6441c0aa --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-block-none.https.html @@ -0,0 +1,32 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> +<link rel="match" href="green-square-ref.html"> +<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> +<style> +.test { + background: red; + --expected-block-size: null; + width: 100px; +} + +.child { + background: green; +} + +@supports (display: layout(test)) { + .test { + display: layout(test); + } +} +</style> +<script src="/common/reftest-wait.js"></script> +<script src="/common/worklet-reftest.js"></script> + +<div class="test"> + <div class="child"></div> +</div> + +<script> +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'}); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed-max.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed-max.https.html new file mode 100644 index 00000000000..accdd7c8b00 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed-max.https.html @@ -0,0 +1,34 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> +<link rel="match" href="green-square-ref.html"> +<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> +<style> +.test { + background: red; + --expected-block-size: 30; + width: 100px; + height: 60px; + max-height: 30px; +} + +.child { + background: green; +} + +@supports (display: layout(test)) { + .test { + display: layout(test); + } +} +</style> +<script src="/common/reftest-wait.js"></script> +<script src="/common/worklet-reftest.js"></script> + +<div class="test"> + <div class="child"></div> +</div> + +<script> +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'}); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed-min.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed-min.https.html new file mode 100644 index 00000000000..845683dc6d5 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed-min.https.html @@ -0,0 +1,34 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> +<link rel="match" href="green-square-ref.html"> +<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> +<style> +.test { + background: red; + --expected-block-size: 70; + width: 100px; + height: 60px; + min-height: 70px; +} + +.child { + background: green; +} + +@supports (display: layout(test)) { + .test { + display: layout(test); + } +} +</style> +<script src="/common/reftest-wait.js"></script> +<script src="/common/worklet-reftest.js"></script> + +<div class="test"> + <div class="child"></div> +</div> + +<script> +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'}); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed-vrl.https.html new file mode 100644 index 00000000000..a319129a27d --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed-vrl.https.html @@ -0,0 +1,33 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> +<link rel="match" href="green-square-ref.html"> +<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> +<style> +.test { + writing-mode: vertical-rl; + background: red; + --expected-block-size: 100; + width: 100px; +} + +.child { + background: green; +} + +@supports (display: layout(test)) { + .test { + display: layout(test); + } +} +</style> +<script src="/common/reftest-wait.js"></script> +<script src="/common/worklet-reftest.js"></script> + +<div class="test"> + <div class="child"></div> +</div> + +<script> +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'}); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed.https.html new file mode 100644 index 00000000000..646a514d18c --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed.https.html @@ -0,0 +1,33 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> +<link rel="match" href="green-square-ref.html"> +<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> +<style> +.test { + background: red; + --expected-block-size: 60; + width: 100px; + height: 60px; +} + +.child { + background: green; +} + +@supports (display: layout(test)) { + .test { + display: layout(test); + } +} +</style> +<script src="/common/reftest-wait.js"></script> +<script src="/common/worklet-reftest.js"></script> + +<div class="test"> + <div class="child"></div> +</div> + +<script> +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'}); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-basis-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-basis-vrl.https.html new file mode 100644 index 00000000000..bb12d15dbc7 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-basis-vrl.https.html @@ -0,0 +1,37 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> +<link rel="match" href="green-square-ref.html"> +<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> +<style> +body { + display: flex; +} + +.test { + writing-mode: vertical-rl; + background: red; + --expected-block-size: 100; + flex-basis: 100px; +} + +.child { + background: green; +} + +@supports (display: layout(test)) { + .test { + display: layout(test); + } +} +</style> +<script src="/common/reftest-wait.js"></script> +<script src="/common/worklet-reftest.js"></script> + +<div class="test"> + <div class="child"></div> +</div> + +<script> +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'}); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-basis.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-basis.https.html new file mode 100644 index 00000000000..8435b021c97 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-basis.https.html @@ -0,0 +1,38 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> +<link rel="match" href="green-square-ref.html"> +<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> +<style> +body { + display: flex; + flex-direction: column; + width: 100px; +} + +.test { + background: red; + --expected-block-size: 60; + flex-basis: 60px; +} + +.child { + background: green; +} + +@supports (display: layout(test)) { + .test { + display: layout(test); + } +} +</style> +<script src="/common/reftest-wait.js"></script> +<script src="/common/worklet-reftest.js"></script> + +<div class="test"> + <div class="child"></div> +</div> + +<script> +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'}); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-grow.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-grow.https.html new file mode 100644 index 00000000000..68a3c197643 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-grow.https.html @@ -0,0 +1,40 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> +<link rel="match" href="green-square-ref.html"> +<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> +<style> +body { + display: flex; + flex-direction: column; + width: 100px; + height: 60px; +} + +.test { + background: red; + --expected-block-size: 50; + margin-bottom: 10px; + flex-grow: 1; +} + +.child { + background: green; +} + +@supports (display: layout(test)) { + .test { + display: layout(test); + } +} +</style> +<script src="/common/reftest-wait.js"></script> +<script src="/common/worklet-reftest.js"></script> + +<div class="test"> + <div class="child"></div> +</div> + +<script> +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'}); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-none.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-none.https.html new file mode 100644 index 00000000000..a0c416f5338 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-none.https.html @@ -0,0 +1,37 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> +<link rel="match" href="green-square-ref.html"> +<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> +<style> +body { + display: flex; + flex-direction: column; + width: 100px; +} + +.test { + background: red; + --expected-block-size: null; +} + +.child { + background: green; +} + +@supports (display: layout(test)) { + .test { + display: layout(test); + } +} +</style> +<script src="/common/reftest-wait.js"></script> +<script src="/common/worklet-reftest.js"></script> + +<div class="test"> + <div class="child"></div> +</div> + +<script> +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'}); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-stretch-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-stretch-vrl.https.html new file mode 100644 index 00000000000..be448da4ec1 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-stretch-vrl.https.html @@ -0,0 +1,39 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> +<link rel="match" href="green-square-ref.html"> +<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> +<style> +body { + display: flex; + flex-direction: column; + width: 100px; +} + +.test { + writing-mode: vertical-rl; + background: red; + --expected-block-size: 90; /* flex-item should stretch to (100 - 10)px */ + margin-left: 10px; +} + +.child { + background: green; +} + +@supports (display: layout(test)) { + .test { + display: layout(test); + } +} +</style> +<script src="/common/reftest-wait.js"></script> +<script src="/common/worklet-reftest.js"></script> + +<div class="test"> + <div class="child"></div> +</div> + +<script> +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'}); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-grow-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-grow-vrl.https.html new file mode 100644 index 00000000000..d79445e16e8 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-grow-vrl.https.html @@ -0,0 +1,38 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> +<link rel="match" href="green-square-ref.html"> +<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> +<style> +body { + display: flex; + width: 100px; +} + +.test { + writing-mode: vertical-rl; + background: red; + --expected-block-size: 100; + flex-grow: 1; +} + +.child { + background: green; +} + +@supports (display: layout(test)) { + .test { + display: layout(test); + } +} +</style> +<script src="/common/reftest-wait.js"></script> +<script src="/common/worklet-reftest.js"></script> + +<div class="test"> + <div class="child"></div> +</div> + +<script> +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'}); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-none.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-none.https.html new file mode 100644 index 00000000000..f34a0d88a95 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-none.https.html @@ -0,0 +1,36 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> +<link rel="match" href="green-square-ref.html"> +<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> +<style> +body { + display: flex; +} + +.test { + background: red; + --expected-block-size: null; + width: 100px; +} + +.child { + background: green; +} + +@supports (display: layout(test)) { + .test { + display: layout(test); + } +} +</style> +<script src="/common/reftest-wait.js"></script> +<script src="/common/worklet-reftest.js"></script> + +<div class="test"> + <div class="child"></div> +</div> + +<script> +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'}); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-percentage-indefinite.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-percentage-indefinite.https.html new file mode 100644 index 00000000000..ee8e27b38cb --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-percentage-indefinite.https.html @@ -0,0 +1,37 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> +<link rel="match" href="green-square-ref.html"> +<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> +<style> +body { + display: flex; +} + +.test { + background: red; + --expected-block-size: null; /* Percentage which we are resolving height against is indefinite. */ + width: 100px; + height: 50%; +} + +.child { + background: green; +} + +@supports (display: layout(test)) { + .test { + display: layout(test); + } +} +</style> +<script src="/common/reftest-wait.js"></script> +<script src="/common/worklet-reftest.js"></script> + +<div class="test"> + <div class="child"></div> +</div> + +<script> +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'}); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-stretch-max.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-stretch-max.https.html new file mode 100644 index 00000000000..bbf358e1129 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-stretch-max.https.html @@ -0,0 +1,39 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> +<link rel="match" href="green-square-ref.html"> +<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> +<style> +body { + display: flex; + height: 50px; +} + +.test { + background: red; + --expected-block-size: 30; /* flex-item should respect the max constraint */ + max-height: 30px; + width: 100px; + margin-bottom: 10px; +} + +.child { + background: green; +} + +@supports (display: layout(test)) { + .test { + display: layout(test); + } +} +</style> +<script src="/common/reftest-wait.js"></script> +<script src="/common/worklet-reftest.js"></script> + +<div class="test"> + <div class="child"></div> +</div> + +<script> +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'}); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-stretch.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-stretch.https.html new file mode 100644 index 00000000000..1b1e43879f1 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-stretch.https.html @@ -0,0 +1,38 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> +<link rel="match" href="green-square-ref.html"> +<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> +<style> +body { + display: flex; + height: 50px; +} + +.test { + background: red; + --expected-block-size: 40; /* flex-item should stretch to (50 - 10)px */ + width: 100px; + margin-bottom: 10px; +} + +.child { + background: green; +} + +@supports (display: layout(test)) { + .test { + display: layout(test); + } +} +</style> +<script src="/common/reftest-wait.js"></script> +<script src="/common/worklet-reftest.js"></script> + +<div class="test"> + <div class="child"></div> +</div> + +<script> +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'}); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-none.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-none.https.html new file mode 100644 index 00000000000..27b68a09611 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-none.https.html @@ -0,0 +1,36 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> +<link rel="match" href="green-square-ref.html"> +<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> +<style> +body { + display: grid; +} + +.test { + background: red; + --expected-block-size: null; + width: 100px; +} + +.child { + background: green; +} + +@supports (display: layout(test)) { + .test { + display: layout(test); + } +} +</style> +<script src="/common/reftest-wait.js"></script> +<script src="/common/worklet-reftest.js"></script> + +<div class="test"> + <div class="child"></div> +</div> + +<script> +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'}); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-stretch-max.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-stretch-max.https.html new file mode 100644 index 00000000000..108c90db4f4 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-stretch-max.https.html @@ -0,0 +1,39 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> +<link rel="match" href="green-square-ref.html"> +<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> +<style> +body { + display: grid; + grid: 50px / auto-flow; +} + +.test { + background: red; + --expected-block-size: 30; /* grid-item should respect the max constraint */ + max-height: 30px; + width: 100px; + margin-bottom: 10px; +} + +.child { + background: green; +} + +@supports (display: layout(test)) { + .test { + display: layout(test); + } +} +</style> +<script src="/common/reftest-wait.js"></script> +<script src="/common/worklet-reftest.js"></script> + +<div class="test"> + <div class="child"></div> +</div> + +<script> +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'}); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-stretch.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-stretch.https.html new file mode 100644 index 00000000000..f93ad5be363 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-stretch.https.html @@ -0,0 +1,38 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> +<link rel="match" href="green-square-ref.html"> +<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> +<style> +body { + display: grid; + grid: 50px / auto-flow; +} + +.test { + background: red; + --expected-block-size: 40; /* grid-item should stretch to (50 - 10)px */ + width: 100px; + margin-bottom: 10px; +} + +.child { + background: green; +} + +@supports (display: layout(test)) { + .test { + display: layout(test); + } +} +</style> +<script src="/common/reftest-wait.js"></script> +<script src="/common/worklet-reftest.js"></script> + +<div class="test"> + <div class="child"></div> +</div> + +<script> +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'}); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-vrl.https.html new file mode 100644 index 00000000000..db82767f782 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-vrl.https.html @@ -0,0 +1,38 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> +<link rel="match" href="green-square-ref.html"> +<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> +<style> +body { + display: grid; + grid: auto-flow / 100px; +} + +.test { + writing-mode: vertical-rl; + background: red; + --expected-block-size: 100; + width: 100px; +} + +.child { + background: green; +} + +@supports (display: layout(test)) { + .test { + display: layout(test); + } +} +</style> +<script src="/common/reftest-wait.js"></script> +<script src="/common/worklet-reftest.js"></script> + +<div class="test"> + <div class="child"></div> +</div> + +<script> +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'}); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage-indefinite.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage-indefinite.https.html new file mode 100644 index 00000000000..94a20387442 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage-indefinite.https.html @@ -0,0 +1,33 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> +<link rel="match" href="green-square-ref.html"> +<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> +<style> +.test { + background: red; + --expected-block-size: null; /* Percentage which we are resolving height against is indefinite. */ + width: 100px; + height: 50%; +} + +.child { + background: green; +} + +@supports (display: layout(test)) { + .test { + display: layout(test); + } +} +</style> +<script src="/common/reftest-wait.js"></script> +<script src="/common/worklet-reftest.js"></script> + +<div class="test"> + <div class="child"></div> +</div> + +<script> +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'}); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage-vrl.https.html new file mode 100644 index 00000000000..8c7a8c5d3ea --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage-vrl.https.html @@ -0,0 +1,37 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> +<link rel="match" href="green-square-ref.html"> +<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> +<style> +body { + width: 200px; +} + +.test { + writing-mode: vertical-rl; + background: red; + --expected-block-size: 100; + width: 50%; +} + +.child { + background: green; +} + +@supports (display: layout(test)) { + .test { + display: layout(test); + } +} +</style> +<script src="/common/reftest-wait.js"></script> +<script src="/common/worklet-reftest.js"></script> + +<div class="test"> + <div class="child"></div> +</div> + +<script> +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'}); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage.https.html new file mode 100644 index 00000000000..693553e14e2 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage.https.html @@ -0,0 +1,37 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> +<link rel="match" href="green-square-ref.html"> +<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> +<style> +body { + height: 200px; +} + +.test { + background: red; + --expected-block-size: 100; + width: 100px; + height: 50%; +} + +.child { + background: green; +} + +@supports (display: layout(test)) { + .test { + display: layout(test); + } +} +</style> +<script src="/common/reftest-wait.js"></script> +<script src="/common/worklet-reftest.js"></script> + +<div class="test"> + <div class="child"></div> +</div> + +<script> +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/constraints-fixed-block-size.js'}); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-quirky-body.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-quirky-body.https.html new file mode 100644 index 00000000000..7601e8b6bb4 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-quirky-body.https.html @@ -0,0 +1,22 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> +<link rel="match" href="green-square-ref.html"> +<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> +<style> +iframe { border: none; width: 200px; height: 200px; } +</style> +<script src="/common/reftest-wait.js"></script> +<script src="/common/worklet-reftest.js"></script> +<body> +<script> +// For this test we load a quirky iframe with the test file. +// We can control the auto size of the iframe body element by setting the iframe height. +const iframe = document.createElement('iframe'); +document.body.appendChild(iframe); +iframe.addEventListener('load', () => { + importWorkletAndTerminateTestAfterAsyncPaint( + iframe.contentWindow.CSS.layoutWorklet, {url: 'constraints-fixed-block-size.js'}); +}); +iframe.src = 'support/constraints-fixed-block-size-quirky-body-iframe.html'; +</script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/fragment-data-function-failure.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/fragment-data-function-failure.https.html new file mode 100644 index 00000000000..5e21be0bfd6 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-layout-api/fragment-data-function-failure.https.html @@ -0,0 +1,44 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutfragment-data"> +<link rel="match" href="green-square-ref.html"> +<meta name="assert" content="This test checks that passing something that can't be serialized to the parent triggers a fallback to block layout." /> +<style> +.test { + background: red; + width: 100px; +} + +.child { + height: 100px; +} + +@supports (display: layout(fallback-fn)) { + .test { + display: layout(fallback-fn); + background: green; + } +} +</style> +<script src="/common/reftest-wait.js"></script> +<script src="/common/worklet-reftest.js"></script> + +<div class="test"> + <div class="child"></div> +</div> + +<script id="code" type="text/worklet"> +registerLayout('fallback-fn', class { + *intrinsicSizes() {} + *layout() {} + *layout(children, edges, constraints, styleMap) { + const childFragments = yield children.map(child => child.layoutNextFragment()); + return {autoBlockSize: 0, childFragments, data: {fn: function() {}}}; + } +}); +</script> + +<script> +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, document.getElementById('code').textContent); +</script> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/fragment-data-immutable.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/fragment-data-immutable.https.html new file mode 100644 index 00000000000..cc1875bd61d --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-layout-api/fragment-data-immutable.https.html @@ -0,0 +1,71 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutfragment-data"> +<link rel="match" href="green-square-ref.html"> +<meta name="assert" content="This test checks that LayoutFragment#data is immutable between child layout passes." /> +<style> +.test { + background: red; + width: 100px; +} + +@supports (display: layout(parent)) { + .test { + display: layout(parent); + background: green; + } + + .child { + display: layout(child); + } +} +</style> +<script src="/common/reftest-wait.js"></script> +<script src="/common/worklet-reftest.js"></script> + +<div class="test"> + <div class="child"></div> +</div> + +<script id="code" type="text/worklet"> +registerLayout('parent', class { + *intrinsicSizes() {} + *layout() {} + *layout([child], edges, constraints, styleMap) { + + const childFragment10 = yield child.layoutNextFragment({fixedInlineSize: 10}); + + // First layout data should be "10". + if (childFragment10.data.size !== 10) { + return {autoBlockSize: 0, childFragments: [childFragment10]}; + } + + const childFragment20 = yield child.layoutNextFragment({fixedInlineSize: 20}); + + // Second layout data should be "20". + if (childFragment20.data.size !== 20) { + return {autoBlockSize: 0, childFragments: [childFragment10]}; + } + + // First layout data should still be "10". + if (childFragment10.data.size !== 10) { + return {autoBlockSize: 0, childFragments: [childFragment10]}; + } + + return {autoBlockSize: 100, childFragments: [childFragment20]}; + } +}); + +registerLayout('child', class { + *intrinsicSizes() {} + *layout() {} + *layout(children, edges, constraints, styleMap) { + return {autoBlockSize: 10, data: {size: constraints.fixedInlineSize}}; + } +}); +</script> + +<script> +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, document.getElementById('code').textContent); +</script> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/fragment-data-sab-failure.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/fragment-data-sab-failure.https.html new file mode 100644 index 00000000000..59a9f835728 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-layout-api/fragment-data-sab-failure.https.html @@ -0,0 +1,49 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutfragment-data"> +<link rel="match" href="green-square-ref.html"> +<meta name="assert" content="This test checks that a SharedArrayBuffer can't be passed to the parent layout." /> +<style> +.test { + background: red; + width: 100px; +} + +.child { + height: 100px; +} + +@supports (display: layout(fallback-sab)) { + .test { + display: layout(fallback-sab); + background: green; + } +} +</style> +<script src="/common/reftest-wait.js"></script> +<script src="/common/worklet-reftest.js"></script> + +<div class="test"> + <div class="child"></div> +</div> + +<script id="code" type="text/worklet"> +registerLayout('fallback-sab', class { + *intrinsicSizes() {} + *layout() {} + *layout(children, edges, constraints, styleMap) { + const childFragments = yield children.map(child => child.layoutNextFragment()); + + if (typeof SharedArrayBuffer !== 'undefined') { + return {autoBlockSize: 0, childFragments, data: {sab: new SharedArrayBuffer(4) }}; + } else { + throw Error(); + } + } +}); +</script> + +<script> +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, document.getElementById('code').textContent); +</script> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/fragment-data.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/fragment-data.https.html new file mode 100644 index 00000000000..589ee9c76fd --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-layout-api/fragment-data.https.html @@ -0,0 +1,66 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutfragment-data"> +<link rel="match" href="green-square-ref.html"> +<meta name="assert" content="This test checks that passing data to a parent layout works correctly." /> +<style> +.test { + background: red; + width: 100px; +} + +@supports (display: layout(parent)) { + .test { + display: layout(parent); + background: green; + } + + .child { + display: layout(child); + } +} +</style> +<script src="/common/reftest-wait.js"></script> +<script src="/common/worklet-reftest.js"></script> + +<div class="test"> + <div class="child"></div> +</div> + +<script id="code" type="text/worklet"> +const DATA = { + str: 'hello', + num: 42, + obj: {str2: 'world'}, +}; + +registerLayout('parent', class { + *intrinsicSizes() {} + *layout() {} + *layout([child], edges, constraints, styleMap) { + + const childFragment = yield child.layoutNextFragment(); + + // Use JSON.stringify to make sure the structured cloning worked. + if (childFragment.data !== DATA && + JSON.stringify(childFragment.data) === JSON.stringify(DATA)) { + return {autoBlockSize: 100, childFragments: [childFragment]}; + } + + return {autoBlockSize: 0, childFragments: [childFragment]}; + } +}); + +registerLayout('child', class { + *intrinsicSizes() {} + *layout() {} + *layout(children, edges, constraints, styleMap) { + return {autoBlockSize: 10, data: DATA}; + } +}); +</script> + +<script> +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, document.getElementById('code').textContent); +</script> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-ref.html b/tests/wpt/web-platform-tests/css/css-layout-api/green-square-ref.html index 641dda18642..a28e43be4ad 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-ref.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/green-square-ref.html @@ -2,7 +2,6 @@ <style> .result { background: green; - margin: 10px; height: 100px; width: 100px; } diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-absolute.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-absolute.https.html index 73c0bf78d80..26513f4fac7 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-absolute.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-absolute.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layout-children"> -<link rel="match" href="layout-child-ref.html"> +<link rel="match" href="green-square-ref.html"> <meta name="assert" content="This test checks that absolute children don't appear in the children array." /> <style> @@ -9,7 +9,6 @@ --child-expected: ["2"]; background: red; - margin: 10px; width: 100px; } diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-before-after.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-before-after.https.html index 87d12190cfb..4923f26cf9d 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-before-after.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-before-after.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layout-children"> -<link rel="match" href="layout-child-ref.html"> +<link rel="match" href="green-square-ref.html"> <meta name="assert" content="This test checks that boxes created by ::before/::after appear as children." /> <style> @@ -9,7 +9,6 @@ --child-expected: ["1", "2", "3"]; background: red; - margin: 10px; width: 100px; } diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-fixed.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-fixed.https.html index 9de556efd86..264fc638d52 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-fixed.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-fixed.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layout-children"> -<link rel="match" href="layout-child-ref.html"> +<link rel="match" href="green-square-ref.html"> <meta name="assert" content="This test checks that fixed children don't appear in the children array." /> <style> @@ -9,7 +9,6 @@ --child-expected: ["2"]; background: red; - margin: 10px; width: 100px; } diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-float.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-float.https.html index 0465b1885bf..6e40893e3b3 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-float.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-float.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layout-children"> -<link rel="match" href="layout-child-ref.html"> +<link rel="match" href="green-square-ref.html"> <meta name="assert" content="This test checks that float children appear in the children array." /> <style> @@ -9,7 +9,6 @@ --child-expected: ["1", "2"]; background: red; - margin: 10px; width: 100px; } diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-inflow.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-inflow.https.html index 7c5aa2953b4..11f2b88aa1f 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-inflow.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-inflow.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layout-children"> -<link rel="match" href="layout-child-ref.html"> +<link rel="match" href="green-square-ref.html"> <meta name="assert" content="This test checks that regular inflow children appear as children." /> <style> @@ -9,7 +9,6 @@ --child-expected: ["1", "2"]; background: red; - margin: 10px; width: 100px; } diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-inlines.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-inlines.https.html index e1d65abfa80..811af3f40b2 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-inlines.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-inlines.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layout-children"> -<link rel="match" href="layout-child-ref.html"> +<link rel="match" href="green-square-ref.html"> <meta name="assert" content="This test checks that inline children are correctly blockified or wrapped in anonymous boxes." /> <style> @@ -11,7 +11,6 @@ .wrapper { background: green; padding: 0 10px; - margin: 10px; width: 80px; } diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-text.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-text.https.html index 0757f5d2cd7..40513f0acf3 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-text.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-text.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layout-children"> -<link rel="match" href="layout-child-ref.html"> +<link rel="match" href="green-square-ref.html"> <meta name="assert" content="This test checks that text children are correctly blockified." /> <style> @@ -11,7 +11,6 @@ .wrapper { background: green; padding: 0 10px; - margin: 10px; width: 80px; } diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-available-inline-size-htb-htb.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-available-inline-size-htb-htb.https.html index e14541b7beb..bfe8a99e7fe 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-available-inline-size-htb-htb.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-available-inline-size-htb-htb.https.html @@ -1,14 +1,13 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraintsoptions-availableinlinesize"> -<link rel="match" href="layout-child-ref.html"> +<link rel="match" href="green-square-ref.html"> <meta name="assert" content="This test checks that setting the available inline size of children works as expected." /> <style> .test { writing-mode: horizontal-tb; background: red; - margin: 10px; width: 100px; } diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-available-inline-size-htb-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-available-inline-size-htb-vrl.https.html index 1b45998d2d8..602536c5814 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-available-inline-size-htb-vrl.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-available-inline-size-htb-vrl.https.html @@ -1,14 +1,13 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraintsoptions-availableinlinesize"> -<link rel="match" href="layout-child-ref.html"> +<link rel="match" href="green-square-ref.html"> <meta name="assert" content="This test checks that setting the available inline size of children works as expected." /> <style> .test { writing-mode: horizontal-tb; background: red; - margin: 10px; width: 100px; } diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-available-inline-size-vrl-htb.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-available-inline-size-vrl-htb.https.html index 63590c9203b..4759c1b69d0 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-available-inline-size-vrl-htb.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-available-inline-size-vrl-htb.https.html @@ -1,14 +1,13 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraintsoptions-availableinlinesize"> -<link rel="match" href="layout-child-ref.html"> +<link rel="match" href="green-square-ref.html"> <meta name="assert" content="This test checks that setting the available inline size of children works as expected." /> <style> .test { writing-mode: vertical-rl; background: red; - margin: 10px; height: 100px; } diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-available-inline-size-vrl-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-available-inline-size-vrl-vrl.https.html index 815f5254d5d..7bfa44db67b 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-available-inline-size-vrl-vrl.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-available-inline-size-vrl-vrl.https.html @@ -1,14 +1,13 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraintsoptions-availableinlinesize"> -<link rel="match" href="layout-child-ref.html"> +<link rel="match" href="green-square-ref.html"> <meta name="assert" content="This test checks that setting the available inline size of children works as expected." /> <style> .test { writing-mode: vertical-rl; background: red; - margin: 10px; height: 100px; } diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-fixed-block-size-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-fixed-block-size-vrl.https.html index cc4448464c3..43dd483b3f9 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-fixed-block-size-vrl.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-fixed-block-size-vrl.https.html @@ -1,14 +1,13 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraintsoptions-fixedinlinesize"> -<link rel="match" href="layout-child-ref.html"> +<link rel="match" href="green-square-ref.html"> <meta name="assert" content="This test checks that fixing the block size of children works as expected." /> <style> .test { writing-mode: vertical-rl; background: red; - margin: 10px; height: 100px; } diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-fixed-block-size.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-fixed-block-size.https.html index add1a3d96bf..c714e1ff975 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-fixed-block-size.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-fixed-block-size.https.html @@ -1,13 +1,12 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraintsoptions-fixedblocksize"> -<link rel="match" href="layout-child-ref.html"> +<link rel="match" href="green-square-ref.html"> <meta name="assert" content="This test checks that fixing the block size of children works as expected." /> <style> .test { background: red; - margin: 10px; width: 100px; } diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-fixed-inline-size-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-fixed-inline-size-vrl.https.html index 42e9c563574..ba86d2c184d 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-fixed-inline-size-vrl.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-fixed-inline-size-vrl.https.html @@ -1,14 +1,13 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraintsoptions-fixedinlinesize"> -<link rel="match" href="layout-child-ref.html"> +<link rel="match" href="green-square-ref.html"> <meta name="assert" content="This test checks that fixing the inline size of children works as expected." /> <style> .test { writing-mode: vertical-rl; background: red; - margin: 10px; height: 100px; } diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-fixed-inline-size.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-fixed-inline-size.https.html index 188e5864c16..a2a422bd611 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-fixed-inline-size.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/perform-child-layout-fixed-inline-size.https.html @@ -1,13 +1,12 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraintsoptions-fixedinlinesize"> -<link rel="match" href="layout-child-ref.html"> +<link rel="match" href="green-square-ref.html"> <meta name="assert" content="This test checks that fixing the inline size of children works as expected." /> <style> .test { background: red; - margin: 10px; width: 100px; } diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/support/constraints-fixed-block-size-quirky-body-iframe.html b/tests/wpt/web-platform-tests/css/css-layout-api/support/constraints-fixed-block-size-quirky-body-iframe.html new file mode 100644 index 00000000000..da770e6caf1 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-layout-api/support/constraints-fixed-block-size-quirky-body-iframe.html @@ -0,0 +1,21 @@ +<style> +body { + margin: 0; + --expected-block-size: 200; +} + +.child { + background: green; +} + +@supports (display: layout(test)) { + body { + display: layout(test); + } +} +</style> + +<!-- In Quirks mode, we should stretch to 100% of the inital containing block. --> +<body> +<div class="child"></div> +</body> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/support/constraints-fixed-block-size.js b/tests/wpt/web-platform-tests/css/css-layout-api/support/constraints-fixed-block-size.js new file mode 100644 index 00000000000..50f802f47eb --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-layout-api/support/constraints-fixed-block-size.js @@ -0,0 +1,22 @@ +registerLayout('test', class { + static get inputProperties() { + return ['--expected-block-size']; + } + + *intrinsicSizes() {} + *layout([child], edges, constraints, styleMap) { + let childFixedInlineSize = 0; + let childFixedBlockSize = 0; + if (constraints.fixedBlockSize === JSON.parse(styleMap.get('--expected-block-size'))) { + childFixedInlineSize = 100; + childFixedBlockSize = 100; + } + + const childFragments = [yield child.layoutNextFragment({ + fixedInlineSize: childFixedInlineSize, + fixedBlockSize: childFixedBlockSize, + })]; + + return {childFragments}; + } +}); diff --git a/tests/wpt/web-platform-tests/css/css-properties-values-api/registered-property-cssom.html b/tests/wpt/web-platform-tests/css/css-properties-values-api/registered-property-cssom.html index 9dc9d7e50bb..d1641d22d89 100644 --- a/tests/wpt/web-platform-tests/css/css-properties-values-api/registered-property-cssom.html +++ b/tests/wpt/web-platform-tests/css/css-properties-values-api/registered-property-cssom.html @@ -37,8 +37,10 @@ test(function() { assert_equals(computedStyle.getPropertyValue('--color'), 'hello'); }, "CSSOM setters function as expected for unregistered properties"); -CSS.registerProperty({name: '--length', syntax: '<length>', initialValue: '0px'}); -CSS.registerProperty({name: '--color', syntax: '<color>', initialValue: 'white', inherits: true}); +test(function() { + CSS.registerProperty({name: '--length', syntax: '<length>', initialValue: '0px'}); + CSS.registerProperty({name: '--color', syntax: '<color>', initialValue: 'white', inherits: true}); +}, "CSS.registerProperty"); test(function() { assert_equals(inlineStyle.getPropertyValue('--length'), '5'); diff --git a/tests/wpt/web-platform-tests/css/css-pseudo/placeholder-input-number-notref.html b/tests/wpt/web-platform-tests/css/css-pseudo/placeholder-input-number-notref.html new file mode 100644 index 00000000000..92ae71d83fc --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-pseudo/placeholder-input-number-notref.html @@ -0,0 +1,9 @@ +<!doctype html> +<title>CSS Test Reference</title> +<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io"> +<style> +#number::placeholder { + color: blue; +} +</style> +<input id="number" type="number" placeholder="Placeholder"> diff --git a/tests/wpt/web-platform-tests/css/css-pseudo/placeholder-input-number.html b/tests/wpt/web-platform-tests/css/css-pseudo/placeholder-input-number.html new file mode 100644 index 00000000000..a557f1091ec --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-pseudo/placeholder-input-number.html @@ -0,0 +1,11 @@ +<!doctype html> +<title>CSS Test: ::placeholder applies to input type="number"</title> +<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io"> +<link rel="mismatch" href="placeholder-input-number-notref.html"> +<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#placeholder-pseudo"> +<style> +#number::placeholder { + color: green; +} +</style> +<input id="number" type="number" placeholder="Placeholder"> diff --git a/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-027.html b/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-027.html new file mode 100644 index 00000000000..2c232ed9a50 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-027.html @@ -0,0 +1,69 @@ +<!DOCTYPE html> +<html> +<head> + <title>CSS Test: left float, url(png), real negative offset image + shape-margin (px)</title> + <link rel="author" title="Brad Werth" href="mailto:bwerth@mozilla.com"/> + <link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shapes-from-image"/> + <link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property"/> + <link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-margin-property"/> + <link rel="match" href="reference/shape-image-006-ref.html"/> + <meta name="flags" content="ahem"/> + <meta name="assert" content="This test verifies that content wraps around all the image pixels + + the shape-margin when shape-outside is given a png file. + Additionally, the shape-outside: image element is given a negative + left offset relative to its containing block."/> + <style type="text/css"> + body { + margin: 0; + } + .container { + left: 10px; + font: 50px/1 Ahem; + } + #test { + width: 200px; + color: rgb(0,100,0); + } + #image { + float: left; + shape-outside: url("support/left-half-rectangle.png"); + shape-margin: 20px; + margin-left: -10px; + width: 100px; + height: 100px; + } + .blue { + width: 2px; + height: 100px; + background-color: blue; + } + .left-line { left: 65px; } + .right-line { left: 125px; } + + .failure { + left: 70px; + width: 50px; + height: 100px; + background-color: red; + z-index: -1; + } + .container, .blue, .failure { + position: absolute; + top: 70px; + } + </style> +</head> +<body> + <p> + The test passes if the green rectangle on the right is completely between the two blue lines. + There should be no red. + </p> + <div id="test" class="container"> + <div id="image"><img src="support/left-half-rectangle.png" style="margin-left: 10px"/></div> + X<br/>X + </div> + <div class="blue left-line"></div> + <div class="blue right-line"></div> + <div class="failure"></div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-transitions/support/properties.js b/tests/wpt/web-platform-tests/css/css-transitions/support/properties.js index 01fb6e7336f..9ca23450c8d 100644 --- a/tests/wpt/web-platform-tests/css/css-transitions/support/properties.js +++ b/tests/wpt/web-platform-tests/css/css-transitions/support/properties.js @@ -221,8 +221,6 @@ var properties = { 'outline-width': ['length'], 'clip': ['rectangle'], - // Note: doesn't seem implemented anywhere - 'crop': ['rectangle'], 'vertical-align': ['length', 'percentage'], 'opacity': ['number[0,1]'], diff --git a/tests/wpt/web-platform-tests/css/css-ui/outline-017.html b/tests/wpt/web-platform-tests/css/css-ui/outline-017.html index 54155e4b8aa..d3a350d2a8f 100644 --- a/tests/wpt/web-platform-tests/css/css-ui/outline-017.html +++ b/tests/wpt/web-platform-tests/css/css-ui/outline-017.html @@ -9,18 +9,18 @@ <style> @keyframes outline-anim { from { - outline: solid 1px rgb(1,0,0); + outline: solid 1px rgba(1, 0, 0, 0.5); outline-offset: 1px; } to { - outline: solid 3px rgb(3,0,0); + outline: solid 3px rgba(3, 0, 0, 0.5); outline-offset: 3px; } } #test { animation: outline-anim 3s -1.5s paused linear; - outline: solid 1px rgb(1,0,0); + outline: solid 1px rgba(1, 0, 0, 0.5); outline-offset: 1px; } </style> @@ -29,20 +29,27 @@ <div id=log></div> <script> - test( - function(){ - var test = document.getElementById("test"); - assert_equals(getComputedStyle(test).outlineColor, 'rgb(2, 0, 0)'); - }, "outline-color is animated as a color"); - test( - function(){ - var test = document.getElementById("test"); - assert_equals(getComputedStyle(test).outlineWidth, '2px'); - }, "outline-width is animated as a length"); - test( - function(){ - var test = document.getElementById("test"); - assert_equals(getComputedStyle(test).outlineOffset, '2px'); - }, "outline-offset is animated as a length"); + // outline being a render-only property, its animation can be done off the main thread + // checking the values after the first paint is safer, hence requestAnimationFrame + setup({explicit_done:true}); + requestAnimationFrame(function() { + // synchronous tests being run during the page's first paint + test( + function(){ + var test = document.getElementById("test"); + assert_equals(getComputedStyle(test).outlineColor, 'rgba(2, 0, 0, 0.5)'); + }, "outline-color is animated as a color"); + test( + function(){ + var test = document.getElementById("test"); + assert_equals(getComputedStyle(test).outlineWidth, '2px'); + }, "outline-width is animated as a length"); + test( + function(){ + var test = document.getElementById("test"); + assert_equals(getComputedStyle(test).outlineOffset, '2px'); + }, "outline-offset is animated as a length"); + done(); + }); </script> </body> diff --git a/tests/wpt/web-platform-tests/css/css-ui/outline-018.html b/tests/wpt/web-platform-tests/css/css-ui/outline-018.html index 448a11f141e..ff79144da2a 100644 --- a/tests/wpt/web-platform-tests/css/css-ui/outline-018.html +++ b/tests/wpt/web-platform-tests/css/css-ui/outline-018.html @@ -16,28 +16,46 @@ } } -#test { - animation: outline-anim 3s -1.5s paused linear; +#test1 { + animation: outline-anim 3s 0s paused linear; + outline: solid 1px black; +} +#test2 { + animation: outline-anim 3s -1s paused linear; + outline: solid 1px black; +} +#test3 { + animation: outline-anim 3s -2s paused linear; + outline: solid 1px black; +} +#test4 { + animation: outline-anim 3s 0s paused reverse-linear; outline: solid 1px black; } </style> <body> - <div id="test"></div> + <div id="test1"></div> + <div id="test2"></div> + <div id="test3"></div> + <div id="test4"></div> <div id=log></div> <script> - test( - function(){ - var test = document.getElementById("test"); - - test.style.animation = "outline-anim 3s 0s paused linear" - assert_equals(getComputedStyle(test).outlineStyle, 'solid'); - test.style.animation = "outline-anim 3s -1s paused linear" - assert_equals(getComputedStyle(test).outlineStyle, 'solid'); - test.style.animation = "outline-anim 3s -2s paused linear" - assert_equals(getComputedStyle(test).outlineStyle, 'dotted'); - test.style.animation = "outline-anim 3s 0s paused reverse-linear" - assert_equals(getComputedStyle(test).outlineStyle, 'dotted'); - }, "outline-style is animated as a discrete type"); + // outline being a render-only property, its animation can be done off the main thread + // checking the values after the first paint is safer, hence requestAnimationFrame + setup({explicit_done:true}); + requestAnimationFrame(function() { + // synchronous tests being run during the page's first paint + test( + function(){ + var tests = document.querySelectorAll("div[id^='test']"); + assert_equals(getComputedStyle(tests[0]).outlineStyle, 'solid'); + assert_equals(getComputedStyle(tests[1]).outlineStyle, 'solid'); + assert_equals(getComputedStyle(tests[2]).outlineStyle, 'dotted'); + assert_equals(getComputedStyle(tests[3]).outlineStyle, 'dotted'); + }, "outline-style is animated as a discrete type" + ); + done(); + }); </script> </body> diff --git a/tests/wpt/web-platform-tests/css/support/grid.css b/tests/wpt/web-platform-tests/css/support/grid.css new file mode 100644 index 00000000000..602e114880a --- /dev/null +++ b/tests/wpt/web-platform-tests/css/support/grid.css @@ -0,0 +1,277 @@ +.grid { + display: grid; + background-color: grey; +} + +.inline-grid { + display: inline-grid; + background-color: grey; +} + +.firstRowFirstColumn { + background-color: blue; + grid-column: 1; + grid-row: 1; +} + +.onlyFirstRowOnlyFirstColumn { + background-color: blue; + grid-column: 1 / 2; + grid-row: 1 / 2; +} + +.firstRowSecondColumn { + background-color: lime; + grid-column: 2; + grid-row: 1; +} + +.onlyFirstRowOnlySecondColumn { + background-color: lime; + grid-column: 2 / 3; + grid-row: 1 / 2; +} + +.secondRowFirstColumn { + background-color: purple; + grid-column: 1; + grid-row: 2; +} + +.onlySecondRowOnlyFirstColumn { + background-color: purple; + grid-column: 1 / 2; + grid-row: 2 / 3; +} + +.secondRowSecondColumn { + background-color: orange; + grid-column: 2; + grid-row: 2; +} + +.onlySecondRowOnlySecondColumn { + background-color: orange; + grid-column: 2 / 3; + grid-row: 2 / 3; +} + +.endSecondRowEndSecondColumn { + background-color: orange; + grid-column-end: 3; + grid-row-end: 3; +} + +.thirdRowSecondColumn { + background-color: red; + grid-column: 2; + grid-row: 3; +} + +.firstRowThirdColumn { + background-color: magenta; + grid-column: 3; + grid-row: 1; +} + +.secondRowThirdColumn { + background-color: navy; + grid-column: 3; + grid-row: 2; +} + +.firstRowFourthColumn { + background-color: green; + grid-column: 4; + grid-row: 1; +} + +.secondRowFourthColumn { + background-color: pink; + grid-column: 4; + grid-row: 2; +} + +.firstAutoRowSecondAutoColumn { + grid-row: 1 / auto; + grid-column: 2 / auto; +} + +.autoLastRowAutoLastColumn { + grid-row: auto / -1; + grid-column: auto / -1; +} + +.autoSecondRowAutoFirstColumn { + grid-row: auto / 2; + grid-column: auto / 1; +} + +.firstRowBothColumn { + grid-row: 1; + grid-column: 1 / -1; +} + +.secondRowBothColumn { + grid-row: 2; + grid-column: 1 / -1; +} + +.bothRowFirstColumn { + grid-row: 1 / -1; + grid-column: 1; +} + +.bothRowSecondColumn { + grid-row: 1 / -1; + grid-column: 2; +} + +.bothRowBothColumn { + grid-row: 1 / -1; + grid-column: 1 / -1; +} + +/* Auto column / row. */ +.autoRowAutoColumn { + background-color: pink; + grid-column: auto; + grid-row: auto; +} + +.firstRowAutoColumn { + background-color: blue; + grid-column: auto; + grid-row: 1; +} + +.secondRowAutoColumn { + background-color: purple; + grid-column: auto; + grid-row: 2; +} + +.thirdRowAutoColumn { + background-color: navy; + grid-column: auto; + grid-row: 3; +} + +.autoRowFirstColumn { + background-color: lime; + grid-column: 1; + grid-row: auto; +} + +.autoRowSecondColumn { + background-color: orange; + grid-column: 2; + grid-row: auto; +} + +.autoRowThirdColumn { + background-color: magenta; + grid-column: 3; + grid-row: auto; +} + +.autoRowAutoColumnSpanning2 { + background-color: maroon; + grid-column: span 2; + grid-row: auto; +} + +.autoRowSpanning2AutoColumn { + background-color: aqua; + grid-column: auto; + grid-row: span 2; +} + +.autoRowSpanning2AutoColumnSpanning3 { + background-color: olive; + grid-column: span 3; + grid-row: span 2; +} + +.autoRowSpanning3AutoColumnSpanning2 { + background-color: indigo; + grid-column: span 2; + grid-row: span 3; +} + +.autoRowFirstColumnSpanning2 { + background-color: maroon; + grid-column: 1 / span 2; + grid-row: auto; +} + +.autoRowSecondColumnSpanning2 { + background-color: olive; + grid-column: 2 / span 2; + grid-row: auto; +} + +.firstRowSpanning2AutoColumn { + background-color: maroon; + grid-column: auto; + grid-row: 1 / span 2; + height: 100%; +} + +.secondRowSpanning2AutoColumn { + background-color: olive; + grid-column: auto; + grid-row: 2 / span 2; + height: 100%; +} + +/* Grid element flow. */ +.gridAutoFlowColumnSparse { + grid-auto-flow: column; +} + +.gridAutoFlowColumnDense { + grid-auto-flow: column dense; +} + +.gridAutoFlowRowSparse { + grid-auto-flow: row; +} + +.gridAutoFlowRowDense { + grid-auto-flow: row dense; +} + +/* This rule makes sure the container is smaller than any grid items to avoid distributing any extra logical space to them. */ +.constrainedContainer { + width: 10px; + height: 10px; +} + +.unconstrainedContainer { + width: 1000px; + height: 1000px; +} + +.sizedToGridArea { + font: 10px/1 Ahem; + /* Make us fit our grid area. */ + width: 100%; + height: 100%; +} + +.verticalRL { + writing-mode: vertical-rl; +} +.verticalLR { + writing-mode: vertical-lr; +} +.horizontalTB { + writing-mode: horizontal-tb; +} +.directionRTL { + direction: rtl; +} +.directionLTR { + direction: ltr; +} diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001-ref.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001-ref.html new file mode 100644 index 00000000000..c7553716ab6 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001-ref.html @@ -0,0 +1,62 @@ +<!DOCTYPE HTML> +<html> +<head> + <meta charset="utf-8"> + <title>CSS Reftest Reference</title> + <link rel="author" title="Yusuf Sermet" href="mailto:ysermet@mozilla.com"> + <style> + div { + position: relative; + width: 100px; + } + #div1, + #div3 { + background-color: #cfc; + } + #div1 { + z-index: 5; + } + #div2 { + z-index: 1; + background-color: #fdd; + height: 100px; + top: -20px; + } + #div2_1 { + background-color: #ffc; + z-index: 6; + top: -10px; + } + #div2_2 { + z-index: 3; + position: absolute; + top: -15px; + width: 40px; + height: 100px; + background-color: #ddf; + } + #div3 { + z-index: 2; + top: -50px; + } + </style> +</head> +<body> + <div id="div1"> + <br/><br/> + </div> + + <div id="div2"> + <div id="div2_1"> + <br/><br/> + </div> + + <div id="div2_2"> + </div> + </div> + + <div id="div3"> + <br/><br/> + </div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001a.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001a.html new file mode 100644 index 00000000000..71102b6c73a --- /dev/null +++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001a.html @@ -0,0 +1,66 @@ +<!DOCTYPE HTML> +<html> +<head> + <meta charset="utf-8"> + <title>CSS Test: 'contain: paint' with stacking contents. Z-index is defined only for siblings and children.</title> + <link rel="author" title="Yusuf Sermet" href="mailto:ysermet@mozilla.com"> + + <link rel="help" href="https://drafts.csswg.org/css2/visuren.html#x43"> + <link rel="help" href="https://drafts.csswg.org/css-contain/#containment-paint"> + <link rel="match" href="contain-paint-stacking-context-001-ref.html"> + <style> + div { + position: relative; + width: 100px; + } + #div1, + #div3 { + background-color: #cfc; + } + #div1 { + z-index: 5; + } + #div2 { + contain: paint; + background-color: #fdd; + height: 100px; + top: -20px; + } + #div2_1 { + background-color: #ffc; + z-index: 6; + top: -10px; + } + #div2_2 { + z-index: 3; + position: absolute; + top: -15px; + width: 40px; + height: 100px; + background-color: #ddf; + } + #div3 { + z-index: 2; + top: -50px; + } + </style> +</head> +<body> + <div id="div1"> + <br/><br/> + </div> + + <div id="div2"> + <div id="div2_1"> + <br/><br/> + </div> + + <div id="div2_2"> + </div> + </div> + + <div id="div3"> + <br/><br/> + </div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001b.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001b.html new file mode 100644 index 00000000000..0c4d3323bf7 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001b.html @@ -0,0 +1,66 @@ +<!DOCTYPE HTML> +<html> +<head> + <meta charset="utf-8"> + <title>CSS Test: 'will-change: contain' with stacking contents. Z-index is defined only for siblings and children.</title> + <link rel="author" title="Yusuf Sermet" href="mailto:ysermet@mozilla.com"> + + <link rel="help" href="https://drafts.csswg.org/css2/visuren.html#x43"> + <link rel="help" href="https://drafts.csswg.org/css-contain/#containment-paint"> + <link rel="match" href="contain-paint-stacking-context-001-ref.html"> + <style> + div { + position: relative; + width: 100px; + } + #div1, + #div3 { + background-color: #cfc; + } + #div1 { + z-index: 5; + } + #div2 { + will-change: contain; + background-color: #fdd; + height: 100px; + top: -20px; + } + #div2_1 { + background-color: #ffc; + z-index: 6; + top: -10px; + } + #div2_2 { + z-index: 3; + position: absolute; + top: -15px; + width: 40px; + height: 100px; + background-color: #ddf; + } + #div3 { + z-index: 2; + top: -50px; + } + </style> +</head> +<body> + <div id="div1"> + <br/><br/> + </div> + + <div id="div2"> + <div id="div2_1"> + <br/><br/> + </div> + + <div id="div2_2"> + </div> + </div> + + <div id="div3"> + <br/><br/> + </div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/contain/reftest.list b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/contain/reftest.list index 44b041364ef..39dd1318e18 100644 --- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/contain/reftest.list +++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/contain/reftest.list @@ -8,3 +8,5 @@ == contain-paint-containing-block-fixed-001.html contain-paint-containing-block-fixed-001-ref.html == contain-paint-formatting-context-float-001.html contain-paint-formatting-context-float-001-ref.html == contain-paint-formatting-context-margin-001.html contain-paint-formatting-context-margin-001-ref.html +== contain-paint-stacking-context-001a.html contain-paint-stacking-context-001-ref.html +== contain-paint-stacking-context-001b.html contain-paint-stacking-context-001-ref.html diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/reftest.list b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/reftest.list index fbee28923a4..33be87f02cb 100644 --- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/reftest.list +++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/reftest.list @@ -43,14 +43,10 @@ == shape-outside-circle-036.html shape-outside-circle-036-ref.html == shape-outside-circle-037.html shape-outside-circle-036-ref.html == shape-outside-circle-038.html shape-outside-circle-036-ref.html -== shape-outside-circle-039.html shape-outside-circle-039-ref.html -== shape-outside-circle-040.html shape-outside-circle-039-ref.html == shape-outside-circle-041.html shape-outside-circle-041-ref.html == shape-outside-circle-042.html shape-outside-circle-042-ref.html == shape-outside-circle-043.html shape-outside-circle-042-ref.html == shape-outside-circle-044.html shape-outside-circle-042-ref.html -== shape-outside-circle-045.html shape-outside-circle-045-ref.html -== shape-outside-circle-046.html shape-outside-circle-045-ref.html == shape-outside-circle-047.html shape-outside-circle-047-ref.html == shape-outside-circle-048.html shape-outside-circle-048-ref.html == shape-outside-circle-049.html shape-outside-circle-049-ref.html @@ -88,8 +84,6 @@ # Basic shape: inset() == shape-outside-inset-016.html shape-outside-inset-016-ref.html == shape-outside-inset-017.html shape-outside-inset-017-ref.html -== shape-outside-inset-018.html shape-outside-inset-018-ref.html -== shape-outside-inset-019.html shape-outside-inset-019-ref.html == shape-outside-inset-020.html shape-outside-inset-020-ref.html == shape-outside-inset-021.html shape-outside-inset-021-ref.html == shape-outside-inset-022.html shape-outside-inset-022-ref.html @@ -108,10 +102,4 @@ == shape-outside-polygon-023.html shape-outside-polygon-023-ref.html == shape-outside-polygon-024.html shape-outside-polygon-024-ref.html == shape-outside-polygon-025.html shape-outside-polygon-025-ref.html -== shape-outside-polygon-026.html shape-outside-polygon-026-ref.html -== shape-outside-polygon-027.html shape-outside-polygon-027-ref.html -== shape-outside-polygon-028.html shape-outside-polygon-026-ref.html -== shape-outside-polygon-029.html shape-outside-polygon-027-ref.html -== shape-outside-polygon-030.html shape-outside-polygon-030-ref.html -== shape-outside-polygon-031.html shape-outside-polygon-031-ref.html == shape-outside-polygon-032.html shape-outside-polygon-032-ref.html diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-039-ref.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-039-ref.html deleted file mode 100644 index eee9701e002..00000000000 --- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-039-ref.html +++ /dev/null @@ -1,46 +0,0 @@ -<!DOCTYPE html> -<!-- Any copyright is dedicated to the Public Domain. - - http://creativecommons.org/publicdomain/zero/1.0/ --> - -<html> - <meta charset="utf-8"> - <title>CSS Shape Test: float left, circle(0%) border-box reference</title> - <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> - <link rel="author" title="Mozilla" href="http://www.mozilla.org/"> - <style> - .container { - position: absolute; - width: 200px; - line-height: 0; - } - - .shape { - float: left; - /* Omit shape-outside */ - clip-path: circle(0%) border-box; - box-sizing: content-box; - height: 20px; - width: 20px; - padding: 20px; - border: 20px solid lightgreen; - margin: 10px; - background-color: orange; - } - - .box { - position: absolute; - width: 200px; - background-color: blue; - } - </style> - - <body class="container"> - <div class="shape"></div> - <div class="box" style="height: 12px; top: 0px; left: 0px;"></div> - <div class="box" style="height: 12px; top: 12px; left: 0px;"></div> - <div class="box" style="height: 36px; top: 24px; left: 0px;"></div> - <div class="box" style="height: 36px; top: 60px; left: 0px;"></div> - <div class="box" style="height: 12px; top: 96px; left: 0px;"></div> - <div class="box" style="height: 12px; top: 108px; left: 0px;"></div> - </body> -</html> diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-039.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-039.html deleted file mode 100644 index 833e0a788b0..00000000000 --- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-039.html +++ /dev/null @@ -1,49 +0,0 @@ -<!DOCTYPE html> -<!-- Any copyright is dedicated to the Public Domain. - - http://creativecommons.org/publicdomain/zero/1.0/ --> - -<html> - <meta charset="utf-8"> - <title>CSS Shape Test: float left, circle(0%) border-box</title> - <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> - <link rel="author" title="Mozilla" href="http://www.mozilla.org/"> - <link rel="help" href="https://drafts.csswg.org/css-shapes-1/#supported-basic-shapes"> - <link rel="match" href="shape-outside-circle-039-ref.html"> - <meta name="flags" content=""> - <meta name="assert" content="Test the left float shape defines an empty float area by the basic shape circle(0%) border-box value."> - <style> - .container { - width: 200px; - line-height: 0; - } - - .shape { - float: left; - shape-outside: circle(0%) border-box; - clip-path: circle(0%) border-box; - box-sizing: content-box; - height: 40px; - width: 40px; - padding: 20px; - border: 20px solid lightgreen; - margin: 10px; - background-color: orange; - } - - .box { - display: inline-block; - width: 200px; - background-color: blue; - } - </style> - - <body class="container"> - <div class="shape"></div> - <div class="box" style="height: 12px;"></div> - <div class="box" style="height: 12px;"></div> - <div class="box" style="height: 36px;"></div> - <div class="box" style="height: 36px;"></div> - <div class="box" style="height: 12px;"></div> - <div class="box" style="height: 12px;"></div> - </body> -</html> diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-040.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-040.html deleted file mode 100644 index e1beda86d1f..00000000000 --- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-040.html +++ /dev/null @@ -1,49 +0,0 @@ -<!DOCTYPE html> -<!-- Any copyright is dedicated to the Public Domain. - - http://creativecommons.org/publicdomain/zero/1.0/ --> - -<html> - <meta charset="utf-8"> - <title>CSS Shape Test: float left, circle(closest-side at left center) border-box</title> - <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> - <link rel="author" title="Mozilla" href="http://www.mozilla.org/"> - <link rel="help" href="https://drafts.csswg.org/css-shapes-1/#supported-basic-shapes"> - <link rel="match" href="shape-outside-circle-039-ref.html"> - <meta name="flags" content=""> - <meta name="assert" content="Test the left float shape defines an empty float area by the basic shape circle(closest-side at left center) border-box value."> - <style> - .container { - width: 200px; - line-height: 0; - } - - .shape { - float: left; - shape-outside: circle(closest-side at left center) border-box; - clip-path: circle(closest-side at left center) border-box; - box-sizing: content-box; - height: 40px; - width: 40px; - padding: 20px; - border: 20px solid lightgreen; - margin: 10px; - background-color: orange; - } - - .box { - display: inline-block; - width: 200px; - background-color: blue; - } - </style> - - <body class="container"> - <div class="shape"></div> - <div class="box" style="height: 12px;"></div> - <div class="box" style="height: 12px;"></div> - <div class="box" style="height: 36px;"></div> - <div class="box" style="height: 36px;"></div> - <div class="box" style="height: 12px;"></div> - <div class="box" style="height: 12px;"></div> - </body> -</html> diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-045-ref.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-045-ref.html deleted file mode 100644 index 843c8bad940..00000000000 --- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-045-ref.html +++ /dev/null @@ -1,47 +0,0 @@ -<!DOCTYPE html> -<!-- Any copyright is dedicated to the Public Domain. - - http://creativecommons.org/publicdomain/zero/1.0/ --> - -<html> - <meta charset="utf-8"> - <title>CSS Shape Test: float right, circle(0%) border-box reference</title> - <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> - <link rel="author" title="Mozilla" href="http://www.mozilla.org/"> - <style> - .container { - direction: rtl; - position: absolute; - width: 200px; - line-height: 0; - } - - .shape { - float: right; - /* Omit shape-outside */ - clip-path: circle(0%) border-box; - box-sizing: content-box; - height: 20px; - width: 20px; - padding: 20px; - border: 20px solid lightgreen; - margin: 10px; - background-color: orange; - } - - .box { - position: absolute; - width: 200px; - background-color: blue; - } - </style> - - <body class="container"> - <div class="shape"></div> - <div class="box" style="height: 12px; top: 0px; right: 0px;"></div> - <div class="box" style="height: 12px; top: 12px; right: 0px;"></div> - <div class="box" style="height: 36px; top: 24px; right: 0px;"></div> - <div class="box" style="height: 36px; top: 60px; right: 0px;"></div> - <div class="box" style="height: 12px; top: 96px; right: 0px;"></div> - <div class="box" style="height: 12px; top: 108px; right: 0px;"></div> - </body> -</html> diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-045.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-045.html deleted file mode 100644 index 42c73fd5fae..00000000000 --- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-045.html +++ /dev/null @@ -1,50 +0,0 @@ -<!DOCTYPE html> -<!-- Any copyright is dedicated to the Public Domain. - - http://creativecommons.org/publicdomain/zero/1.0/ --> - -<html> - <meta charset="utf-8"> - <title>CSS Shape Test: float right, circle(0%) border-box</title> - <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> - <link rel="author" title="Mozilla" href="http://www.mozilla.org/"> - <link rel="help" href="https://drafts.csswg.org/css-shapes-1/#supported-basic-shapes"> - <link rel="match" href="shape-outside-circle-045-ref.html"> - <meta name="flags" content=""> - <meta name="assert" content="Test the right float shape defines an empty float area by the basic shape circle(0%) border-box value."> - <style> - .container { - direction: rtl; - width: 200px; - line-height: 0; - } - - .shape { - float: right; - shape-outside: circle(0%) border-box; - clip-path: circle(0%) border-box; - box-sizing: content-box; - height: 40px; - width: 40px; - padding: 20px; - border: 20px solid lightgreen; - margin: 10px; - background-color: orange; - } - - .box { - display: inline-block; - width: 200px; - background-color: blue; - } - </style> - - <body class="container"> - <div class="shape"></div> - <div class="box" style="height: 12px;"></div> - <div class="box" style="height: 12px;"></div> - <div class="box" style="height: 36px;"></div> - <div class="box" style="height: 36px;"></div> - <div class="box" style="height: 12px;"></div> - <div class="box" style="height: 12px;"></div> - </body> -</html> diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-046.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-046.html deleted file mode 100644 index 7cfc406570e..00000000000 --- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-circle-046.html +++ /dev/null @@ -1,50 +0,0 @@ -<!DOCTYPE html> -<!-- Any copyright is dedicated to the Public Domain. - - http://creativecommons.org/publicdomain/zero/1.0/ --> - -<html> - <meta charset="utf-8"> - <title>CSS Shape Test: float right, circle(closest-side at right center) border-box</title> - <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> - <link rel="author" title="Mozilla" href="http://www.mozilla.org/"> - <link rel="help" href="https://drafts.csswg.org/css-shapes-1/#supported-basic-shapes"> - <link rel="match" href="shape-outside-circle-045-ref.html"> - <meta name="flags" content=""> - <meta name="assert" content="Test the right float shape defines an empty float area by the basic shape circle(closest-side at right center) border-box value."> - <style> - .container { - direction: rtl; - width: 200px; - line-height: 0; - } - - .shape { - float: right; - shape-outside: circle(closest-side at right center) border-box; - clip-path: circle(closest-side at right center) border-box; - box-sizing: content-box; - height: 40px; - width: 40px; - padding: 20px; - border: 20px solid lightgreen; - margin: 10px; - background-color: orange; - } - - .box { - display: inline-block; - width: 200px; - background-color: blue; - } - </style> - - <body class="container"> - <div class="shape"></div> - <div class="box" style="height: 12px;"></div> - <div class="box" style="height: 12px;"></div> - <div class="box" style="height: 36px;"></div> - <div class="box" style="height: 36px;"></div> - <div class="box" style="height: 12px;"></div> - <div class="box" style="height: 12px;"></div> - </body> -</html> diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-018-ref.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-018-ref.html deleted file mode 100644 index f4e47641407..00000000000 --- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-018-ref.html +++ /dev/null @@ -1,44 +0,0 @@ -<!DOCTYPE html> -<!-- Any copyright is dedicated to the Public Domain. - - http://creativecommons.org/publicdomain/zero/1.0/ --> - -<html> - <meta charset="utf-8"> - <title>CSS Shape Test: float left, inset(50%) reference</title> - <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> - <link rel="author" title="Mozilla" href="http://www.mozilla.org/"> - <style> - .container { - position: absolute; - width: 200px; - line-height: 0; - } - - .shape { - float: left; - /* Omit shape-outside */ - clip-path: inset(50%); - box-sizing: content-box; - height: 40px; - width: 40px; - padding: 20px; - border: 20px solid lightgreen; - margin: 20px; - background-color: orange; - } - - .box { - position: absolute; - width: 200px; - background-color: blue; - } - </style> - - <body class="container"> - <div class="shape"></div> - <div class="box" style="height: 24px; top: 0; left: 0;"></div> - <div class="box" style="height: 36px; top: 24px; left: 0;"></div> - <div class="box" style="height: 36px; top: 60px; left: 0;"></div> - <div class="box" style="height: 24px; top: 96px; left: 0;"></div> - </body> -</html> diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-018.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-018.html deleted file mode 100644 index b784677bd1b..00000000000 --- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-018.html +++ /dev/null @@ -1,47 +0,0 @@ -<!DOCTYPE html> -<!-- Any copyright is dedicated to the Public Domain. - - http://creativecommons.org/publicdomain/zero/1.0/ --> - -<html> - <meta charset="utf-8"> - <title>CSS Shape Test: float left, inset(50%)</title> - <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> - <link rel="author" title="Mozilla" href="http://www.mozilla.org/"> - <link rel="help" href="https://drafts.csswg.org/css-shapes-1/#supported-basic-shapes"> - <link rel="match" href="shape-outside-inset-018-ref.html"> - <meta name="flags" content=""> - <meta name="assert" content="Test the left float shape defines an empty float area by the basic shape inset(50%) value."> - <style> - .container { - width: 200px; - line-height: 0; - } - - .shape { - float: left; - shape-outside: inset(50%); - clip-path: inset(50%); - box-sizing: content-box; - height: 40px; - width: 40px; - padding: 20px; - border: 20px solid lightgreen; - margin: 20px; - background-color: orange; - } - - .box { - display: inline-block; - width: 200px; - background-color: blue; - } - </style> - - <body class="container"> - <div class="shape"></div> - <div class="box" style="height: 24px;"></div> - <div class="box" style="height: 36px;"></div> - <div class="box" style="height: 36px;"></div> - <div class="box" style="height: 24px;"></div> - </body> -</html> diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-019-ref.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-019-ref.html deleted file mode 100644 index 1e0a3f34152..00000000000 --- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-019-ref.html +++ /dev/null @@ -1,45 +0,0 @@ -<!DOCTYPE html> -<!-- Any copyright is dedicated to the Public Domain. - - http://creativecommons.org/publicdomain/zero/1.0/ --> - -<html> - <meta charset="utf-8"> - <title>CSS Shape Test: float right, inset(50%) reference</title> - <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> - <link rel="author" title="Mozilla" href="http://www.mozilla.org/"> - <style> - .container { - direction: rtl; - position: absolute; - width: 200px; - line-height: 0; - } - - .shape { - float: right; - /* Omit shape-outside */ - clip-path: inset(50%); - box-sizing: content-box; - height: 40px; - width: 40px; - padding: 20px; - border: 20px solid lightgreen; - margin: 20px; - background-color: orange; - } - - .box { - position: absolute; - width: 200px; - background-color: blue; - } - </style> - - <body class="container"> - <div class="shape"></div> - <div class="box" style="height: 24px; top: 0; right: 0;"></div> - <div class="box" style="height: 36px; top: 24px; right: 0;"></div> - <div class="box" style="height: 36px; top: 60px; right: 0;"></div> - <div class="box" style="height: 24px; top: 96px; right: 0;"></div> - </body> -</html> diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-019.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-019.html deleted file mode 100644 index c6eeb137209..00000000000 --- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-019.html +++ /dev/null @@ -1,48 +0,0 @@ -<!DOCTYPE html> -<!-- Any copyright is dedicated to the Public Domain. - - http://creativecommons.org/publicdomain/zero/1.0/ --> - -<html> - <meta charset="utf-8"> - <title>CSS Shape Test: float right, inset(50%)</title> - <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> - <link rel="author" title="Mozilla" href="http://www.mozilla.org/"> - <link rel="help" href="https://drafts.csswg.org/css-shapes-1/#supported-basic-shapes"> - <link rel="match" href="shape-outside-inset-019-ref.html"> - <meta name="flags" content=""> - <meta name="assert" content="Test the right float shape defines an empty float area by the basic shape inset(50%) value."> - <style> - .container { - direction: rtl; - width: 200px; - line-height: 0; - } - - .shape { - float: right; - shape-outside: inset(50%); - clip-path: inset(50%); - box-sizing: content-box; - height: 40px; - width: 40px; - padding: 20px; - border: 20px solid lightgreen; - margin: 20px; - background-color: orange; - } - - .box { - display: inline-block; - width: 200px; - background-color: blue; - } - </style> - - <body class="container"> - <div class="shape"></div> - <div class="box" style="height: 24px;"></div> - <div class="box" style="height: 36px;"></div> - <div class="box" style="height: 36px;"></div> - <div class="box" style="height: 24px;"></div> - </body> -</html> diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-026-ref.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-026-ref.html deleted file mode 100644 index 3237b6dd5fd..00000000000 --- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-026-ref.html +++ /dev/null @@ -1,50 +0,0 @@ -<!DOCTYPE html> -<!-- Any copyright is dedicated to the Public Domain. - - http://creativecommons.org/publicdomain/zero/1.0/ --> - -<html> - <meta charset="utf-8"> - <title>CSS Shape Test: float left, polygon(60px 20px, 100px 60px) border-box reference</title> - <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> - <link rel="author" title="Mozilla" href="http://www.mozilla.org/"> - <style> - .container { - position: absolute; - width: 200px; - line-height: 0; - } - - .shape { - float: left; - /* Omit shape-outside */ - clip-path: polygon(60px 20px, 100px 60px) border-box; - box-sizing: content-box; - height: 40px; - width: 40px; - padding: 20px; - border: 20px solid lightgreen; - margin: 20px; - background-color: orange; - } - - .box { - position: absolute; - width: 80px; - background-color: blue; - } - - .long { - width: 200px; - } - </style> - - <body class="container"> - <div class="shape"></div> - <div class="long box" style="height: 30px; top: 0; left: 0;"></div> - <div class="long box" style="height: 30px; top: 30px; left: 0;"></div> - <div class="long box" style="height: 20px; top: 60px; left: 0;"></div> - <div class="long box" style="height: 20px; top: 80px; left: 0;"></div> - <div class="long box" style="height: 30px; top: 100px; left: 0;"></div> - <div class="long box" style="height: 30px; top: 130px; left: 0;"></div> - </body> -</html> diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-026.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-026.html deleted file mode 100644 index 29e4ccaee4a..00000000000 --- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-026.html +++ /dev/null @@ -1,54 +0,0 @@ -<!DOCTYPE html> -<!-- Any copyright is dedicated to the Public Domain. - - http://creativecommons.org/publicdomain/zero/1.0/ --> - -<html> - <meta charset="utf-8"> - <title>CSS Shape Test: float left, polygon(60px 20px, 100px 60px) border-box</title> - <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> - <link rel="author" title="Mozilla" href="http://www.mozilla.org/"> - <link rel="help" href="https://drafts.csswg.org/css-shapes-1/#supported-basic-shapes"> - <link rel="match" href="shape-outside-polygon-026-ref.html"> - <meta name="flags" content=""> - <meta name="assert" content="Test the left float shape defines an empty float area by the polygon(60px 20px, 100px 60px) border-box value."> - <style> - .container { - width: 200px; - line-height: 0; - } - - .shape { - float: left; - /* Less than three vertices, resulting an empty area. */ - shape-outside: polygon(60px 20px, 100px 60px) border-box; - clip-path: polygon(60px 20px, 100px 60px) border-box; - box-sizing: content-box; - height: 40px; - width: 40px; - padding: 20px; - margin: 20px; - border: 20px solid lightgreen; - background-color: orange; - } - - .box { - display: inline-block; - width: 80px; - background-color: blue; - } - - .long { - width: 200px; - } - </style> - - <body class="container"> - <div class="shape"></div> - <div class="long box" style="height: 30px;"></div> - <div class="long box" style="height: 30px;"></div> - <div class="long box" style="height: 20px;"></div> - <div class="long box" style="height: 20px;"></div> - <div class="long box" style="height: 30px;"></div> - <div class="long box" style="height: 30px;"></div> - </body> -</html> diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-027-ref.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-027-ref.html deleted file mode 100644 index bbc9af6ab23..00000000000 --- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-027-ref.html +++ /dev/null @@ -1,50 +0,0 @@ -<!DOCTYPE html> -<!-- Any copyright is dedicated to the Public Domain. - - http://creativecommons.org/publicdomain/zero/1.0/ --> - -<html> - <meta charset="utf-8"> - <title>CSS Shape Test: float right, polygon(60px 20px, 100px 60px) border-box reference</title> - <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> - <link rel="author" title="Mozilla" href="http://www.mozilla.org/"> - <style> - .container { - position: absolute; - width: 200px; - line-height: 0; - } - - .shape { - float: right; - /* Omit shape-outside */ - clip-path: polygon(60px 20px, 100px 60px) border-box; - box-sizing: content-box; - height: 40px; - width: 40px; - padding: 20px; - border: 20px solid lightgreen; - margin: 20px; - background-color: orange; - } - - .box { - position: absolute; - width: 80px; - background-color: blue; - } - - .long { - width: 200px; - } - </style> - - <body class="container"> - <div class="shape"></div> - <div class="long box" style="height: 30px; top: 0; right: 0;"></div> - <div class="long box" style="height: 30px; top: 30px; right: 0;"></div> - <div class="long box" style="height: 20px; top: 60px; right: 0;"></div> - <div class="long box" style="height: 20px; top: 80px; right: 0;"></div> - <div class="long box" style="height: 30px; top: 100px; right: 0;"></div> - <div class="long box" style="height: 30px; top: 130px; right: 0;"></div> - </body> -</html> diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-027.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-027.html deleted file mode 100644 index 6507b0486ac..00000000000 --- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-027.html +++ /dev/null @@ -1,54 +0,0 @@ -<!DOCTYPE html> -<!-- Any copyright is dedicated to the Public Domain. - - http://creativecommons.org/publicdomain/zero/1.0/ --> - -<html> - <meta charset="utf-8"> - <title>CSS Shape Test: float right, polygon(60px 20px, 100px 60px) border-box</title> - <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> - <link rel="author" title="Mozilla" href="http://www.mozilla.org/"> - <link rel="help" href="https://drafts.csswg.org/css-shapes-1/#supported-basic-shapes"> - <link rel="match" href="shape-outside-polygon-027-ref.html"> - <meta name="flags" content=""> - <meta name="assert" content="Test the right float shape defines an empty float area by the polygon(60px 20px, 100px 60px) border-box value."> - <style> - .container { - width: 200px; - line-height: 0; - } - - .shape { - float: right; - /* Less than three vertices, resulting an empty area. */ - shape-outside: polygon(60px 20px, 100px 60px) border-box; - clip-path: polygon(60px 20px, 100px 60px) border-box; - box-sizing: content-box; - height: 40px; - width: 40px; - padding: 20px; - margin: 20px; - border: 20px solid lightgreen; - background-color: orange; - } - - .box { - display: inline-block; - width: 80px; - background-color: blue; - } - - .long { - width: 200px; - } - </style> - - <body class="container"> - <div class="shape"></div> - <div class="long box" style="height: 30px;"></div> - <div class="long box" style="height: 30px;"></div> - <div class="long box" style="height: 20px;"></div> - <div class="long box" style="height: 20px;"></div> - <div class="long box" style="height: 30px;"></div> - <div class="long box" style="height: 30px;"></div> - </body> -</html> diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-028.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-028.html deleted file mode 100644 index 4695a377c42..00000000000 --- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-028.html +++ /dev/null @@ -1,54 +0,0 @@ -<!DOCTYPE html> -<!-- Any copyright is dedicated to the Public Domain. - - http://creativecommons.org/publicdomain/zero/1.0/ --> - -<html> - <meta charset="utf-8"> - <title>CSS Shape Test: float left, polygon(50% 50%, 0% 0%, 20% 20%, 100% 100%) border-box</title> - <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> - <link rel="author" title="Mozilla" href="http://www.mozilla.org/"> - <link rel="help" href="https://drafts.csswg.org/css-shapes-1/#supported-basic-shapes"> - <link rel="match" href="shape-outside-polygon-026-ref.html"> - <meta name="flags" content=""> - <meta name="assert" content="Test the left float shape defines an empty float area by the polygon(50% 50%, 0% 0%, 20% 20%, 100% 100%) border-box value."> - <style> - .container { - width: 200px; - line-height: 0; - } - - .shape { - float: left; - /* All vertices are collinear, resulting an empty area. */ - shape-outside: polygon(50% 50%, 0% 0%, 20% 20%, 100% 100%) border-box; - clip-path: polygon(50% 50%, 0% 0%, 20% 20%, 100% 100%) border-box; - box-sizing: content-box; - height: 40px; - width: 40px; - padding: 20px; - margin: 20px; - border: 20px solid lightgreen; - background-color: orange; - } - - .box { - display: inline-block; - width: 80px; - background-color: blue; - } - - .long { - width: 200px; - } - </style> - - <body class="container"> - <div class="shape"></div> - <div class="long box" style="height: 30px;"></div> - <div class="long box" style="height: 30px;"></div> - <div class="long box" style="height: 20px;"></div> - <div class="long box" style="height: 20px;"></div> - <div class="long box" style="height: 30px;"></div> - <div class="long box" style="height: 30px;"></div> - </body> -</html> diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-029.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-029.html deleted file mode 100644 index ac94bf14e8c..00000000000 --- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-029.html +++ /dev/null @@ -1,55 +0,0 @@ -<!DOCTYPE html> -<!-- Any copyright is dedicated to the Public Domain. - - http://creativecommons.org/publicdomain/zero/1.0/ --> - -<html> - <meta charset="utf-8"> - <title>CSS Shape Test: float right, polygon(50% 50%, 0% 0%, 20% 20%, 100% 100%) border-box</title> - <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> - <link rel="author" title="Mozilla" href="http://www.mozilla.org/"> - <link rel="help" href="https://drafts.csswg.org/css-shapes-1/#supported-basic-shapes"> - <link rel="match" href="shape-outside-polygon-027-ref.html"> - <meta name="flags" content=""> - <meta name="assert" content="Test the right float shape defines an empty float area by the polygon(50% 50%, 0% 0%, 20% 20%, 100% 100%) border-box value."> - <style> - .container { - direction: rtl; - width: 200px; - line-height: 0; - } - - .shape { - float: right; - /* All vertices are collinear, resulting an empty area. */ - shape-outside: polygon(50% 50%, 0% 0%, 20% 20%, 100% 100%) border-box; - clip-path: polygon(50% 50%, 0% 0%, 20% 20%, 100% 100%) border-box; - box-sizing: content-box; - height: 40px; - width: 40px; - padding: 20px; - margin: 20px; - border: 20px solid lightgreen; - background-color: orange; - } - - .box { - display: inline-block; - width: 80px; - background-color: blue; - } - - .long { - width: 200px; - } - </style> - - <body class="container"> - <div class="shape"></div> - <div class="long box" style="height: 30px;"></div> - <div class="long box" style="height: 30px;"></div> - <div class="long box" style="height: 20px;"></div> - <div class="long box" style="height: 20px;"></div> - <div class="long box" style="height: 30px;"></div> - <div class="long box" style="height: 30px;"></div> - </body> -</html> diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-030-ref.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-030-ref.html deleted file mode 100644 index 3ea0025830e..00000000000 --- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-030-ref.html +++ /dev/null @@ -1,46 +0,0 @@ -<!DOCTYPE html> -<!-- Any copyright is dedicated to the Public Domain. - - http://creativecommons.org/publicdomain/zero/1.0/ --> - -<html> - <meta charset="utf-8"> - <title>CSS Shape Test: float left, polygon(0% 0%, 50% 0%, 100% 0%, 50% 0%, 50% 100%, 100% 100%, 50% 100%) border-box reference</title> - <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> - <link rel="author" title="Mozilla" href="http://www.mozilla.org/"> - <style> - .container { - position: absolute; - width: 200px; - line-height: 0; - } - - .shape { - float: left; - /* Omit shape-outside */ - clip-path: polygon(0% 0%, 50% 0%, 100% 0%, 50% 0%, 50% 100%, 100% 100%, 50% 100%) border-box; - box-sizing: content-box; - height: 40px; - width: 40px; - padding: 20px; - border: 20px solid lightgreen; - margin: 20px; - background-color: orange; - } - - .box { - position: absolute; - width: 80px; - background-color: blue; - } - </style> - - <body class="container"> - <div class="shape"></div> - <div class="box" style="height: 30px; top: 0; left: 80px;"></div> - <div class="box" style="height: 30px; top: 30px; left: 80px;"></div> - <div class="box" style="height: 20px; top: 60px; left: 80px;"></div> - <div class="box" style="height: 20px; top: 80px; left: 80px;"></div> - <div class="box" style="height: 30px; top: 100px; left: 80px;"></div> - <div class="box" style="height: 30px; top: 130px; left: 80px;"></div> - </body> -</html> diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-030.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-030.html deleted file mode 100644 index 5e98fc3f99e..00000000000 --- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-030.html +++ /dev/null @@ -1,50 +0,0 @@ -<!DOCTYPE html> -<!-- Any copyright is dedicated to the Public Domain. - - http://creativecommons.org/publicdomain/zero/1.0/ --> - -<html> - <meta charset="utf-8"> - <title>CSS Shape Test: float left, polygon(0% 0%, 50% 0%, 100% 0%, 50% 0%, 50% 100%, 100% 100%, 50% 100%) border-box</title> - <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> - <link rel="author" title="Mozilla" href="http://www.mozilla.org/"> - <link rel="help" href="https://drafts.csswg.org/css-shapes-1/#supported-basic-shapes"> - <link rel="match" href="shape-outside-polygon-030-ref.html"> - <meta name="flags" content=""> - <meta name="assert" content="Test the boxes are wrapping around the left float shape defined by the polygon(0% 0%, 50% 0%, 100% 0%, 50% 0%, 50% 100%, 100% 100%, 50% 100%) border-box value."> - <style> - .container { - width: 200px; - line-height: 0; - } - - .shape { - float: left; - /* polygon contains horizontal lines. */ - shape-outside: polygon(0% 0%, 50% 0%, 100% 0%, 50% 0%, 50% 100%, 100% 100%, 50% 100%) border-box; - clip-path: polygon(0% 0%, 50% 0%, 100% 0%, 50% 0%, 50% 100%, 100% 100%, 50% 100%) border-box; - box-sizing: content-box; - height: 40px; - width: 40px; - padding: 20px; - margin: 20px; - border: 20px solid lightgreen; - background-color: orange; - } - - .box { - display: inline-block; - width: 80px; - background-color: blue; - } - </style> - - <body class="container"> - <div class="shape"></div> - <div class="box" style="height: 30px;"></div> - <div class="box" style="height: 30px;"></div> - <div class="box" style="height: 20px;"></div> - <div class="box" style="height: 20px;"></div> - <div class="box" style="height: 30px;"></div> - <div class="box" style="height: 30px;"></div> - </body> -</html> diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-031-ref.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-031-ref.html deleted file mode 100644 index 5412c77dac0..00000000000 --- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-031-ref.html +++ /dev/null @@ -1,47 +0,0 @@ -<!DOCTYPE html> -<!-- Any copyright is dedicated to the Public Domain. - - http://creativecommons.org/publicdomain/zero/1.0/ --> - -<html> - <meta charset="utf-8"> - <title>CSS Shape Test: float right, polygon(100% 0%, 50% 0%, 0% 0%, 50% 0%, 50% 100%, 0% 100%, 50% 100%) border-box reference</title> - <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> - <link rel="author" title="Mozilla" href="http://www.mozilla.org/"> - <style> - .container { - direction: rtl; - position: absolute; - width: 200px; - line-height: 0; - } - - .shape { - float: right; - /* Omit shape-outside */ - clip-path: polygon(100% 0%, 50% 0%, 0% 0%, 50% 0%, 50% 100%, 0% 100%, 50% 100%) border-box; - box-sizing: content-box; - height: 40px; - width: 40px; - padding: 20px; - border: 20px solid lightgreen; - margin: 20px; - background-color: orange; - } - - .box { - position: absolute; - width: 80px; - background-color: blue; - } - </style> - - <body class="container"> - <div class="shape"></div> - <div class="box" style="height: 30px; top: 0; right: 80px;"></div> - <div class="box" style="height: 30px; top: 30px; right: 80px;"></div> - <div class="box" style="height: 20px; top: 60px; right: 80px;"></div> - <div class="box" style="height: 20px; top: 80px; right: 80px;"></div> - <div class="box" style="height: 30px; top: 100px; right: 80px;"></div> - <div class="box" style="height: 30px; top: 130px; right: 80px;"></div> - </body> -</html> diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-031.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-031.html deleted file mode 100644 index 747248eaf85..00000000000 --- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-polygon-031.html +++ /dev/null @@ -1,51 +0,0 @@ -<!DOCTYPE html> -<!-- Any copyright is dedicated to the Public Domain. - - http://creativecommons.org/publicdomain/zero/1.0/ --> - -<html> - <meta charset="utf-8"> - <title>CSS Shape Test: float right, polygon(100% 0%, 50% 0%, 0% 0%, 50% 0%, 50% 100%, 0% 100%, 50% 100%) border-box</title> - <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> - <link rel="author" title="Mozilla" href="http://www.mozilla.org/"> - <link rel="help" href="https://drafts.csswg.org/css-shapes-1/#supported-basic-shapes"> - <link rel="match" href="shape-outside-polygon-031-ref.html"> - <meta name="flags" content=""> - <meta name="assert" content="Test the boxes are wrapping around the right float shape defined by the polygon(100% 0%, 50% 0%, 0% 0%, 50% 0%, 50% 100%, 0% 100%, 50% 100%) border-box value."> - <style> - .container { - direction: rtl; - width: 200px; - line-height: 0; - } - - .shape { - float: right; - /* polygon contains horizontal lines. */ - shape-outside: polygon(100% 0%, 50% 0%, 0% 0%, 50% 0%, 50% 100%, 0% 100%, 50% 100%) border-box; - clip-path: polygon(100% 0%, 50% 0%, 0% 0%, 50% 0%, 50% 100%, 0% 100%, 50% 100%) border-box; - box-sizing: content-box; - height: 40px; - width: 40px; - padding: 20px; - margin: 20px; - border: 20px solid lightgreen; - background-color: orange; - } - - .box { - display: inline-block; - width: 80px; - background-color: blue; - } - </style> - - <body class="container"> - <div class="shape"></div> - <div class="box" style="height: 30px;"></div> - <div class="box" style="height: 30px;"></div> - <div class="box" style="height: 20px;"></div> - <div class="box" style="height: 20px;"></div> - <div class="box" style="height: 30px;"></div> - <div class="box" style="height: 30px;"></div> - </body> -</html> diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/sync-tests-filter b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/sync-tests-filter index 3f780b1c981..1d487fe3a98 100644 --- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/sync-tests-filter +++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/sync-tests-filter @@ -12,7 +12,6 @@ P /sync-tests-filter ##### destination end if present). H /test-template-001.xht H /references/test-template-001.xht -H reftest-stylo.list # css-supports-027 uses @-moz-document, so we don't submit it. # css-supports-046 tests the equivalent with @media. diff --git a/tests/wpt/web-platform-tests/docs/_writing-tests/testdriver.md b/tests/wpt/web-platform-tests/docs/_writing-tests/testdriver.md index 51e09badbc2..5cbe0bc377b 100644 --- a/tests/wpt/web-platform-tests/docs/_writing-tests/testdriver.md +++ b/tests/wpt/web-platform-tests/docs/_writing-tests/testdriver.md @@ -45,7 +45,7 @@ Note that if the element that's keys need to be send to does not have a unique ID, the document must not have any DOM mutations made between the function being called and the promise settling. -To send special keys, one must send the respective key's codepoint. Since this uses the WebDriver protocol, you can find a list for code points to special keys in the spec (here)[https://w3c.github.io/webdriver/webdriver-spec.html#keyboard-actions]. +To send special keys, one must send the respective key's codepoint. Since this uses the WebDriver protocol, you can find a [list for code points to special keys in the spec](https://w3c.github.io/webdriver/webdriver-spec.html#keyboard-actions). For example, to send the tab key you would send "\uE004". [testharness]: {{ site.baseurl }}{% link _writing-tests/testharness.md %} diff --git a/tests/wpt/web-platform-tests/dom/interfaces.html b/tests/wpt/web-platform-tests/dom/interfaces.html index 3cb08f405a5..c0fab016ae7 100644 --- a/tests/wpt/web-platform-tests/dom/interfaces.html +++ b/tests/wpt/web-platform-tests/dom/interfaces.html @@ -19,11 +19,8 @@ element.setAttribute("bar", "baz"); var idlArray = new IdlArray(); function doTest([html, dom]) { - // HTML is needed for EventHandler. Provide a dummy interface for - // LinkStyle which HTML depends on but we're not testing. - idlArray.add_untested_idls('interface LinkStyle {};'); - idlArray.add_untested_idls(html); idlArray.add_idls(dom); + idlArray.add_dependency_idls(html); idlArray.add_objects({ EventTarget: ['new EventTarget()'], Event: ['document.createEvent("Event")', 'new Event("foo")'], diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html index 5d0e4cb86f7..8448bf48a77 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html @@ -4,8 +4,23 @@ <meta charset="utf-8"/> <title>cseucpkdfmtjapanese decoding</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-12000"> +<meta name="variant" content="?12001-13000"> +<meta name="variant" content="?13001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> <link rel="help" href="https://encoding.spec.whatwg.org/#euc-jp"> <meta name="assert" content="The browser produces the same decoding behavior for a document labeled 'cseucpkdfmtjapanese' as for a document labeled 'euc-jp'."> @@ -15,51 +30,15 @@ <script src="jis0208_index.js"></script> <script src="jis0212_index.js"></script> <script src="eucjp-decoder.js"></script> +<script src="../../resources/decode-common.js"></script> </head> -<body onload="showNodes();"> +<body onload="showNodes(eucjpDecoder);"> <iframe src="eucjp_chars-cseucpkdfmtjapanese.html" name="scriptWindow" id="scrwin"></iframe> <div id="log"></div> -<script> -var tests = []; - -function iframeRef(frameRef) { - return frameRef.contentWindow - ? frameRef.contentWindow.document - : frameRef.contentDocument; -} - -function showNodes() { - var iframe = iframeRef(document.getElementById("scrwin")); - nodes = iframe.querySelectorAll("span"); - - for (var i = 0; i < nodes.length; i++) { - tests[i] = async_test( - "U+" + - nodes[i].dataset.cp + - " " + - String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) + - " " + - eucjpDecoder(nodes[i].dataset.bytes) + - " " + - nodes[i].dataset.bytes - ); - } - - for (var i = 0; i < nodes.length; i++) { - tests[i].step(function() { - assert_equals( - nodes[i].textContent, - eucjpDecoder(nodes[i].dataset.bytes) - ); - }); - tests[i].done(); - } -} -</script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html index 6b99117e79d..b66bb2d96d1 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html @@ -4,8 +4,23 @@ <meta charset="utf-8"/> <title>x-euc-jp decoding</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-12000"> +<meta name="variant" content="?12001-13000"> +<meta name="variant" content="?13001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> <link rel="help" href="https://encoding.spec.whatwg.org/#euc-jp"> <meta name="assert" content="The browser produces the same decoding behavior for a document labeled 'x-euc-jp' as for a document labeled 'euc-jp'."> @@ -15,51 +30,15 @@ <script src="jis0208_index.js"></script> <script src="jis0212_index.js"></script> <script src="eucjp-decoder.js"></script> +<script src="../../resources/decode-common.js"></script> </head> -<body onload="showNodes();"> +<body onload="showNodes(eucjpDecoder);"> <iframe src="eucjp_chars-x-euc-jp.html" name="scriptWindow" id="scrwin"></iframe> <div id="log"></div> -<script> -var tests = []; - -function iframeRef(frameRef) { - return frameRef.contentWindow - ? frameRef.contentWindow.document - : frameRef.contentDocument; -} - -function showNodes() { - var iframe = iframeRef(document.getElementById("scrwin")); - nodes = iframe.querySelectorAll("span"); - - for (var i = 0; i < nodes.length; i++) { - tests[i] = async_test( - "U+" + - nodes[i].dataset.cp + - " " + - String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) + - " " + - eucjpDecoder(nodes[i].dataset.bytes) + - " " + - nodes[i].dataset.bytes - ); - } - - for (var i = 0; i < nodes.length; i++) { - tests[i].step(function() { - assert_equals( - nodes[i].textContent, - eucjpDecoder(nodes[i].dataset.bytes) - ); - }); - tests[i].done(); - } -} -</script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html index ed05e3112f7..088985682e1 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html @@ -4,8 +4,23 @@ <meta charset="utf-8"/> <title>EUC-JP decoding</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-12000"> +<meta name="variant" content="?12001-13000"> +<meta name="variant" content="?13001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> <link rel="help" href="https://encoding.spec.whatwg.org/#euc-jp"> <meta name="assert" content="The browser decodes all characters as expected from a file generated by encoding all pointers in the euc-jp encoding per the encoder steps in the specification."> @@ -15,51 +30,15 @@ <script src="jis0208_index.js"></script> <script src="jis0212_index.js"></script> <script src="eucjp-decoder.js"></script> +<script src="../../resources/decode-common.js"></script> </head> -<body onload="showNodes();"> +<body onload="showNodes(eucjpDecoder);"> <iframe src="eucjp_chars.html" name="scriptWindow" id="scrwin"></iframe> <div id="log"></div> -<script> -var tests = []; - -function iframeRef(frameRef) { - return frameRef.contentWindow - ? frameRef.contentWindow.document - : frameRef.contentDocument; -} - -function showNodes() { - var iframe = iframeRef(document.getElementById("scrwin")); - nodes = iframe.querySelectorAll("span"); - - for (var i = 0; i < nodes.length; i++) { - tests[i] = async_test( - "U+" + - nodes[i].dataset.cp + - " " + - String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) + - " " + - eucjpDecoder(nodes[i].dataset.bytes) + - " " + - nodes[i].dataset.bytes - ); - } - - for (var i = 0; i < nodes.length; i++) { - tests[i].step(function() { - assert_equals( - nodes[i].textContent, - eucjpDecoder(nodes[i].dataset.bytes) - ); - }); - tests[i].done(); - } -} -</script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html index f64f0ed287e..83a674bb58f 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html @@ -4,8 +4,17 @@ <meta charset="cseucpkdfmtjapanese"><!-- test breaks if the server overrides this --> <title>cseucpkdfmtjapanese encoding (form)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="jis0208_index.js"></script> <script src="eucjp-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> @@ -18,131 +27,16 @@ </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 400; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = ","; -var encodedSeperator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // create a simple list of just those code points for which there is an encoding possible - codepoints = []; - for (var i = 0x80; i < 0xffff; i++) { - result = eucjpEncoder(String.fromCodePoint(i)); - if (result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%" + result.replace(/ /g, "%"); - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - currentTests.push( - async_test( - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "cseucpkdfmtjapanese"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals( - normalizeStr(results[j]), - normalizeStr(cplist[i][j].expected) - ); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +var errors = false; +var encoder = eucjpEncoder; +var ranges = rangesAll; +var separator = ","; +function expect(result, codepoint) { + return "%" + result.replace(/ /g, "%"); } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html index f79178aefc4..0d7585c01fc 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html @@ -4,8 +4,31 @@ <meta charset="euc-jp"> <!-- test breaks if the server overrides this --> <title>EUC-JP encoding errors (form, han)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-12000"> +<meta name="variant" content="?12001-13000"> +<meta name="variant" content="?13001-14000"> +<meta name="variant" content="?14001-15000"> +<meta name="variant" content="?15001-16000"> +<meta name="variant" content="?16001-17000"> +<meta name="variant" content="?17001-18000"> +<meta name="variant" content="?18001-19000"> +<meta name="variant" content="?19001-20000"> +<meta name="variant" content="?20001-21000"> +<meta name="variant" content="?21001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="jis0208_index.js"></script> <script src="eucjp-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> @@ -18,167 +41,20 @@ </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 400; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = ","; -var encodedSeperator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // set up a simple array of unicode codepoints that are not encoded - var codepoints = []; - - for (i = 0x4e00; i < 0x9fba; i++) { - result = eucjpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "cjk "; - } - } - - for (i = 0xf900; i < 0xfa6e; i++) { - // compatibility - result = eucjpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "compatibility "; - } - } - - for (i = 0xfa70; i < 0xfada; i++) { - result = eucjpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "compatibility "; - } - } - - for (i = 0x3400; i < 0x4dbf; i++) { - // cjk extension A - result = eucjpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "extension A "; - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - item.desc = codepoints[i].desc; - currentTests.push( - async_test( - item.desc + - " U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "euc-jp"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals(results[j], cplist[i][j].expected); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +var errors = true; +var encoder = eucjpEncoder; +var ranges = rangesHan; +var separator = ","; +function expect(result, codepoint) { + return "%26%23" + codepoint + "%3B"; +} +// Overwrite normalizeStr +function normalizeStr(str) { + return str; } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html index 0f9ecff2dad..8c70e8f7ee4 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html @@ -4,8 +4,21 @@ <meta charset="euc-jp"> <!-- test breaks if the server overrides this --> <title>EUC-JP encoding errors (form, hangul)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="jis0208_index.js"></script> <script src="eucjp-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> @@ -18,132 +31,20 @@ </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 400; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = ","; -var encodedSeperator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // set up a simple array of unicode codepoints that are not encoded - var codepoints = []; - - for (i = 0xac00; i < 0xd7af; i++) { - result = eucjpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "hangul "; - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - item.desc = codepoints[i].desc; - currentTests.push( - async_test( - item.desc + - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "euc-jp"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals(results[j], cplist[i][j].expected); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +var errors = true; +var encoder = eucjpEncoder; +var ranges = rangesHangul; +var separator = ","; +function expect(result, codepoint) { + return "%26%23" + codepoint + "%3B"; +} +// Overwrite normalizeStr +function normalizeStr(str) { + return str; } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc.html index 54da3eb89bc..c80193cc1a0 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc.html @@ -4,8 +4,13 @@ <meta charset="euc-jp"> <!-- test breaks if the server overrides this --> <title>EUC-JP encoding errors (form, misc)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="jis0208_index.js"></script> <script src="eucjp-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> @@ -18,176 +23,20 @@ </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 400; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = ","; -var encodedSeperator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // set up a simple array of unicode codepoints that are not encoded - var codepoints = []; - - for (var i = 0x80; i < 0x4ff; i++) { - result = eucjpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "latin, greek, cyrillic, etc "; - } - } - - for (i = 0x2000; i < 0x23ff; i++) { - result = eucjpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "punctuation, currency, symbols "; - } - } - - for (i = 0x2460; i < 0x26ff; i++) { - result = eucjpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "enclosed chars and boxes "; - } - } - - for (i = 0x3000; i < 0x33ff; i++) { - result = eucjpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "various asian "; - } - } - - for (i = 0xff00; i < 0xffef; i++) { - result = eucjpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "half/full width "; - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - item.desc = codepoints[i].desc; - currentTests.push( - async_test( - item.desc + - " U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "euc-jp"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals(results[j], cplist[i][j].expected); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +var errors = true; +var encoder = eucjpEncoder; +var ranges = rangesMisc; +var separator = ","; +function expect(result, codepoint) { + return "%26%23" + codepoint + "%3B"; +} +// Overwrite normalizeStr +function normalizeStr(str) { + return str; } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html index 37ec8f8c86a..30c376ccf62 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html @@ -4,8 +4,17 @@ <meta charset="x-euc-jp"><!-- test breaks if the server overrides this --> <title>x-euc-jp encoding (form)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="jis0208_index.js"></script> <script src="eucjp-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> @@ -18,131 +27,16 @@ </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 400; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = ","; -var encodedSeperator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // create a simple list of just those code points for which there is an encoding possible - codepoints = []; - for (var i = 0x80; i < 0xffff; i++) { - result = eucjpEncoder(String.fromCodePoint(i)); - if (result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%" + result.replace(/ /g, "%"); - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - currentTests.push( - async_test( - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "x-euc-jp"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals( - normalizeStr(results[j]), - normalizeStr(cplist[i][j].expected) - ); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +var errors = false; +var encoder = eucjpEncoder; +var ranges = rangesAll; +var separator = ","; +function expect(result, codepoint) { + return "%" + result.replace(/ /g, "%"); } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html index 297ed841016..cd6bcdc32d3 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html @@ -4,8 +4,17 @@ <meta charset="euc-jp"><!-- test breaks if the server overrides this --> <title>EUC-JP encoding (form)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="jis0208_index.js"></script> <script src="eucjp-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> @@ -18,131 +27,16 @@ </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 400; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = ","; -var encodedSeperator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // create a simple list of just those code points for which there is an encoding possible - codepoints = []; - for (var i = 0x80; i < 0xffff; i++) { - result = eucjpEncoder(String.fromCodePoint(i)); - if (result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%" + result.replace(/ /g, "%"); - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - currentTests.push( - async_test( - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "euc-jp"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals( - normalizeStr(results[j]), - normalizeStr(cplist[i][j].expected) - ); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +var errors = false; +var encoder = eucjpEncoder; +var ranges = rangesAll; +var separator = ","; +function expect(result, codepoint) { + return "%" + result.replace(/ /g, "%"); } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html index c0519e8be10..5883c006e84 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html @@ -4,97 +4,56 @@ <meta charset="euc-jp"> <!-- test breaks if the server overrides this --> <title>EUC-JP encoding errors (href, han)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-10000"> +<meta name="variant" content="?11001-12000"> +<meta name="variant" content="?12001-13000"> +<meta name="variant" content="?13001-14000"> +<meta name="variant" content="?14001-15000"> +<meta name="variant" content="?15001-16000"> +<meta name="variant" content="?16001-17000"> +<meta name="variant" content="?17001-18000"> +<meta name="variant" content="?18001-19000"> +<meta name="variant" content="?19001-20000"> +<meta name="variant" content="?20001-21000"> +<meta name="variant" content="?21001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="jis0208_index.js"></script> <script src="eucjp-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> <link rel="help" href="https://encoding.spec.whatwg.org/#euc-jp"> <meta name="assert" content="The browser produces percent-escaped character references when writing characters to an href value and encoding han characters that are not in the euc-jp encoding."> +<style> + iframe { display:none } + form { display:none } +</style> +</head> +<body> +<div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -function encode(input, expected, desc) { - // tests whether a Unicode character is converted to an equivalent byte sequence by href - // input: a Unicode character - // expected: expected byte sequence - // desc: what's being tested - test(function() { - var a = document.createElement("a"); // <a> uses document encoding for URL's query - a.href = "https://example.com/?" + input; - result = a.search.substr(1); // remove leading "?" - assert_equals(result, expected); - }, desc); -} - -// set up a simple array of unicode codepoints that are not encoded -var codepoints = []; - -for (i = 0x4e00; i < 0x9fba; i++) { - result = eucjpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "cjk "; - } -} - -for (i = 0xf900; i < 0xfa6e; i++) { - // compatibility - result = eucjpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "compatibility "; - } +var errors = true; +var encoder = eucjpEncoder; +var ranges = rangesHan; +function expect(result, codepoint) { + return "%26%23" + codepoint + "%3B"; } - -for (i = 0xfa70; i < 0xfada; i++) { - result = eucjpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "compatibility "; - } +// Overwrite normalizeStr +function normalizeStr(str) { + return str; } - -for (i = 0x3400; i < 0x4dbf; i++) { - // cjk extension A - result = eucjpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "extension A "; - } -} - -// run the tests -for (var x = 0; x < codepoints.length; x++) { - encode( - String.fromCodePoint(codepoints[x].cp), - codepoints[x].expected, - codepoints[x].desc + - " U+" + - codepoints[x].cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(codepoints[x].cp) + - " " + - codepoints[x].expected - ); -} - -// NOTES -// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers -// the tests exclude ASCII characters </script> -</head> -<body> -<div id="log"></div> +<script src="../../resources/encode-href-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html index 29c9f223e90..695aad887c9 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html @@ -4,62 +4,46 @@ <meta charset="euc-jp"> <!-- test breaks if the server overrides this --> <title>EUC-JP encoding errors (href, hangul)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-10000"> +<meta name="variant" content="?11001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="jis0208_index.js"></script> <script src="eucjp-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> <link rel="help" href="https://encoding.spec.whatwg.org/#euc-jp"> <meta name="assert" content="The browser produces percent-escaped character references when writing characters to an href value and encoding hangul characters that are not in the euc-jp encoding."> +<style> + iframe { display:none } + form { display:none } +</style> +</head> +<body> +<div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -function encode(input, expected, desc) { - // tests whether a Unicode character is converted to an equivalent byte sequence by href - // input: a Unicode character - // expected: expected byte sequence - // desc: what's being tested - test(function() { - var a = document.createElement("a"); // <a> uses document encoding for URL's query - a.href = "https://example.com/?" + input; - result = a.search.substr(1); // remove leading "?" - assert_equals(result, expected); - }, desc); -} - -// set up a simple array of unicode codepoints that are not encoded -var codepoints = []; - -for (i = 0xac00; i < 0xd7af; i++) { - result = eucjpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "hangul "; - } +var errors = true; +var encoder = eucjpEncoder; +var ranges = rangesHangul; +function expect(result, codepoint) { + return "%26%23" + codepoint + "%3B"; } - -// run the tests -for (var x = 0; x < codepoints.length; x++) { - encode( - String.fromCodePoint(codepoints[x].cp), - codepoints[x].expected, - codepoints[x].desc + - " U+" + - codepoints[x].cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(codepoints[x].cp) + - " " + - codepoints[x].expected - ); +// Overwrite normalizeStr +function normalizeStr(str) { + return str; } - -// NOTES -// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers -// the tests exclude ASCII characters </script> -</head> -<body> -<div id="log"></div> +<script src="../../resources/encode-href-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc.html index 1456b945ae5..ba884f329a2 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc.html @@ -4,106 +4,38 @@ <meta charset="euc-jp"> <!-- test breaks if the server overrides this --> <title>EUC-JP encoding errors (href, misc)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="jis0208_index.js"></script> <script src="eucjp-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> <link rel="help" href="https://encoding.spec.whatwg.org/#euc-jp"> <meta name="assert" content="The browser produces percent-escaped character references when writing characters to an href value and encoding miscellaneous characters that are not in the euc-jp encoding."> +<style> + iframe { display:none } + form { display:none } +</style> +</head> +<body> +<div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -function encode(input, expected, desc) { - // tests whether a Unicode character is converted to an equivalent byte sequence by href - // input: a Unicode character - // expected: expected byte sequence - // desc: what's being tested - test(function() { - var a = document.createElement("a"); // <a> uses document encoding for URL's query - a.href = "https://example.com/?" + input; - result = a.search.substr(1); // remove leading "?" - assert_equals(result, expected); - }, desc); -} - -// set up a simple array of unicode codepoints that are not encoded -var codepoints = []; - -for (var i = 0x80; i < 0x4ff; i++) { - result = eucjpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "latin, greek, cyrillic, etc "; - } -} - -for (i = 0x2000; i < 0x23ff; i++) { - result = eucjpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "punctuation, currency, symbols "; - } -} - -for (i = 0x2460; i < 0x26ff; i++) { - result = eucjpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "enclosed chars and boxes "; - } +var errors = true; +var encoder = eucjpEncoder; +var ranges = rangesMisc; +function expect(result, codepoint) { + return "%26%23" + codepoint + "%3B"; } - -for (i = 0x3000; i < 0x33ff; i++) { - result = eucjpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "various asian "; - } +// Overwrite normalizeStr +function normalizeStr(str) { + return str; } - -for (i = 0xff00; i < 0xffef; i++) { - result = eucjpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "half/full width "; - } -} - -// run the tests -for (var x = 0; x < codepoints.length; x++) { - encode( - String.fromCodePoint(codepoints[x].cp), - codepoints[x].expected, - codepoints[x].desc + - " U+" + - codepoints[x].cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(codepoints[x].cp) + - " " + - codepoints[x].expected - ); -} - -// NOTES -// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers -// the tests exclude ASCII characters </script> -</head> -<body> -<div id="log"></div> +<script src="../../resources/encode-href-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html index 05b6c2c0939..9d60edabda9 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html @@ -4,59 +4,38 @@ <meta charset=euc-jp> <!-- test breaks if the server overrides this --> <title>EUC-JP encoding (href)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="jis0208_index.js"></script> <script src="eucjp-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> <link rel="help" href="https://encoding.spec.whatwg.org/#euc-jp"> <meta name="assert" content="The browser produces the expected byte sequences for all characters in the euc-jp encoding after 0x9F when writing characters to an href value, using the encoder steps in the specification."> -<script> -function encode(input, expected, desc) { - // tests whether a Unicode character is converted to an equivalent byte sequence by href - // input: a Unicode character - // expected: expected byte sequence - // desc: what's being tested - test(function() { - var a = document.createElement("a"); // <a> uses document encoding for URL's query - a.href = "https://example.com/?" + input; - result = a.search.substr(1); // remove leading "?" - assert_equals(normalizeStr(result), normalizeStr(expected)); - }, desc); -} - -// create a simple list of just those code points for which there is an encoding possible -codepoints = []; -for (var i = 0x80; i < 0xffff; i++) { - result = eucjpEncoder(String.fromCodePoint(i)); - if (result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%" + result.replace(/ /g, "%"); - } -} - -// run the tests -for (var x = 0; x < codepoints.length; x++) { - encode( - String.fromCodePoint(codepoints[x].cp), - codepoints[x].expected, - "U+" + - codepoints[x].cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(codepoints[x].cp) + - " " + - codepoints[x].expected - ); -} - -// NOTES -// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers -// the tests exclude ASCII characters -</script> +<style> + iframe { display:none } + form { display:none } +</style> </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> +<script> +var errors = false; +var encoder = eucjpEncoder; +var ranges = rangesAll; +function expect(result, codepoint) { + return "%" + result.replace(/ /g, "%"); +} +</script> +<script src="../../resources/encode-href-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp.html index 73d8a2f2d0a..d9dc2f09cc2 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp.html @@ -4,8 +4,17 @@ <meta charset="utf-8"/> <title>csiso2022jp decoding</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> <link rel="help" href="https://encoding.spec.whatwg.org/#iso-2022-jp"> <meta name="assert" content="The browser produces the same decoding behavior for a document labeled 'csiso2022jp' as for a document labeled 'iso-2022-jp'."> @@ -14,50 +23,14 @@ </style> <script src="jis0208_index.js"></script> <script src="iso2022jp-decoder.js"></script> +<script src="../../resources/decode-common.js"></script> </head> -<body onload="showNodes();"> +<body onload="showNodes(iso2022jpDecoder);"> <iframe src="iso2022jp_chars-csiso2022jp.html" name="scriptWindow" id="scrwin"></iframe> <div id="log"></div> -<script> -var tests = []; - -function iframeRef(frameRef) { - return frameRef.contentWindow - ? frameRef.contentWindow.document - : frameRef.contentDocument; -} - -function showNodes() { - var iframe = iframeRef(document.getElementById("scrwin")); - nodes = iframe.querySelectorAll("span"); - - for (var i = 0; i < nodes.length; i++) { - tests[i] = async_test( - "U+" + - nodes[i].dataset.cp + - " " + - String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) + - " " + - iso2022jpDecoder(nodes[i].dataset.bytes) + - " " + - nodes[i].dataset.bytes - ); - } - - for (var i = 0; i < nodes.length; i++) { - tests[i].step(function() { - assert_equals( - nodes[i].textContent, - iso2022jpDecoder(nodes[i].dataset.bytes) - ); - }); - tests[i].done(); - } -} -</script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode.html index 192e25e38b3..4434e545cb5 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode.html @@ -4,8 +4,17 @@ <meta charset="utf-8"/> <title>ISO 2022-JP decoding</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> <link rel="help" href="https://encoding.spec.whatwg.org/#iso-2022-jp"> <meta name="assert" content="The browser decodes all characters as expected from a file generated by encoding all pointers in the iso-2022-jp encoding per the encoder steps in the specification."> @@ -14,50 +23,14 @@ </style> <script src="jis0208_index.js"></script> <script src="iso2022jp-decoder.js"></script> +<script src="../../resources/decode-common.js"></script> </head> -<body onload="showNodes();"> +<body onload="showNodes(iso2022jpDecoder);"> <iframe src="iso2022jp_chars.html" name="scriptWindow" id="scrwin"></iframe> <div id="log"></div> -<script> -var tests = []; - -function iframeRef(frameRef) { - return frameRef.contentWindow - ? frameRef.contentWindow.document - : frameRef.contentDocument; -} - -function showNodes() { - var iframe = iframeRef(document.getElementById("scrwin")); - nodes = iframe.querySelectorAll("span"); - - for (var i = 0; i < nodes.length; i++) { - tests[i] = async_test( - "U+" + - nodes[i].dataset.cp + - " " + - String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) + - " " + - iso2022jpDecoder(nodes[i].dataset.bytes) + - " " + - nodes[i].dataset.bytes - ); - } - - for (var i = 0; i < nodes.length; i++) { - tests[i].step(function() { - assert_equals( - nodes[i].textContent, - iso2022jpDecoder(nodes[i].dataset.bytes) - ); - }); - tests[i].done(); - } -} -</script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html index 213791af35d..cd8d41b5aa6 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html @@ -4,8 +4,17 @@ <meta charset="csiso2022jp"> <!-- test breaks if the server overrides this --> <title>csiso2022jp encoding (form)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="jis0208_index.js"></script> <script src="iso2022jp-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> @@ -18,19 +27,19 @@ </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 400; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = "\u0019"; -var encodedSeperator = encodeURIComponent("\u0019"); -var currentChunkIndex = 0; +var errors = false; +var separator = "\u0019"; +var ranges = rangesAll; + +function expect(result, codepoint) { + return result; +} + +function encoder(str) { + return getByteSequence(str.codePointAt(0)); +} function getByteSequence(cp) { // uses the Encoding spec algorithm to derive a sequence of bytes for a character that can be encoded @@ -121,118 +130,7 @@ for (p = 0; p < jis0208.length; p++) { indexcodepoints[jis0208[p]] = p; } } - -setup(function() { - // create a simple list of just those code points for which there is an encoding possible - codepoints = []; - for (var i = 0x80; i < 0xffff; i++) { - result = getByteSequence(i); - if (result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = result; - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - currentTests.push( - async_test( - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - normalizeStr(item.expected) - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "csiso2022jp"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals( - normalizeStr(results[j]), - normalizeStr(cplist[i][j].expected) - ); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; -} </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html index 13d4b968b15..b288479d909 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html @@ -4,8 +4,30 @@ <meta charset="iso-2022-jp"> <!-- test breaks if the server overrides this --> <title>ISO 2022 JP encoding errors (form, han)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-12000"> +<meta name="variant" content="?12001-13000"> +<meta name="variant" content="?13001-14000"> +<meta name="variant" content="?14001-15000"> +<meta name="variant" content="?15001-16000"> +<meta name="variant" content="?16001-17000"> +<meta name="variant" content="?17001-18000"> +<meta name="variant" content="?18001-19000"> +<meta name="variant" content="?19001-20000"> +<meta name="variant" content="?20001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="jis0208_index.js"></script> <script src="iso2022jp-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> @@ -18,167 +40,20 @@ </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 400; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = "\u0019"; -var encodedSeperator = encodeURIComponent("\u0019"); -var currentChunkIndex = 0; - -setup(function() { - // set up a simple array of unicode codepoints that are not encoded - var codepoints = []; - - for (i = 0x4e00; i < 0x9fba; i++) { - result = iso2022jpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "cjk "; - } - } - - for (i = 0xf900; i < 0xfa6e; i++) { - // compatibility - result = iso2022jpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "compatibility "; - } - } - - for (i = 0xfa70; i < 0xfada; i++) { - result = iso2022jpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "compatibility "; - } - } - - for (i = 0x3400; i < 0x4dbf; i++) { - // cjk extension A - result = iso2022jpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "extension A "; - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - item.desc = codepoints[i].desc; - currentTests.push( - async_test( - item.desc + - " U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - normalizeStr(item.expected) - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "iso-2022-jp"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals(results[j], cplist[i][j].expected); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +var errors = true; +var encoder = iso2022jpEncoder; +var ranges = rangesHan; +var separator = "\u0019"; +function expect(result, codepoint) { + return "%26%23" + codepoint + "%3B"; +} +// Overwrite normalizeStr +function normalizeStr(str) { + return str; } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html index 1f1cce21f00..eb4d8d23c13 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html @@ -4,8 +4,21 @@ <meta charset="iso-2022-jp"> <!-- test breaks if the server overrides this --> <title>ISO 2022 JP encoding errors (form, hangul)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="jis0208_index.js"></script> <script src="iso2022jp-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> @@ -18,132 +31,20 @@ </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 400; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = "\u0019"; -var encodedSeperator = encodeURIComponent("\u0019"); -var currentChunkIndex = 0; - -setup(function() { - // set up a simple array of unicode codepoints that are not encoded - var codepoints = []; - - for (i = 0xac00; i < 0xd7af; i++) { - result = iso2022jpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "hangul "; - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - item.desc = codepoints[i].desc; - currentTests.push( - async_test( - item.desc + - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - normalizeStr(item.expected) - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "iso-2022-jp"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals(results[j], cplist[i][j].expected); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +var errors = true; +var encoder = iso2022jpEncoder; +var ranges = rangesHangul; +var separator = "\u0019"; +function expect(result, codepoint) { + return "%26%23" + codepoint + "%3B"; +} +// Overwrite normalizeStr +function normalizeStr(str) { + return str; } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc.html index 54acbe487b6..95467bad4f0 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc.html @@ -4,8 +4,13 @@ <meta charset="iso-2022-jp"> <!-- test breaks if the server overrides this --> <title>ISO 2022 JP encoding errors (form, misc)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="jis0208_index.js"></script> <script src="iso2022jp-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> @@ -18,176 +23,24 @@ </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 400; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = "\u0019"; -var encodedSeperator = encodeURIComponent("\u0019"); -var currentChunkIndex = 0; - -setup(function() { - // set up a simple array of unicode codepoints that are not encoded - var codepoints = []; - - for (var i = 0xa0; i < 0x4ff; i++) { - result = iso2022jpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "latin, greek, cyrillic, etc "; - } - } - - for (i = 0x2000; i < 0x23ff; i++) { - result = iso2022jpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "punctuation, currency, symbols "; - } - } - - for (i = 0x2460; i < 0x26ff; i++) { - result = iso2022jpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "enclosed chars and boxes "; - } - } - - for (i = 0x3000; i < 0x33ff; i++) { - result = iso2022jpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "various asian "; - } - } - - for (i = 0xff00; i < 0xffef; i++) { - result = iso2022jpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "half/full width "; - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - item.desc = codepoints[i].desc; - currentTests.push( - async_test( - item.desc + - " U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - normalizeStr(item.expected) - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "iso-2022-jp"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals(results[j], cplist[i][j].expected); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +var errors = true; +var encoder = iso2022jpEncoder; +var ranges = rangesMisc; +var separator = "\u0019"; +function expect(result, codepoint) { + return "%26%23" + codepoint + "%3B"; +} +// Overwrite normalizeStr +function normalizeStr(str) { + return str; +} +// Overwrite normalizeStr +function normalizeStr(str) { + return str; } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html index f196c31b38a..3a1b3b91ea5 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html @@ -4,8 +4,17 @@ <meta charset="iso-2022-jp"> <!-- test breaks if the server overrides this --> <title>ISO 2022 JP encoding (form)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="jis0208_index.js"></script> <script src="iso2022jp-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> @@ -18,129 +27,16 @@ </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 400; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = "\u0019"; -var encodedSeperator = encodeURIComponent("\u0019"); -var currentChunkIndex = 0; - -setup(function() { - // create a simple list of just those code points for which there is an encoding possible - codepoints = []; - for (var i = 0x80; i < 0xffff; i++) { - result = iso2022jpEncoder(String.fromCodePoint(i)); - if (result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%" + result.replace(/ /g, "%"); - item.expected = item.expected.replace(/%1B%28%42$/, ""); - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - currentTests.push( - async_test( - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "iso-2022-jp"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals(normalizeStr(results[j]), cplist[i][j].expected); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +var errors = false; +var encoder = iso2022jpEncoder; +var ranges = rangesAll; +var separator = "\u0019"; +function expect(result, codepoint) { + return "%" + result.replace(/ /g, "%").replace(/%1B%28%42$/, ""); } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html index f12da7077f7..125d0415a8c 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html @@ -4,95 +4,49 @@ <meta charset="iso-2022-jp"> <!-- test breaks if the server overrides this --> <title>ISO 2022-JP encoding errors (href, han)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-12000"> +<meta name="variant" content="?12001-13000"> +<meta name="variant" content="?13001-14000"> +<meta name="variant" content="?14001-15000"> +<meta name="variant" content="?15001-16000"> +<meta name="variant" content="?16001-17000"> +<meta name="variant" content="?17001-18000"> +<meta name="variant" content="?18001-19000"> +<meta name="variant" content="?19001-20000"> +<meta name="variant" content="?20001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="jis0208_index.js"></script> <script src="iso2022jp-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> <link rel="help" href="https://encoding.spec.whatwg.org/#iso-2022-jp"> <meta name="assert" content="The browser produces percent-escaped character references when writing characters to an href value and encoding han characters that are not in the iso-2022-jp encoding."> +<script src="../../resources/ranges.js"></script> <script> -function encode(input, expected, desc) { - // tests whether a Unicode character is converted to an equivalent byte sequence by href - // input: a Unicode character - // expected: expected byte sequence - // desc: what's being tested - test(function() { - var a = document.createElement("a"); // <a> uses document encoding for URL's query - a.href = "https://example.com/?" + input; - result = a.search.substr(1); // remove leading "?" - assert_equals(result, expected); - }, desc); +var errors = true; +var encoder = iso2022jpEncoder; +var ranges = rangesHan; +function expect(result, codepoint) { + return "%26%23" + codepoint + "%3B"; } - -// set up a simple array of unicode codepoints that are not encoded -var codepoints = []; - -for (i = 0x4e00; i < 0x9fba; i++) { - result = iso2022jpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "cjk "; - } +// Overwrite normalizeStr +function normalizeStr(str) { + return str; } - -for (i = 0xf900; i < 0xfa6e; i++) { - // compatibility - result = iso2022jpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "compatibility "; - } -} - -for (i = 0xfa70; i < 0xfada; i++) { - result = iso2022jpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "compatibility "; - } -} - -for (i = 0x3400; i < 0x4dbf; i++) { - // cjk extension A - result = iso2022jpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "extension A "; - } -} - -// run the tests -for (var x = 0; x < codepoints.length; x++) { - encode( - String.fromCodePoint(codepoints[x].cp), - codepoints[x].expected, - codepoints[x].desc + - " U+" + - codepoints[x].cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(codepoints[x].cp) + - " " + - codepoints[x].expected - ); -} - -// NOTES -// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers -// the test excludes ASCII characters </script> +<script src="../../resources/encode-href-common.js"></script> </head> <body> <div id="log"></div> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html index 04dc69df036..6e588359d02 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html @@ -4,60 +4,40 @@ <meta charset="iso-2022-jp"> <!-- test breaks if the server overrides this --> <title>ISO 2022-JP encoding errors (href, hangul)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="jis0208_index.js"></script> <script src="iso2022jp-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> <link rel="help" href="https://encoding.spec.whatwg.org/#iso-2022-jp"> <meta name="assert" content="The browser produces percent-escaped character references when writing characters to an href value and encoding hangul characters that are not in the iso-2022-jp encoding."> +<script src="../../resources/ranges.js"></script> <script> -function encode(input, expected, desc) { - // tests whether a Unicode character is converted to an equivalent byte sequence by href - // input: a Unicode character - // expected: expected byte sequence - // desc: what's being tested - test(function() { - var a = document.createElement("a"); // <a> uses document encoding for URL's query - a.href = "https://example.com/?" + input; - result = a.search.substr(1); // remove leading "?" - assert_equals(result, expected); - }, desc); +var errors = true; +var encoder = iso2022jpEncoder; +var ranges = rangesHangul; +function expect(result, codepoint) { + return "%26%23" + codepoint + "%3B"; } - -// set up a simple array of unicode codepoints that are not encoded -var codepoints = []; - -for (i = 0xac00; i < 0xd7af; i++) { - result = iso2022jpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "hangul "; - } +// Overwrite normalizeStr +function normalizeStr(str) { + return str; } - -// run the tests -for (var x = 0; x < codepoints.length; x++) { - encode( - String.fromCodePoint(codepoints[x].cp), - codepoints[x].expected, - codepoints[x].desc + - " U+" + - codepoints[x].cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(codepoints[x].cp) + - " " + - codepoints[x].expected - ); -} - -// NOTES -// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers -// the test excludes ASCII characters </script> +<script src="../../resources/encode-href-common.js"></script> </head> <body> <div id="log"></div> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc.html index 5fee8bb7c10..8d8150d3d0b 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc.html @@ -4,104 +4,32 @@ <meta charset="iso-2022-jp"> <!-- test breaks if the server overrides this --> <title>ISO 2022-JP encoding errors (href, misc)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="jis0208_index.js"></script> <script src="iso2022jp-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> <link rel="help" href="https://encoding.spec.whatwg.org/#iso-2022-jp"> <meta name="assert" content="The browser produces percent-escaped character references when writing characters to an href value and encoding miscellaneous characters that are not in the iso-2022-jp encoding."> +<script src="../../resources/ranges.js"></script> <script> -function encode(input, expected, desc) { - // tests whether a Unicode character is converted to an equivalent byte sequence by href - // input: a Unicode character - // expected: expected byte sequence - // desc: what's being tested - test(function() { - var a = document.createElement("a"); // <a> uses document encoding for URL's query - a.href = "https://example.com/?" + input; - result = a.search.substr(1); // remove leading "?" - assert_equals(result, expected); - }, desc); +var errors = true; +var encoder = iso2022jpEncoder; +var ranges = rangesMisc; +function expect(result, codepoint) { + return "%26%23" + codepoint + "%3B"; } - -// set up a simple array of unicode codepoints that are not encoded -var codepoints = []; - -for (var i = 0x80; i < 0x4ff; i++) { - result = iso2022jpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "latin, greek, cyrillic, etc "; - } +// Overwrite normalizeStr +function normalizeStr(str) { + return str; } - -for (i = 0x2000; i < 0x23ff; i++) { - result = iso2022jpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "punctuation, currency, symbols "; - } -} - -for (i = 0x2460; i < 0x26ff; i++) { - result = iso2022jpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "enclosed chars and boxes "; - } -} - -for (i = 0x3000; i < 0x33ff; i++) { - result = iso2022jpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "various asian "; - } -} - -for (i = 0xff00; i < 0xffef; i++) { - result = iso2022jpEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "half/full width "; - } -} - -// run the tests -for (var x = 0; x < codepoints.length; x++) { - encode( - String.fromCodePoint(codepoints[x].cp), - codepoints[x].expected, - codepoints[x].desc + - " U+" + - codepoints[x].cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(codepoints[x].cp) + - " " + - codepoints[x].expected - ); -} - -// NOTES -// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers -// the test excludes ASCII characters </script> +<script src="../../resources/encode-href-common.js"></script> </head> <body> <div id="log"></div> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html index dcea8fcdec4..08b8c2647cd 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html @@ -4,58 +4,32 @@ <meta charset="iso-2022-jp"> <!-- test breaks if the server overrides this --> <title>ISO 2022-JP encoding (href)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="jis0208_index.js"></script> <script src="iso2022jp-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> <link rel="help" href="https://encoding.spec.whatwg.org/#iso-2022-jp"> <meta name="assert" content="The browser produces the expected byte sequences for all characters in the iso-2022-jp encoding after 0x9F when writing characters to an href value, using the encoder steps in the specification."> +<script src="../../resources/ranges.js"></script> <script> -function encode(input, expected, desc) { - // tests whether a Unicode character is converted to an equivalent byte sequence by href - // input: a Unicode character - // expected: expected byte sequence - // desc: what's being tested - test(function() { - var a = document.createElement("a"); // <a> uses document encoding for URL's query - a.href = "https://example.com/?" + input; - result = a.search.substr(1); // remove leading "?" - assert_equals(normalizeStr(result), normalizeStr(expected)); - }, desc); +var errors = false; +var encoder = iso2022jpEncoder; +var ranges = rangesAll; +function expect(result, codepoint) { + return "%" + result.replace(/ /g, "%").replace(/%1B%28%42$/, "");; } - -// create a simple list of just those code points for which there is an encoding possible -codepoints = []; -for (var i = 0x80; i < 0xffff; i++) { - var result = iso2022jpEncoder(String.fromCodePoint(i)); - if (result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%" + result.replace(/ /g, "%"); - item.expected = item.expected.replace(/%1B%28%42$/, ""); - } -} - -// run the tests -for (var x = 0; x < codepoints.length; x++) { - encode( - String.fromCodePoint(codepoints[x].cp), - codepoints[x].expected, - "U+" + - codepoints[x].cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(codepoints[x].cp) + - " " + - codepoints[x].expected - ); -} - -// NOTES -// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers -// the test excludes ASCII characters </script> +<script src="../../resources/encode-href-common.js"></script> </head> <body> <div id="log"></div> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis.html index 9c811a93748..d6893754c64 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis.html @@ -4,8 +4,17 @@ <meta charset="utf-8"/> <title>csshiftjis decoding</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> <link rel="help" href="https://encoding.spec.whatwg.org/#names-and-labels"> <meta name="assert" content="The browser produces the same decoding behavior for a document labeled 'csshiftjis' as for a document labeled 'shift_jis'."> @@ -14,47 +23,15 @@ </style> <script src="jis0208_index.js"></script> <script src="sjis-decoder.js"></script> +<script src="../../resources/decode-common.js"></script> </head> -<body onload="showNodes();"> +<body onload="showNodes(sjisDecoder);"> <iframe src="sjis_chars-csshiftjis.html" name="scriptWindow" id="scrwin"></iframe> <div id="log"></div> -<script> -var tests = []; -function iframeRef(frameRef) { - return frameRef.contentWindow - ? frameRef.contentWindow.document - : frameRef.contentDocument; -} - -function showNodes() { - var iframe = iframeRef(document.getElementById("scrwin")); - nodes = iframe.querySelectorAll("span"); - - for (var i = 0; i < nodes.length; i++) { - tests[i] = async_test( - "U+" + - nodes[i].dataset.cp + - " " + - String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) + - " " + - sjisDecoder(nodes[i].dataset.bytes) + - " " + - nodes[i].dataset.bytes - ); - } - - for (var i = 0; i < nodes.length; i++) { - tests[i].step(function() { - assert_equals(nodes[i].textContent, sjisDecoder(nodes[i].dataset.bytes)); - }); - tests[i].done(); - } -} -</script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-errors.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-errors.html index be96f70dcde..50ac2b7f15a 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-errors.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-errors.html @@ -7,7 +7,7 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> -<link rel="help" href="https://encoding.spec.whatwg.org//#shift_jis"> +<link rel="help" href="https://encoding.spec.whatwg.org/#shift_jis"> <meta name="assert" content="The browser decodes characters that are not recognised from the shift_jis index as replacement characters."> <style> iframe { display:none } diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932.html index a73294f5328..e65a486d6dc 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932.html @@ -4,8 +4,17 @@ <meta charset="utf-8"/> <title>ms932 decoding</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> <link rel="help" href="https://encoding.spec.whatwg.org/#names-and-labels"> <meta name="assert" content="The browser produces the same decoding behavior for a document labeled 'ms932' as for a document labeled 'shift_jis'."> @@ -14,47 +23,14 @@ </style> <script src="jis0208_index.js"></script> <script src="sjis-decoder.js"></script> +<script src="../../resources/decode-common.js"></script> </head> -<body onload="showNodes();"> +<body onload="showNodes(sjisDecoder);"> <iframe src="sjis_chars-ms932.html" name="scriptWindow" id="scrwin"></iframe> <div id="log"></div> -<script> -var tests = []; - -function iframeRef(frameRef) { - return frameRef.contentWindow - ? frameRef.contentWindow.document - : frameRef.contentDocument; -} - -function showNodes() { - var iframe = iframeRef(document.getElementById("scrwin")); - nodes = iframe.querySelectorAll("span"); - - for (var i = 0; i < nodes.length; i++) { - tests[i] = async_test( - "U+" + - nodes[i].dataset.cp + - " " + - String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) + - " " + - sjisDecoder(nodes[i].dataset.bytes) + - " " + - nodes[i].dataset.bytes - ); - } - - for (var i = 0; i < nodes.length; i++) { - tests[i].step(function() { - assert_equals(nodes[i].textContent, sjisDecoder(nodes[i].dataset.bytes)); - }); - tests[i].done(); - } -} -</script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji.html index 2b2c298024b..c59b1da0651 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji.html @@ -4,8 +4,17 @@ <meta charset="utf-8"/> <title>ms_kanji decoding</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> <link rel="help" href="https://encoding.spec.whatwg.org/#names-and-labels"> <meta name="assert" content="The browser produces the same decoding behavior for a document labeled 'ms_kanji' as for a document labeled 'shift_jis'."> @@ -14,47 +23,14 @@ </style> <script src="jis0208_index.js"></script> <script src="sjis-decoder.js"></script> +<script src="../../resources/decode-common.js"></script> </head> -<body onload="showNodes();"> +<body onload="showNodes(sjisDecoder);"> <iframe src="sjis_chars-ms_kanji.html" name="scriptWindow" id="scrwin"></iframe> <div id="log"></div> -<script> -var tests = []; - -function iframeRef(frameRef) { - return frameRef.contentWindow - ? frameRef.contentWindow.document - : frameRef.contentDocument; -} - -function showNodes() { - var iframe = iframeRef(document.getElementById("scrwin")); - nodes = iframe.querySelectorAll("span"); - - for (var i = 0; i < nodes.length; i++) { - tests[i] = async_test( - "U+" + - nodes[i].dataset.cp + - " " + - String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) + - " " + - sjisDecoder(nodes[i].dataset.bytes) + - " " + - nodes[i].dataset.bytes - ); - } - - for (var i = 0; i < nodes.length; i++) { - tests[i].step(function() { - assert_equals(nodes[i].textContent, sjisDecoder(nodes[i].dataset.bytes)); - }); - tests[i].done(); - } -} -</script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis.html index dabb661ad2d..62159d1eddd 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis.html @@ -4,8 +4,17 @@ <meta charset="utf-8"/> <title>shift-jis decoding</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> <link rel="help" href="https://encoding.spec.whatwg.org/#names-and-labels"> <meta name="assert" content="The browser produces the same decoding behavior for a document labeled 'shift-jis' as for a document labeled 'shift_jis'."> @@ -14,47 +23,14 @@ </style> <script src="jis0208_index.js"></script> <script src="sjis-decoder.js"></script> +<script src="../../resources/decode-common.js"></script> </head> -<body onload="showNodes();"> +<body onload="showNodes(sjisDecoder);"> <iframe src="sjis_chars-shift-jis.html" name="scriptWindow" id="scrwin"></iframe> <div id="log"></div> -<script> -var tests = []; - -function iframeRef(frameRef) { - return frameRef.contentWindow - ? frameRef.contentWindow.document - : frameRef.contentDocument; -} - -function showNodes() { - var iframe = iframeRef(document.getElementById("scrwin")); - nodes = iframe.querySelectorAll("span"); - - for (var i = 0; i < nodes.length; i++) { - tests[i] = async_test( - "U+" + - nodes[i].dataset.cp + - " " + - String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) + - " " + - sjisDecoder(nodes[i].dataset.bytes) + - " " + - nodes[i].dataset.bytes - ); - } - - for (var i = 0; i < nodes.length; i++) { - tests[i].step(function() { - assert_equals(nodes[i].textContent, sjisDecoder(nodes[i].dataset.bytes)); - }); - tests[i].done(); - } -} -</script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis.html index d66b5184949..9c4047e03e7 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis.html @@ -4,8 +4,17 @@ <meta charset="utf-8"/> <title>sjis decoding</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> <link rel="help" href="https://encoding.spec.whatwg.org/#names-and-labels"> <meta name="assert" content="The browser produces the same decoding behavior for a document labeled 'sjis' as for a document labeled 'shift_jis'."> @@ -14,47 +23,14 @@ </style> <script src="jis0208_index.js"></script> <script src="sjis-decoder.js"></script> +<script src="../../resources/decode-common.js"></script> </head> -<body onload="showNodes();"> +<body onload="showNodes(sjisDecoder);"> <iframe src="sjis_chars-sjis.html" name="scriptWindow" id="scrwin"></iframe> <div id="log"></div> -<script> -var tests = []; - -function iframeRef(frameRef) { - return frameRef.contentWindow - ? frameRef.contentWindow.document - : frameRef.contentDocument; -} - -function showNodes() { - var iframe = iframeRef(document.getElementById("scrwin")); - nodes = iframe.querySelectorAll("span"); - - for (var i = 0; i < nodes.length; i++) { - tests[i] = async_test( - "U+" + - nodes[i].dataset.cp + - " " + - String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) + - " " + - sjisDecoder(nodes[i].dataset.bytes) + - " " + - nodes[i].dataset.bytes - ); - } - - for (var i = 0; i < nodes.length; i++) { - tests[i].step(function() { - assert_equals(nodes[i].textContent, sjisDecoder(nodes[i].dataset.bytes)); - }); - tests[i].done(); - } -} -</script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j.html index 099cba681ac..2ed617b23ca 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j.html @@ -4,8 +4,17 @@ <meta charset="utf-8"/> <title>windows-31j decoding</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> <link rel="help" href="https://encoding.spec.whatwg.org/#names-and-labels"> <meta name="assert" content="The browser produces the same decoding behavior for a document labeled 'windows-31j' as for a document labeled 'shift_jis'."> @@ -14,47 +23,14 @@ </style> <script src="jis0208_index.js"></script> <script src="sjis-decoder.js"></script> +<script src="../../resources/decode-common.js"></script> </head> -<body onload="showNodes();"> +<body onload="showNodes(sjisDecoder);"> <iframe src="sjis_chars-windows-31j.html" name="scriptWindow" id="scrwin"></iframe> <div id="log"></div> -<script> -var tests = []; - -function iframeRef(frameRef) { - return frameRef.contentWindow - ? frameRef.contentWindow.document - : frameRef.contentDocument; -} - -function showNodes() { - var iframe = iframeRef(document.getElementById("scrwin")); - nodes = iframe.querySelectorAll("span"); - - for (var i = 0; i < nodes.length; i++) { - tests[i] = async_test( - "U+" + - nodes[i].dataset.cp + - " " + - String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) + - " " + - sjisDecoder(nodes[i].dataset.bytes) + - " " + - nodes[i].dataset.bytes - ); - } - - for (var i = 0; i < nodes.length; i++) { - tests[i].step(function() { - assert_equals(nodes[i].textContent, sjisDecoder(nodes[i].dataset.bytes)); - }); - tests[i].done(); - } -} -</script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis.html index 5ffa4617d1a..02e6a5d33bc 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis.html @@ -4,8 +4,17 @@ <meta charset="utf-8"/> <title>x-sjis decoding</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> <link rel="help" href="https://encoding.spec.whatwg.org/#names-and-labels"> <meta name="assert" content="The browser produces the same decoding behavior for a document labeled 'x-sjis' as for a document labeled 'shift_jis'."> @@ -14,47 +23,14 @@ </style> <script src="jis0208_index.js"></script> <script src="sjis-decoder.js"></script> +<script src="../../resources/decode-common.js"></script> </head> -<body onload="showNodes();"> +<body onload="showNodes(sjisDecoder);"> <iframe src="sjis_chars-x-sjis.html" name="scriptWindow" id="scrwin"></iframe> <div id="log"></div> -<script> -var tests = []; - -function iframeRef(frameRef) { - return frameRef.contentWindow - ? frameRef.contentWindow.document - : frameRef.contentDocument; -} - -function showNodes() { - var iframe = iframeRef(document.getElementById("scrwin")); - nodes = iframe.querySelectorAll("span"); - - for (var i = 0; i < nodes.length; i++) { - tests[i] = async_test( - "U+" + - nodes[i].dataset.cp + - " " + - String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) + - " " + - sjisDecoder(nodes[i].dataset.bytes) + - " " + - nodes[i].dataset.bytes - ); - } - - for (var i = 0; i < nodes.length; i++) { - tests[i].step(function() { - assert_equals(nodes[i].textContent, sjisDecoder(nodes[i].dataset.bytes)); - }); - tests[i].done(); - } -} -</script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode.html index e0355c2fb32..b05bc28f5bf 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode.html @@ -4,57 +4,33 @@ <meta charset="utf-8"/> <title>ShiftJIS decoding</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> -<link rel="help" href="https://encoding.spec.whatwg.org//#shift_jis"> +<link rel="help" href="https://encoding.spec.whatwg.org/#shift_jis"> <meta name="assert" content="The browser decodes all characters as expected from a file generated by encoding all pointers in the shift_jis encoding per the shift_jis encoder steps in the specification."> <style> iframe { display:none } </style> <script src="jis0208_index.js"></script> <script src="sjis-decoder.js"></script> +<script src="../../resources/decode-common.js"></script> </head> -<body onload="showNodes();"> +<body onload="showNodes(sjisDecoder);"> <iframe src="sjis_chars.html" name="scriptWindow" id="scrwin"></iframe> <div id="log"></div> -<script> -var tests = []; - -function iframeRef(frameRef) { - return frameRef.contentWindow - ? frameRef.contentWindow.document - : frameRef.contentDocument; -} - -function showNodes() { - var iframe = iframeRef(document.getElementById("scrwin")); - nodes = iframe.querySelectorAll("span"); - - for (var i = 0; i < nodes.length; i++) { - tests[i] = async_test( - "U+" + - nodes[i].dataset.cp + - " " + - String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) + - " " + - sjisDecoder(nodes[i].dataset.bytes) + - " " + - nodes[i].dataset.bytes - ); - } - - for (var i = 0; i < nodes.length; i++) { - tests[i].step(function() { - assert_equals(nodes[i].textContent, sjisDecoder(nodes[i].dataset.bytes)); - }); - tests[i].done(); - } -} -</script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html index dd21b766d67..90002ca23df 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html @@ -4,13 +4,22 @@ <meta charset="csshiftjis"> <!-- test breaks if the server overrides this --> <title>csshiftjis encoding (form)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="jis0208_index.js"></script> <script src="sjis-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> -<link rel="help" href="https://encoding.spec.whatwg.org//#shift_jis"> -<meta name="assert" content="The browser produces the same encoding behavior for a document labeled 'csshiftjis' as for a document labeled 'euc-jp'."> +<link rel="help" href="https://encoding.spec.whatwg.org/#shift_jis"> +<meta name="assert" content="The browser produces the same encoding behavior for a document labeled 'csshiftjis' as for a document labeled 'shift_jis'."> <style> iframe { display:none } form { display:none } @@ -18,131 +27,16 @@ </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 500; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; +var errors = false; +var encoder = sjisEncoder; +var ranges = rangesAll; var separator = ","; -var encodedSeparator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // create a simple list of just those code points for which there is an encoding possible - codepoints = []; - for (var i = 0x80; i < 0xffff; i++) { - result = sjisEncoder(String.fromCodePoint(i)); - if (result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%" + result.replace(/ /g, "%"); - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - currentTests.push( - async_test( - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "csshiftjis"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(separator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeparator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals( - normalizeStr(results[j]), - normalizeStr(cplist[i][j].expected) - ); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +function expect(result, codepoint) { + return "%" + result.replace(/ /g, "%"); } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html index 8f802439e94..0c3f661941f 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html @@ -4,12 +4,34 @@ <meta charset="shift_jis"> <!-- test breaks if the server overrides this --> <title>Shift_jis encoding errors (form, han)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-12000"> +<meta name="variant" content="?12001-13000"> +<meta name="variant" content="?13001-14000"> +<meta name="variant" content="?14001-15000"> +<meta name="variant" content="?15001-16000"> +<meta name="variant" content="?16001-17000"> +<meta name="variant" content="?17001-18000"> +<meta name="variant" content="?18001-19000"> +<meta name="variant" content="?19001-20000"> +<meta name="variant" content="?20001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="jis0208_index.js"></script> <script src="sjis-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> -<link rel="help" href="https://encoding.spec.whatwg.org//#shift_jis"> +<link rel="help" href="https://encoding.spec.whatwg.org/#shift_jis"> <meta name="assert" content="The browser produces percent-escaped character references for a URL produced by a form when encoding han characters that are not in the shift_jis encoding."> <style> iframe { display:none } @@ -18,162 +40,20 @@ </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 400; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = ","; -var encodedSeperator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // set up a simple array of unicode codepoints that are not encoded - var codepoints = []; - - for (i = 0x4e00; i < 0x9fba; i++) { - result = sjisEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "cjk "; - } - } - - for (i = 0xf900; i < 0xfa6e; i++) { - // compatibility - result = sjisEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "compatibility "; - } - } - - for (i = 0xfa70; i < 0xfada; i++) { - result = sjisEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "compatibility "; - } - } - - for (i = 0x3400; i < 0x4dbf; i++) { - // cjk extension A - result = sjisEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "extension A "; - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - item.desc = codepoints[i].desc; - currentTests.push( - async_test( - item.desc + - " U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "shift_jis"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call(document.getElementsByTagName("form")); - inputs = Array.prototype.slice.call(document.getElementsByTagName("input")); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals(results[j], cplist[i][j].expected); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +var errors = true; +var encoder = sjisEncoder; +var ranges = rangesHan; +var separator = ","; +function expect(result, codepoint) { + return "%26%23" + codepoint + "%3B"; +} +// Overwrite normalizeStr +function normalizeStr(str) { + return str; } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html index b2a953e1b98..b62829f5da2 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html @@ -4,12 +4,25 @@ <meta charset="shift_jis"> <!-- test breaks if the server overrides this --> <title>Shift_jis encoding errors (form, hangul)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="jis0208_index.js"></script> <script src="sjis-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> -<link rel="help" href="https://encoding.spec.whatwg.org//#shift_jis"> +<link rel="help" href="https://encoding.spec.whatwg.org/#shift_jis"> <meta name="assert" content="The browser produces percent-escaped character references for a URL produced by a form when encoding hangul characters that are not in the shift_jis encoding."> <style> iframe { display:none } @@ -18,132 +31,20 @@ </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 400; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = ","; -var encodedSeperator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // set up a simple array of unicode codepoints that are not encoded - var codepoints = []; - - for (i = 0xac00; i < 0xd7af; i++) { - result = sjisEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "hangul "; - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - item.desc = codepoints[i].desc; - currentTests.push( - async_test( - item.desc + - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "shift_jis"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals(results[j], cplist[i][j].expected); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +var errors = true; +var encoder = sjisEncoder; +var ranges = rangesHangul; +var separator = ","; +function expect(result, codepoint) { + return "%26%23" + codepoint + "%3B"; +} +// Overwrite normalizeStr +function normalizeStr(str) { + return str; } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html index 0dc90d16cdf..5bb89fe330e 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html @@ -4,12 +4,17 @@ <meta charset="shift_jis"> <!-- test breaks if the server overrides this --> <title>Shift_jis encoding errors (form, misc)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="jis0208_index.js"></script> <script src="sjis-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> -<link rel="help" href="https://encoding.spec.whatwg.org//#shift_jis"> +<link rel="help" href="https://encoding.spec.whatwg.org/#shift_jis"> <meta name="assert" content="The browser produces percent-escaped character references for a URL produced by a form when encoding miscellaneous characters that are not in the shift_jis encoding."> <style> iframe { display:none } @@ -18,172 +23,20 @@ </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 400; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = ","; -var encodedSeperator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // set up a simple array of unicode codepoints that are not encoded - var codepoints = []; - - for (var i = 0x80; i < 0x4ff; i++) { - result = sjisEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "latin, greek, cyrillic, etc "; - } - } - - for (i = 0x2000; i < 0x23ff; i++) { - result = sjisEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "punctuation, currency, symbols "; - } - } - - for (i = 0x2460; i < 0x26ff; i++) { - result = sjisEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "enclosed chars and boxes "; - } - } - - for (i = 0x3000; i < 0x33ff; i++) { - result = sjisEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "various asian "; - } - } - - for (i = 0xff00; i < 0xffef; i++) { - result = sjisEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "half/full width "; - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - item.desc = codepoints[i].desc; - currentTests.push( - async_test( - item.desc + - " U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "shift_jis"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call(document.getElementsByTagName("form")); - inputs = Array.prototype.slice.call(document.getElementsByTagName("input")); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals(results[j], cplist[i][j].expected); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +var errors = true; +var encoder = sjisEncoder; +var ranges = rangesMisc; +var separator = ","; +function expect(result, codepoint) { + return "%26%23" + codepoint + "%3B"; +} +// Overwrite normalizeStr +function normalizeStr(str) { + return str; } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html index f18bf665311..bc440f3736f 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html @@ -4,13 +4,22 @@ <meta charset="ms932"> <!-- test breaks if the server overrides this --> <title>ms932 encoding (form)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="jis0208_index.js"></script> <script src="sjis-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> -<link rel="help" href="https://encoding.spec.whatwg.org//#shift_jis"> -<meta name="assert" content="The browser produces the same encoding behavior for a document labeled 'ms932' as for a document labeled 'euc-jp'."> +<link rel="help" href="https://encoding.spec.whatwg.org/#shift_jis"> +<meta name="assert" content="The browser produces the same encoding behavior for a document labeled 'ms932' as for a document labeled 'shift_jis'."> <style> iframe { display:none } form { display:none } @@ -18,131 +27,16 @@ </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 500; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; +var errors = false; +var encoder = sjisEncoder; +var ranges = rangesAll; var separator = ","; -var encodedSeparator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // create a simple list of just those code points for which there is an encoding possible - codepoints = []; - for (var i = 0x80; i < 0xffff; i++) { - result = sjisEncoder(String.fromCodePoint(i)); - if (result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%" + result.replace(/ /g, "%"); - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - currentTests.push( - async_test( - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "ms932"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(separator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeparator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals( - normalizeStr(results[j]), - normalizeStr(cplist[i][j].expected) - ); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +function expect(result, codepoint) { + return "%" + result.replace(/ /g, "%"); } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html index 5b09074c153..8de1fbf0dd2 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html @@ -4,13 +4,22 @@ <meta charset="ms_kanji"> <!-- test breaks if the server overrides this --> <title>ms_kanji encoding (form)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="jis0208_index.js"></script> <script src="sjis-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> -<link rel="help" href="https://encoding.spec.whatwg.org//#shift_jis"> -<meta name="assert" content="The browser produces the same encoding behavior for a document labeled 'ms_kanji' as for a document labeled 'euc-jp'."> +<link rel="help" href="https://encoding.spec.whatwg.org/#shift_jis"> +<meta name="assert" content="The browser produces the same encoding behavior for a document labeled 'ms_kanji' as for a document labeled 'shift_jis'."> <style> iframe { display:none } form { display:none } @@ -18,131 +27,16 @@ </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 500; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; +var errors = false; +var encoder = sjisEncoder; +var ranges = rangesAll; var separator = ","; -var encodedSeparator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // create a simple list of just those code points for which there is an encoding possible - codepoints = []; - for (var i = 0x80; i < 0xffff; i++) { - result = sjisEncoder(String.fromCodePoint(i)); - if (result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%" + result.replace(/ /g, "%"); - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - currentTests.push( - async_test( - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "ms_kanji"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(separator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeparator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals( - normalizeStr(results[j]), - normalizeStr(cplist[i][j].expected) - ); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +function expect(result, codepoint) { + return "%" + result.replace(/ /g, "%"); } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html index cd6bb6e7fb9..7a3bd86e3a8 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html @@ -4,13 +4,22 @@ <meta charset="shift-jis"> <!-- test breaks if the server overrides this --> <title>shift-jis encoding (form)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="jis0208_index.js"></script> <script src="sjis-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> -<link rel="help" href="https://encoding.spec.whatwg.org//#shift_jis"> -<meta name="assert" content="The browser produces the same encoding behavior for a document labeled 'shift-jis' as for a document labeled 'euc-jp'."> +<link rel="help" href="https://encoding.spec.whatwg.org/#shift_jis"> +<meta name="assert" content="The browser produces the same encoding behavior for a document labeled 'shift-jis' as for a document labeled 'shift_jis'."> <style> iframe { display:none } form { display:none } @@ -18,131 +27,16 @@ </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 500; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; +var errors = false; +var encoder = sjisEncoder; +var ranges = rangesAll; var separator = ","; -var encodedSeparator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // create a simple list of just those code points for which there is an encoding possible - codepoints = []; - for (var i = 0x80; i < 0xffff; i++) { - result = sjisEncoder(String.fromCodePoint(i)); - if (result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%" + result.replace(/ /g, "%"); - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - currentTests.push( - async_test( - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "shift-jis"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(separator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeparator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals( - normalizeStr(results[j]), - normalizeStr(cplist[i][j].expected) - ); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +function expect(result, codepoint) { + return "%" + result.replace(/ /g, "%"); } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html index ddade82fc34..c6ff9b0a85e 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html @@ -4,13 +4,22 @@ <meta charset="sjis"> <!-- test breaks if the server overrides this --> <title>sjis encoding (form)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="jis0208_index.js"></script> <script src="sjis-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> -<link rel="help" href="https://encoding.spec.whatwg.org//#shift_jis"> -<meta name="assert" content="The browser produces the same encoding behavior for a document labeled 'sjis' as for a document labeled 'euc-jp'."> +<link rel="help" href="https://encoding.spec.whatwg.org/#shift_jis"> +<meta name="assert" content="The browser produces the same encoding behavior for a document labeled 'sjis' as for a document labeled 'shift_jis'."> <style> iframe { display:none } form { display:none } @@ -18,131 +27,16 @@ </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 500; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; +var errors = false; +var encoder = sjisEncoder; +var ranges = rangesAll; var separator = ","; -var encodedSeparator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // create a simple list of just those code points for which there is an encoding possible - codepoints = []; - for (var i = 0x80; i < 0xffff; i++) { - result = sjisEncoder(String.fromCodePoint(i)); - if (result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%" + result.replace(/ /g, "%"); - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - currentTests.push( - async_test( - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "sjis"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(separator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeparator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals( - normalizeStr(results[j]), - normalizeStr(cplist[i][j].expected) - ); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +function expect(result, codepoint) { + return "%" + result.replace(/ /g, "%"); } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html index 335f622545d..596f011fc0d 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html @@ -4,13 +4,22 @@ <meta charset="windows-31j"> <!-- test breaks if the server overrides this --> <title>windows-31j encoding (form)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="jis0208_index.js"></script> <script src="sjis-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> -<link rel="help" href="https://encoding.spec.whatwg.org//#shift_jis"> -<meta name="assert" content="The browser produces the same encoding behavior for a document labeled 'windows-31j' as for a document labeled 'euc-jp'."> +<link rel="help" href="https://encoding.spec.whatwg.org/#shift_jis"> +<meta name="assert" content="The browser produces the same encoding behavior for a document labeled 'windows-31j' as for a document labeled 'shift_jis'."> <style> iframe { display:none } form { display:none } @@ -18,131 +27,16 @@ </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 500; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; +var errors = false; +var encoder = sjisEncoder; +var ranges = rangesAll; var separator = ","; -var encodedSeparator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // create a simple list of just those code points for which there is an encoding possible - codepoints = []; - for (var i = 0x80; i < 0xffff; i++) { - result = sjisEncoder(String.fromCodePoint(i)); - if (result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%" + result.replace(/ /g, "%"); - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - currentTests.push( - async_test( - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "windows-31j"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(separator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeparator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals( - normalizeStr(results[j]), - normalizeStr(cplist[i][j].expected) - ); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +function expect(result, codepoint) { + return "%" + result.replace(/ /g, "%"); } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html index 1d754ffe615..674c83daabf 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html @@ -4,13 +4,22 @@ <meta charset="x-sjis"> <!-- test breaks if the server overrides this --> <title>x-sjis encoding (form)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="jis0208_index.js"></script> <script src="sjis-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> -<link rel="help" href="https://encoding.spec.whatwg.org//#shift_jis"> -<meta name="assert" content="The browser produces the same encoding behavior for a document labeled 'x-sjis' as for a document labeled 'euc-jp'."> +<link rel="help" href="https://encoding.spec.whatwg.org/#shift_jis"> +<meta name="assert" content="The browser produces the same encoding behavior for a document labeled 'x-sjis' as for a document labeled 'shift_jis'."> <style> iframe { display:none } form { display:none } @@ -18,131 +27,16 @@ </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 500; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; +var errors = false; +var encoder = sjisEncoder; +var ranges = rangesAll; var separator = ","; -var encodedSeparator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // create a simple list of just those code points for which there is an encoding possible - codepoints = []; - for (var i = 0x80; i < 0xffff; i++) { - result = sjisEncoder(String.fromCodePoint(i)); - if (result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%" + result.replace(/ /g, "%"); - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - currentTests.push( - async_test( - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "x-sjis"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(separator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeparator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals( - normalizeStr(results[j]), - normalizeStr(cplist[i][j].expected) - ); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +function expect(result, codepoint) { + return "%" + result.replace(/ /g, "%"); } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html index 66d14835a11..5aa96ac04b3 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html @@ -4,13 +4,22 @@ <meta charset="shift_jis"> <!-- test breaks if the server overrides this --> <title>Shift_jis encoding (form)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="jis0208_index.js"></script> <script src="sjis-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> -<link rel="help" href="https://encoding.spec.whatwg.org//#shift_jis"> -<meta name="assert" content="The browser produces the expected byte sequences for all characters in the shift_jis encoding after 0x9F when encoding bytes for a URL produced by a form, using the encoder steps in the specification."> +<link rel="help" href="https://encoding.spec.whatwg.org/#shift_jis"> +<meta name="assert" content="The browser produces the expected byte sequences for all characters in the shift_jis encoding after 0x9F when encoding bytes for a URL produced by a form, using the encoder steps in the specification."> <style> iframe { display:none } form { display:none } @@ -18,131 +27,16 @@ </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 500; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; +var errors = false; +var encoder = sjisEncoder; +var ranges = rangesAll; var separator = ","; -var encodedSeparator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // create a simple list of just those code points for which there is an encoding possible - codepoints = []; - for (var i = 0x80; i < 0xffff; i++) { - result = sjisEncoder(String.fromCodePoint(i)); - if (result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%" + result.replace(/ /g, "%"); - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - currentTests.push( - async_test( - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "shift_jis"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(separator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeparator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals( - normalizeStr(results[j]), - normalizeStr(cplist[i][j].expected) - ); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +function expect(result, codepoint) { + return "%" + result.replace(/ /g, "%"); } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html index 1f70550a2a2..0f883a685d4 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html @@ -4,97 +4,57 @@ <meta charset="shift_jis"> <!-- test breaks if the server overrides this --> <title>Shift_jis encoding errors (href, han)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-10000"> +<meta name="variant" content="?11001-12000"> +<meta name="variant" content="?12001-13000"> +<meta name="variant" content="?13001-14000"> +<meta name="variant" content="?14001-15000"> +<meta name="variant" content="?15001-16000"> +<meta name="variant" content="?16001-17000"> +<meta name="variant" content="?17001-18000"> +<meta name="variant" content="?18001-19000"> +<meta name="variant" content="?19001-20000"> +<meta name="variant" content="?20001-21000"> +<meta name="variant" content="?21001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="jis0208_index.js"></script> <script src="sjis-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> -<link rel="help" href="https://encoding.spec.whatwg.org//#shift_jis"> +<link rel="help" href="https://encoding.spec.whatwg.org/#shift_jis"> <meta name="assert" content="The browser produces percent-escaped character references when writing characters to an href value and encoding han characters that are not in the shift_jis encoding."> +<style> + iframe { display:none } + form { display:none } +</style> +</head> +<body> +<div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -function encode(input, expected, desc) { - // tests whether a Unicode character is converted to an equivalent byte sequence by href - // input: a Unicode character - // expected: expected byte sequence - // desc: what's being tested - test(function() { - var a = document.createElement("a"); // <a> uses document encoding for URL's query - a.href = "https://example.com/?" + input; - result = a.search.substr(1); // remove leading "?" - assert_equals(result, expected); - }, desc); -} - -// set up a simple array of unicode codepoints that are not encoded -var codepoints = []; - -for (i = 0x4e00; i < 0x9fba; i++) { - result = sjisEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "cjk "; - } -} - -for (i = 0xf900; i < 0xfa6e; i++) { - // compatibility - result = sjisEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "compatibility "; - } +var errors = true; +var encoder = sjisEncoder; +var ranges = rangesHan; +var separator = ","; +function expect(result, codepoint) { + return "%26%23" + codepoint + "%3B"; } - -for (i = 0xfa70; i < 0xfada; i++) { - result = sjisEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "compatibility "; - } +// Overwrite normalizeStr +function normalizeStr(str) { + return str; } - -for (i = 0x3400; i < 0x4dbf; i++) { - // cjk extension A - result = sjisEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "extension A "; - } -} - -// run the tests -for (var x = 0; x < codepoints.length; x++) { - encode( - String.fromCodePoint(codepoints[x].cp), - codepoints[x].expected, - codepoints[x].desc + - " U+" + - codepoints[x].cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(codepoints[x].cp) + - " " + - codepoints[x].expected - ); -} - -// NOTES -// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers -// the tests exclude ASCII characters </script> -</head> -<body> -<div id="log"></div> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html index 29ec1a51820..9bc926bb158 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html @@ -4,62 +4,47 @@ <meta charset="shift_jis"> <!-- test breaks if the server overrides this --> <title>Shift_jis encoding (href, hangul)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="jis0208_index.js"></script> <script src="sjis-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> -<link rel="help" href="https://encoding.spec.whatwg.org//#shift_jis"> +<link rel="help" href="https://encoding.spec.whatwg.org/#shift_jis"> <meta name="assert" content="The browser produces percent-escaped character references when writing characters to an href value and encoding hangul characters that are not in the shift_jis encoding."> +<style> + iframe { display:none } + form { display:none } +</style> +</head> +<body> +<div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -function encode(input, expected, desc) { - // tests whether a Unicode character is converted to an equivalent byte sequence by href - // input: a Unicode character - // expected: expected byte sequence - // desc: what's being tested - test(function() { - var a = document.createElement("a"); // <a> uses document encoding for URL's query - a.href = "https://example.com/?" + input; - result = a.search.substr(1); // remove leading "?" - assert_equals(result, expected); - }, desc); -} - -// set up a simple array of unicode codepoints that are not encoded -var codepoints = []; - -for (i = 0xac00; i < 0xd7af; i++) { - result = sjisEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "hangul "; - } +var errors = true; +var encoder = sjisEncoder; +var ranges = rangesHangul; +var separator = ","; +function expect(result, codepoint) { + return "%26%23" + codepoint + "%3B"; } - -// run the tests -for (var x = 0; x < codepoints.length; x++) { - encode( - String.fromCodePoint(codepoints[x].cp), - codepoints[x].expected, - codepoints[x].desc + - " U+" + - codepoints[x].cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(codepoints[x].cp) + - " " + - codepoints[x].expected - ); +// Overwrite normalizeStr +function normalizeStr(str) { + return str; } - -// NOTES -// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers -// the tests exclude ASCII characters </script> -</head> -<body> -<div id="log"></div> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html index 8341d834a7a..890c3976005 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html @@ -4,106 +4,39 @@ <meta charset="shift_jis"> <!-- test breaks if the server overrides this --> <title>Shift_jis encoding (href, misc)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="jis0208_index.js"></script> <script src="sjis-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> -<link rel="help" href="https://encoding.spec.whatwg.org//#shift_jis"> +<link rel="help" href="https://encoding.spec.whatwg.org/#shift_jis"> <meta name="assert" content="The browser produces percent-escaped character references when writing characters to an href value and encoding miscellaneous characters that are not in the shift_jis encoding."> +<style> + iframe { display:none } + form { display:none } +</style> +</head> +<body> +<div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -function encode(input, expected, desc) { - // tests whether a Unicode character is converted to an equivalent byte sequence by href - // input: a Unicode character - // expected: expected byte sequence - // desc: what's being tested - test(function() { - var a = document.createElement("a"); // <a> uses document encoding for URL's query - a.href = "https://example.com/?" + input; - result = a.search.substr(1); // remove leading "?" - assert_equals(result, expected); - }, desc); -} - -// set up a simple array of unicode codepoints that are not encoded -var codepoints = []; - -for (var i = 0x80; i < 0x4ff; i++) { - result = sjisEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "latin, greek, cyrillic, etc "; - } -} - -for (i = 0x2000; i < 0x23ff; i++) { - result = sjisEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "punctuation, currency, symbols "; - } -} - -for (i = 0x2460; i < 0x26ff; i++) { - result = sjisEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "enclosed chars and boxes "; - } +var errors = true; +var encoder = sjisEncoder; +var ranges = rangesMisc; +var separator = ","; +function expect(result, codepoint) { + return "%26%23" + codepoint + "%3B"; } - -for (i = 0x3000; i < 0x33ff; i++) { - result = sjisEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "various asian "; - } +// Overwrite normalizeStr +function normalizeStr(str) { + return str; } - -for (i = 0xff00; i < 0xffef; i++) { - result = sjisEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "half/full width "; - } -} - -// run the tests -for (var x = 0; x < codepoints.length; x++) { - encode( - String.fromCodePoint(codepoints[x].cp), - codepoints[x].expected, - codepoints[x].desc + - " U+" + - codepoints[x].cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(codepoints[x].cp) + - " " + - codepoints[x].expected - ); -} - -// NOTES -// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers -// the tests exclude ASCII characters </script> -</head> -<body> -<div id="log"></div> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html index 35c33fa982d..288e4da4b31 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html @@ -4,59 +4,40 @@ <meta charset="shift_jis"> <!-- test breaks if the server overrides this --> <title>Shift_jis encoding (href)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="jis0208_index.js"></script> <script src="sjis-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> -<link rel="help" href="https://encoding.spec.whatwg.org//#shift_jis"> +<link rel="help" href="https://encoding.spec.whatwg.org/#shift_jis"> <meta name="assert" content="The browser produces the expected byte sequences for all characters in the shift_jis encoding after 0x9F when writing characters to an href value, using the encoder steps in the specification."> -<script> -function encode(input, expected, desc) { - // tests whether a Unicode character is converted to an equivalent byte sequence by href - // input: a Unicode character - // expected: expected byte sequence - // desc: what's being tested - test(function() { - var a = document.createElement("a"); // <a> uses document encoding for URL's query - a.href = "https://example.com/?" + input; - result = a.search.substr(1); // remove leading "?" - assert_equals(normalizeStr(result), normalizeStr(expected)); - }, desc); -} - -// create a simple list of just those code points for which there is an encoding possible -codepoints = []; -for (var i = 0x80; i < 0xffff; i++) { - result = sjisEncoder(String.fromCodePoint(i)); - if (result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%" + result.replace(/ /g, "%"); - } -} - -// run the tests -for (var x = 0; x < codepoints.length; x++) { - encode( - String.fromCodePoint(codepoints[x].cp), - codepoints[x].expected, - "U+" + - codepoints[x].cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(codepoints[x].cp) + - " " + - codepoints[x].expected - ); -} - -// NOTES -// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers -// the tests exclude ASCII characters -</script> +<style> + iframe { display:none } + form { display:none } +</style> </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> +<script> +var errors = false; +var encoder = sjisEncoder; +var ranges = rangesAll; +var separator = ","; +function expect(result, codepoint) { + return "%" + result.replace(/ /g, "%"); +} +</script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> + diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html index 4e1720d7a47..8cd06a7d065 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html @@ -4,8 +4,27 @@ <meta charset="utf-8"/> <title>cseuckr decoding</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-12000"> +<meta name="variant" content="?12001-13000"> +<meta name="variant" content="?13001-14000"> +<meta name="variant" content="?14001-15000"> +<meta name="variant" content="?15001-16000"> +<meta name="variant" content="?16001-17000"> +<meta name="variant" content="?17001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> <link rel="help" href="https://encoding.spec.whatwg.org/#names-and-labels"> <meta name="assert" content="The browser produces the same decoding behavior for a document labeled 'cseuckr' as for a document labeled 'euc-kr'."> @@ -14,47 +33,14 @@ </style> <script src="euckr_index.js"></script> <script src="euckr-decoder.js"></script> +<script src="../../resources/decode-common.js"></script> </head> -<body onload="showNodes();"> +<body onload="showNodes(euckrDecoder);"> <iframe src="euckr_chars-cseuckr.html" name="scriptWindow" id="scrwin"></iframe> <div id="log"></div> -<script> -var tests = []; - -function iframeRef(frameRef) { - return frameRef.contentWindow - ? frameRef.contentWindow.document - : frameRef.contentDocument; -} - -function showNodes() { - var iframe = iframeRef(document.getElementById("scrwin")); - nodes = iframe.querySelectorAll("span"); - - for (var i = 0; i < nodes.length; i++) { - tests[i] = async_test( - "U+" + - nodes[i].dataset.cp + - " " + - String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) + - " " + - euckrDecoder(nodes[i].dataset.bytes) + - " " + - nodes[i].dataset.bytes - ); - } - - for (var i = 0; i < nodes.length; i++) { - tests[i].step(function() { - assert_equals(nodes[i].textContent, euckrDecoder(nodes[i].dataset.bytes)); - }); - tests[i].done(); - } -} -</script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html index bedfd7d551f..6d7e6b08853 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html @@ -4,8 +4,27 @@ <meta charset="utf-8"/> <title>csksc56011987 decoding</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-12000"> +<meta name="variant" content="?12001-13000"> +<meta name="variant" content="?13001-14000"> +<meta name="variant" content="?14001-15000"> +<meta name="variant" content="?15001-16000"> +<meta name="variant" content="?16001-17000"> +<meta name="variant" content="?17001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> <link rel="help" href="https://encoding.spec.whatwg.org/#names-and-labels"> <meta name="assert" content="The browser produces the same decoding behavior for a document labeled 'csksc56011987' as for a document labeled 'euc-kr'."> @@ -14,47 +33,14 @@ </style> <script src="euckr_index.js"></script> <script src="euckr-decoder.js"></script> +<script src="../../resources/decode-common.js"></script> </head> -<body onload="showNodes();"> +<body onload="showNodes(euckrDecoder);"> <iframe src="euckr_chars-csksc56011987.html" name="scriptWindow" id="scrwin"></iframe> <div id="log"></div> -<script> -var tests = []; - -function iframeRef(frameRef) { - return frameRef.contentWindow - ? frameRef.contentWindow.document - : frameRef.contentDocument; -} - -function showNodes() { - var iframe = iframeRef(document.getElementById("scrwin")); - nodes = iframe.querySelectorAll("span"); - - for (var i = 0; i < nodes.length; i++) { - tests[i] = async_test( - "U+" + - nodes[i].dataset.cp + - " " + - String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) + - " " + - euckrDecoder(nodes[i].dataset.bytes) + - " " + - nodes[i].dataset.bytes - ); - } - - for (var i = 0; i < nodes.length; i++) { - tests[i].step(function() { - assert_equals(nodes[i].textContent, euckrDecoder(nodes[i].dataset.bytes)); - }); - tests[i].done(); - } -} -</script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-iso-ir-149.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-iso-ir-149.html index ce71d3b3a05..48e7fca777d 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-iso-ir-149.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-iso-ir-149.html @@ -14,47 +14,14 @@ </style> <script src="euckr_index.js"></script> <script src="euckr-decoder.js"></script> +<script src="../../resources/decode-common.js"></script> </head> -<body onload="showNodes();"> +<body onload="showNodes(euckrDecoder);"> <iframe src="euckr_chars-iso-ir-149.html" name="scriptWindow" id="scrwin"></iframe> <div id="log"></div> -<script> -var tests = []; - -function iframeRef(frameRef) { - return frameRef.contentWindow - ? frameRef.contentWindow.document - : frameRef.contentDocument; -} - -function showNodes() { - var iframe = iframeRef(document.getElementById("scrwin")); - nodes = iframe.querySelectorAll("span"); - - for (var i = 0; i < nodes.length; i++) { - tests[i] = async_test( - "U+" + - nodes[i].dataset.cp + - " " + - String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) + - " " + - euckrDecoder(nodes[i].dataset.bytes) + - " " + - nodes[i].dataset.bytes - ); - } - - for (var i = 0; i < nodes.length; i++) { - tests[i].step(function() { - assert_equals(nodes[i].textContent, euckrDecoder(nodes[i].dataset.bytes)); - }); - tests[i].done(); - } -} -</script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-korean.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-korean.html index 8a6971f7517..59ffdce82b9 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-korean.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-korean.html @@ -14,47 +14,14 @@ </style> <script src="euckr_index.js"></script> <script src="euckr-decoder.js"></script> +<script src="../../resources/decode-common.js"></script> </head> -<body onload="showNodes();"> +<body onload="showNodes(euckrDecoder);"> <iframe src="euckr_chars-korean.html" name="scriptWindow" id="scrwin"></iframe> <div id="log"></div> -<script> -var tests = []; - -function iframeRef(frameRef) { - return frameRef.contentWindow - ? frameRef.contentWindow.document - : frameRef.contentDocument; -} - -function showNodes() { - var iframe = iframeRef(document.getElementById("scrwin")); - nodes = iframe.querySelectorAll("span"); - - for (var i = 0; i < nodes.length; i++) { - tests[i] = async_test( - "U+" + - nodes[i].dataset.cp + - " " + - String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) + - " " + - euckrDecoder(nodes[i].dataset.bytes) + - " " + - nodes[i].dataset.bytes - ); - } - - for (var i = 0; i < nodes.length; i++) { - tests[i].step(function() { - assert_equals(nodes[i].textContent, euckrDecoder(nodes[i].dataset.bytes)); - }); - tests[i].done(); - } -} -</script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1987.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1987.html index 5c38428f59a..7a26f489b7a 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1987.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1987.html @@ -14,47 +14,14 @@ </style> <script src="euckr_index.js"></script> <script src="euckr-decoder.js"></script> +<script src="../../resources/decode-common.js"></script> </head> -<body onload="showNodes();"> +<body onload="showNodes(euckrDecoder);"> <iframe src="euckr_chars-ks_c_5601-1987.html" name="scriptWindow" id="scrwin"></iframe> <div id="log"></div> -<script> -var tests = []; - -function iframeRef(frameRef) { - return frameRef.contentWindow - ? frameRef.contentWindow.document - : frameRef.contentDocument; -} - -function showNodes() { - var iframe = iframeRef(document.getElementById("scrwin")); - nodes = iframe.querySelectorAll("span"); - - for (var i = 0; i < nodes.length; i++) { - tests[i] = async_test( - "U+" + - nodes[i].dataset.cp + - " " + - String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) + - " " + - euckrDecoder(nodes[i].dataset.bytes) + - " " + - nodes[i].dataset.bytes - ); - } - - for (var i = 0; i < nodes.length; i++) { - tests[i].step(function() { - assert_equals(nodes[i].textContent, euckrDecoder(nodes[i].dataset.bytes)); - }); - tests[i].done(); - } -} -</script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1989.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1989.html index 09066b52ee7..8c75cf50c1b 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1989.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1989.html @@ -14,47 +14,14 @@ </style> <script src="euckr_index.js"></script> <script src="euckr-decoder.js"></script> +<script src="../../resources/decode-common.js"></script> </head> -<body onload="showNodes();"> +<body onload="showNodes(euckrDecoder);"> <iframe src="euckr_chars-ks_c_5601-1989.html" name="scriptWindow" id="scrwin"></iframe> <div id="log"></div> -<script> -var tests = []; - -function iframeRef(frameRef) { - return frameRef.contentWindow - ? frameRef.contentWindow.document - : frameRef.contentDocument; -} - -function showNodes() { - var iframe = iframeRef(document.getElementById("scrwin")); - nodes = iframe.querySelectorAll("span"); - - for (var i = 0; i < nodes.length; i++) { - tests[i] = async_test( - "U+" + - nodes[i].dataset.cp + - " " + - String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) + - " " + - euckrDecoder(nodes[i].dataset.bytes) + - " " + - nodes[i].dataset.bytes - ); - } - - for (var i = 0; i < nodes.length; i++) { - tests[i].step(function() { - assert_equals(nodes[i].textContent, euckrDecoder(nodes[i].dataset.bytes)); - }); - tests[i].done(); - } -} -</script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc5601.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc5601.html index 64e4e97bc37..83c09223c98 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc5601.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc5601.html @@ -14,47 +14,14 @@ </style> <script src="euckr_index.js"></script> <script src="euckr-decoder.js"></script> +<script src="../../resources/decode-common.js"></script> </head> -<body onload="showNodes();"> +<body onload="showNodes(euckrDecoder);"> <iframe src="euckr_chars-ksc5601.html" name="scriptWindow" id="scrwin"></iframe> <div id="log"></div> -<script> -var tests = []; - -function iframeRef(frameRef) { - return frameRef.contentWindow - ? frameRef.contentWindow.document - : frameRef.contentDocument; -} - -function showNodes() { - var iframe = iframeRef(document.getElementById("scrwin")); - nodes = iframe.querySelectorAll("span"); - - for (var i = 0; i < nodes.length; i++) { - tests[i] = async_test( - "U+" + - nodes[i].dataset.cp + - " " + - String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) + - " " + - euckrDecoder(nodes[i].dataset.bytes) + - " " + - nodes[i].dataset.bytes - ); - } - - for (var i = 0; i < nodes.length; i++) { - tests[i].step(function() { - assert_equals(nodes[i].textContent, euckrDecoder(nodes[i].dataset.bytes)); - }); - tests[i].done(); - } -} -</script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc_5601.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc_5601.html index 74292461841..6499ab578f9 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc_5601.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc_5601.html @@ -14,47 +14,14 @@ </style> <script src="euckr_index.js"></script> <script src="euckr-decoder.js"></script> +<script src="../../resources/decode-common.js"></script> </head> -<body onload="showNodes();"> +<body onload="showNodes(euckrDecoder);"> <iframe src="euckr_chars-ksc_5601.html" name="scriptWindow" id="scrwin"></iframe> <div id="log"></div> -<script> -var tests = []; - -function iframeRef(frameRef) { - return frameRef.contentWindow - ? frameRef.contentWindow.document - : frameRef.contentDocument; -} - -function showNodes() { - var iframe = iframeRef(document.getElementById("scrwin")); - nodes = iframe.querySelectorAll("span"); - - for (var i = 0; i < nodes.length; i++) { - tests[i] = async_test( - "U+" + - nodes[i].dataset.cp + - " " + - String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) + - " " + - euckrDecoder(nodes[i].dataset.bytes) + - " " + - nodes[i].dataset.bytes - ); - } - - for (var i = 0; i < nodes.length; i++) { - tests[i].step(function() { - assert_equals(nodes[i].textContent, euckrDecoder(nodes[i].dataset.bytes)); - }); - tests[i].done(); - } -} -</script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-windows-949.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-windows-949.html index 66e71af72fa..1f2f302d3c4 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-windows-949.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-windows-949.html @@ -14,47 +14,14 @@ </style> <script src="euckr_index.js"></script> <script src="euckr-decoder.js"></script> +<script src="../../resources/decode-common.js"></script> </head> -<body onload="showNodes();"> +<body onload="showNodes(euckrDecoder);"> <iframe src="euckr_chars-windows-949.html" name="scriptWindow" id="scrwin"></iframe> <div id="log"></div> -<script> -var tests = []; - -function iframeRef(frameRef) { - return frameRef.contentWindow - ? frameRef.contentWindow.document - : frameRef.contentDocument; -} - -function showNodes() { - var iframe = iframeRef(document.getElementById("scrwin")); - nodes = iframe.querySelectorAll("span"); - - for (var i = 0; i < nodes.length; i++) { - tests[i] = async_test( - "U+" + - nodes[i].dataset.cp + - " " + - String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) + - " " + - euckrDecoder(nodes[i].dataset.bytes) + - " " + - nodes[i].dataset.bytes - ); - } - - for (var i = 0; i < nodes.length; i++) { - tests[i].step(function() { - assert_equals(nodes[i].textContent, euckrDecoder(nodes[i].dataset.bytes)); - }); - tests[i].done(); - } -} -</script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode.html index dab13027af1..a3b46f0d478 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode.html @@ -14,47 +14,14 @@ </style> <script src="euckr_index.js"></script> <script src="euckr-decoder.js"></script> +<script src="../../resources/decode-common.js"></script> </head> -<body onload="showNodes();"> +<body onload="showNodes(euckrDecoder);"> <iframe src="euckr_chars.html" name="scriptWindow" id="scrwin"></iframe> <div id="log"></div> -<script> -var tests = []; - -function iframeRef(frameRef) { - return frameRef.contentWindow - ? frameRef.contentWindow.document - : frameRef.contentDocument; -} - -function showNodes() { - var iframe = iframeRef(document.getElementById("scrwin")); - nodes = iframe.querySelectorAll("span"); - - for (var i = 0; i < nodes.length; i++) { - tests[i] = async_test( - "U+" + - nodes[i].dataset.cp + - " " + - String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) + - " " + - euckrDecoder(nodes[i].dataset.bytes) + - " " + - nodes[i].dataset.bytes - ); - } - - for (var i = 0; i < nodes.length; i++) { - tests[i].step(function() { - assert_equals(nodes[i].textContent, euckrDecoder(nodes[i].dataset.bytes)); - }); - tests[i].done(); - } -} -</script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html index d8cdbe20c03..81143c31c7f 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html @@ -4,8 +4,27 @@ <meta charset="cseuckr"> <!-- test breaks if the server overrides this --> <title>cseuckr encoding (form)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-12000"> +<meta name="variant" content="?12001-13000"> +<meta name="variant" content="?13001-14000"> +<meta name="variant" content="?14001-15000"> +<meta name="variant" content="?15001-16000"> +<meta name="variant" content="?16001-17000"> +<meta name="variant" content="?17001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="euckr_index.js"></script> <script src="euckr-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> @@ -18,131 +37,16 @@ </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 500; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = ","; -var encodedSeperator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // create a simple list of just those code points for which there is an encoding possible - codepoints = []; - for (var i = 0x80; i < 0xffff; i++) { - result = euckrEncoder(String.fromCodePoint(i)); - if (result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%" + result.replace(/ /g, "%"); - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - currentTests.push( - async_test( - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "cseuckr"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals( - normalizeStr(results[j]), - normalizeStr(cplist[i][j].expected) - ); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +var errors = false; +var encoder = euckrEncoder; +var ranges = rangesAll; +var separator = ","; +function expect(result, codepoint) { + return "%" + result.replace(/ /g, "%"); } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html index 8c6b9d673a9..2ee63e5966e 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html @@ -4,8 +4,27 @@ <meta charset="csksc56011987"> <!-- test breaks if the server overrides this --> <title>csksc56011987 encoding (form)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-12000"> +<meta name="variant" content="?12001-13000"> +<meta name="variant" content="?13001-14000"> +<meta name="variant" content="?14001-15000"> +<meta name="variant" content="?15001-16000"> +<meta name="variant" content="?16001-17000"> +<meta name="variant" content="?17001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="euckr_index.js"></script> <script src="euckr-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> @@ -18,131 +37,16 @@ </head> <body> <div id="log"></div> +<script src="../../ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 500; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = ","; -var encodedSeperator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // create a simple list of just those code points for which there is an encoding possible - codepoints = []; - for (var i = 0x80; i < 0xffff; i++) { - result = euckrEncoder(String.fromCodePoint(i)); - if (result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%" + result.replace(/ /g, "%"); - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - currentTests.push( - async_test( - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "csksc56011987"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals( - normalizeStr(results[j]), - normalizeStr(cplist[i][j].expected) - ); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +var errors = false; +var encoder = euckrEncoder; +var ranges = rangesAll; +var separator = ","; +function expect(result) { + return "%" + result.replace(/ /g, "%"); } </script> +<script src="../../encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html index 033362dc2e5..8d79541b825 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html @@ -4,8 +4,33 @@ <meta charset="euc-kr"> <!-- test breaks if the server overrides this --> <title>EUC-KR encoding errors (form, han)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-12000"> +<meta name="variant" content="?12001-13000"> +<meta name="variant" content="?13001-14000"> +<meta name="variant" content="?14001-15000"> +<meta name="variant" content="?15001-16000"> +<meta name="variant" content="?16001-17000"> +<meta name="variant" content="?17001-18000"> +<meta name="variant" content="?18001-19000"> +<meta name="variant" content="?19001-20000"> +<meta name="variant" content="?20001-21000"> +<meta name="variant" content="?21001-22000"> +<meta name="variant" content="?22001-23000"> +<meta name="variant" content="?23001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="euckr_index.js"></script> <script src="euckr-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> @@ -18,163 +43,19 @@ </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 400; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = ","; -var encodedSeperator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // set up a simple array of unicode codepoints that are not encoded - var codepoints = []; - - for (i = 0x4e00; i < 0x9fba; i++) { - result = euckrEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "cjk "; - } - } - - for (i = 0xf900; i < 0xfa6e; i++) { - // compatibility - result = euckrEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "compatibility "; - } - } - - for (i = 0xfa70; i < 0xfada; i++) { - result = euckrEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "compatibility "; - } - } - - for (i = 0x3400; i < 0x4dbf; i++) { - // cjk extension A - result = euckrEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "extension A "; - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - item.desc = codepoints[i].desc; - currentTests.push( - async_test( - item.desc + - " U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "euc-kr"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call(document.getElementsByTagName("form")); - inputs = Array.prototype.slice.call(document.getElementsByTagName("input")); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals(results[j], cplist[i][j].expected); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +var errors = true; +var encoder = euckrEncoder; +var ranges = rangesHan; +var separator = ","; +function expect(result, codepoint) { + return "%26%23" + codepoint + "%3B"; +} +function normalizeStr(str) { + return str; } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-hangul.html.headers b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-hangul.html.headers deleted file mode 100644 index 3a990e85bfb..00000000000 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-hangul.html.headers +++ /dev/null @@ -1 +0,0 @@ -Content-Type: text/html; charset=euc-kr diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html index 130980f043b..4a7fa6d7670 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html @@ -4,8 +4,13 @@ <meta charset="euc-kr"> <!-- test breaks if the server overrides this --> <title>EUC-KR encoding errors (form, misc)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="euckr_index.js"></script> <script src="euckr-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> @@ -18,172 +23,20 @@ </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 400; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = ","; -var encodedSeperator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // set up a simple array of unicode codepoints that are not encoded - var codepoints = []; - - for (var i = 0x80; i < 0x4ff; i++) { - result = euckrEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "latin, greek, cyrillic, etc "; - } - } - - for (i = 0x2000; i < 0x23ff; i++) { - result = euckrEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "punctuation, currency, symbols "; - } - } - - for (i = 0x2460; i < 0x26ff; i++) { - result = euckrEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "enclosed chars and boxes "; - } - } - - for (i = 0x3000; i < 0x33ff; i++) { - result = euckrEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "various asian "; - } - } - - for (i = 0xff00; i < 0xffef; i++) { - result = euckrEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "half/full width "; - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - item.desc = codepoints[i].desc; - currentTests.push( - async_test( - item.desc + - " U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "euc-kr"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call(document.getElementsByTagName("form")); - inputs = Array.prototype.slice.call(document.getElementsByTagName("input")); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals(results[j], cplist[i][j].expected); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +var errors = true; +var encoder = euckrEncoder; +var ranges = rangesMisc; +var separator = ","; +function expect(result, codepoint) { + return "%26%23" + codepoint + "%3B"; +} +// Overwrite normalizeStr +function normalizeStr(str) { + return str; } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html index 4ced58e7ae9..df309c04237 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html @@ -4,8 +4,27 @@ <meta charset="iso-ir-149"> <!-- test breaks if the server overrides this --> <title>iso-ir-149 encoding (form)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-12000"> +<meta name="variant" content="?12001-13000"> +<meta name="variant" content="?13001-14000"> +<meta name="variant" content="?14001-15000"> +<meta name="variant" content="?15001-16000"> +<meta name="variant" content="?16001-17000"> +<meta name="variant" content="?17001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="euckr_index.js"></script> <script src="euckr-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> @@ -18,131 +37,16 @@ </head> <body> <div id="log"></div> +<script src="../../ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 500; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = ","; -var encodedSeperator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // create a simple list of just those code points for which there is an encoding possible - codepoints = []; - for (var i = 0x80; i < 0xffff; i++) { - result = euckrEncoder(String.fromCodePoint(i)); - if (result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%" + result.replace(/ /g, "%"); - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - currentTests.push( - async_test( - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "iso-ir-149"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals( - normalizeStr(results[j]), - normalizeStr(cplist[i][j].expected) - ); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +var errors = false; +var encoder = euckrEncoder; +var ranges = rangesAll; +var separator = ","; +function expect(result) { + return "%" + result.replace(/ /g, "%"); } </script> +<script src="../../encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html index d7cae24445e..27b54f7e129 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html @@ -4,8 +4,27 @@ <meta charset="korean"> <!-- test breaks if the server overrides this --> <title>korean encoding (form)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-12000"> +<meta name="variant" content="?12001-13000"> +<meta name="variant" content="?13001-14000"> +<meta name="variant" content="?14001-15000"> +<meta name="variant" content="?15001-16000"> +<meta name="variant" content="?16001-17000"> +<meta name="variant" content="?17001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="euckr_index.js"></script> <script src="euckr-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> @@ -18,140 +37,16 @@ </head> <body> <div id="log"></div> +<script src="../../ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 500; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = ","; -var encodedSeperator = encodeURIComponent(","); -var currentChunkIndex = 0; - -// set up a sparse array of all unicode codepoints listed in the index -// this will be used for lookup in getByteSequence -var indexcodepoints = []; // index is unicode cp, value is pointer -for (p = 0; p < euckr.length; p++) { - if (euckr[p] != null && indexcodepoints[euckr[p]] == null) { - indexcodepoints[euckr[p]] = p; - } -} - -setup(function() { - // create a simple list of just those code points for which there is an encoding possible - codepoints = []; - for (var i = 0x80; i < 0xffff; i++) { - result = euckrEncoder(String.fromCodePoint(i)); - if (result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%" + result.replace(/ /g, "%"); - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - currentTests.push( - async_test( - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "korean"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals( - normalizeStr(results[j]), - normalizeStr(cplist[i][j].expected) - ); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +var errors = false; +var encoder = euckrEncoder; +var ranges = rangesAll; +var separator = ","; +function expect(result) { + return "%" + result.replace(/ /g, "%"); } </script> +<script src="../../encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html index f1f1b3720b4..1160f88568d 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html @@ -4,8 +4,27 @@ <meta charset="ks_c_5601-1987"> <!-- test breaks if the server overrides this --> <title>ks_c_5601-1987 encoding (form)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-12000"> +<meta name="variant" content="?12001-13000"> +<meta name="variant" content="?13001-14000"> +<meta name="variant" content="?14001-15000"> +<meta name="variant" content="?15001-16000"> +<meta name="variant" content="?16001-17000"> +<meta name="variant" content="?17001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="euckr_index.js"></script> <script src="euckr-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> @@ -18,131 +37,16 @@ </head> <body> <div id="log"></div> +<script src="../../ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 500; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = ","; -var encodedSeperator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // create a simple list of just those code points for which there is an encoding possible - codepoints = []; - for (var i = 0x80; i < 0xffff; i++) { - result = euckrEncoder(String.fromCodePoint(i)); - if (result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%" + result.replace(/ /g, "%"); - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - currentTests.push( - async_test( - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "ks_c_5601-1987"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals( - normalizeStr(results[j]), - normalizeStr(cplist[i][j].expected) - ); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +var errors = false; +var encoder = euckrEncoder; +var ranges = rangesAll; +var separator = ","; +function expect(result) { + return "%" + result.replace(/ /g, "%"); } </script> +<script src="../../encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html index 8a36d77acbf..d8f1d801642 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html @@ -4,8 +4,27 @@ <meta charset="ks_c_5601-1989"> <!-- test breaks if the server overrides this --> <title>ks_c_5601-1989 encoding (form)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-12000"> +<meta name="variant" content="?12001-13000"> +<meta name="variant" content="?13001-14000"> +<meta name="variant" content="?14001-15000"> +<meta name="variant" content="?15001-16000"> +<meta name="variant" content="?16001-17000"> +<meta name="variant" content="?17001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="euckr_index.js"></script> <script src="euckr-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> @@ -18,140 +37,16 @@ </head> <body> <div id="log"></div> +<script src="../../ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 500; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = ","; -var encodedSeperator = encodeURIComponent(","); -var currentChunkIndex = 0; - -// set up a sparse array of all unicode codepoints listed in the index -// this will be used for lookup in getByteSequence -var indexcodepoints = []; // index is unicode cp, value is pointer -for (p = 0; p < euckr.length; p++) { - if (euckr[p] != null && indexcodepoints[euckr[p]] == null) { - indexcodepoints[euckr[p]] = p; - } -} - -setup(function() { - // create a simple list of just those code points for which there is an encoding possible - codepoints = []; - for (var i = 0x80; i < 0xffff; i++) { - result = euckrEncoder(String.fromCodePoint(i)); - if (result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%" + result.replace(/ /g, "%"); - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - currentTests.push( - async_test( - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "ks_c_5601-1989"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals( - normalizeStr(results[j]), - normalizeStr(cplist[i][j].expected) - ); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +var errors = false; +var encoder = euckrEncoder; +var ranges = rangesAll; +var separator = ","; +function expect(result) { + return "%" + result.replace(/ /g, "%"); } </script> +<script src="../../encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html index bc132bd627e..b6facc4d4ca 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html @@ -4,8 +4,27 @@ <meta charset="ksc5601"> <!-- test breaks if the server overrides this --> <title>ksc5601 encoding (form)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-12000"> +<meta name="variant" content="?12001-13000"> +<meta name="variant" content="?13001-14000"> +<meta name="variant" content="?14001-15000"> +<meta name="variant" content="?15001-16000"> +<meta name="variant" content="?16001-17000"> +<meta name="variant" content="?17001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="euckr_index.js"></script> <script src="euckr-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> @@ -18,131 +37,16 @@ </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 500; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = ","; -var encodedSeperator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // create a simple list of just those code points for which there is an encoding possible - codepoints = []; - for (var i = 0x80; i < 0xffff; i++) { - result = euckrEncoder(String.fromCodePoint(i)); - if (result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%" + result.replace(/ /g, "%"); - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - currentTests.push( - async_test( - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "ksc5601"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals( - normalizeStr(results[j]), - normalizeStr(cplist[i][j].expected) - ); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +var errors = false; +var encoder = euckrEncoder; +var ranges = rangesAll; +var separator = ","; +function expect(result, codepoint) { + return "%" + result.replace(/ /g, "%"); } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html index f306e5b08f2..78b9fe5271a 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html @@ -4,8 +4,27 @@ <meta charset="ksc_5601"> <!-- test breaks if the server overrides this --> <title>ksc_5601 encoding (form)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-12000"> +<meta name="variant" content="?12001-13000"> +<meta name="variant" content="?13001-14000"> +<meta name="variant" content="?14001-15000"> +<meta name="variant" content="?15001-16000"> +<meta name="variant" content="?16001-17000"> +<meta name="variant" content="?17001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="euckr_index.js"></script> <script src="euckr-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> @@ -18,131 +37,16 @@ </head> <body> <div id="log"></div> +<script src="../../ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 500; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = ","; -var encodedSeperator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // create a simple list of just those code points for which there is an encoding possible - codepoints = []; - for (var i = 0x80; i < 0xffff; i++) { - result = euckrEncoder(String.fromCodePoint(i)); - if (result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%" + result.replace(/ /g, "%"); - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - currentTests.push( - async_test( - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "ksc_5601"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals( - normalizeStr(results[j]), - normalizeStr(cplist[i][j].expected) - ); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +var errors = false; +var encoder = euckrEncoder; +var ranges = rangesAll; +var separator = ","; +function expect(result) { + return "%" + result.replace(/ /g, "%"); } </script> +<script src="../../encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html index 3d2b4d1d302..aac30680495 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html @@ -4,8 +4,28 @@ <meta charset="windows-949"> <!-- test breaks if the server overrides this --> <title>windows-949 encoding (form)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-12000"> +<meta name="variant" content="?12001-13000"> +<meta name="variant" content="?13001-14000"> +<meta name="variant" content="?14001-15000"> +<meta name="variant" content="?15001-16000"> +<meta name="variant" content="?16001-17000"> +<meta name="variant" content="?17001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> + <script src="euckr_index.js"></script> <script src="euckr-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> @@ -18,131 +38,17 @@ </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 500; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = ","; -var encodedSeperator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // create a simple list of just those code points for which there is an encoding possible - codepoints = []; - for (var i = 0x80; i < 0xffff; i++) { - result = euckrEncoder(String.fromCodePoint(i)); - if (result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%" + result.replace(/ /g, "%"); - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - currentTests.push( - async_test( - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "windows-949"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals( - normalizeStr(results[j]), - normalizeStr(cplist[i][j].expected) - ); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +var errors = false; +var encoder = euckrEncoder; +var ranges = rangesAll; +var separator = ","; +function expect(result, codepoint) { + return "%" + result.replace(/ /g, "%"); } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> + diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html index 47e40aa68a5..545f8ac93f6 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html @@ -4,8 +4,27 @@ <meta charset="euc-kr"> <!-- test breaks if the server overrides this --> <title>EUC-KR encoding (form)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-12000"> +<meta name="variant" content="?12001-13000"> +<meta name="variant" content="?13001-14000"> +<meta name="variant" content="?14001-15000"> +<meta name="variant" content="?15001-16000"> +<meta name="variant" content="?16001-17000"> +<meta name="variant" content="?17001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="euckr_index.js"></script> <script src="euckr-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> @@ -18,131 +37,16 @@ </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 500; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = ","; -var encodedSeperator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // create a simple list of just those code points for which there is an encoding possible - codepoints = []; - for (var i = 0x80; i < 0xffff; i++) { - result = euckrEncoder(String.fromCodePoint(i)); - if (result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%" + result.replace(/ /g, "%"); - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - currentTests.push( - async_test( - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "euc-kr"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals( - normalizeStr(results[j]), - normalizeStr(cplist[i][j].expected) - ); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +var errors = false; +var encoder = euckrEncoder; +var ranges = rangesAll; +var separator = ","; +function expect(result, codepoint) { + return "%" + result.replace(/ /g, "%"); } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html index ad334f9fba1..91ef21373ae 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html @@ -4,97 +4,58 @@ <meta charset="euc-kr"> <!-- test breaks if the server overrides this --> <title>EUC-KR encoding errors (href, han)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-12000"> +<meta name="variant" content="?12001-13000"> +<meta name="variant" content="?13001-14000"> +<meta name="variant" content="?14001-15000"> +<meta name="variant" content="?15001-16000"> +<meta name="variant" content="?16001-17000"> +<meta name="variant" content="?17001-18000"> +<meta name="variant" content="?18001-19000"> +<meta name="variant" content="?19001-20000"> +<meta name="variant" content="?20001-21000"> +<meta name="variant" content="?21001-22000"> +<meta name="variant" content="?22001-23000"> +<meta name="variant" content="?23001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="euckr_index.js"></script> <script src="euckr-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> <link rel="help" href="https://encoding.spec.whatwg.org/#euc-kr"> <meta name="assert" content="The browser produces percent-escaped character references when writing characters to an href value and encoding han characters that are not in the euc-kr encoding."> +<style> + iframe { display:none } + form { display:none } +</style> +</head> +<body> +<div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -function encode(input, expected, desc) { - // tests whether a Unicode character is converted to an equivalent byte sequence by href - // input: a Unicode character - // expected: expected byte sequence - // desc: what's being tested - test(function() { - var a = document.createElement("a"); // <a> uses document encoding for URL's query - a.href = "https://example.com/?" + input; - result = a.search.substr(1); // remove leading "?" - assert_equals(result, expected); - }, desc); -} - -// set up a simple array of unicode codepoints that are not encoded -var codepoints = []; - -for (i = 0x4e00; i < 0x9fba; i++) { - result = euckrEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "cjk "; - } -} - -for (i = 0xf900; i < 0xfa6e; i++) { - // compatibility - result = euckrEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "compatibility "; - } +var errors = true; +var encoder = euckrEncoder; +var ranges = rangesHan; +function expect(result, codepoint) { + return "%26%23" + codepoint + "%3B"; } - -for (i = 0xfa70; i < 0xfada; i++) { - result = euckrEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "compatibility "; - } +// Overwrite normalizeStr +function normalizeStr(str) { + return str; } - -for (i = 0x3400; i < 0x4dbf; i++) { - // cjk extension A - result = euckrEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "extension A "; - } -} - -// run the tests -for (var x = 0; x < codepoints.length; x++) { - encode( - String.fromCodePoint(codepoints[x].cp), - codepoints[x].expected, - codepoints[x].desc + - " U+" + - codepoints[x].cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(codepoints[x].cp) + - " " + - codepoints[x].expected - ); -} - -// NOTES -// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers -// the tests exclude ASCII characters </script> -</head> -<body> -<div id="log"></div> +<script src="../../resources/encode-href-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html index 5185963588f..a72a161ab7a 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html @@ -4,106 +4,38 @@ <meta charset="euc-kr"> <!-- test breaks if the server overrides this --> <title>EUC-KR encoding errors (href, misc)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="euckr_index.js"></script> <script src="euckr-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> <link rel="help" href="https://encoding.spec.whatwg.org/#euc-kr"> <meta name="assert" content="The browser produces percent-escaped character references when writing characters to an href value and encoding miscellaneous characters that are not in the euc-kr encoding."> +<style> + iframe { display:none } + form { display:none } +</style> +</head> +<body> +<div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -function encode(input, expected, desc) { - // tests whether a Unicode character is converted to an equivalent byte sequence by href - // input: a Unicode character - // expected: expected byte sequence - // desc: what's being tested - test(function() { - var a = document.createElement("a"); // <a> uses document encoding for URL's query - a.href = "https://example.com/?" + input; - result = a.search.substr(1); // remove leading "?" - assert_equals(result, expected); - }, desc); -} - -// set up a simple array of unicode codepoints that are not encoded -var codepoints = []; - -for (var i = 0x80; i < 0x4ff; i++) { - result = euckrEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "latin, greek, cyrillic, etc "; - } -} - -for (i = 0x2000; i < 0x23ff; i++) { - result = euckrEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "punctuation, currency, symbols "; - } -} - -for (i = 0x2460; i < 0x26ff; i++) { - result = euckrEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "enclosed chars and boxes "; - } +var errors = true; +var encoder = euckrEncoder; +var ranges = rangesMisc; +function expect(result, codepoint) { + return "%26%23" + codepoint + "%3B"; } - -for (i = 0x3000; i < 0x33ff; i++) { - result = euckrEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "various asian "; - } +// Overwrite normalizeStr +function normalizeStr(str) { + return str; } - -for (i = 0xff00; i < 0xffef; i++) { - result = euckrEncoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "half/full width "; - } -} - -// run the tests -for (var x = 0; x < codepoints.length; x++) { - encode( - String.fromCodePoint(codepoints[x].cp), - codepoints[x].expected, - codepoints[x].desc + - " U+" + - codepoints[x].cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(codepoints[x].cp) + - " " + - codepoints[x].expected - ); -} - -// NOTES -// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers -// the tests exclude ASCII characters </script> -</head> -<body> -<div id="log"></div> +<script src="../../resources/encode-href-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html index f03a417aeb7..a4963fd682a 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html @@ -4,59 +4,48 @@ <meta charset="euc-kr"> <!-- test breaks if the server overrides this --> <title>EUC-KR encoding (href)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-12000"> +<meta name="variant" content="?12001-13000"> +<meta name="variant" content="?13001-14000"> +<meta name="variant" content="?14001-15000"> +<meta name="variant" content="?15001-16000"> +<meta name="variant" content="?16001-17000"> +<meta name="variant" content="?17001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="euckr_index.js"></script> <script src="euckr-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> <link rel="help" href="https://encoding.spec.whatwg.org/#euc-kr"> <meta name="assert" content="The browser produces the expected byte sequences for all characters in the euc-kr encoding after 0x9F when writing characters to an href value, using the encoder steps in the specification."> -<script> -function encode(input, expected, desc) { - // tests whether a Unicode character is converted to an equivalent byte sequence by href - // input: a Unicode character - // expected: expected byte sequence - // desc: what's being tested - test(function() { - var a = document.createElement("a"); // <a> uses document encoding for URL's query - a.href = "https://example.com/?" + input; - result = a.search.substr(1); // remove leading "?" - assert_equals(normalizeStr(result), normalizeStr(expected)); - }, desc); -} - -// create a simple list of just those code points for which there is an encoding possible -codepoints = []; -for (var i = 0x80; i < 0xffff; i++) { - result = euckrEncoder(String.fromCodePoint(i)); - if (result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%" + result.replace(/ /g, "%"); - } -} - -// run the tests -for (var x = 0; x < codepoints.length; x++) { - encode( - String.fromCodePoint(codepoints[x].cp), - codepoints[x].expected, - "U+" + - codepoints[x].cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(codepoints[x].cp) + - " " + - codepoints[x].expected - ); -} - -// NOTES -// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers -// the testsexclude ASCII characters -</script> +<style> + iframe { display:none } + form { display:none } +</style> </head> <body> <div id="log"></div> +<script src="../../ranges.js"></script> +<script> +var errors = false; +var encoder = euckrEncoder; +var ranges = rangesAll; +function expect(result, codepoint) { + return "%" + result.replace(/ /g, "%"); +} +</script> +<script src="../../encode-href-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html index e3344f69a48..c9c137fe07d 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html @@ -4,8 +4,24 @@ <meta charset="utf-8"/> <title>big5-hkscs decoding</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-12000"> +<meta name="variant" content="?12001-13000"> +<meta name="variant" content="?13001-14000"> +<meta name="variant" content="?14001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> <link rel="help" href="https://encoding.spec.whatwg.org/#names-and-labels"> <meta name="assert" content="The browser produces the same decoding behavior for a document labeled 'big5-hkscs' as for a document labeled 'big5'."> @@ -15,49 +31,14 @@ </style> <script src="big5_index.js"></script> <script src="big5-decoder.js"></script> +<script src="../../resources/decode-common.js"></script> </head> -<body onload="showNodes();"> +<body onload="showNodes(big5Decoder);"> <iframe src="big5_chars-big5-hkscs.html" name="scriptWindow" id="scrwin"></iframe> - <div id="log"></div> -<script> -var tests = []; - -function iframeRef(frameRef) { - return frameRef.contentWindow - ? frameRef.contentWindow.document - : frameRef.contentDocument; -} - -function showNodes() { - var iframe = iframeRef(document.getElementById("scrwin")); - nodes = iframe.querySelectorAll("span"); - - for (var i = 0; i < nodes.length; i++) { - tests[i] = async_test( - "U+" + - nodes[i].dataset.cp + - " " + - String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) + - " " + - big5Decoder(nodes[i].dataset.bytes) + - " " + - nodes[i].dataset.bytes - ); - } - - for (var i = 0; i < nodes.length; i++) { - tests[i].step(function() { - assert_equals(nodes[i].textContent, big5Decoder(nodes[i].dataset.bytes)); - }); - tests[i].done(); - } -} -</script> - </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html index 998b8a49cf0..d553e6eb384 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html @@ -4,8 +4,24 @@ <meta charset="utf-8"/> <title>cn-big5 decoding</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-12000"> +<meta name="variant" content="?12001-13000"> +<meta name="variant" content="?13001-14000"> +<meta name="variant" content="?14001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> <link rel="help" href="https://encoding.spec.whatwg.org/#names-and-labels"> <meta name="assert" content="The browser produces the same decoding behavior for a document labeled 'cn-big5' as for a document labeled 'big5'."> @@ -15,49 +31,14 @@ </style> <script src="big5_index.js"></script> <script src="big5-decoder.js"></script> +<script src="../../resources/decode-common.js"></script> </head> -<body onload="showNodes();"> +<body onload="showNodes(big5Decoder);"> <iframe src="big5_chars-cn-big5.html" name="scriptWindow" id="scrwin"></iframe> - <div id="log"></div> -<script> -var tests = []; - -function iframeRef(frameRef) { - return frameRef.contentWindow - ? frameRef.contentWindow.document - : frameRef.contentDocument; -} - -function showNodes() { - var iframe = iframeRef(document.getElementById("scrwin")); - nodes = iframe.querySelectorAll("span"); - - for (var i = 0; i < nodes.length; i++) { - tests[i] = async_test( - "U+" + - nodes[i].dataset.cp + - " " + - String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) + - " " + - big5Decoder(nodes[i].dataset.bytes) + - " " + - nodes[i].dataset.bytes - ); - } - - for (var i = 0; i < nodes.length; i++) { - tests[i].step(function() { - assert_equals(nodes[i].textContent, big5Decoder(nodes[i].dataset.bytes)); - }); - tests[i].done(); - } -} -</script> - </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html index d107eccf843..dc880d2dee4 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html @@ -4,8 +4,24 @@ <meta charset="utf-8"/> <title>csbig5 decoding</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-12000"> +<meta name="variant" content="?12001-13000"> +<meta name="variant" content="?13001-14000"> +<meta name="variant" content="?14001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> <link rel="help" href="https://encoding.spec.whatwg.org/#names-and-labels"> <meta name="assert" content="The browser produces the same decoding behavior for a document labeled 'csbig5' as for a document labeled 'big5'."> @@ -15,49 +31,14 @@ </style> <script src="big5_index.js"></script> <script src="big5-decoder.js"></script> +<script src="../../resources/decode-common.js"></script> </head> -<body onload="showNodes();"> +<body onload="showNodes(big5Decoder);"> <iframe src="big5_chars-csbig5.html" name="scriptWindow" id="scrwin"></iframe> - <div id="log"></div> -<script> -var tests = []; - -function iframeRef(frameRef) { - return frameRef.contentWindow - ? frameRef.contentWindow.document - : frameRef.contentDocument; -} - -function showNodes() { - var iframe = iframeRef(document.getElementById("scrwin")); - nodes = iframe.querySelectorAll("span"); - - for (var i = 0; i < nodes.length; i++) { - tests[i] = async_test( - "U+" + - nodes[i].dataset.cp + - " " + - String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) + - " " + - big5Decoder(nodes[i].dataset.bytes) + - " " + - nodes[i].dataset.bytes - ); - } - - for (var i = 0; i < nodes.length; i++) { - tests[i].step(function() { - assert_equals(nodes[i].textContent, big5Decoder(nodes[i].dataset.bytes)); - }); - tests[i].done(); - } -} -</script> - </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-extra.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-extra.html index 7c5b0f9848e..9db3836741d 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-extra.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-extra.html @@ -15,48 +15,14 @@ </style> <script src="big5_index.js"></script> <script src="big5-decoder.js"></script> +<script src="../../resources/decode-common.js"></script> </head> -<body onload="showNodes();"> +<body onload="showNodes(big5Decoder);"> <iframe src="big5_chars_extra.html" name="scriptWindow" id="scrwin"></iframe> <div id="log"></div> -<script> -var tests = []; - -function iframeRef(frameRef) { - return frameRef.contentWindow - ? frameRef.contentWindow.document - : frameRef.contentDocument; -} - -function showNodes() { - var iframe = iframeRef(document.getElementById("scrwin")); - nodes = iframe.querySelectorAll("span"); - - for (var i = 0; i < nodes.length; i++) { - tests[i] = async_test( - "U+" + - nodes[i].dataset.cp + - " " + - String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) + - " " + - big5Decoder(nodes[i].dataset.bytes) + - " " + - nodes[i].dataset.bytes - ); - } - - for (var i = 0; i < nodes.length; i++) { - tests[i].step(function() { - assert_equals(nodes[i].textContent, big5Decoder(nodes[i].dataset.bytes)); - }); - tests[i].done(); - } -} -</script> - </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-x-x-big5.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-x-x-big5.html index 31aec04e08a..563a3c81c37 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-x-x-big5.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-x-x-big5.html @@ -15,49 +15,14 @@ </style> <script src="big5_index.js"></script> <script src="big5-decoder.js"></script> +<script src="../../resources/decode-common.js"></script> </head> -<body onload="showNodes();"> +<body onload="showNodes(big5Decoder);"> <iframe src="big5_chars-x-x-big5.html" name="scriptWindow" id="scrwin"></iframe> - <div id="log"></div> -<script> -var tests = []; - -function iframeRef(frameRef) { - return frameRef.contentWindow - ? frameRef.contentWindow.document - : frameRef.contentDocument; -} - -function showNodes() { - var iframe = iframeRef(document.getElementById("scrwin")); - nodes = iframe.querySelectorAll("span"); - - for (var i = 0; i < nodes.length; i++) { - tests[i] = async_test( - "U+" + - nodes[i].dataset.cp + - " " + - String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) + - " " + - big5Decoder(nodes[i].dataset.bytes) + - " " + - nodes[i].dataset.bytes - ); - } - - for (var i = 0; i < nodes.length; i++) { - tests[i].step(function() { - assert_equals(nodes[i].textContent, big5Decoder(nodes[i].dataset.bytes)); - }); - tests[i].done(); - } -} -</script> - </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode.html index 5a00717834d..17b2a7221dc 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode.html @@ -15,6 +15,7 @@ </style> <script src="big5_index.js"></script> <script src="big5-decoder.js"></script> +<script src="../../resources/decode-common.js"></script> </head> <body onload="showNodes();"> @@ -23,40 +24,5 @@ <div id="log"></div> -<script> -var tests = []; - -function iframeRef(frameRef) { - return frameRef.contentWindow - ? frameRef.contentWindow.document - : frameRef.contentDocument; -} - -function showNodes() { - var iframe = iframeRef(document.getElementById("scrwin")); - nodes = iframe.querySelectorAll("span"); - - for (var i = 0; i < nodes.length; i++) { - tests[i] = async_test( - "U+" + - nodes[i].dataset.cp + - " " + - String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) + - " " + - big5Decoder(nodes[i].dataset.bytes) + - " " + - nodes[i].dataset.bytes - ); - } - - for (var i = 0; i < nodes.length; i++) { - tests[i].step(function() { - assert_equals(nodes[i].textContent, big5Decoder(nodes[i].dataset.bytes)); - }); - tests[i].done(); - } -} -</script> - </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html index 9fbfed63583..ee5f0c9aa86 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html @@ -4,8 +4,24 @@ <meta charset="big5-hkscs"> <!-- test breaks if the server overrides this --> <title>big5-hkscs encoding (form)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-12000"> +<meta name="variant" content="?12001-13000"> +<meta name="variant" content="?13001-14000"> +<meta name="variant" content="?14001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="big5_index.js"></script> <script src="big5-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> @@ -17,133 +33,17 @@ </style> </head> <body> - <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 500; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = ","; -var encodedSeperator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // create a simple list of just those code points for which there is an encoding possible - codepoints = []; - for (var i = 0x80; i < 0x2a6df; i++) { - result = big5Encoder(String.fromCodePoint(i)); - if (result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%" + result.replace(/ /g, "%"); - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - currentTests.push( - async_test( - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "big5-hkscs"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals( - normalizeStr(results[j]), - normalizeStr(cplist[i][j].expected) - ); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +var errors = false; +var encoder = big5Encoder; +var ranges = rangesAll; +var separator = ","; +function expect(result, codepoint) { + return "%" + result.replace(/ /g, "%"); } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html index 04db127dd86..4495f1ba7e9 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html @@ -4,8 +4,24 @@ <meta charset="cn-big5"> <!-- test breaks if the server overrides this --> <title>cn-big5 encoding (form)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-12000"> +<meta name="variant" content="?12001-13000"> +<meta name="variant" content="?13001-14000"> +<meta name="variant" content="?14001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="big5_index.js"></script> <script src="big5-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> @@ -17,133 +33,18 @@ </style> </head> <body> - <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 500; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = ","; -var encodedSeperator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // create a simple list of just those code points for which there is an encoding possible - codepoints = []; - for (var i = 0x80; i < 0x2a6df; i++) { - result = big5Encoder(String.fromCodePoint(i)); - if (result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%" + result.replace(/ /g, "%"); - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - currentTests.push( - async_test( - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "cn-big5"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals( - normalizeStr(results[j]), - normalizeStr(cplist[i][j].expected) - ); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +var errors = false; +var encoder = big5Encoder; +var ranges = rangesAll; +var separator = ","; +function expect(result, codepoint) { + return "%" + result.replace(/ /g, "%"); } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> + diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html index 410fa50d684..4d71c775bb6 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html @@ -4,8 +4,24 @@ <meta charset="csbig5"> <!-- test breaks if the server overrides this --> <title>csbig5 encoding (form)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-12000"> +<meta name="variant" content="?12001-13000"> +<meta name="variant" content="?13001-14000"> +<meta name="variant" content="?14001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="big5_index.js"></script> <script src="big5-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> @@ -17,133 +33,17 @@ </style> </head> <body> - <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 500; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = ","; -var encodedSeperator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // create a simple list of just those code points for which there is an encoding possible - codepoints = []; - for (var i = 0x80; i < 0x2a6df; i++) { - result = big5Encoder(String.fromCodePoint(i)); - if (result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%" + result.replace(/ /g, "%"); - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - currentTests.push( - async_test( - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "csbig5"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals( - normalizeStr(results[j]), - normalizeStr(cplist[i][j].expected) - ); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +var errors = false; +var encoder = big5Encoder; +var ranges = rangesAll; +var separator = ","; +function expect(result, codepoint) { + return "%" + result.replace(/ /g, "%"); } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html index 752956f682e..d9eca7a3bf6 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html @@ -4,8 +4,31 @@ <meta charset="big5"> <!-- test breaks if the server overrides this --> <title>Big5 encoding errors (form, extB, part1)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-12000"> +<meta name="variant" content="?12001-13000"> +<meta name="variant" content="?13001-14000"> +<meta name="variant" content="?14001-15000"> +<meta name="variant" content="?15001-16000"> +<meta name="variant" content="?16001-17000"> +<meta name="variant" content="?17001-18000"> +<meta name="variant" content="?18001-19000"> +<meta name="variant" content="?19001-20000"> +<meta name="variant" content="?20001-21000"> +<meta name="variant" content="?21001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="big5_index.js"></script> <script src="big5-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> @@ -18,133 +41,16 @@ </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 400; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = ","; -var encodedSeperator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // set up a simple array of miscellaneous unicode codepoints that are not encoded - var codepoints = []; - - for (i = 0x20000; i < 0x2536b; i++) { - // cjk extension A - result = big5Encoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "extB (pt 1)"; - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - item.desc = codepoints[i].desc; - currentTests.push( - async_test( - item.desc + - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "big5"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals(results[j], cplist[i][j].expected); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +var errors = true; +var encoder = big5Encoder; +var ranges = rangesExtBa; +var separator = ","; +function expect(result, codepoint) { + return "%26%23" + codepoint + "%3B"; } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html index 186c7dc43f5..b7406f22619 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html @@ -4,8 +4,31 @@ <meta charset="big5"> <!-- test breaks if the server overrides this --> <title>Big5 encoding errors (form, extB, part2)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-12000"> +<meta name="variant" content="?12001-13000"> +<meta name="variant" content="?13001-14000"> +<meta name="variant" content="?14001-15000"> +<meta name="variant" content="?15001-16000"> +<meta name="variant" content="?16001-17000"> +<meta name="variant" content="?17001-18000"> +<meta name="variant" content="?18001-19000"> +<meta name="variant" content="?19001-20000"> +<meta name="variant" content="?20001-21000"> +<meta name="variant" content="?21001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="big5_index.js"></script> <script src="big5-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> @@ -18,133 +41,16 @@ </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 400; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = ","; -var encodedSeperator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // set up a simple array of miscellaneous unicode codepoints that are not encoded - var codepoints = []; - - for (i = 0x2536b; i < 0x2a6e0; i++) { - // cjk extension A - result = big5Encoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "extB (pt 2) "; - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - item.desc = codepoints[i].desc; - currentTests.push( - async_test( - item.desc + - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "big5"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals(results[j], cplist[i][j].expected); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +var errors = true; +var encoder = big5Encoder; +var ranges = rangesExtBb; +var separator = ","; +function expect(result, codepoint) { + return "%26%23" + codepoint + "%3B"; } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html index 0698ed52265..82930e2560d 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html @@ -4,8 +4,24 @@ <meta charset="big5"> <!-- test breaks if the server overrides this --> <title>Big5 encoding errors (form, han)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-12000"> +<meta name="variant" content="?12001-13000"> +<meta name="variant" content="?13001-14000"> +<meta name="variant" content="?14001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="big5_index.js"></script> <script src="big5-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> @@ -18,175 +34,20 @@ </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 400; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = ","; -var encodedSeperator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // set up a simple array of miscellaneous unicode codepoints that are not encoded - var codepoints = []; - - for (i = 0x4e00; i < 0x9fba; i++) { - result = big5Encoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "cjk "; - } - } - - for (i = 0xf900; i < 0xfa6e; i++) { - // compatibility - result = big5Encoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "compatibility "; - } - } - - for (i = 0xfa70; i < 0xfada; i++) { - result = big5Encoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "compatibility "; - } - } - - for (i = 0x3400; i < 0x4dbf; i++) { - // cjk extension A - result = big5Encoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "extension A "; - } - } - /* - for (i=0x20000;i<0x2A6E0;i++) { // cjk extension A - result = getByteSequence(i) - if (!result) { - var item = {} - codepoints.push(item) - item.cp = i - item.expected = '%26%23'+item.cp+'%3B' - item.desc = 'extension A ' - } - } - */ - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - item.desc = codepoints[i].desc; - currentTests.push( - async_test( - item.desc + - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "big5"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call(document.getElementsByTagName("form")); - inputs = Array.prototype.slice.call(document.getElementsByTagName("input")); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals(results[j], cplist[i][j].expected); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +var errors = true; +var encoder = big5Encoder; +var ranges = rangesHan; +var separator = ","; +function expect(result, codepoint) { + return "%26%23" + codepoint + "%3B"; +} +// Overwrite normalizeStr +function normalizeStr(str) { + return str; } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html index 106d9d1e3fb..ca90edf58db 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html @@ -4,8 +4,21 @@ <meta charset="big5"> <!-- test breaks if the server overrides this --> <title>Big5 encoding errors (form, hangul)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="big5_index.js"></script> <script src="big5-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> @@ -18,132 +31,20 @@ </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 400; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = ","; -var encodedSeperator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // set up a simple array of miscellaneous unicode codepoints that are not encoded - var codepoints = []; - - for (i = 0xac00; i < 0xd7af; i++) { - result = big5Encoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "hangul "; - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - item.desc = codepoints[i].desc; - currentTests.push( - async_test( - item.desc + - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "big5"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals(results[j], cplist[i][j].expected); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +var errors = true; +var encoder = big5Encoder; +var ranges = rangesHangul; +var separator = ","; +function expect(result, codepoint) { + return "%26%23" + codepoint + "%3B"; +} +// Overwrite normalizeStr +function normalizeStr(str) { + return str; } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html index 98d68618664..34d90c1fe6e 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html @@ -4,8 +4,13 @@ <meta charset="big5"> <!-- test breaks if the server overrides this --> <title>Big5 encoding errors (form, misc)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="big5_index.js"></script> <script src="big5-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> @@ -18,172 +23,20 @@ </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 500; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = ","; -var encodedSeperator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // set up a simple array of miscellaneous unicode codepoints that are not encoded - var codepoints = []; - - for (var i = 0x80; i < 0x4ff; i++) { - result = big5Encoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "latin, greek, cyrillic, etc "; - } - } - - for (i = 0x2000; i < 0x23ff; i++) { - result = big5Encoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "punctuation, currency, symbols "; - } - } - - for (i = 0x2460; i < 0x26ff; i++) { - result = big5Encoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "enclosed chars and boxes "; - } - } - - for (i = 0x3000; i < 0x33ff; i++) { - result = big5Encoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "various asian "; - } - } - - for (i = 0xff00; i < 0xffef; i++) { - result = big5Encoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "half/full width "; - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - item.desc = codepoints[i].desc; - currentTests.push( - async_test( - item.desc + - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "big5"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call(document.getElementsByTagName("form")); - inputs = Array.prototype.slice.call(document.getElementsByTagName("input")); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals(results[j], cplist[i][j].expected); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +var errors = true; +var encoder = big5Encoder; +var ranges = rangesMisc; +var separator = ","; +function expect(result, codepoint) { + return "%26%23" + codepoint + "%3B"; +} +// Overwrite normalizeStr +function normalizeStr(str) { + return str; } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html index fd037d19ad5..2fc7bb22350 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html @@ -4,8 +4,16 @@ <meta charset="big5"> <!-- test breaks if the server overrides this --> <title>Big5 encoding errors (form, pua)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="big5_index.js"></script> <script src="big5-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> @@ -18,132 +26,16 @@ </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 500; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = ","; -var encodedSeperator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // set up a simple array of miscellaneous unicode codepoints that are not encoded - var codepoints = []; - - for (i = 0xe000; i < 0xf8ff; i++) { - result = big5Encoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "pua "; - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - item.desc = codepoints[i].desc; - currentTests.push( - async_test( - item.desc + - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "big5"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals(results[j], cplist[i][j].expected); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +var errors = true; +var encoder = big5Encoder; +var ranges = rangesPua; +var separator = ","; +function expect(result, codepoint) { + return "%26%23" + codepoint + "%3B"; } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html index 79d297529f0..684dc5234cd 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html @@ -4,8 +4,24 @@ <meta charset="x-x-big5"> <!-- test breaks if the server overrides this --> <title>x-x-big5 encoding (form)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-12000"> +<meta name="variant" content="?12001-13000"> +<meta name="variant" content="?13001-14000"> +<meta name="variant" content="?14001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="big5_index.js"></script> <script src="big5-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> @@ -17,133 +33,17 @@ </style> </head> <body> - <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 500; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = ","; -var encodedSeperator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // create a simple list of just those code points for which there is an encoding possible - codepoints = []; - for (var i = 0x80; i < 0x2a6df; i++) { - result = big5Encoder(String.fromCodePoint(i)); - if (result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%" + result.replace(/ /g, "%"); - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - currentTests.push( - async_test( - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "x-x-big5"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals( - normalizeStr(results[j]), - normalizeStr(cplist[i][j].expected) - ); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +var errors = false; +var encoder = big5Encoder; +var ranges = rangesAll; +var separator = ","; +function expect(result, codepoint) { + return "%" + result.replace(/ /g, "%"); } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form.html index b374fe52288..2d7203107d2 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form.html @@ -4,8 +4,24 @@ <meta charset="big5"> <!-- test breaks if the server overrides this --> <title>Big5 encoding (form)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-12000"> +<meta name="variant" content="?12001-13000"> +<meta name="variant" content="?13001-14000"> +<meta name="variant" content="?14001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="big5_index.js"></script> <script src="big5-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> @@ -18,131 +34,16 @@ </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> <script> -var tests = []; -var cplist = []; -var numTests = null; -var numFrames = 2; -var chunkSize = 500; -var numChunks = null; -var frames = null; -var frames = null; -var forms = null; -var seperator = ","; -var encodedSeperator = encodeURIComponent(","); -var currentChunkIndex = 0; - -setup(function() { - // create a simple list of just those code points for which there is an encoding possible - codepoints = []; - for (var i = 0x80; i < 0x2a6df; i++) { - result = big5Encoder(String.fromCodePoint(i)); - if (result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%" + result.replace(/ /g, "%"); - } - } - - // convert the information into a simple array of objects that can be easily traversed - var currentChunk = []; - var currentTests = []; - cplist = [currentChunk]; - tests = [currentTests]; - for (i = 0; i < codepoints.length; i++) { - if (currentChunk.length == chunkSize) { - currentChunk = []; - cplist.push(currentChunk); - currentTests = []; - tests.push(currentTests); - } - var item = {}; - currentChunk.push(item); - item.cp = codepoints[i].cp; - item.expected = codepoints[i].expected; - currentTests.push( - async_test( - "U+" + - item.cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(item.cp) + - " " + - item.expected - ) - ); - } - - numChunks = cplist.length; - - for (var i = 0; i < numFrames; i++) { - var frame = document.createElement("iframe"); - frame.id = frame.name = "frame-" + i; - document.body.appendChild(frame); - var form = document.createElement("form"); - form.id = "form-" + i; - form.method = "GET"; - form.action = "/common/blank.html"; - form.acceptCharset = "big5"; - form.target = frame.id; - var input = document.createElement("input"); - input.id = input.name = "input-" + i; - form.appendChild(input); - document.body.appendChild(form); - } - - addEventListener("load", function() { - frames = Array.prototype.slice.call( - document.getElementsByTagName("iframe") - ); - forms = Array.prototype.slice.call( - document.getElementsByTagName("form") - ); - inputs = Array.prototype.slice.call( - document.getElementsByTagName("input") - ); - for (var i = 0; i < Math.min(numFrames, numChunks); i++) { - runNext(i); - } - }); -}); - -function runNext(id) { - var i = currentChunkIndex; - currentChunkIndex += 1; - - var iframe = frames[id]; - var form = forms[id]; - var input = inputs[id]; - - input.value = cplist[i] - .map(function(x) { - return String.fromCodePoint(x.cp); - }) - .join(seperator); - form.submit(); - - iframe.onload = function() { - var url = iframe.contentWindow.location; - var query = url.search; - var result_string = query.substr(query.indexOf("=") + 1); - var results = result_string.split(encodedSeperator); - - for (var j = 0; j < cplist[i].length; j++) { - var t = tests[i][j]; - t.step(function() { - assert_equals( - normalizeStr(results[j]), - normalizeStr(cplist[i][j].expected) - ); - }); - t.done(); - } - if (currentChunkIndex < numChunks) { - runNext(id); - } - }; +var errors = false; +var encoder = big5Encoder; +var ranges = rangesAll; +var separator = ","; +function expect(result, codepoint) { + return "%" + result.replace(/ /g, "%"); } </script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html index c538cf4e23e..84d8b2dcb36 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html @@ -4,97 +4,56 @@ <meta charset="big5"> <!-- test breaks if the server overrides this --> <title>Big5 encoding errors (href, han)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-11000"> +<meta name="variant" content="?11001-12000"> +<meta name="variant" content="?12001-13000"> +<meta name="variant" content="?13001-14000"> +<meta name="variant" content="?14001-15000"> +<meta name="variant" content="?15001-16000"> +<meta name="variant" content="?16001-17000"> +<meta name="variant" content="?17001-18000"> +<meta name="variant" content="?18001-19000"> +<meta name="variant" content="?19001-20000"> +<meta name="variant" content="?20001-21000"> +<meta name="variant" content="?21001-22000"> +<meta name="variant" content="?22001-23000"> +<meta name="variant" content="?23001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="big5_index.js"></script> <script src="big5-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> <link rel="help" href="https://encoding.spec.whatwg.org/#big5"> <meta name="assert" content="The browser produces percent-escaped character references when writing characters to an href value and encoding han characters that are not in the gbk encoding."> -<script> -function encode(input, expected, desc) { - // tests whether a Unicode character is converted to an equivalent byte sequence by href - // input: a Unicode character - // expected: expected byte sequence - // desc: what's being tested - test(function() { - var a = document.createElement("a"); // <a> uses document encoding for URL's query - a.href = "https://example.com/?" + input; - result = a.search.substr(1); // remove leading "?" - assert_equals(result, expected); - }, desc); -} - -// create a simple list of just those code points for which there is no encoding is possible, from a representative subset of the BMP -codepoints = []; - -for (i = 0x4e00; i < 0x9fba; i++) { - result = big5Encoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "cjk "; - } -} - -for (i = 0xf900; i < 0xfa6e; i++) { - // compatibility - result = big5Encoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "compatibility "; - } -} - -for (i = 0xfa70; i < 0xfada; i++) { - result = big5Encoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "compatibility "; - } -} - -for (i = 0x3400; i < 0x4dbf; i++) { - // cjk extension A - result = big5Encoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "extension A "; - } -} - -// run the tests -for (var x = 0; x < codepoints.length; x++) { - encode( - String.fromCodePoint(codepoints[x].cp), - codepoints[x].expected, - codepoints[x].desc + - " U+" + - codepoints[x].cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(codepoints[x].cp) + - " " + - codepoints[x].expected - ); -} - -// NOTES -// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers -// the test excludes ASCII characters -</script> +<style> + iframe { display:none } + form { display:none } +</style> </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> +<script> +var errors = true; +var encoder = big5Encoder; +var ranges = rangesHan; +var separator = ","; +function expect(result, codepoint) { + return "%26%23" + codepoint + "%3B"; +} +</script> +<script src="../../resources/encode-href-common.js"></script> </body> </html> + diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html index 48a23f06ab0..d8254478786 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html @@ -4,62 +4,43 @@ <meta charset="big5"> <!-- test breaks if the server overrides this --> <title>Big5 encoding errors (href, hangul)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-8000"> +<meta name="variant" content="?8001-9000"> +<meta name="variant" content="?9001-10000"> +<meta name="variant" content="?10001-10000"> +<meta name="variant" content="?11001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="big5_index.js"></script> <script src="big5-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> <link rel="help" href="https://encoding.spec.whatwg.org/#big5"> <meta name="assert" content="The browser produces percent-escaped character references when writing characters to an href value and encoding hangul characters that are not in the gbk encoding."> -<script> -function encode(input, expected, desc) { - // tests whether a Unicode character is converted to an equivalent byte sequence by href - // input: a Unicode character - // expected: expected byte sequence - // desc: what's being tested - test(function() { - var a = document.createElement("a"); // <a> uses document encoding for URL's query - a.href = "https://example.com/?" + input; - result = a.search.substr(1); // remove leading "?" - assert_equals(result, expected); - }, desc); -} - -// create a simple list of just those code points for which there is no encoding is possible, from a representative subset of the BMP -codepoints = []; - -for (i = 0xac00; i < 0xd7af; i++) { - result = big5Encoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "hangul "; - } -} - -// run the tests -for (var x = 0; x < codepoints.length; x++) { - encode( - String.fromCodePoint(codepoints[x].cp), - codepoints[x].expected, - codepoints[x].desc + - " U+" + - codepoints[x].cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(codepoints[x].cp) + - " " + - codepoints[x].expected - ); -} - -// NOTES -// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers -// the test excludes ASCII characters -</script> +<style> + iframe { display:none } + form { display:none } +</style> </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> +<script> +var errors = true; +var encoder = big5Encoder; +var ranges = rangesHangul; +function expect(result, codepoint) { + return "%26%23" + codepoint + "%3B"; +} +</script> +<script src="../../resources/encode-href-common.js"></script> </body> </html> + diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html index 0ff27f4f120..1a212d63b97 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html @@ -4,105 +4,34 @@ <meta charset="big5"> <!-- test breaks if the server overrides this --> <title>Big5 encoding errors (href, misc)</title> <meta name="timeout" content="long"> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="big5_index.js"></script> <script src="big5-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> <link rel="help" href="https://encoding.spec.whatwg.org/#big5"> <meta name="assert" content="The browser produces percent-escaped character references when writing characters to an href value and encoding miscellaneous characters that are not in the gbk encoding."> -<script> -function encode(input, expected, desc) { - // tests whether a Unicode character is converted to an equivalent byte sequence by href - // input: a Unicode character - // expected: expected byte sequence - // desc: what's being tested - test(function() { - var a = document.createElement("a"); // <a> uses document encoding for URL's query - a.href = "https://example.com/?" + input; - result = a.search.substr(1); // remove leading "?" - assert_equals(result, expected); - }, desc); -} - -// create a simple list of just those code points for which there is no encoding is possible, from a representative subset of the BMP -codepoints = []; - -for (var i = 0x80; i < 0x4ff; i++) { - result = big5Encoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "latin, greek, cyrillic, etc "; - } -} -for (i = 0x2000; i < 0x23ff; i++) { - result = big5Encoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "punctuation, currency, symbols "; - } -} - -for (i = 0x2460; i < 0x26ff; i++) { - result = big5Encoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "enclosed chars and boxes "; - } -} - -for (i = 0x3000; i < 0x33ff; i++) { - result = big5Encoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "various asian "; - } -} - -for (i = 0xff00; i < 0xffef; i++) { - result = big5Encoder(String.fromCodePoint(i)); - if (!result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%26%23" + item.cp + "%3B"; - item.desc = "half/full width "; - } -} - -// run the tests -for (var x = 0; x < codepoints.length; x++) { - encode( - String.fromCodePoint(codepoints[x].cp), - codepoints[x].expected, - codepoints[x].desc + - " U+" + - codepoints[x].cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(codepoints[x].cp) + - " " + - codepoints[x].expected - ); -} - -// NOTES -// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers -// the test excludes ASCII characters -</script> +<style> + iframe { display:none } + form { display:none } +</style> </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> +<script> +var errors = true; +var encoder = eucjpEncoder; +var ranges = rangesMisc; +function expect(result, codepoint) { + return "%26%23" + codepoint + "%3B"; +} +</script> +<script src="../../resources/encode-form-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href.html b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href.html index fb8824c2151..c7a23d8a931 100644 --- a/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href.html +++ b/tests/wpt/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href.html @@ -4,59 +4,38 @@ <meta name="timeout" content="long"> <title>Big5 encoding (href)</title> <meta charset="big5"> <!-- test breaks if the server overrides this --> +<meta name="variant" content="?1-1000"> +<meta name="variant" content="?1001-2000"> +<meta name="variant" content="?2001-3000"> +<meta name="variant" content="?3001-4000"> +<meta name="variant" content="?4001-5000"> +<meta name="variant" content="?5001-6000"> +<meta name="variant" content="?6001-7000"> +<meta name="variant" content="?7001-last"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/subset-tests.js"></script> <script src="big5_index.js"></script> <script src="big5-encoder.js"></script> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> <link rel="help" href="https://encoding.spec.whatwg.org/#big5"> <meta name="assert" content="The browser produces the expected byte sequences for all characters in the big5 encoding after 0x9F when writing characters to an href value, using the encoder steps in the specification."> -<script> -function encode(input, expected, desc) { - // tests whether a Unicode character is converted to an equivalent byte sequence by href - // input: a Unicode character - // expected: expected byte sequence - // desc: what's being tested - test(function() { - var a = document.createElement("a"); // <a> uses document encoding for URL's query - a.href = "https://example.com/?" + input; - result = a.search.substr(1); // remove leading "?" - assert_equals(normalizeStr(result), normalizeStr(expected)); - }, desc); -} - -// create a simple list of just those code points for which there is an encoding possible -codepoints = []; -for (var i = 0x80; i < 0x2a6df; i++) { - result = big5Encoder(String.fromCodePoint(i)); - if (result) { - var item = {}; - codepoints.push(item); - item.cp = i; - item.expected = "%" + result.replace(/ /g, "%"); - } -} - -// run the tests -for (var x = 0; x < codepoints.length; x++) { - encode( - String.fromCodePoint(codepoints[x].cp), - codepoints[x].expected, - "U+" + - codepoints[x].cp.toString(16).toUpperCase() + - " " + - String.fromCodePoint(codepoints[x].cp) + - " " + - codepoints[x].expected - ); -} - -// NOTES -// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers -// the test excludes ASCII characters -</script> +<style> + iframe { display:none } + form { display:none } +</style> </head> <body> <div id="log"></div> +<script src="../../resources/ranges.js"></script> +<script> +var errors = false; +var encoder = big5Encoder; +var ranges = rangesAll; +function expect(result, codepoint) { + return "%" + result.replace(/ /g, "%"); +} +</script> +<script src="../../resources/encode-href-common.js"></script> </body> </html> diff --git a/tests/wpt/web-platform-tests/encoding/resources/decode-common.js b/tests/wpt/web-platform-tests/encoding/resources/decode-common.js new file mode 100644 index 00000000000..19dd6939ac1 --- /dev/null +++ b/tests/wpt/web-platform-tests/encoding/resources/decode-common.js @@ -0,0 +1,40 @@ +var tests = []; + +function iframeRef(frameRef) { + return frameRef.contentWindow + ? frameRef.contentWindow.document + : frameRef.contentDocument; +} + +function showNodes(decoder) { + var iframe = iframeRef(document.getElementById("scrwin")); + nodes = iframe.querySelectorAll("span"); + + for (var i = 0; i < nodes.length; i++) { + var test = subsetTest(async_test, + "U+" + + nodes[i].dataset.cp + + " " + + String.fromCodePoint(parseInt(nodes[i].dataset.cp, 16)) + + " " + + decoder(nodes[i].dataset.bytes) + + " " + + nodes[i].dataset.bytes + ); + if (test) { + tests[i] = test; + } + } + + for (var i = 0; i < nodes.length; i++) { + if (tests[i]) { + tests[i].step(function() { + assert_equals( + nodes[i].textContent, + decoder(nodes[i].dataset.bytes) + ); + }); + tests[i].done(); + } + } +} diff --git a/tests/wpt/web-platform-tests/encoding/resources/encode-form-common.js b/tests/wpt/web-platform-tests/encoding/resources/encode-form-common.js new file mode 100644 index 00000000000..6f8777b39b9 --- /dev/null +++ b/tests/wpt/web-platform-tests/encoding/resources/encode-form-common.js @@ -0,0 +1,140 @@ +// These are defined by the test: +// errors (boolean) +// encoder (function) +// ranges (array) +// separator (string) +// expect (function) + +var tests = []; +var cplist = []; +var numTests = null; +var numFrames = 2; +var chunkSize = 400; +var numChunks = null; +var frames = null; +var frames = null; +var forms = null; +var encodedSeparator = encodeURIComponent(separator); +var currentChunkIndex = 0; +var pageCharset = document.querySelector("meta[charset]").getAttribute("charset"); + +setup(function() { + // create a simple list of just those code points for which there is an encoding possible + codepoints = []; + for (var range of ranges) { + for (var i = range[0]; i < range[1]; i++) { + result = encoder(String.fromCodePoint(i)); + var success = !!result; + if (errors) { + success = !success; + } + if (success) { + var item = {}; + codepoints.push(item); + item.cp = i; + item.expected = expect(result, i); + item.desc = range[2]; + } + } + } + + // convert the information into a simple array of objects that can be easily traversed + var currentChunk = []; + var currentTests = []; + cplist = [currentChunk]; + tests = [currentTests]; + for (i = 0; i < codepoints.length; i++) { + if (currentChunk.length == chunkSize) { + currentChunk = []; + cplist.push(currentChunk); + currentTests = []; + tests.push(currentTests); + } + var item = {}; + currentChunk.push(item); + item.cp = codepoints[i].cp; + item.expected = codepoints[i].expected; + item.desc = codepoints[i].desc; + currentTests.push(subsetTest(async_test, + (item.desc ? item.desc + " " : "") + + "U+" + + item.cp.toString(16).toUpperCase() + + " " + + String.fromCodePoint(item.cp) + + " " + + item.expected + )); + } + + numChunks = cplist.length; + + for (var i = 0; i < numFrames; i++) { + var frame = document.createElement("iframe"); + frame.id = frame.name = "frame-" + i; + document.body.appendChild(frame); + var form = document.createElement("form"); + form.id = "form-" + i; + form.method = "GET"; + form.action = "/common/blank.html"; + form.acceptCharset = pageCharset; + form.target = frame.id; + var input = document.createElement("input"); + input.id = input.name = "input-" + i; + form.appendChild(input); + document.body.appendChild(form); + } + + addEventListener("load", function() { + frames = Array.prototype.slice.call( + document.getElementsByTagName("iframe") + ); + forms = Array.prototype.slice.call( + document.getElementsByTagName("form") + ); + inputs = Array.prototype.slice.call( + document.getElementsByTagName("input") + ); + for (var i = 0; i < Math.min(numFrames, numChunks); i++) { + runNext(i); + } + }); +}); + +function runNext(id) { + var i = currentChunkIndex; + currentChunkIndex += 1; + + var iframe = frames[id]; + var form = forms[id]; + var input = inputs[id]; + + input.value = cplist[i] + .map(function(x) { + return String.fromCodePoint(x.cp); + }) + .join(separator); + form.submit(); + + iframe.onload = function() { + var url = iframe.contentWindow.location; + var query = url.search; + var result_string = query.substr(query.indexOf("=") + 1); + var results = result_string.split(encodedSeparator); + + for (var j = 0; j < cplist[i].length; j++) { + var t = tests[i][j]; + if (t) { + t.step(function() { + assert_equals( + normalizeStr(results[j]), + normalizeStr(cplist[i][j].expected) + ); + }); + t.done(); + } + } + if (currentChunkIndex < numChunks) { + runNext(id); + } + }; +} diff --git a/tests/wpt/web-platform-tests/encoding/resources/encode-href-common.js b/tests/wpt/web-platform-tests/encoding/resources/encode-href-common.js new file mode 100644 index 00000000000..dc646fe8c16 --- /dev/null +++ b/tests/wpt/web-platform-tests/encoding/resources/encode-href-common.js @@ -0,0 +1,57 @@ +// These are defined by the test: +// errors (boolean) +// encoder (function) +// ranges (array) +// expect (function) + +function encode(input, expected, desc) { + // tests whether a Unicode character is converted to an equivalent byte sequence by href + // input: a Unicode character + // expected: expected byte sequence + // desc: what's being tested + subsetTest(test, function() { + var a = document.createElement("a"); // <a> uses document encoding for URL's query + a.href = "https://example.com/?" + input; + result = a.search.substr(1); // remove leading "?" + assert_equals(normalizeStr(result), normalizeStr(expected)); + }, desc); +} + +// set up a simple array of unicode codepoints that are not encoded +var codepoints = []; + +for (var range of ranges) { + for (var i = range[0]; i < range[1]; i++) { + result = encoder(String.fromCodePoint(i)); + var success = !!result; + if (errors) { + success = !success; + } + if (success) { + var item = {}; + codepoints.push(item); + item.cp = i; + item.expected = expect(result, i); + item.desc = range[2] ? range[2] + " " : ""; + } + } +} + +// run the tests +for (var x = 0; x < codepoints.length; x++) { + encode( + String.fromCodePoint(codepoints[x].cp), + codepoints[x].expected, + codepoints[x].desc + + " U+" + + codepoints[x].cp.toString(16).toUpperCase() + + " " + + String.fromCodePoint(codepoints[x].cp) + + " " + + codepoints[x].expected + ); +} + +// NOTES +// this test relies on support for String.fromCodePoint, which appears to be supported by major desktop browsers +// the tests exclude ASCII characters diff --git a/tests/wpt/web-platform-tests/encoding/resources/ranges.js b/tests/wpt/web-platform-tests/encoding/resources/ranges.js new file mode 100644 index 00000000000..81dc711fc7a --- /dev/null +++ b/tests/wpt/web-platform-tests/encoding/resources/ranges.js @@ -0,0 +1,28 @@ +var rangesHan = [ + [0x4e00, 0x9fba, "cjk"], + [0xf900, 0xfa6e, "compatibility"], + [0xfa70, 0xfada, "compatibility"], + [0x3400, 0x4dbf, "extension A"], +]; +var rangesHangul = [ + [0xac00, 0xd7af, "hangul"], +]; +var rangesMisc = [ + [0x80, 0x4ff, "latin, greek, cyrillic, etc"], + [0x2000, 0x23ff, "punctuation, currency, symbols"], + [0x2460, 0x26ff, "enclosed chars and boxes"], + [0x3000, 0x33ff, "various asian"], + [0xff00, 0xffef, "half/full width"], +]; +var rangesAll = [ + [0x80, 0xffff], +]; +var rangesExtBa = [ + [0x20000, 0x2536b, "extB (pt 1)"], +]; +var rangesExtBb = [ + [0x2536b, 0x2a6e0, "extB (pt 2)"], +]; +var rangesPua = [ + [0xe000, 0xf8ff, "pua"], +]; diff --git a/tests/wpt/web-platform-tests/encoding/single-byte-decoder.html b/tests/wpt/web-platform-tests/encoding/single-byte-decoder.html index 1833fdad8b1..70d8fb73ead 100644 --- a/tests/wpt/web-platform-tests/encoding/single-byte-decoder.html +++ b/tests/wpt/web-platform-tests/encoding/single-byte-decoder.html @@ -1,5 +1,8 @@ <!doctype html> <meta name=timeout content=long> +<meta name="variant" content="?XMLHttpRequest"> +<meta name="variant" content="?TextDecoder"> +<meta name="variant" content="?document"> <script src=/resources/testharness.js></script> <script src=/resources/testharnessreport.js></script> <script src=resources/encodings.js></script> @@ -62,38 +65,49 @@ } } + var subsetTest = ""; + if (location.search) { + subsetTest = location.search.substr(1); + } + // Setting up all the tests for(var i = 0, l = singleByteEncodings.length; i < l; i++) { var encoding = singleByteEncodings[i] for(var ii = 0, ll = encoding.labels.length; ii < ll; ii++) { var label = encoding.labels[ii] - async_test(function(t) { - var xhr = new XMLHttpRequest, - name = encoding.name // need scoped variable - xhr.open("GET", "resources/single-byte-raw.py?label=" + label) - xhr.send(null) - xhr.onload = t.step_func_done(function() { assert_decode(xhr.responseText, name) }) - }, encoding.name + ": " + label + " (XMLHttpRequest)") + if (subsetTest == "XMLHttpRequest" || !subsetTest) { + async_test(function(t) { + var xhr = new XMLHttpRequest, + name = encoding.name // need scoped variable + xhr.open("GET", "resources/single-byte-raw.py?label=" + label) + xhr.send(null) + xhr.onload = t.step_func_done(function() { assert_decode(xhr.responseText, name) }) + }, encoding.name + ": " + label + " (XMLHttpRequest)") + } - test(function() { - var d = new TextDecoder(label), - data = d.decode(view) - assert_equals(d.encoding, encoding.name.toLowerCase()) // ASCII names only, so safe - assert_decode(data, encoding.name) - }, encoding.name + ": " + label + " (TextDecoder)") + if (subsetTest == "TextDecoder" || !subsetTest) { + test(function() { + var d = new TextDecoder(label), + data = d.decode(view) + assert_equals(d.encoding, encoding.name.toLowerCase()) // ASCII names only, so safe + assert_decode(data, encoding.name) + }, encoding.name + ": " + label + " (TextDecoder)") + } - async_test(function(t) { - var frame = document.createElement("iframe"), - name = encoding.name; - frame.src = "resources/text-plain-charset.py?label=" + label - frame.onload = t.step_func_done(function() { - assert_equals(frame.contentDocument.characterSet, name) - assert_equals(frame.contentDocument.inputEncoding, name) - }) - t.add_cleanup(function() { document.body.removeChild(frame) }) - document.body.appendChild(frame) - }, encoding.name + ": " + label + " (document.characterSet and document.inputEncoding)") + if (subsetTest == "document" || !subsetTest) { + async_test(function(t) { + var frame = document.createElement("iframe"), + name = encoding.name; + frame.src = "resources/text-plain-charset.py?label=" + label + frame.onload = t.step_func_done(function() { + assert_equals(frame.contentDocument.characterSet, name) + assert_equals(frame.contentDocument.inputEncoding, name) + }) + t.add_cleanup(function() { document.body.removeChild(frame) }) + document.body.appendChild(frame) + }, encoding.name + ": " + label + " (document.characterSet and document.inputEncoding)") + } } } </script> diff --git a/tests/wpt/web-platform-tests/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html b/tests/wpt/web-platform-tests/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html new file mode 100644 index 00000000000..80cf75104fc --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html @@ -0,0 +1,129 @@ +<!doctype html> +<meta charset={{GET[encoding]}}> <!-- ends up as <meta charset> by default which is windows-1252 --> +<meta name=variant content="?encoding=x-cp1251"> +<meta name=variant content="?encoding=utf8"> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src="/common/utils.js"></script> +<link rel=help href=https://html.spec.whatwg.org/multipage/#following-hyperlinks> +<link rel=help href=https://html.spec.whatwg.org/multipage/#hyperlink-auditing> +<link rel=help href=https://html.spec.whatwg.org/multipage/#attr-meta-http-equiv-refresh> +<div id=log></div> +<script> +function expected(encoding) { + return { + "UTF-8": "%C3%BF", + "windows-1251": "%26%23255%3B", + "windows-1252": "%FF" + }[encoding]; +} +var encoding = document.characterSet; +var blank = 'resources/blank.py?encoding=' + encoding; +var stash_put = 'resources/stash.py?q=\u00FF&action=put&id='; +var stash_take = 'resources/stash.py?action=take&id='; +var input_url_html = 'resources/resource.py?q=\u00FF&encoding=' + encoding + '&type=html'; +var expected_current = expected(encoding); +var expected_utf8 = expected('UTF-8'); + +function assert_ends_with(input, endsWith) { + assert_true(input.endsWith(endsWith), input + " did not end with " + endsWith); +} + + +function poll_for_stash(test_obj, uuid, expected) { + var start = new Date(); + var poll = test_obj.step_func(function () { + var xhr = new XMLHttpRequest(); + xhr.open('GET', stash_take + uuid); + xhr.onload = test_obj.step_func(function(e) { + if (xhr.response == "") { + if (new Date() - start > 10000) { + // If we set the status to TIMEOUT here we avoid a race between the + // page and the test timing out + test_obj.force_timeout(); + } + test_obj.step_timeout(poll, 200); + } else { + assert_equals(xhr.response, expected); + test_obj.done(); + } + }); + xhr.send(); + }) + test_obj.step_timeout(poll, 200); +} + +function setup_navigation(elm, iframe, id, test_obj) { + iframe.name = id; + elm.target = id; + elm.setAttribute('href', input_url_html); + document.body.appendChild(iframe); + document.body.appendChild(elm); + test_obj.add_cleanup(function() { + document.body.removeChild(iframe); + document.body.removeChild(elm); + }); +} + +// follow hyperlink +function test_follow_link(tag) { + async_test(function() { + var elm = document.createElement(tag); + var iframe = document.createElement('iframe'); + setup_navigation(elm, iframe, 'test_follow_link_'+tag, this); + iframe.onload = this.step_func_done(function() { // when the page navigated to has loaded + assert_equals(iframe.contentDocument.body.textContent, expected_current); + }); + // follow the hyperlink + elm.click(); + // check that navigation succeeded by ...??? XXX + }, 'follow hyperlink <'+tag+' href>'); +} + +'a, area, link'.split(', ').forEach(function(str) { + test_follow_link(str); +}); + +// follow hyperlink with ping attribute +function test_follow_link_ping(tag) { + async_test(function() { + var uuid = token(); + var elm = document.createElement(tag); + // check if ping is supported + assert_true('ping' in elm, 'ping not supported'); + elm.setAttribute('ping', stash_put + uuid); + var iframe = document.createElement('iframe'); + setup_navigation(elm, iframe, 'test_follow_link_ping_'+tag, this); + // follow the hyperlink + elm.click(); + // check that navigation succeeded by ...??? XXX + // check that the right URL was requested for the ping + poll_for_stash(this, uuid, expected_current); + }, 'hyperlink auditing <'+tag+' ping>'); +} + +'a, area'.split(', ').forEach(function(str) { + test_follow_link_ping(str); +}); + +// navigating with meta refresh +async_test(function() { + var iframe = document.createElement('iframe'); + iframe.src = blank; + document.body.appendChild(iframe); + this.add_cleanup(function() { + document.body.removeChild(iframe); + }); + iframe.onload = this.step_func_done(function() { + var doc = iframe.contentDocument; + var got = doc.body.textContent; + if (got == '') { + doc.write('<meta http-equiv=refresh content="0; URL='+input_url_html+'">REFRESH'); + doc.close(); + return; + } + assert_equals(got, expected_current); + }); +}, 'meta refresh'); + +</script> diff --git a/tests/wpt/web-platform-tests/html/infrastructure/urls/resolving-urls/query-encoding/resources/resolve-url.js b/tests/wpt/web-platform-tests/html/infrastructure/urls/resolving-urls/query-encoding/resources/resolve-url.js index c6db2facf5f..cf175eb4d3a 100644 --- a/tests/wpt/web-platform-tests/html/infrastructure/urls/resolving-urls/query-encoding/resources/resolve-url.js +++ b/tests/wpt/web-platform-tests/html/infrastructure/urls/resolving-urls/query-encoding/resources/resolve-url.js @@ -26,105 +26,6 @@ onload = function() { return 'expected substring '+expected+' got '+got; } - function poll_for_stash(test_obj, uuid, expected) { - var start = new Date(); - var poll = test_obj.step_func(function () { - var xhr = new XMLHttpRequest(); - xhr.open('GET', stash_take + uuid); - xhr.onload = test_obj.step_func(function(e) { - if (xhr.response == "") { - if (new Date() - start > 10000) { - // If we set the status to TIMEOUT here we avoid a race between the - // page and the test timing out - test_obj.force_timeout(); - } - test_obj.step_timeout(poll, 200); - } else { - assert_equals(xhr.response, expected); - test_obj.done(); - } - }); - xhr.send(); - }) - test_obj.step_timeout(poll, 200); - } - - function setup_navigation(elm, iframe, id, test_obj) { - iframe.name = id; - elm.target = id; - elm.setAttribute('href', input_url_html); - document.body.appendChild(iframe); - document.body.appendChild(elm); - test_obj.add_cleanup(function() { - document.body.removeChild(iframe); - document.body.removeChild(elm); - }); - } - - // follow hyperlink - function test_follow_link(tag) { - async_test(function() { - var elm = document.createElement(tag); - var iframe = document.createElement('iframe'); - setup_navigation(elm, iframe, 'test_follow_link_'+tag, this); - iframe.onload = this.step_func_done(function() { // when the page navigated to has loaded - assert_equals(iframe.contentDocument.body.textContent, expected_current); - }); - // follow the hyperlink - elm.click(); - // check that navigation succeeded by ...??? XXX - }, 'follow hyperlink <'+tag+' href>', - {help:'https://html.spec.whatwg.org/multipage/#following-hyperlinks'}); - } - - 'a, area, link'.split(', ').forEach(function(str) { - test_follow_link(str); - }); - - // follow hyperlink with ping attribute - function test_follow_link_ping(tag) { - async_test(function() { - var uuid = token(); - var elm = document.createElement(tag); - // check if ping is supported - assert_true('ping' in elm, 'ping not supported'); - elm.setAttribute('ping', stash_put + uuid); - var iframe = document.createElement('iframe'); - setup_navigation(elm, iframe, 'test_follow_link_ping_'+tag, this); - // follow the hyperlink - elm.click(); - // check that navigation succeeded by ...??? XXX - // check that the right URL was requested for the ping - poll_for_stash(this, uuid, expected_current); - }, 'hyperlink auditing <'+tag+' ping>', - {help:'https://html.spec.whatwg.org/multipage/#hyperlink-auditing'}); - } - - 'a, area'.split(', ').forEach(function(str) { - test_follow_link_ping(str); - }); - - // navigating with meta refresh - async_test(function() { - var iframe = document.createElement('iframe'); - iframe.src = blank; - document.body.appendChild(iframe); - this.add_cleanup(function() { - document.body.removeChild(iframe); - }); - iframe.onload = this.step_func_done(function() { - var doc = iframe.contentDocument; - var got = doc.body.textContent; - if (got == '') { - doc.write('<meta http-equiv=refresh content="0; URL='+input_url_html+'">REFRESH'); - doc.close(); - return; - } - assert_equals(got, expected_current); - }); - }, 'meta refresh', - {help:'https://html.spec.whatwg.org/multipage/#attr-meta-http-equiv-refresh'}); - // loading html (or actually svg to support <embed>) function test_load_nested_browsing_context(tag, attr, spec_url) { async_test(function() { diff --git a/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/tables/hidden-attr.html b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/tables/hidden-attr.html new file mode 100644 index 00000000000..d9143447054 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/tables/hidden-attr.html @@ -0,0 +1,41 @@ +<!DOCTYPE html> +<title>UA style for hidden attribute on table elements</title> +<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#tables-2"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<table hidden></table> +<table><caption hidden></caption></table> +<table><colgroup hidden></table> +<table><col hidden></table> +<table><thead hidden></table> +<table><tbody hidden></table> +<table><tfoot hidden></table> +<table><tr hidden></table> +<table><tr><td hidden></table> +<table><tr><th hidden></table> +<script> +const expectedDisplay = { + 'table': 'none', + 'caption': 'none', + 'colgroup': 'table-column-group', + 'col': 'table-column', + 'thead': 'table-header-group', + 'tbody': 'table-row-group', + 'tfoot': 'table-footer-group', + 'tr': 'table-row', + 'td': 'table-cell', + 'th': 'table-cell', +}; +for (const el of document.querySelectorAll("[hidden]")) { + test(function() { + const style = getComputedStyle(el); + assert_equals(style.display, expectedDisplay[el.localName]); + if (el instanceof HTMLTableElement || + el instanceof HTMLTableCaptionElement) { + assert_equals(style.visibility, 'visible'); + } else { + assert_equals(style.visibility, 'collapse'); + } + }, `Computed display and visibility of ${el.localName}`); +} +</script> diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/resources/test_page.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/resources/test_page.html deleted file mode 100644 index 856183450e9..00000000000 --- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/resources/test_page.html +++ /dev/null @@ -1,3 +0,0 @@ -<!doctype html> -<title> An empty test page </title> -<p> This is test page </p> diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-embed-element/detach-frame-on-src-change.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-embed-element/detach-frame-on-src-change.html deleted file mode 100644 index 1e8f018fc49..00000000000 --- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-embed-element/detach-frame-on-src-change.html +++ /dev/null @@ -1,82 +0,0 @@ -<!doctype html> -<html> -<head> - <title> - <embed>'s browsing context is discarded on 'src' attribute change. - </title> - <link rel="author" title="Ehsan Karamad" href="ekaramad@chromium.org"> - <script src="/resources/testharness.js"></script> - <script src="/resources/testharnessreport.js"></script> -</head> -<body> - <script> - let url1 = "../resources/test_page.html"; - let url2 = "../resources/should-load.html"; - function onLoadPromise(el) { - return new Promise((resolve) => { - function onLoad() { - resolve(); - el.removeEventListener("load", onLoad); - } - el.addEventListener("load", onLoad); - }); - } - - promise_test(async() => { - let old_windows = []; - - let embed = document.createElement("embed"); - embed.type = "text/html"; - embed.src = url1; - let onEmbedLoad = onLoadPromise(embed); - document.body.appendChild(embed); - await onEmbedLoad; - old_windows.push(window[0]); - assert_equals( - window[0].frameElement, - embed, - "<embed> is attached and loaded with html content."); - - let iframe = document.createElement("iframe"); - iframe.src = url1; - let onIframeLoad = onLoadPromise(iframe); - document.body.appendChild(iframe); - await onIframeLoad; - old_windows.push(window[1]); - assert_equals( - window[1].frameElement, - iframe, - "<iframe> is attached and loaded with html content after <embed>."); - assert_equals( - window[0], - old_windows[0], - "The first window is that of <embed>'s frame."); - - // Now navigate the embed element again. - onEmbedLoad = onLoadPromise(embed); - embed.src = url2; - await onEmbedLoad; - assert_equals( - window[0].frameElement, - iframe, - "<embed>'s previous frame must have been destroyed."); - - assert_equals( - window[1].frameElement, - embed, - "<embed>'s new window should be appended after navigation."); - - assert_not_equals( - old_windows[0], - window[1], - "The old window and new window are different for <embed>."); - - assert_equals( - old_windows[1], - window[0], - "The old and new window are the same for <iframe>."); - }, "Verify that changing 'src' attribute of an <embed> element discards" + - " the old browsing context and creates a new browsing context."); - </script> -</body> -</html> diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-1.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-1.html index b0875ec6b91..feb876608ac 100644 --- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-1.html +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-1.html @@ -10,25 +10,15 @@ <body> <iframe sandbox="allow-top-navigation allow-scripts"></iframe> <script> - if (opener) { - // We're the popup (i.e. a top frame). Load into the iframe the page - // trying to modifying the top frame and transmit the result to our - // opener. - onmessage = function(e) { - opener.postMessage(e.data, "*") - } - document.querySelector("iframe").src = "support/iframe-that-performs-top-navigation-on-popup.html"; - } else { - // We are the main test page. Open ourselves as a popup, so that we can - // can experiment navigation of the top frame. - async_test(t => { - window.addEventListener("message", t.step_func_done(e => { - assert_equals(e.data, "can navigate"); - e.source.close(); - })); - window.open(location.href); - }, "Frames with `allow-top-navigation` should be able to navigate the top frame."); - } + // We are the main test page. Open a popup, so that we can + // can experiment navigation of the top frame. + async_test(t => { + window.addEventListener("message", t.step_func_done(e => { + assert_equals(e.data, "can navigate"); + e.source.close(); + })); + window.open("support/load-into-the-iframe.html"); + }, "Frames with `allow-top-navigation` should be able to navigate the top frame."); </script> </body> </html> diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-2.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-2.html index 6113c6c3478..bd7d92c0ddc 100644 --- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-2.html +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-2.html @@ -8,27 +8,16 @@ <script src="/resources/testharnessreport.js"></script> </head> <body> - <iframe sandbox="allow-scripts"></iframe> <script> - if (opener) { - // We're the popup (i.e. a top frame). Load into the iframe the page - // trying to modifying the top frame and transmit the result to our - // opener. - onmessage = function(e) { - opener.postMessage(e.data, "*") - } - document.querySelector("iframe").src = "support/iframe-that-performs-top-navigation-on-popup.html"; - } else { - // We are the main test page. Open ourselves as a popup, so that we can - // can experiment navigation of the top frame. - async_test(t => { - window.addEventListener("message", t.step_func_done(e => { - assert_equals(e.data, "cannot navigate"); - e.source.close(); - })); - window.open(location.href); - }, "Frames without `allow-top-navigation` should not be able to navigate the top frame."); - } + // We are the main test page. Open a popup, so that we can + // can experiment navigation of the top frame. + async_test(t => { + window.addEventListener("message", t.step_func_done(e => { + assert_equals(e.data, "cannot navigate"); + e.source.close(); + })); + window.open('support/load-into-the-iframe.html'); + }, "Frames without `allow-top-navigation` should not be able to navigate the top frame."); </script> </body> </html> diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-3.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-3.html index 9de5d53466e..c7c56d670e5 100644 --- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-3.html +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-3.html @@ -14,25 +14,15 @@ error: allow-top-navigation-by-user-activation will have no effect. --> <iframe sandbox="allow-top-navigation allow-top-navigation-by-user-activation allow-scripts"></iframe> <script> - if (opener) { - // We're the popup (i.e. a top frame). Load into the iframe the page - // trying to modifying the top frame and transmit the result to our - // opener. - onmessage = function(e) { - opener.postMessage(e.data, "*") - } - document.querySelector("iframe").src = "support/iframe-that-performs-top-navigation-on-popup.html"; - } else { - // We are the main test page. Open ourselves as a popup, so that we can - // can experiment navigation of the top frame. - async_test(t => { - window.addEventListener("message", t.step_func_done(e => { - assert_equals(e.data, "can navigate"); - e.source.close(); - })); - window.open(location.href); - }, "Frames with `allow-top-navigation` should be able to navigate the top frame even when `allow-top-navigation-by-user-activation` is set."); - } + // We are the main test page. Open a popup, so that we can + // can experiment navigation of the top frame. + async_test(t => { + window.addEventListener("message", t.step_func_done(e => { + assert_equals(e.data, "can navigate"); + e.source.close(); + })); + window.open("support/load-into-the-iframe.html"); + }, "Frames with `allow-top-navigation` should be able to navigate the top frame even when `allow-top-navigation-by-user-activation` is set."); </script> </body> </html> diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/load-into-the-iframe.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/load-into-the-iframe.html new file mode 100644 index 00000000000..05a80be7374 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/load-into-the-iframe.html @@ -0,0 +1,19 @@ + +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + </head> + <body> + <iframe sandbox="allow-scripts"></iframe> + <script> + // We're the popup (i.e. a top frame). Load into the iframe the page + // trying to modifying the top frame and transmit the result to our + // opener. + onmessage = function(e) { + opener.postMessage(e.data, "*") + } + document.querySelector("iframe").src = "iframe-that-performs-top-navigation-on-popup.html"; + </script> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-object-element/detach-frame-on-data-change.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-object-element/detach-frame-on-data-change.html deleted file mode 100644 index 6d114c46cf1..00000000000 --- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-object-element/detach-frame-on-data-change.html +++ /dev/null @@ -1,83 +0,0 @@ -<!doctype html> -<html> -<head> - <title> - <object>'s browsing context is discarded on 'data' attribute change. - </title> - <link rel="author" title="Ehsan Karamad" href="ekaramad@chromium.org"> - <script src="/resources/testharness.js"></script> - <script src="/resources/testharnessreport.js"></script> -</head> -<body> - <script> - let url1 = "../resources/test_page.html"; - let url2 = "../resources/should-load.html"; - function onLoadPromise(el) { - return new Promise((resolve) => { - function onLoad() { - resolve(); - el.removeEventListener("load", onLoad); - } - el.addEventListener("load", onLoad); - }); - } - - promise_test(async() => { - let old_windows = []; - - let object = document.createElement("object"); - object.type = "text/html"; - object.data = url1; - let onObjectLoad = onLoadPromise(object); - document.body.appendChild(object); - await onObjectLoad; - old_windows.push(window[0]); - assert_equals( - window[0].frameElement, - object, - "<object> is attached and loaded with html content."); - - let iframe = document.createElement("iframe"); - iframe.src = url1; - let onIframeLoad = onLoadPromise(iframe); - document.body.appendChild(iframe); - await onIframeLoad; - old_windows.push(window[1]); - assert_equals( - window[1].frameElement, - iframe, - "<iframe> is attached and loaded with html content after <object>."); - assert_equals( - window[0], - old_windows[0], - "The first window is that of <object>'s frame."); - - // Now navigate the object element again. - onObjectLoad = onLoadPromise(object); - object.data = url2; - await onObjectLoad; - assert_equals( - window[0].frameElement, - iframe, - "<object>'s previous frame must have been destroyed."); - - assert_equals( - window[1].frameElement, - object, - "<object>'s new window should be appended after navigation."); - - assert_not_equals( - old_windows[0], - window[1], - "The old window and new window are different for <object>."); - - assert_equals( - old_windows[1], - window[0], - "The old and new window are the same for <iframe>."); - - }, "Verify that changing 'data' attribute of an <object> element discards" + - " the old browsing context and creates a new browsing context."); - </script> -</body> -</html> diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-nonce-classic.html b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-nonce-classic.html index ba82fe8e7c8..6191827e234 100644 --- a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-nonce-classic.html +++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-nonce-classic.html @@ -96,6 +96,7 @@ promise_test(t => { "onclick", `import('../imports-a.js?label=inline event handlers triggered via UA code').then(window.continueTest, window.errorTest)` ); + assert_equals(typeof dummyDiv.onclick, "function", "the browser must be able to parse a string containing the import() syntax into a function"); dummyDiv.click(); // different from **on**click() return promise.then(assertSuccessful); diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-nonce-module.html b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-nonce-module.html index 889628f8395..3e09dd6d4b9 100644 --- a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-nonce-module.html +++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-nonce-module.html @@ -95,6 +95,7 @@ promise_test(t => { "onclick", `import('../imports-a.js?label=inline event handlers triggered via UA code').then(window.continueTest, window.errorTest)` ); + assert_equals(typeof dummyDiv.onclick, 'function', "the browser must be able to parse a string containing the import() syntax into a function"); dummyDiv.click(); // different from **on**click() return promise.then(assertSuccessful); diff --git a/tests/wpt/web-platform-tests/lifecycle/freeze.html b/tests/wpt/web-platform-tests/lifecycle/freeze.html new file mode 100644 index 00000000000..66bbbffd1fa --- /dev/null +++ b/tests/wpt/web-platform-tests/lifecycle/freeze.html @@ -0,0 +1,48 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>TestDriver freeze method</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<script> +var test = async_test('Test freeze callback.'); +var childWindow = window.open('resources/window.html', 'Child Window'); +var total_steps = 0; + +const StepStatus = { + ADDED: 0, + SUCCESS: 1, + FAIL: 2, +}; + +var steps_map = new Map(); + +function add_step(name) { + steps_map[name] = StepStatus.ADDED; + total_steps++; +} + +function step_success(name) { + total_steps--; + steps_map[name] = StepStatus.SUCCESS; + if (total_steps == 0) + test.done(); +} + +function step_fail(name) { + total_steps--; + steps_map[name] = StepStatus.FAIL; + test.step(() => assert_unreached('During onfreeze: ' + name + ' failed to behave as expected.')); + if (total_steps == 0) + test.done(); +} + +test.step_timeout(() => { + for (var step in steps_map) { + if(steps_map[step] == StepStatus.ADDED) + test.step(() => assert_unreached('During onfreeze: ' + step + ' never finshed.')); + } +}, 1000); + +</script> + diff --git a/tests/wpt/web-platform-tests/lifecycle/resources/foo.txt b/tests/wpt/web-platform-tests/lifecycle/resources/foo.txt new file mode 100644 index 00000000000..403d0106082 --- /dev/null +++ b/tests/wpt/web-platform-tests/lifecycle/resources/foo.txt @@ -0,0 +1 @@ +Sample test file for fetch inside onfreeze.
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/lifecycle/resources/window.html b/tests/wpt/web-platform-tests/lifecycle/resources/window.html new file mode 100644 index 00000000000..1e52587c526 --- /dev/null +++ b/tests/wpt/web-platform-tests/lifecycle/resources/window.html @@ -0,0 +1,66 @@ +<!doctype html> +<html> +<head><title>Frozen Window</title></head> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-vendor.js"></script> +<body> +<h1>This window will be frozen</h1> +<script> + +const freezingStepName = 'testOnFreeze'; + +function testFetch(keepalive) { + var name = 'testfetch' + (keepalive ? 'with' : 'without') + 'keepalive'; + window.opener.add_step(name); + + function handler(expected) { + if (expected == true) + window.opener.step_success(name); + else + window.opener.step_fail(name); + } + + fetch('foo.txt', { + keepalive: keepalive + }).then(() => handler(keepalive)).catch(() => handler(!keepalive)); +} + +function testXHR(async) { + var name = 'test' + (async ? 'Async' : 'Sync') + 'XHR'; + window.opener.add_step(name); + var xhr = new XMLHttpRequest(); + xhr.onreadystatechange = () => { + if (xhr.readyState === 4) { + if (xhr.status === 0) + window.opener.step_success(name); + else + window.opener.step_fail(name); + } + } + xhr.open('GET', 'foo.txt', async); + try { + xhr.send(null); + } catch { + window.opener.step_success(name); + }; +} + +window.document.addEventListener("freeze", () => { + // Testing fetch, only fetch keepalive should succeed. + testFetch(true /* keepalive */); + testFetch(false /* keepalive */); + // Testing XHR, both sync and async should fail. + testXHR(true /* async */); + testXHR(false /* sync */); + window.opener.step_success(freezingStepName); +}); + +onload = function() { + window.opener.focus(); + window.opener.add_step(freezingStepName); + test_driver.freeze(); +}; + +</script> +</body> +</html>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/mediacapture-fromelement/creation.html b/tests/wpt/web-platform-tests/mediacapture-fromelement/creation.html index 338611ac078..b025a3ad6ce 100644 --- a/tests/wpt/web-platform-tests/mediacapture-fromelement/creation.html +++ b/tests/wpt/web-platform-tests/mediacapture-fromelement/creation.html @@ -14,15 +14,20 @@ var makeAsyncTest = function(filename, numTracks) { var video = document.createElement('video'); video.src = "/media/" + filename; video.onerror = this.unreached_func("<video> error"); - video.play(); assert_true('captureStream' in video); var stream = video.captureStream(); assert_not_equals(stream, null, "error generating stream"); - // onactive event is marked for deprecation (https://crbug.com/649328) - stream.onactive = this.step_func_done(function() { + stream.onaddtrack = this.step_func_done(function() { + var tracks = stream.getTracks(); + var idx; + + for (idx = 0; idx < tracks.length; idx += 1) { + assert_equals(tracks[idx].readyState, 'live') + } + // The stream got a (number of) MediaStreamTracks added. assert_equals(stream.getVideoTracks().length, numTracks['vid'], 'video'); assert_equals(stream.getAudioTracks().length, numTracks['aud'], 'audio'); diff --git a/tests/wpt/web-platform-tests/mediacapture-fromelement/historical.html b/tests/wpt/web-platform-tests/mediacapture-fromelement/historical.html new file mode 100644 index 00000000000..3b86e9de35b --- /dev/null +++ b/tests/wpt/web-platform-tests/mediacapture-fromelement/historical.html @@ -0,0 +1,17 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="utf-8"> + <title>Historical features</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> +</head> +<body> + <script> + // https://lists.w3.org/Archives/Public/public-media-capture/2015Nov/0012.html + test(function() { + assert_false(MediaStream.prototype.hasOwnProperty('onactive')); + }, 'the deprecated MediaStream `onactive` event handler property is not available'); + </script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/payment-handler/can-make-payment-event-constructor.https.html b/tests/wpt/web-platform-tests/payment-handler/can-make-payment-event-constructor.https.html index d8480a29223..6892f01aa95 100644 --- a/tests/wpt/web-platform-tests/payment-handler/can-make-payment-event-constructor.https.html +++ b/tests/wpt/web-platform-tests/payment-handler/can-make-payment-event-constructor.https.html @@ -1,11 +1,14 @@ <!doctype html> <meta charset="utf-8"> -<title>Test for CanMakePaymentEvent Constructor (window)</title> +<title>Test for CanMakePaymentEvent Constructor</title> <link rel="help" href="https://w3c.github.io/payment-handler/#dom-canmakepaymentevent"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/service-workers/service-worker/resources/test-helpers.sub.js"></script> <script> + test(() => { assert_false('CanMakePaymentEvent' in window); }, 'CanMakePaymentEvent constructor must not be exposed in window'); + </script> diff --git a/tests/wpt/web-platform-tests/payment-handler/can-make-payment-event-constructor.https.serviceworker.html b/tests/wpt/web-platform-tests/payment-handler/can-make-payment-event-constructor.https.serviceworker.html new file mode 100644 index 00000000000..afff850dc47 --- /dev/null +++ b/tests/wpt/web-platform-tests/payment-handler/can-make-payment-event-constructor.https.serviceworker.html @@ -0,0 +1,13 @@ +<!doctype html> +<meta charset="utf-8"> +<title>Test for CanMakePaymentEvent Constructor</title> +<link rel="help" href="https://w3c.github.io/payment-handler/#dom-canmakepaymentevent"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/service-workers/service-worker/resources/test-helpers.sub.js"></script> +<script> + +service_worker_test('can-make-payment-event-constructor.https.serviceworker.js', + 'CanMakePaymentEvent can be constructed in service worker'); + +</script> diff --git a/tests/wpt/web-platform-tests/payment-handler/can-make-payment-event-constructor.https.serviceworker.js b/tests/wpt/web-platform-tests/payment-handler/can-make-payment-event-constructor.https.serviceworker.js new file mode 100644 index 00000000000..01ce642d234 --- /dev/null +++ b/tests/wpt/web-platform-tests/payment-handler/can-make-payment-event-constructor.https.serviceworker.js @@ -0,0 +1,45 @@ +importScripts('/resources/testharness.js'); + +test(() => { + try { + new CanMakePaymentEvent('test', undefined); + new CanMakePaymentEvent('test', null); + new CanMakePaymentEvent('test', {}); + } catch (err) { + assert_unreached(`Unexpected exception: ${err.message}`); + } +}, 'CanMakePaymentEvent can be constructed in service worker.'); + +test(() => { + const ev = new CanMakePaymentEvent('test', { + bubbles: true, + cancelable: true, + composed: true, + }); + assert_false(ev.isTrusted, 'constructed in script, so not be trusted'); + assert_true(ev.bubbles, 'set by EventInitDict'); + assert_true(ev.cancelable, 'set by EventInitDict'); + assert_true(ev.composed, 'set by EventInitDict'); + assert_equals(ev.target, null, 'initially null'); + assert_equals(ev.type, 'test'); +}, 'CanMakePaymentEvent can be constructed with an EventInitDict, even if not trusted'); + +test(() => { + const ev = new CanMakePaymentEvent('test', { + topOrigin: 'https://foo.com', + paymentRequestOrigin: 'https://bar.com', + methodData: [], + modifiers: [], + }); + assert_false(ev.isTrusted, 'constructed in script, so not be trusted'); + assert_equals(ev.topOrigin, 'https://foo.com'); + assert_equals(ev.paymentRequestOrigin, 'https://bar.com'); +}, 'CanMakePaymentEvent can be constructed with a CanMakePaymentEventInit, even if not trusted'); + +test(() => { + const ev = new CanMakePaymentEvent('test', {}); + self.addEventListener('test', evt => { + assert_equals(ev, evt); + }); + self.dispatchEvent(ev); +}, 'CanMakePaymentEvent can be dispatched, even if not trusted'); diff --git a/tests/wpt/web-platform-tests/payment-handler/can-make-payment-event-constructor.https.worker.js b/tests/wpt/web-platform-tests/payment-handler/can-make-payment-event-constructor.https.worker.js index 8ae05d7853a..d88bddceafa 100644 --- a/tests/wpt/web-platform-tests/payment-handler/can-make-payment-event-constructor.https.worker.js +++ b/tests/wpt/web-platform-tests/payment-handler/can-make-payment-event-constructor.https.worker.js @@ -1,49 +1,7 @@ -// https://w3c.github.io/payment-handler/#the-canmakepaymentevent - -'use strict'; - -if (self.importScripts) { - importScripts('/resources/testharness.js'); -} - -test(() => { - try { - new CanMakePaymentEvent('test'); - } catch (err) { - assert_unreached(`Unexpected exception: ${err.message}`); - } -}, 'CanMakePaymentEvent can be constructed in service worker.'); +importScripts('/resources/testharness.js'); test(() => { - const ev = new CanMakePaymentEvent('test', { - bubbles: true, - cancelabel: true, - composed: true, - }); - assert_false(ev.isTrusted, 'constructed in script, so not be trusted'); - assert_true(ev.bubbles, 'set by EventInitDict'); - assert_true(ev.cancelable, 'set by EventInitDict'); - assert_true(ev.composed, 'set by EventInitDict'); - assert_equals(ev.target, null, 'initially null'); - assert_equals(ev.type, 'test'); -}, 'CanMakePaymentEvent can be constructed with an EventInitDict, even if not trusted'); + assert_false('CanMakePaymentEvent' in self); +}, 'CanMakePaymentEvent constructor must not be exposed in worker'); -test(() => { - const ev = new CanMakePaymentEvent('test', { - topOrigin: 'https://foo.com', - paymentRequestOrigin: 'https://bar.com', - methodData: [], - modifiers: [], - }); - assert_false(ev.isTrusted, 'constructed in script, so not be trusted'); - assert_equals(ev.topOrigin, 'https://foo.com'); - assert_equals(ev.paymentRequestOrigin, 'https://bar.com'); -}, 'CanMakePaymentEvent can be constructed with a CanMakePaymentEventInit, even if not trusted'); - -test(() => { - const ev = new CanMakePaymentEvent('test'); - self.addEventListener('test', evt => { - assert_equals(ev, evt); - }); - self.dispatchEvent(ev); -}, 'CanMakePaymentEvent can be dispatched, even if not trusted'); +done(); diff --git a/tests/wpt/web-platform-tests/payment-handler/payment-request-event-constructor.https.html b/tests/wpt/web-platform-tests/payment-handler/payment-request-event-constructor.https.html new file mode 100644 index 00000000000..31ac8cafa78 --- /dev/null +++ b/tests/wpt/web-platform-tests/payment-handler/payment-request-event-constructor.https.html @@ -0,0 +1,14 @@ +<!doctype html> +<meta charset="utf-8"> +<title>Test for PaymentRequestEvent Constructor</title> +<link rel="help" href="https://w3c.github.io/payment-handler/#the-paymentrequestevent"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/service-workers/service-worker/resources/test-helpers.sub.js"></script> +<script> + +test(() => { + assert_false('PaymentRequestEvent' in window); +}, 'PaymentRequestEvent constructor must not be exposed in window'); + +</script> diff --git a/tests/wpt/web-platform-tests/payment-handler/payment-request-event-constructor.https.serviceworker.html b/tests/wpt/web-platform-tests/payment-handler/payment-request-event-constructor.https.serviceworker.html new file mode 100644 index 00000000000..a64c4290e03 --- /dev/null +++ b/tests/wpt/web-platform-tests/payment-handler/payment-request-event-constructor.https.serviceworker.html @@ -0,0 +1,13 @@ +<!doctype html> +<meta charset="utf-8"> +<title>Test for PaymentRequestEvent Constructor</title> +<link rel="help" href="https://w3c.github.io/payment-handler/#the-paymentrequestevent"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/service-workers/service-worker/resources/test-helpers.sub.js"></script> +<script> + +service_worker_test('payment-request-event-constructor.https.serviceworker.js', + 'PaymentRequestEvent can be constructed in service worker'); + +</script> diff --git a/tests/wpt/web-platform-tests/payment-handler/payment-request-event-constructor.https.serviceworker.js b/tests/wpt/web-platform-tests/payment-handler/payment-request-event-constructor.https.serviceworker.js new file mode 100644 index 00000000000..1aea7000c14 --- /dev/null +++ b/tests/wpt/web-platform-tests/payment-handler/payment-request-event-constructor.https.serviceworker.js @@ -0,0 +1,45 @@ +importScripts('/resources/testharness.js'); + +test(() => { + try { + new PaymentRequestEvent('test', undefined); + new PaymentRequestEvent('test', null); + new PaymentRequestEvent('test', {}); + } catch (err) { + assert_unreached(`Unexpected exception: ${err.message}`); + } +}, 'PaymentRequestEvent can be constucted in service worker.'); + +test(() => { + const ev = new PaymentRequestEvent('test', { + bubbles: true, + cancelable: true, + composed: true, + }); + assert_false(ev.isTrusted, 'constructed in script, so not be trusted'); + assert_true(ev.bubbles, 'set by EventInitDict'); + assert_true(ev.cancelable, 'set by EventInitDict'); + assert_true(ev.composed, 'set by EventInitDict'); + assert_equals(ev.target, null, 'initially null'); + assert_equals(ev.type, 'test'); +}, 'PaymentRequestEvent can be constructed with an EventInitDict, even if not trusted'); + +test(() => { + const ev = new PaymentRequestEvent('test', { + topOrigin: 'https://foo.com', + paymentRequestOrigin: 'https://bar.com', + methodData: [], + modifiers: [], + }); + assert_false(ev.isTrusted, 'constructed in script, so not be trusted'); + assert_equals(ev.topOrigin, 'https://foo.com'); + assert_equals(ev.paymentRequestOrigin, 'https://bar.com'); +}, 'PaymentRequestEvent can be constructed with a PaymentRequestEventInit, even if not trusted'); + +test(() => { + const ev = new PaymentRequestEvent('test', {}); + self.addEventListener('test', evt => { + assert_equals(ev, evt); + }); + self.dispatchEvent(ev); +}, 'PaymentRequestEvent can be dispatched, even if not trusted'); diff --git a/tests/wpt/web-platform-tests/payment-handler/payment-request-event-constructor.https.worker.js b/tests/wpt/web-platform-tests/payment-handler/payment-request-event-constructor.https.worker.js new file mode 100644 index 00000000000..fdb71aa8451 --- /dev/null +++ b/tests/wpt/web-platform-tests/payment-handler/payment-request-event-constructor.https.worker.js @@ -0,0 +1,7 @@ +importScripts('/resources/testharness.js'); + +test(() => { + assert_false('PaymentRequestEvent' in self); +}, 'PaymentRequestEvent constructor must not be exposed in worker'); + +done(); diff --git a/tests/wpt/web-platform-tests/priority-hints/OWNERS b/tests/wpt/web-platform-tests/priority-hints/OWNERS new file mode 100644 index 00000000000..56538f3eca2 --- /dev/null +++ b/tests/wpt/web-platform-tests/priority-hints/OWNERS @@ -0,0 +1 @@ +@domfarolino diff --git a/tests/wpt/web-platform-tests/priority-hints/img-attr-named-constructor.tentative.html b/tests/wpt/web-platform-tests/priority-hints/img-attr-named-constructor.tentative.html new file mode 100644 index 00000000000..d9dd22a9c5d --- /dev/null +++ b/tests/wpt/web-platform-tests/priority-hints/img-attr-named-constructor.tentative.html @@ -0,0 +1,24 @@ +<!DOCTYPE html> +<title>Priority Hints - Image element</title> +<meta name="author" title="Dominic Farolino" href="mailto:domfarolino@gmail.com"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<img id=img1 src=/images/green.png importance=high> +<img id=img2 src=/images/green.png importance=low> +<img id=img3 src=/images/green.png importance=auto> +<img id=img4 src=/images/green.png importance=xyz> +<img id=img5 src=/images/green.png> + +<script> + test(() => { + assert_equals(img1.importance, "high", "high importance is a valid IDL value on the image element"); + assert_equals(img2.importance, "low", "high importance is a valid IDL value on the image element"); + assert_equals(img3.importance, "auto", "auto importance is a valid IDL value on the image element"); + assert_equals(img4.importance, "auto", "invalid importance reflects as 'auto' IDL attribute on the image element"); + assert_equals(img5.importance, "auto", "missing importance reflects as 'auto' IDL attribute on the image element"); + }, "importance attribute on <img> elements should reflect valid IDL values"); + + const img = new Image(); + assert_equals(img.importance, "auto"); +</script> diff --git a/tests/wpt/web-platform-tests/priority-hints/link-attr.tentative.html b/tests/wpt/web-platform-tests/priority-hints/link-attr.tentative.html new file mode 100644 index 00000000000..1c5aeb530eb --- /dev/null +++ b/tests/wpt/web-platform-tests/priority-hints/link-attr.tentative.html @@ -0,0 +1,24 @@ +<!DOCTYPE html> +<title>Priority Hints - Link element</title> +<meta name="author" title="Dominic Farolino" href="mailto:domfarolino@gmail.com"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<link id=link1 href=resources/stylesheet.css importance=high> +<link id=link2 href=resources/stylesheet.css importance=low> +<link id=link3 href=resources/stylesheet.css importance=auto> +<link id=link4 href=resources/stylesheet.css importance=xyz> +<link id=link5 href=resources/stylesheet.css> + +<script> + test(() => { + assert_equals(link1.importance, "high", "high importance is a valid IDL value on the link element"); + assert_equals(link2.importance, "low", "high importance is a valid IDL value on the link element"); + assert_equals(link3.importance, "auto", "auto importance is a valid IDL value on the link element"); + assert_equals(link4.importance, "auto", "invalid importance reflects as 'auto' IDL attribute on the link element"); + assert_equals(link5.importance, "auto", "missing importance reflects as 'auto' IDL attribute on the link element"); + }, "importance attribute on <link> elements should reflect valid IDL values"); + + const link = document.createElement("link"); + assert_equals(link.importance, "auto"); +</script> diff --git a/tests/wpt/web-platform-tests/priority-hints/resources/stylesheet.css b/tests/wpt/web-platform-tests/priority-hints/resources/stylesheet.css new file mode 100644 index 00000000000..9d9d772fb46 --- /dev/null +++ b/tests/wpt/web-platform-tests/priority-hints/resources/stylesheet.css @@ -0,0 +1,3 @@ +body { + background-color: green; +} diff --git a/tests/wpt/web-platform-tests/resource-timing/resource_timing_buffer_full_eventually.html b/tests/wpt/web-platform-tests/resource-timing/resource_timing_buffer_full_eventually.html new file mode 100644 index 00000000000..7ca8237b02c --- /dev/null +++ b/tests/wpt/web-platform-tests/resource-timing/resource_timing_buffer_full_eventually.html @@ -0,0 +1,31 @@ +<!DOCTYPE HTML> +<html> +<head> +<meta charset="utf-8" /> +<link rel="help" href="http://www.w3.org/TR/resource-timing/#performanceresourcetiming"/> +<title>This test validates that resource timing implementations have a finite number of entries in their buffer.</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +</head> +<body> +<script> + const t = async_test("Finite resource timing entries buffer size"); + performance.onresourcetimingbufferfull = t.step_func_done(function() { + }); + window.onload = t.step_func( + function() { + // Scripts appended in JS to ensure setResourceTimingBufferSize is called before. + let counter = performance.getEntriesByType("resource").length; + function appendScript() { + const src = "resources/empty.js?" + counter; + const script = document.createElement('script'); + script.type = 'text/javascript'; + script.onload = function() { ++counter; appendScript()}; + script.src = src; + document.body.appendChild(script); + } + appendScript(); + }); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/resources/idlharness.js b/tests/wpt/web-platform-tests/resources/idlharness.js index e83c4bf6f87..d00572492df 100644 --- a/tests/wpt/web-platform-tests/resources/idlharness.js +++ b/tests/wpt/web-platform-tests/resources/idlharness.js @@ -887,7 +887,7 @@ IdlArray.prototype.assert_type_is = function(value, type) return; } - if (type.sequence) + if (type.generic === "sequence") { assert_true(Array.isArray(value), "should be an Array"); if (!value.length) diff --git a/tests/wpt/web-platform-tests/resources/testdriver.js b/tests/wpt/web-platform-tests/resources/testdriver.js index a09a6e8d7af..6fadb8ac494 100644 --- a/tests/wpt/web-platform-tests/resources/testdriver.js +++ b/tests/wpt/web-platform-tests/resources/testdriver.js @@ -119,6 +119,21 @@ } return window.test_driver_internal.send_keys(element, keys); + }, + + /** + * Freeze the current page + * + * The freeze function transitions the page from the HIDDEN state to + * the FROZEN state as described in {@link + * https://github.com/WICG/page-lifecycle/blob/master/README.md|Lifecycle API + * for Web Pages} + * + * @returns {Promise} fullfilled after the freeze request is sent, or rejected + * in case the WebDriver command errors + */ + freeze: function() { + return window.test_driver_internal.freeze(); } }; @@ -143,6 +158,16 @@ */ send_keys: function(element, keys) { return Promise.reject(new Error("unimplemented")); + }, + + /** + * Freeze the current page + * + * @returns {Promise} fullfilled after freeze request is sent, otherwise + * it gets rejected + */ + freeze: function() { + return Promise.reject(new Error("unimplemented")); } }; })(); diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/import-scripts-updated-flag.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/import-scripts-updated-flag.https.html index 506827f89d5..09b4496aa0e 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/import-scripts-updated-flag.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/import-scripts-updated-flag.https.html @@ -75,7 +75,7 @@ promise_test(t => { return post_and_wait_for_reply(worker, 'message'); }) .then(result => { - assert_equals(result.error, 'TypeError'); + assert_equals(result.error, 'NetworkError'); assert_equals(result.value, null); }); }, 'import script not previously imported'); diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/import-scripts-updated-flag-worker.js b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/import-scripts-updated-flag-worker.js index 0f5005d9af4..e01664662ef 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/import-scripts-updated-flag-worker.js +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/import-scripts-updated-flag-worker.js @@ -4,6 +4,7 @@ let echo_output = null; // Tests importing a script that sets |echo_output| to the query string. function test_import(str) { + echo_output = null; importScripts('import-scripts-echo.py?msg=' + str); assert_equals(echo_output, str); } @@ -18,6 +19,7 @@ self.addEventListener('install', () => { self.addEventListener('message', e => { var error = null; + echo_output = null; try { importScripts('import-scripts-echo.py?msg=' + e.data); diff --git a/tests/wpt/web-platform-tests/tools/lint/lint.py b/tests/wpt/web-platform-tests/tools/lint/lint.py index 058ee2bbd23..7fd1d1e0010 100644 --- a/tests/wpt/web-platform-tests/tools/lint/lint.py +++ b/tests/wpt/web-platform-tests/tools/lint/lint.py @@ -664,6 +664,8 @@ def check_script_metadata(repo_root, path, f): elif key == b"timeout": if value != b"long": errors.append(("UNKNOWN-TIMEOUT-METADATA", "Unexpected value for timeout metadata", path, idx + 1)) + elif key == b"title": + pass elif key == b"script": pass elif key == b"variant": diff --git a/tests/wpt/web-platform-tests/tools/lint/tests/test_file_lints.py b/tests/wpt/web-platform-tests/tools/lint/tests/test_file_lints.py index 539022bb988..28ccacc8787 100644 --- a/tests/wpt/web-platform-tests/tools/lint/tests/test_file_lints.py +++ b/tests/wpt/web-platform-tests/tools/lint/tests/test_file_lints.py @@ -521,6 +521,7 @@ def test_css_missing_file_manual(): "foo.any.js", ]) @pytest.mark.parametrize("input,error", [ + (b"""//META: title=foo\n""", None), (b"""//META: timeout=long\n""", None), (b"""// META: timeout=long\n""", None), (b"""// META: timeout=long\n""", None), diff --git a/tests/wpt/web-platform-tests/tools/serve/serve.py b/tests/wpt/web-platform-tests/tools/serve/serve.py index d77875b182c..10dc3b3bd6c 100644 --- a/tests/wpt/web-platform-tests/tools/serve/serve.py +++ b/tests/wpt/web-platform-tests/tools/serve/serve.py @@ -160,8 +160,11 @@ class HtmlWrapperHandler(WrapperHandler): if value == b"long": return '<meta name="timeout" content="long">' if key == b"script": - attribute = value.decode('utf-8').replace('"', """).replace(">", ">") + attribute = value.decode('utf-8').replace("&", "&").replace('"', """) return '<script src="%s"></script>' % attribute + if key == b"title": + value = value.decode('utf-8').replace("&", "&").replace("<", "<") + return '<title>%s</title>' % value return None diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wpttest.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wpttest.py index 9e4290d9bbd..7c76e2e03b6 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wpttest.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wpttest.py @@ -86,12 +86,6 @@ class RunInfo(dict): elif "debug" not in self: # Default to release self["debug"] = False - if product == "firefox" and "stylo" not in self: - self["stylo"] = False - if "STYLO_FORCE_ENABLED" in os.environ: - self["stylo"] = True - if "STYLO_FORCE_DISABLED" in os.environ: - self["stylo"] = False if browser_version: self["browser_version"] = browser_version if extras is not None: diff --git a/tests/wpt/web-platform-tests/touch-events/create-touch-touchlist.html b/tests/wpt/web-platform-tests/touch-events/create-touch-touchlist.html deleted file mode 100644 index 2e6e49f4aff..00000000000 --- a/tests/wpt/web-platform-tests/touch-events/create-touch-touchlist.html +++ /dev/null @@ -1,39 +0,0 @@ -<!DOCTYPE HTML> -<html> -<head> -<title>document.createTouch and document.createTouchList Tests</title> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="touch-support.js"></script> -<body> -<div id="target0"></div> -<script> -test(function() { - var touchList = document.createTouchList(); - assert_equals(touchList.length, 0, "touchList.length is 0"); - check_TouchList_object(touchList); -}, "document.createTouchList exists and correctly creates a TouchList from zero Touch objects"); - -test(function() { - var testTarget = document.getElementById('target0'); - var touch1 = new Touch({identifier: 123, target: testTarget}); - var touchList = document.createTouchList(touch1); - assert_equals(touchList.length, 1, "touchList.length is 1"); - assert_equals(touchList.item(0), touch1, "touchList.item(0) is touch1"); - check_TouchList_object(touchList); -}, "document.createTouchList exists and correctly creates a TouchList from a single Touch"); - -test(function() { - var testTarget = document.getElementById('target0'); - var touch1 = new Touch({identifier: 123, target: testTarget}); - var touch2 = new Touch({identifier: 124, target: target0}); - var touchList = document.createTouchList(touch1, touch2); - assert_equals(touchList.length, 2, "touchList.length is 2"); - assert_equals(touchList.item(0), touch1, "touchList.item(0) is touch1"); - assert_equals(touchList.item(1), touch2, "touchList.item(1) is touch2"); - check_TouchList_object(touchList); -}, "document.createTouchList exists and correctly creates a TouchList from two Touch objects"); -</script> -</head> -</body> -</html> diff --git a/tests/wpt/web-platform-tests/touch-events/historical.html b/tests/wpt/web-platform-tests/touch-events/historical.html index e5db6ef32da..27cc88d8ce0 100644 --- a/tests/wpt/web-platform-tests/touch-events/historical.html +++ b/tests/wpt/web-platform-tests/touch-events/historical.html @@ -26,7 +26,8 @@ test(function() { assert_false("identifiedTouch" in TouchList.prototype, "Should not be supported on the prototype"); - var touchList = document.createTouchList(); + var touchevent = new TouchEvent("touchstart", {}); + var touchList = touchevent.touches; assert_false("identifiedTouch" in touchList, "Should not be supported on the instance"); }, "TouchList::identifiedTouch"); @@ -47,4 +48,12 @@ test(function() { assert_false("createTouch" in document, "Should not be supported on the instance"); }, "Document::createTouch"); + +test(function() { + assert_false("createTouchList" in Document.prototype, + "Should not be supported on the prototype"); + + assert_false("createTouchList" in document, + "Should not be supported on the instance"); +}, "Document::createTouchList"); </script> diff --git a/tests/wpt/web-platform-tests/url/README.md b/tests/wpt/web-platform-tests/url/README.md index 34c35dc4a35..667951d680f 100644 --- a/tests/wpt/web-platform-tests/url/README.md +++ b/tests/wpt/web-platform-tests/url/README.md @@ -23,7 +23,7 @@ The keys for each test case are: In addition to testing that parsing `input` against `base` gives the result, a test harness for the `URL` constructor (or similar APIs) should additionally test the following pattern: if `failure` is -true, parsing `about:blank` against `base` must give failure. This tests that the logic for +true, parsing `about:blank` against `input` must give failure. This tests that the logic for converting base URLs into strings properly fails the whole parsing algorithm if the base URL cannot be parsed. diff --git a/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property.html b/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property.html index 870e4891240..420617d1194 100644 --- a/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property.html +++ b/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property.html @@ -17,41 +17,43 @@ html { <script> 'use strict'; -for (const property in gCSSProperties) { - if (!isSupported(property)) { - continue; - } - - const setupFunction = gCSSProperties[property].setup; - for (const animationType of gCSSProperties[property].types) { - let typeObject; - let animationTypeString; - if (typeof animationType === 'string') { - typeObject = types[animationType]; - animationTypeString = animationType; - } else if (typeof animationType === 'object' && - animationType.type && typeof animationType.type === 'string') { - typeObject = types[animationType.type]; - animationTypeString = animationType.type; +test(function() { + for (const property in gCSSProperties) { + if (!isSupported(property)) { + continue; } - // First, test that the animation type object has 'testAccumulation'. - // We use test() function here so that we can continue the remainder tests - // even if this test fails. - test(t => { - assert_own_property(typeObject, 'testAccumulation', animationTypeString + - ' should have testAccumulation property'); - assert_equals(typeof typeObject.testAccumulation, 'function', - 'testAccumulation method should be a function'); - }, `${property} (type: ${animationTypeString}) has testAccumulation` - + ' function'); + const setupFunction = gCSSProperties[property].setup; + for (const animationType of gCSSProperties[property].types) { + let typeObject; + let animationTypeString; + if (typeof animationType === 'string') { + typeObject = types[animationType]; + animationTypeString = animationType; + } else if (typeof animationType === 'object' && + animationType.type && typeof animationType.type === 'string') { + typeObject = types[animationType.type]; + animationTypeString = animationType.type; + } - if (typeObject.testAccumulation && - typeof typeObject.testAccumulation === 'function') { - typeObject.testAccumulation(property, - setupFunction, - animationType.options); + // First, test that the animation type object has 'testAccumulation'. + // We use test() function here so that we can continue the remainder tests + // even if this test fails. + test(t => { + assert_own_property(typeObject, 'testAccumulation', animationTypeString + + ' should have testAccumulation property'); + assert_equals(typeof typeObject.testAccumulation, 'function', + 'testAccumulation method should be a function'); + }, `${property} (type: ${animationTypeString}) has testAccumulation` + + ' function'); + + if (typeObject.testAccumulation && + typeof typeObject.testAccumulation === 'function') { + typeObject.testAccumulation(property, + setupFunction, + animationType.options); + } } } -} +}, 'Setup'); </script> diff --git a/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property.html b/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property.html index 61256314fea..f17eedabbdd 100644 --- a/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property.html +++ b/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property.html @@ -17,41 +17,43 @@ html { <script> 'use strict'; -for (const property in gCSSProperties) { - if (!isSupported(property)) { - continue; - } - - const setupFunction = gCSSProperties[property].setup; - for (const animationType of gCSSProperties[property].types) { - let typeObject; - let animationTypeString; - if (typeof animationType === 'string') { - typeObject = types[animationType]; - animationTypeString = animationType; - } else if (typeof animationType === 'object' && - animationType.type && typeof animationType.type === 'string') { - typeObject = types[animationType.type]; - animationTypeString = animationType.type; +test(function() { + for (const property in gCSSProperties) { + if (!isSupported(property)) { + continue; } - // First, test that the animation type object has 'testAddition'. - // We use test() function here so that we can continue the remainder tests - // even if this test fails. - test(t => { - assert_own_property(typeObject, 'testAddition', animationTypeString + - ' should have testAddition property'); - assert_equals(typeof typeObject.testAddition, 'function', - 'testAddition method should be a function'); - }, `${property} (type: ${animationTypeString}) has testAddition` - + ' function'); + const setupFunction = gCSSProperties[property].setup; + for (const animationType of gCSSProperties[property].types) { + let typeObject; + let animationTypeString; + if (typeof animationType === 'string') { + typeObject = types[animationType]; + animationTypeString = animationType; + } else if (typeof animationType === 'object' && + animationType.type && typeof animationType.type === 'string') { + typeObject = types[animationType.type]; + animationTypeString = animationType.type; + } - if (typeObject.testAddition && - typeof typeObject.testAddition === 'function') { - typeObject.testAddition(property, - setupFunction, - animationType.options); + // First, test that the animation type object has 'testAddition'. + // We use test() function here so that we can continue the remainder tests + // even if this test fails. + test(t => { + assert_own_property(typeObject, 'testAddition', animationTypeString + + ' should have testAddition property'); + assert_equals(typeof typeObject.testAddition, 'function', + 'testAddition method should be a function'); + }, `${property} (type: ${animationTypeString}) has testAddition` + + ' function'); + + if (typeObject.testAddition && + typeof typeObject.testAddition === 'function') { + typeObject.testAddition(property, + setupFunction, + animationType.options); + } } } -} +}, "Setup"); </script> diff --git a/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property.html b/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property.html index 2c335da0dc4..fe23d89fd06 100644 --- a/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property.html +++ b/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property.html @@ -17,41 +17,43 @@ html { <script> 'use strict'; -for (const property in gCSSProperties) { - if (!isSupported(property)) { - continue; - } - - const setupFunction = gCSSProperties[property].setup; - for (const animationType of gCSSProperties[property].types) { - let typeObject; - let animationTypeString; - if (typeof animationType === 'string') { - typeObject = types[animationType]; - animationTypeString = animationType; - } else if (typeof animationType === 'object' && - animationType.type && typeof animationType.type === 'string') { - typeObject = types[animationType.type]; - animationTypeString = animationType.type; +test(function() { + for (const property in gCSSProperties) { + if (!isSupported(property)) { + continue; } - // First, test that the animation type object has 'testInterpolation'. - // We use test() function() here so that we can continue the remainder tests - // even if this test fails. - test(t => { - assert_own_property(typeObject, 'testInterpolation', animationTypeString + - ' should have testInterpolation property'); - assert_equals(typeof typeObject.testInterpolation, 'function', - 'testInterpolation method should be a function'); - }, `${property} (type: ${animationTypeString}) has testInterpolation` - + ' function'); + const setupFunction = gCSSProperties[property].setup; + for (const animationType of gCSSProperties[property].types) { + let typeObject; + let animationTypeString; + if (typeof animationType === 'string') { + typeObject = types[animationType]; + animationTypeString = animationType; + } else if (typeof animationType === 'object' && + animationType.type && typeof animationType.type === 'string') { + typeObject = types[animationType.type]; + animationTypeString = animationType.type; + } - if (typeObject.testInterpolation && - typeof typeObject.testInterpolation === 'function') { - typeObject.testInterpolation(property, - setupFunction, - animationType.options); + // First, test that the animation type object has 'testInterpolation'. + // We use test() function() here so that we can continue the remainder tests + // even if this test fails. + test(t => { + assert_own_property(typeObject, 'testInterpolation', animationTypeString + + ' should have testInterpolation property'); + assert_equals(typeof typeObject.testInterpolation, 'function', + 'testInterpolation method should be a function'); + }, `${property} (type: ${animationTypeString}) has testInterpolation` + + ' function'); + + if (typeObject.testInterpolation && + typeof typeObject.testInterpolation === 'function') { + typeObject.testInterpolation(property, + setupFunction, + animationType.options); + } } } -} +}, 'Setup'); </script> diff --git a/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/property-list.js b/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/property-list.js index ec0c33fb5bd..f0b2a640c79 100644 --- a/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/property-list.js +++ b/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/property-list.js @@ -1556,6 +1556,7 @@ function createTestElement(t, setup) { function isSupported(property) { const testKeyframe = new TestKeyframe(propertyToIDL(property)); + assert_not_equals(window.KeyframeEffect, undefined, 'window.KeyframeEffect'); try { // Since TestKeyframe returns 'undefined' for |property|, // the KeyframeEffect constructor will throw diff --git a/tests/wpt/web-platform-tests/web-nfc/nfc_push.https.html b/tests/wpt/web-platform-tests/web-nfc/nfc_push.https.html index 19ee5d3da88..cb3cf761f71 100644 --- a/tests/wpt/web-platform-tests/web-nfc/nfc_push.https.html +++ b/tests/wpt/web-platform-tests/web-nfc/nfc_push.https.html @@ -137,21 +137,25 @@ promise_test(t => { promise_test(() => { return new Promise((resolve,reject) => { let iframe = document.createElement('iframe'); - iframe.srcdoc = '<script>' + - ' window.onmessage = message => {' + - ' if (message.data === "Ready") {' + - ' let onSuccess = () => { parent.postMessage("Failure", "*"); };' + - ' let onError = error => {' + - ' if (error.name == "SecurityError") {' + - ' parent.postMessage("Success", "*");' + - ' } else {' + - ' parent.postMessage("Failure", "*");' + - ' }' + - ' };' + - ' navigator.nfc.push("Test").then(onSuccess, onError);' + - ' }' + - ' };' + - '<\/script>'; + iframe.srcdoc = `<script> + window.onmessage = message => { + if (message.data === "Ready") { + let onSuccess = () => { parent.postMessage("Failure", "*"); }; + let onError = error => { + if (error.name == "SecurityError") { + parent.postMessage("Success", "*"); + } else { + parent.postMessage("Failure", "*"); + } + }; + try { + navigator.nfc.push("Test").then(onSuccess, onError); + } catch(e) { + parent.postMessage("Failure", "*"); + } + } + }; + <\/script>`; iframe.onload = () => iframe.contentWindow.postMessage('Ready', '*'); document.body.appendChild(iframe); window.onmessage = message => { diff --git a/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-helper.js b/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-helper.js index 8ccebbd867f..34e0d75903c 100644 --- a/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-helper.js +++ b/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-helper.js @@ -229,7 +229,7 @@ function exchangeIceCandidates(pc1, pc2) { // There is ongoing discussion on w3c/webrtc-pc#1213 // that there should be an empty candidate string event // for end of candidate for each m= section. - if(candidate) { + if(candidate && remotePc.signalingState !== 'closed') { remotePc.addIceCandidate(candidate); } }); diff --git a/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription.html b/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription.html index 3ceafe094d6..1dbcf41118a 100644 --- a/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription.html +++ b/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription.html @@ -81,10 +81,10 @@ let eventCount = 0; const states = [ - 'stable', 'have-local-offer', 'stable', 'have-remote-offer', 'closed' + 'stable', 'have-local-offer', 'stable', 'have-remote-offer', ]; - pc.onsignalingstatechange = () => - assert_equals(pc.signalingState, states[++eventCount]); + pc.onsignalingstatechange = t.step_func(() => + assert_equals(pc.signalingState, states[++eventCount])); const assert_state = state => { assert_equals(state, pc.signalingState); @@ -101,8 +101,6 @@ assert_state('stable'); await pc.setRemoteDescription(await pc2.createOffer()); assert_state('have-remote-offer'); - pc.close(); - assert_state('closed'); }, 'Negotiation should fire signalingsstate events'); /* Operations after returning to stable state */ diff --git a/tests/wpt/web-platform-tests/workers/modules/dedicated-worker-import-csp.html b/tests/wpt/web-platform-tests/workers/modules/dedicated-worker-import-csp.html new file mode 100644 index 00000000000..02b88e82269 --- /dev/null +++ b/tests/wpt/web-platform-tests/workers/modules/dedicated-worker-import-csp.html @@ -0,0 +1,114 @@ +<!DOCTYPE html> +<title>DedicatedWorker: CSP for ES Modules</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; +} + +function import_csp_test( + cspHeader, scriptURL, expectedImportedModules, description) { + const windowURL = + `resources/new-worker-window.html?pipe=header(` + + `Content-Security-Policy, ${cspHeader})`; + promise_test(async () => { + // Open a window that has the given CSP header. + const win = await openWindow(windowURL); + // Ask the window to start a dedicated worker. The worker inherits the + // window's CSP header. + // https://w3c.github.io/webappsec-csp/#initialize-global-object-csp + win.postMessage(scriptURL, '*'); + const msg_event = await new Promise(resolve => window.onmessage = resolve); + assert_array_equals(msg_event.data, expectedImportedModules); + }, description); +} + +// Tests for static import. +// +// Static import should obey the worker-src directive and the script-src +// directive. If the both directives are specified, the worker-src directive +// should be prioritized. +// +// Step 1: "If the result of executing 6.6.1.11 Get the effective directive for +// request on request is "worker-src", and policy contains a directive whose +// name is "worker-src", return "Allowed"." +// "Note: If worker-src is present, we’ll defer to it when handling worker +// requests." +// https://w3c.github.io/webappsec-csp/#script-src-pre-request + +import_csp_test( + "worker-src 'self' 'unsafe-inline'", + "static-import-remote-origin-script-worker.sub.js", + ['ERROR'], + "worker-src 'self' directive should disallow cross origin static import."); + +import_csp_test( + "worker-src * 'unsafe-inline'", + "static-import-remote-origin-script-worker.sub.js", + ["export-on-load-script.js"], + "worker-src * directive should allow cross origin static import.") + +import_csp_test( + "script-src 'self' 'unsafe-inline'", + "static-import-remote-origin-script-worker.sub.js", + ['ERROR'], + "script-src 'self' directive should disallow cross origin static import."); + +import_csp_test( + "script-src * 'unsafe-inline'", + "static-import-remote-origin-script-worker.sub.js", + ["export-on-load-script.js"], + "script-src * directive should allow cross origin static import.") + +import_csp_test( + "worker-src *; script-src 'self' 'unsafe-inline'", + "static-import-remote-origin-script-worker.sub.js", + ["export-on-load-script.js"], + "worker-src * directive should override script-src 'self' directive and " + + "allow cross origin static import."); + +import_csp_test( + "worker-src 'self'; script-src * 'unsafe-inline'", + "static-import-remote-origin-script-worker.sub.js", + ['ERROR'], + "worker-src 'self' directive should override script-src * directive and " + + "disallow cross origin static import."); + +// Tests for dynamic import. +// +// Dynamic import should obey the script-src directive instead of the worker-src +// directive according to the specs: +// +// Dynamic import has the "script" destination. +// Step 2.4: "Fetch a module script graph given url, ..., "script", ..." +// https://html.spec.whatwg.org/multipage/webappapis.html#hostimportmoduledynamically(referencingscriptormodule,-specifier,-promisecapability) +// +// The "script" destination should obey the script-src CSP directive. +// Step 2: "If request's destination is script-like:" +// https://w3c.github.io/webappsec-csp/#script-src-pre-request + +import_csp_test( + "script-src 'self' 'unsafe-inline'", + "dynamic-import-remote-origin-script-worker.sub.js", + ['ERROR'], + "script-src 'self' directive should disallow cross origin dynamic import."); + +import_csp_test( + "script-src * 'unsafe-inline'", + "dynamic-import-remote-origin-script-worker.sub.js", + ["export-on-load-script.js"], + "script-src * directive should allow cross origin dynamic import.") + +import_csp_test( + "worker-src 'self' 'unsafe-inline'", + "dynamic-import-remote-origin-script-worker.sub.js", + ["export-on-load-script.js"], + "worker-src 'self' directive should not take effect on dynamic import."); + +</script> diff --git a/tests/wpt/web-platform-tests/workers/modules/dedicated-worker-options-credentials.html b/tests/wpt/web-platform-tests/workers/modules/dedicated-worker-options-credentials.html index 316b01d789c..6603eb9be9b 100644 --- a/tests/wpt/web-platform-tests/workers/modules/dedicated-worker-options-credentials.html +++ b/tests/wpt/web-platform-tests/workers/modules/dedicated-worker-options-credentials.html @@ -17,61 +17,68 @@ function DetermineExpectedCookieValue(options) { return 'COOKIE_VALUE'; assert_equals(options.type, 'module'); - if (!options.credentials || options.credentials == 'omit') - return ''; - if (options.credentials == 'same-origin' || options.credentials == 'include') + if (!options.credentials || + options.credentials == 'same-origin' || + options.credentials == 'include') { return 'COOKIE_VALUE'; + } + if (options.credentials == 'omit') + return ''; assert_unreached('Invalid credentials option was specified: ' + options.credentials); } // Runs a credentials test with the given WorkerOptions. -async function runCredentialsTest(options) { - const worker = new Worker('resources/credentials.py', options); +function credentials_test(options, description) { + promise_test(async () => { + const worker = new Worker('resources/credentials.py', options); - // Wait until the worker sends the actual cookie value. - const msg_event = await new Promise(resolve => worker.onmessage = resolve); + // Wait until the worker sends the actual cookie value. + const msg_event = await new Promise(resolve => worker.onmessage = resolve); - const expectedCookieValue = DetermineExpectedCookieValue(options); - assert_equals(msg_event.data, expectedCookieValue); + const expectedCookieValue = DetermineExpectedCookieValue(options); + assert_equals(msg_event.data, expectedCookieValue); + }, description); } // Tests for module scripts. -promise_test(() => runCredentialsTest({ type: 'module'}), - 'new Worker() with the default credentials option should not send ' + - 'the credentials'); +credentials_test( + { type: 'module'}, + 'new Worker() with the default credentials option should behave as ' + + 'credentials=same-origin and send the credentials'); -promise_test(() => runCredentialsTest({ credentials: 'omit', - type: 'module' }), +credentials_test( + { credentials: 'omit', type: 'module' }, 'new Worker() with credentials=omit should not send the credentials'); -promise_test(() => runCredentialsTest({ credentials: 'same-origin', - type: 'module' }), +credentials_test( + { credentials: 'same-origin', type: 'module' }, 'new Worker() with credentials=same-origin should send the credentials'); -promise_test(() => runCredentialsTest({ credentials: 'include', - type: 'module' }), +credentials_test( + { credentials: 'include', type: 'module' }, 'new Worker() with credentials=include should send the credentials'); // Tests for classic scripts. -promise_test(() => runCredentialsTest({ type: 'classic' }), +credentials_test( + { type: 'classic' }, 'new Worker() with type=classic should always send the credentials ' + 'regardless of the credentials option (default).'); -promise_test(() => runCredentialsTest({ credentials: 'omit', - type: 'classic' }), +credentials_test( + { credentials: 'omit', type: 'classic' }, 'new Worker() with type=classic should always send the credentials ' + 'regardless of the credentials option (omit).'); -promise_test(() => runCredentialsTest({ credentials: 'same-origin', - type: 'classic' }), +credentials_test( + { credentials: 'same-origin', type: 'classic' }, 'new Worker() with type=classic should always send the credentials ' + 'regardless of the credentials option (same-origin).'); -promise_test(() => runCredentialsTest({ credentials: 'include', - type: 'classic' }), +credentials_test( + { credentials: 'include', type: 'classic' }, 'new Worker() with type=classic should always send the credentials ' + 'regardless of the credentials option (include).'); diff --git a/tests/wpt/web-platform-tests/workers/modules/resources/dynamic-import-remote-origin-script-worker.sub.js b/tests/wpt/web-platform-tests/workers/modules/resources/dynamic-import-remote-origin-script-worker.sub.js new file mode 100644 index 00000000000..0937086d72d --- /dev/null +++ b/tests/wpt/web-platform-tests/workers/modules/resources/dynamic-import-remote-origin-script-worker.sub.js @@ -0,0 +1,4 @@ +// Import a remote origin script. +import('https://{{domains[www1]}}:{{ports[https][0]}}/workers/modules/resources/export-on-load-script.js') + .then(module => postMessage(module.importedModules)) + .catch(e => postMessage(['ERROR'])); diff --git a/tests/wpt/web-platform-tests/workers/modules/resources/export-on-load-script.js.headers b/tests/wpt/web-platform-tests/workers/modules/resources/export-on-load-script.js.headers new file mode 100644 index 00000000000..cb762eff806 --- /dev/null +++ b/tests/wpt/web-platform-tests/workers/modules/resources/export-on-load-script.js.headers @@ -0,0 +1 @@ +Access-Control-Allow-Origin: * diff --git a/tests/wpt/web-platform-tests/workers/modules/resources/new-worker-window.html b/tests/wpt/web-platform-tests/workers/modules/resources/new-worker-window.html new file mode 100644 index 00000000000..5ae150725eb --- /dev/null +++ b/tests/wpt/web-platform-tests/workers/modules/resources/new-worker-window.html @@ -0,0 +1,15 @@ +<!DOCTYPE html> +<title>DedicatedWorker: new Worker()</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +let worker; + +// Creates a new dedicated worker for a given script url. +window.onmessage = e => { + worker = new Worker(e.data, { type: 'module' }); + worker.onmessage = msg => window.opener.postMessage(msg.data, '*'); + worker.onerror = err => window.opener.postMessage(['ERROR'], '*'); +}; +window.opener.postMessage('LOADED', '*'); +</script> diff --git a/tests/wpt/web-platform-tests/workers/modules/resources/static-import-remote-origin-script-worker.sub.js b/tests/wpt/web-platform-tests/workers/modules/resources/static-import-remote-origin-script-worker.sub.js new file mode 100644 index 00000000000..00ef44eff58 --- /dev/null +++ b/tests/wpt/web-platform-tests/workers/modules/resources/static-import-remote-origin-script-worker.sub.js @@ -0,0 +1,3 @@ +// Import a remote origin script. +import * as module from 'https://{{domains[www1]}}:{{ports[https][0]}}/workers/modules/resources/export-on-load-script.js'; +postMessage(module.importedModules); |