diff --git a/tests/wpt/meta-legacy-layout/css/CSS2/floats/block-in-inline-become-float.html.ini b/tests/wpt/meta-legacy-layout/css/CSS2/floats/block-in-inline-become-float.html.ini new file mode 100644 index 00000000000..20dabf31bb7 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/CSS2/floats/block-in-inline-become-float.html.ini @@ -0,0 +1,2 @@ +[block-in-inline-become-float.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-align/parsing/grid-column-gap-computed.html.ini b/tests/wpt/meta-legacy-layout/css/css-align/parsing/grid-column-gap-computed.html.ini new file mode 100644 index 00000000000..5eda98917f4 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-align/parsing/grid-column-gap-computed.html.ini @@ -0,0 +1,15 @@ +[grid-column-gap-computed.html] + [Property grid-column-gap value 'normal'] + expected: FAIL + + [Property grid-column-gap value 'calc(10px + 0.5em)'] + expected: FAIL + + [Property grid-column-gap value 'calc(10px - 0.5em)'] + expected: FAIL + + [Property grid-column-gap value '40%'] + expected: FAIL + + [Property grid-column-gap value 'calc(50% + 60px)'] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-align/parsing/grid-column-gap-valid.html.ini b/tests/wpt/meta-legacy-layout/css/css-align/parsing/grid-column-gap-valid.html.ini new file mode 100644 index 00000000000..ec21c41147c --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-align/parsing/grid-column-gap-valid.html.ini @@ -0,0 +1,18 @@ +[grid-column-gap-valid.html] + [e.style['grid-column-gap'\] = "normal" should set the property value] + expected: FAIL + + [e.style['grid-column-gap'\] = "0" should set the property value] + expected: FAIL + + [e.style['grid-column-gap'\] = "1px" should set the property value] + expected: FAIL + + [e.style['grid-column-gap'\] = "calc(2em + 3ex)" should set the property value] + expected: FAIL + + [e.style['grid-column-gap'\] = "4%" should set the property value] + expected: FAIL + + [e.style['grid-column-gap'\] = "5vmin" should set the property value] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-align/parsing/grid-gap-computed.html.ini b/tests/wpt/meta-legacy-layout/css/css-align/parsing/grid-gap-computed.html.ini new file mode 100644 index 00000000000..2d68fe883e1 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-align/parsing/grid-gap-computed.html.ini @@ -0,0 +1,33 @@ +[grid-gap-computed.html] + [Property grid-gap value 'normal'] + expected: FAIL + + [Property grid-gap value '10px'] + expected: FAIL + + [Property grid-gap value '20%'] + expected: FAIL + + [Property grid-gap value 'calc(20% + 10px)'] + expected: FAIL + + [Property grid-gap value 'calc(-0.5em + 10px)'] + expected: FAIL + + [Property grid-gap value 'calc(0.5em + 10px)'] + expected: FAIL + + [Property grid-gap value 'normal 10px'] + expected: FAIL + + [Property grid-gap value '10px 20%'] + expected: FAIL + + [Property grid-gap value '20% calc(20% + 10px)'] + expected: FAIL + + [Property grid-gap value 'calc(20% + 10px) normal'] + expected: FAIL + + [Property grid-gap value 'calc(-0.5em + 10px) calc(0.5em + 10px)'] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-align/parsing/grid-gap-shorthand.html.ini b/tests/wpt/meta-legacy-layout/css/css-align/parsing/grid-gap-shorthand.html.ini new file mode 100644 index 00000000000..65d3c9ef707 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-align/parsing/grid-gap-shorthand.html.ini @@ -0,0 +1,36 @@ +[grid-gap-shorthand.html] + [e.style['gap'\] = "normal" should set column-gap] + expected: FAIL + + [e.style['gap'\] = "normal" should set row-gap] + expected: FAIL + + [e.style['gap'\] = "normal" should not set unrelated longhands] + expected: FAIL + + [e.style['gap'\] = "10px 20%" should set column-gap] + expected: FAIL + + [e.style['gap'\] = "10px 20%" should set row-gap] + expected: FAIL + + [e.style['gap'\] = "10px 20%" should not set unrelated longhands] + expected: FAIL + + [e.style['gap'\] = "10px normal" should set column-gap] + expected: FAIL + + [e.style['gap'\] = "10px normal" should set row-gap] + expected: FAIL + + [e.style['gap'\] = "10px normal" should not set unrelated longhands] + expected: FAIL + + [e.style['gap'\] = "normal calc(20% + 10px)" should set grid-column-gap] + expected: FAIL + + [e.style['gap'\] = "normal calc(20% + 10px)" should set grid-row-gap] + expected: FAIL + + [e.style['gap'\] = "normal calc(20% + 10px)" should not set unrelated longhands] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-align/parsing/grid-gap-valid.html.ini b/tests/wpt/meta-legacy-layout/css/css-align/parsing/grid-gap-valid.html.ini new file mode 100644 index 00000000000..3c7918388c2 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-align/parsing/grid-gap-valid.html.ini @@ -0,0 +1,27 @@ +[grid-gap-valid.html] + [e.style['grid-gap'\] = "normal normal" should set the property value] + expected: FAIL + + [e.style['grid-gap'\] = "10px 10px" should set the property value] + expected: FAIL + + [e.style['grid-gap'\] = "20% 20%" should set the property value] + expected: FAIL + + [e.style['grid-gap'\] = "calc(20% + 10px) calc(20% + 10px)" should set the property value] + expected: FAIL + + [e.style['grid-gap'\] = "normal 10px" should set the property value] + expected: FAIL + + [e.style['grid-gap'\] = "10px 20%" should set the property value] + expected: FAIL + + [e.style['grid-gap'\] = "20% calc(20% + 10px)" should set the property value] + expected: FAIL + + [e.style['grid-gap'\] = "calc(20% + 10px) 0px" should set the property value] + expected: FAIL + + [e.style['grid-gap'\] = "0px normal" should set the property value] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-align/parsing/grid-row-gap-computed.html.ini b/tests/wpt/meta-legacy-layout/css/css-align/parsing/grid-row-gap-computed.html.ini new file mode 100644 index 00000000000..ec012bf08df --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-align/parsing/grid-row-gap-computed.html.ini @@ -0,0 +1,18 @@ +[grid-row-gap-computed.html] + [Property grid-row-gap value 'normal'] + expected: FAIL + + [Property grid-row-gap value '10px'] + expected: FAIL + + [Property grid-row-gap value '20%'] + expected: FAIL + + [Property grid-row-gap value 'calc(20% + 10px)'] + expected: FAIL + + [Property grid-row-gap value 'calc(-0.5em + 10px)'] + expected: FAIL + + [Property grid-row-gap value 'calc(0.5em + 10px)'] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-align/parsing/grid-row-gap-valid.html.ini b/tests/wpt/meta-legacy-layout/css/css-align/parsing/grid-row-gap-valid.html.ini new file mode 100644 index 00000000000..1fecfe68cc3 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-align/parsing/grid-row-gap-valid.html.ini @@ -0,0 +1,15 @@ +[grid-row-gap-valid.html] + [e.style['grid-row-gap'\] = "normal" should set the property value] + expected: FAIL + + [e.style['grid-row-gap'\] = "10px" should set the property value] + expected: FAIL + + [e.style['grid-row-gap'\] = "20%" should set the property value] + expected: FAIL + + [e.style['grid-row-gap'\] = "calc(20% + 10px)" should set the property value] + expected: FAIL + + [e.style['grid-row-gap'\] = "0" should set the property value] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-color/clip-opacity-out-of-flow.html.ini b/tests/wpt/meta-legacy-layout/css/css-color/clip-opacity-out-of-flow.html.ini new file mode 100644 index 00000000000..3a7868d0b49 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-color/clip-opacity-out-of-flow.html.ini @@ -0,0 +1,2 @@ +[clip-opacity-out-of-flow.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-color/parsing/color-computed-relative-color.html.ini b/tests/wpt/meta-legacy-layout/css/css-color/parsing/color-computed-relative-color.html.ini index 5fd0b0d2861..03508b45213 100644 --- a/tests/wpt/meta-legacy-layout/css/css-color/parsing/color-computed-relative-color.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-color/parsing/color-computed-relative-color.html.ini @@ -3523,3 +3523,120 @@ [Property color value 'color(from color(from color(xyz-d65 0.99 0.88 0.77) xyz-d65 x y z) xyz-d65 x y z)'] expected: FAIL + + [Property color value 'rgb(from rgb(from rebeccapurple r g b / calc(alpha + 0.5)) r g b / calc(alpha - 0.5))'] + expected: FAIL + + [Property color value 'rgb(from rgb(from rebeccapurple r g b / calc(alpha - 1.5)) r g b / calc(alpha + 0.5))'] + expected: FAIL + + [Property color value 'color-mix(in srgb, rgb(from rebeccapurple none g b), rebeccapurple)'] + expected: FAIL + + [Property color value 'hsl(from hsl(from rebeccapurple h s l / calc(alpha + 0.5)) h s l / calc(alpha - 0.5))'] + expected: FAIL + + [Property color value 'hsl(from hsl(from rebeccapurple h s l / calc(alpha - 1.5)) h s l / calc(alpha + 0.5))'] + expected: FAIL + + [Property color value 'color-mix(in hsl, hsl(from rebeccapurple none s l), rebeccapurple)'] + expected: FAIL + + [Property color value 'hwb(from hwb(from rebeccapurple h w b / calc(alpha + 0.5)) h w b / calc(alpha - 0.5))'] + expected: FAIL + + [Property color value 'hwb(from hwb(from rebeccapurple h w b / calc(alpha - 1.5)) h w b / calc(alpha + 0.5))'] + expected: FAIL + + [Property color value 'color-mix(in hwb, hwb(from rebeccapurple none w b), rebeccapurple)'] + expected: FAIL + + [Property color value 'lab(from lab(from lab(25 20 50) l a b / calc(alpha + 0.5)) l a b / calc(alpha - 0.5))'] + expected: FAIL + + [Property color value 'lab(from lab(from lab(25 20 50) l a b / calc(alpha - 1.5)) l a b / calc(alpha + 0.5))'] + expected: FAIL + + [Property color value 'color-mix(in lab, lab(from lab(25 20 50) none a b), lab(25 20 50))'] + expected: FAIL + + [Property color value 'oklab(from oklab(from oklab(0.25 0.2 0.5) l a b / calc(alpha + 0.5)) l a b / calc(alpha - 0.5))'] + expected: FAIL + + [Property color value 'oklab(from oklab(from oklab(0.25 0.2 0.5) l a b / calc(alpha - 1.5)) l a b / calc(alpha + 0.5))'] + expected: FAIL + + [Property color value 'color-mix(in oklab, oklab(from oklab(0.25 0.2 0.5) none a b), oklab(0.25 0.2 0.5))'] + expected: FAIL + + [Property color value 'lch(from lch(from lch(0.7 45 30) l c h / calc(alpha + 0.5)) l c h / calc(alpha - 0.5))'] + expected: FAIL + + [Property color value 'lch(from lch(from lch(0.7 45 30) l c h / calc(alpha - 1.5)) l c h / calc(alpha + 0.5))'] + expected: FAIL + + [Property color value 'color-mix(in lch, lch(from lch(0.7 45 30) l c none), lch(0.7 45 30))'] + expected: FAIL + + [Property color value 'oklch(from oklch(from oklch(0.7 0.45 30) l c h / calc(alpha + 0.5)) l c h / calc(alpha - 0.5))'] + expected: FAIL + + [Property color value 'oklch(from oklch(from oklch(0.7 0.45 30) l c h / calc(alpha - 1.5)) l c h / calc(alpha + 0.5))'] + expected: FAIL + + [Property color value 'color-mix(in oklch, oklch(from oklch(0.7 0.45 30) l c none), oklch(0.7 0.45 30))'] + expected: FAIL + + [Property color value 'color(from color(from color(srgb 0.7 0.5 0.3) srgb r g b / calc(alpha + 0.5)) srgb r g b / calc(alpha - 0.5))'] + expected: FAIL + + [Property color value 'color(from color(from color(srgb 0.7 0.5 0.3) srgb r g b / calc(alpha - 1.5)) srgb r g b / calc(alpha + 0.5))'] + expected: FAIL + + [Property color value 'color(from color(from color(srgb-linear 0.7 0.5 0.3) srgb-linear r g b / calc(alpha + 0.5)) srgb-linear r g b / calc(alpha - 0.5))'] + expected: FAIL + + [Property color value 'color(from color(from color(srgb-linear 0.7 0.5 0.3) srgb-linear r g b / calc(alpha - 1.5)) srgb-linear r g b / calc(alpha + 0.5))'] + expected: FAIL + + [Property color value 'color(from color(from color(a98-rgb 0.7 0.5 0.3) a98-rgb r g b / calc(alpha + 0.5)) a98-rgb r g b / calc(alpha - 0.5))'] + expected: FAIL + + [Property color value 'color(from color(from color(a98-rgb 0.7 0.5 0.3) a98-rgb r g b / calc(alpha - 1.5)) a98-rgb r g b / calc(alpha + 0.5))'] + expected: FAIL + + [Property color value 'color(from color(from color(rec2020 0.7 0.5 0.3) rec2020 r g b / calc(alpha + 0.5)) rec2020 r g b / calc(alpha - 0.5))'] + expected: FAIL + + [Property color value 'color(from color(from color(rec2020 0.7 0.5 0.3) rec2020 r g b / calc(alpha - 1.5)) rec2020 r g b / calc(alpha + 0.5))'] + expected: FAIL + + [Property color value 'color(from color(from color(prophoto-rgb 0.7 0.5 0.3) prophoto-rgb r g b / calc(alpha + 0.5)) prophoto-rgb r g b / calc(alpha - 0.5))'] + expected: FAIL + + [Property color value 'color(from color(from color(prophoto-rgb 0.7 0.5 0.3) prophoto-rgb r g b / calc(alpha - 1.5)) prophoto-rgb r g b / calc(alpha + 0.5))'] + expected: FAIL + + [Property color value 'color(from color(from color(display-p3 0.7 0.5 0.3) display-p3 r g b / calc(alpha + 0.5)) display-p3 r g b / calc(alpha - 0.5))'] + expected: FAIL + + [Property color value 'color(from color(from color(display-p3 0.7 0.5 0.3) display-p3 r g b / calc(alpha - 1.5)) display-p3 r g b / calc(alpha + 0.5))'] + expected: FAIL + + [Property color value 'color(from color(from color(xyz 7 -20.5 100) xyz x y z / calc(alpha + 0.5)) xyz x y z / calc(alpha - 0.5))'] + expected: FAIL + + [Property color value 'color(from color(from color(xyz 7 -20.5 100) xyz x y z / calc(alpha - 1.5)) xyz x y z / calc(alpha + 0.5))'] + expected: FAIL + + [Property color value 'color(from color(from color(xyz-d50 7 -20.5 100) xyz-d50 x y z / calc(alpha + 0.5)) xyz-d50 x y z / calc(alpha - 0.5))'] + expected: FAIL + + [Property color value 'color(from color(from color(xyz-d50 7 -20.5 100) xyz-d50 x y z / calc(alpha - 1.5)) xyz-d50 x y z / calc(alpha + 0.5))'] + expected: FAIL + + [Property color value 'color(from color(from color(xyz-d65 7 -20.5 100) xyz-d65 x y z / calc(alpha + 0.5)) xyz-d65 x y z / calc(alpha - 0.5))'] + expected: FAIL + + [Property color value 'color(from color(from color(xyz-d65 7 -20.5 100) xyz-d65 x y z / calc(alpha - 1.5)) xyz-d65 x y z / calc(alpha + 0.5))'] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-001.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-001.tentative.html.ini new file mode 100644 index 00000000000..25535f43bd2 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-001.tentative.html.ini @@ -0,0 +1,2 @@ +[line-clamp-001.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-004.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-004.tentative.html.ini new file mode 100644 index 00000000000..079d68f9db0 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-004.tentative.html.ini @@ -0,0 +1,2 @@ +[line-clamp-004.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-005.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-005.tentative.html.ini new file mode 100644 index 00000000000..f7e5bd89633 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-005.tentative.html.ini @@ -0,0 +1,2 @@ +[line-clamp-005.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-006.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-006.tentative.html.ini new file mode 100644 index 00000000000..a20fcc3b242 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-006.tentative.html.ini @@ -0,0 +1,2 @@ +[line-clamp-006.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-007.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-007.tentative.html.ini new file mode 100644 index 00000000000..650254666e8 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-007.tentative.html.ini @@ -0,0 +1,2 @@ +[line-clamp-007.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-008.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-008.tentative.html.ini new file mode 100644 index 00000000000..01050849b00 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-008.tentative.html.ini @@ -0,0 +1,2 @@ +[line-clamp-008.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-009.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-009.tentative.html.ini new file mode 100644 index 00000000000..c5fde4b81a4 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-009.tentative.html.ini @@ -0,0 +1,2 @@ +[line-clamp-009.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-010.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-010.tentative.html.ini new file mode 100644 index 00000000000..197075b7e1a --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-010.tentative.html.ini @@ -0,0 +1,2 @@ +[line-clamp-010.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-011.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-011.tentative.html.ini new file mode 100644 index 00000000000..801b5a840df --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-011.tentative.html.ini @@ -0,0 +1,2 @@ +[line-clamp-011.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-012.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-012.tentative.html.ini new file mode 100644 index 00000000000..a7fd0303bee --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-012.tentative.html.ini @@ -0,0 +1,2 @@ +[line-clamp-012.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-013.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-013.tentative.html.ini new file mode 100644 index 00000000000..3f398e788d2 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-013.tentative.html.ini @@ -0,0 +1,2 @@ +[line-clamp-013.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-015.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-015.tentative.html.ini new file mode 100644 index 00000000000..e397f59fad1 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-015.tentative.html.ini @@ -0,0 +1,2 @@ +[line-clamp-015.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-016.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-016.tentative.html.ini new file mode 100644 index 00000000000..8c13ceb8691 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-016.tentative.html.ini @@ -0,0 +1,2 @@ +[line-clamp-016.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-017.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-017.tentative.html.ini new file mode 100644 index 00000000000..e98e35fd17a --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-017.tentative.html.ini @@ -0,0 +1,2 @@ +[line-clamp-017.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-019.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-019.tentative.html.ini new file mode 100644 index 00000000000..baf2cf8f33d --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-019.tentative.html.ini @@ -0,0 +1,2 @@ +[line-clamp-019.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-with-abspos-001.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-with-abspos-001.tentative.html.ini new file mode 100644 index 00000000000..96277819670 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-with-abspos-001.tentative.html.ini @@ -0,0 +1,2 @@ +[line-clamp-with-abspos-001.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-with-abspos-002.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-with-abspos-002.tentative.html.ini new file mode 100644 index 00000000000..21efb29c1f9 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-with-abspos-002.tentative.html.ini @@ -0,0 +1,2 @@ +[line-clamp-with-abspos-002.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-with-abspos-003.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-with-abspos-003.tentative.html.ini new file mode 100644 index 00000000000..189ac0f3620 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-with-abspos-003.tentative.html.ini @@ -0,0 +1,2 @@ +[line-clamp-with-abspos-003.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-with-abspos-004.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-with-abspos-004.tentative.html.ini new file mode 100644 index 00000000000..4e4d8534002 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-with-abspos-004.tentative.html.ini @@ -0,0 +1,2 @@ +[line-clamp-with-abspos-004.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-with-abspos-005.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-with-abspos-005.tentative.html.ini new file mode 100644 index 00000000000..4a2b7b2ba98 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-with-abspos-005.tentative.html.ini @@ -0,0 +1,2 @@ +[line-clamp-with-abspos-005.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-with-abspos-006.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-with-abspos-006.tentative.html.ini new file mode 100644 index 00000000000..bd697fabf3f --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-with-abspos-006.tentative.html.ini @@ -0,0 +1,2 @@ +[line-clamp-with-abspos-006.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-with-abspos-007.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-with-abspos-007.tentative.html.ini new file mode 100644 index 00000000000..b63c81cd54e --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-with-abspos-007.tentative.html.ini @@ -0,0 +1,2 @@ +[line-clamp-with-abspos-007.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-with-abspos-008.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-with-abspos-008.tentative.html.ini new file mode 100644 index 00000000000..834446721a7 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-with-abspos-008.tentative.html.ini @@ -0,0 +1,2 @@ +[line-clamp-with-abspos-008.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-with-abspos-009.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-with-abspos-009.tentative.html.ini new file mode 100644 index 00000000000..24f8b5bded3 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-with-abspos-009.tentative.html.ini @@ -0,0 +1,2 @@ +[line-clamp-with-abspos-009.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-with-abspos-010.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-with-abspos-010.tentative.html.ini new file mode 100644 index 00000000000..b4d85b57450 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp-with-abspos-010.tentative.html.ini @@ -0,0 +1,2 @@ +[line-clamp-with-abspos-010.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-text/text-align/text-align-last-justify-br.html.ini b/tests/wpt/meta-legacy-layout/css/css-text/text-align/text-align-last-justify-br.html.ini new file mode 100644 index 00000000000..465a26c4ca8 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-text/text-align/text-align-last-justify-br.html.ini @@ -0,0 +1,2 @@ +[text-align-last-justify-br.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-transitions/parsing/starting-style-parsing.html.ini b/tests/wpt/meta-legacy-layout/css/css-transitions/parsing/starting-style-parsing.html.ini new file mode 100644 index 00000000000..bbaf0376001 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-transitions/parsing/starting-style-parsing.html.ini @@ -0,0 +1,15 @@ +[starting-style-parsing.html] + [@starting-style is valid] + expected: FAIL + + [@starting-style div is not valid] + expected: FAIL + + [@starting-style () is not valid] + expected: FAIL + + [@starting-style ( {} is not valid] + expected: FAIL + + [@starting-style } is not valid] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-transitions/starting-style-adjustment.html.ini b/tests/wpt/meta-legacy-layout/css/css-transitions/starting-style-adjustment.html.ini new file mode 100644 index 00000000000..eaee2fd04af --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-transitions/starting-style-adjustment.html.ini @@ -0,0 +1,3 @@ +[starting-style-adjustment.html] + [The display property in @starting-style should be blockified so no transition should start] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-values/container-progress-computed.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-values/container-progress-computed.tentative.html.ini new file mode 100644 index 00000000000..e83399384fa --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-values/container-progress-computed.tentative.html.ini @@ -0,0 +1,48 @@ +[container-progress-computed.tentative.html] + [container-progress(height from 0px to 1px) should be used-value-equivalent to 322] + expected: FAIL + + [container-progress(width of my-container from 0px to 1px) should be used-value-equivalent to 322] + expected: FAIL + + [container-progress(height from container-progress(height from 0px to 1px) * 1px to container-progress(height from 0px to 1px) * 1px) should be used-value-equivalent to 0] + expected: FAIL + + [container-progress(height from container-progress(height from 0px to 1px) * 0.5px to container-progress(height from 0px to 1px) * 1px) should be used-value-equivalent to 1] + expected: FAIL + + [container-progress(height from container-progress(width of my-container from 0px to 1px) * 1px to container-progress(height of my-container-2 from 0px to 1px) * 1px) should be used-value-equivalent to 0] + expected: FAIL + + [calc(container-progress(width from 0px to 50px) * 10px + 100px) should be used-value-equivalent to 145.6px] + expected: FAIL + + [calc(container-progress(height from 10px to sign(50px - 500em) * 10px)) should be used-value-equivalent to -15.6] + expected: FAIL + + [calc(container-progress(width of my-container from 0px to 50px) * 10px + 100px) should be used-value-equivalent to 164.4px] + expected: FAIL + + [calc(container-progress(height of my-container from 10px to sign(50px - 500em) * 10px)) should be used-value-equivalent to -10.9] + expected: FAIL + + [container-progress(width of non-existing-container from 0px to 1px) should be used-value-equivalent to 1024] + expected: FAIL + + [container-progress(height of non-existing-container from 0px to 1px) should be used-value-equivalent to 740] + expected: FAIL + + [container-progress(width of out-of-scope-container from 0px to 1px) should be used-value-equivalent to 1024] + expected: FAIL + + [container-progress(height of out-of-scope-container from 0px to 1px) should be used-value-equivalent to 740] + expected: FAIL + + [calc(container-progress(width from 0px to 1px) * 1px) should be used-value-equivalent to 228px] + expected: FAIL + + [calc(container-progress(height of my-container from 0px to 1px) * 1s) should be used-value-equivalent to 228s] + expected: FAIL + + [calc(container-progress(width of my-container-2 from 0px to 1px) * 1deg) should be used-value-equivalent to 5051deg] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-values/container-progress-serialize.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-values/container-progress-serialize.tentative.html.ini new file mode 100644 index 00000000000..6b999c9c41d --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-values/container-progress-serialize.tentative.html.ini @@ -0,0 +1,24 @@ +[container-progress-serialize.tentative.html] + ['calc(container-progress(width from 0px to 1px) / 1000)' as a specified value should serialize as 'calc(container-progress(width from 0px to 1px) / 1000)'.] + expected: FAIL + + ['scale(calc(container-progress(width from 0px to 1px) / 1000))' as a specified value should serialize as 'scale(calc(container-progress(width from 0px to 1px) / 1000))'.] + expected: FAIL + + ['calc(container-progress(width from 0px to 1px) / 1000)' as a computed value should serialize as '0.228'.] + expected: FAIL + + ['scale(calc(container-progress(width from 0px to 1px) / 1000))' as a computed value should serialize as 'matrix(0.228, 0, 0, 0.228, 0, 0)'.] + expected: FAIL + + ['calc(0.1 * container-progress(height of my-container from 0px to 10em))' as a specified value should serialize as 'calc(0.1 * container-progress(height of my-container from 0px to 10em))'.] + expected: FAIL + + ['scale(calc(0.1 * container-progress(height of my-container from 0px to 10em)))' as a specified value should serialize as 'scale(calc(0.1 * container-progress(height of my-container from 0px to 10em)))'.] + expected: FAIL + + ['calc(0.1 * container-progress(height of my-container from 0px to 10em))' as a computed value should serialize as '0.228'.] + expected: FAIL + + ['scale(calc(0.1 * container-progress(height of my-container from 0px to 10em)))' as a computed value should serialize as 'matrix(0.228, 0, 0, 0.228, 0, 0)'.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-values/media-progress-computed.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-values/media-progress-computed.tentative.html.ini index 8c28294689e..80664a22d0d 100644 --- a/tests/wpt/meta-legacy-layout/css/css-values/media-progress-computed.tentative.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-values/media-progress-computed.tentative.html.ini @@ -22,3 +22,21 @@ [calc(media-progress(width from 0px to 1px) * 1deg) should be used-value-equivalent to 1024deg] expected: FAIL + + [media-progress() identity check] + expected: FAIL + + [media-progress() with length product] + expected: FAIL + + [media-progress with complex to calculation] + expected: FAIL + + [media-progress() as length] + expected: FAIL + + [media-progress() as time] + expected: FAIL + + [media-progress() as angle] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/selectors/invalidation/is-where-pseudo-containing-hard-pseudo.html.ini b/tests/wpt/meta-legacy-layout/css/selectors/invalidation/is-where-pseudo-containing-hard-pseudo.html.ini new file mode 100644 index 00000000000..aee13cdb5d8 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/selectors/invalidation/is-where-pseudo-containing-hard-pseudo.html.ini @@ -0,0 +1,36 @@ +[is-where-pseudo-containing-hard-pseudo.html] + [subject1 is red when .other-match added] + expected: FAIL + + [subject1 is orangered when .parent added to parent] + expected: FAIL + + [subject1 is orangered when .parent removed from parent] + expected: FAIL + + [subject2 is darkred when .other-match added] + expected: FAIL + + [subject2 is pink when .parent added to parent] + expected: FAIL + + [subject2 is pink when .parent removed from parent] + expected: FAIL + + [subject3 is green when .other-match added] + expected: FAIL + + [subject3 is lightgreen when .parent added to parent] + expected: FAIL + + [subject3 is lightgreen when .parent removed from parent] + expected: FAIL + + [subject4 is darkgreen when .other-match added] + expected: FAIL + + [subject4 is yellowgreen when .parent added to parent] + expected: FAIL + + [subject4 is yellowgreen when .parent removed from parent] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/custom-elements/reactions/customized-builtins/HTMLMediaElement.html.ini b/tests/wpt/meta-legacy-layout/custom-elements/reactions/customized-builtins/HTMLMediaElement.html.ini new file mode 100644 index 00000000000..2ca05f57bb0 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/custom-elements/reactions/customized-builtins/HTMLMediaElement.html.ini @@ -0,0 +1,2 @@ +[HTMLMediaElement.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/dom/nodes/insertion-removing-steps/Node-appendChild-script-and-default-style-meta-from-fragment.tentative.html.ini b/tests/wpt/meta-legacy-layout/dom/nodes/insertion-removing-steps/Node-appendChild-script-and-default-style-meta-from-fragment.tentative.html.ini index be8657be47c..e81b4c9266b 100644 --- a/tests/wpt/meta-legacy-layout/dom/nodes/insertion-removing-steps/Node-appendChild-script-and-default-style-meta-from-fragment.tentative.html.ini +++ b/tests/wpt/meta-legacy-layout/dom/nodes/insertion-removing-steps/Node-appendChild-script-and-default-style-meta-from-fragment.tentative.html.ini @@ -1,3 +1,6 @@ [Node-appendChild-script-and-default-style-meta-from-fragment.tentative.html] [Inserting that uses alternate stylesheets, applies the style during DOM insertion, and before script runs as a result of any atomic insertions] expected: FAIL + + [Inserting that uses alternate stylesheets, applies the style during DOM post-insertion steps] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/dom/observable/tentative/observable-first.any.js.ini b/tests/wpt/meta-legacy-layout/dom/observable/tentative/observable-first.any.js.ini new file mode 100644 index 00000000000..482e1b5a31b --- /dev/null +++ b/tests/wpt/meta-legacy-layout/dom/observable/tentative/observable-first.any.js.ini @@ -0,0 +1,32 @@ +[observable-first.any.worker.html] + [first(): Promise resolves with the first value from the source Observable] + expected: FAIL + + [first(): Promise rejects with the error emitted from the source Observable] + expected: FAIL + + [first(): Promise rejects with RangeError when source Observable completes without emitting any values] + expected: FAIL + + [first(): Aborting a signal rejects the Promise with an AbortError DOMException] + expected: FAIL + + [first(): Lifecycle] + expected: FAIL + + +[observable-first.any.html] + [first(): Promise resolves with the first value from the source Observable] + expected: FAIL + + [first(): Promise rejects with the error emitted from the source Observable] + expected: FAIL + + [first(): Promise rejects with RangeError when source Observable completes without emitting any values] + expected: FAIL + + [first(): Aborting a signal rejects the Promise with an AbortError DOMException] + expected: FAIL + + [first(): Lifecycle] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/dom/observable/tentative/observable-last.any.js.ini b/tests/wpt/meta-legacy-layout/dom/observable/tentative/observable-last.any.js.ini new file mode 100644 index 00000000000..c2aef3251c7 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/dom/observable/tentative/observable-last.any.js.ini @@ -0,0 +1,32 @@ +[observable-last.any.html] + [last(): Promise resolves to last value] + expected: FAIL + + [last(): Promise rejects with emitted error] + expected: FAIL + + [last(): Promise rejects with RangeError when source Observable completes without emitting any values] + expected: FAIL + + [last(): Aborting a signal rejects the Promise with an AbortError DOMException] + expected: FAIL + + [last(): Lifecycle] + expected: FAIL + + +[observable-last.any.worker.html] + [last(): Promise resolves to last value] + expected: FAIL + + [last(): Promise rejects with emitted error] + expected: FAIL + + [last(): Promise rejects with RangeError when source Observable completes without emitting any values] + expected: FAIL + + [last(): Aborting a signal rejects the Promise with an AbortError DOMException] + expected: FAIL + + [last(): Lifecycle] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/dom/observable/tentative/observable-switchMap.any.js.ini b/tests/wpt/meta-legacy-layout/dom/observable/tentative/observable-switchMap.any.js.ini new file mode 100644 index 00000000000..7a987af0339 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/dom/observable/tentative/observable-switchMap.any.js.ini @@ -0,0 +1,38 @@ +[observable-switchMap.any.html] + [switchMap(): result subscribes to one inner observable at a time, unsubscribing from the previous active one when a new one replaces it] + expected: FAIL + + [switchMap(): result does not complete when the source observable completes, if the inner observable is still active] + expected: FAIL + + [switchMap(): result emits an error if Mapper callback throws an error] + expected: FAIL + + [switchMap(): result emits an error if the source observable emits an error] + expected: FAIL + + [switchMap(): result emits an error if the inner observable emits an error] + expected: FAIL + + [switchMap(): should unsubscribe in the correct order when user aborts the subscription] + expected: FAIL + + +[observable-switchMap.any.worker.html] + [switchMap(): result subscribes to one inner observable at a time, unsubscribing from the previous active one when a new one replaces it] + expected: FAIL + + [switchMap(): result does not complete when the source observable completes, if the inner observable is still active] + expected: FAIL + + [switchMap(): result emits an error if Mapper callback throws an error] + expected: FAIL + + [switchMap(): result emits an error if the source observable emits an error] + expected: FAIL + + [switchMap(): result emits an error if the inner observable emits an error] + expected: FAIL + + [switchMap(): should unsubscribe in the correct order when user aborts the subscription] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/fetch/api/request/request-bad-port.any.js.ini b/tests/wpt/meta-legacy-layout/fetch/api/request/request-bad-port.any.js.ini index 2347c9ad580..6b37ad41c18 100644 --- a/tests/wpt/meta-legacy-layout/fetch/api/request/request-bad-port.any.js.ini +++ b/tests/wpt/meta-legacy-layout/fetch/api/request/request-bad-port.any.js.ini @@ -69,6 +69,12 @@ [Request on bad port 10080 should throw TypeError.] expected: NOTRUN + [Request on bad port 4190 should throw TypeError.] + expected: NOTRUN + + [Request on bad port 6679 should throw TypeError.] + expected: NOTRUN + [request-bad-port.any.html] expected: TIMEOUT @@ -134,3 +140,9 @@ [Request on bad port 10080 should throw TypeError.] expected: NOTRUN + + [Request on bad port 4190 should throw TypeError.] + expected: NOTRUN + + [Request on bad port 6679 should throw TypeError.] + expected: NOTRUN diff --git a/tests/wpt/meta-legacy-layout/fetch/compression-dictionary/dictionary-clear-site-data.tentative.https.html.ini b/tests/wpt/meta-legacy-layout/fetch/compression-dictionary/dictionary-clear-site-data.tentative.https.html.ini new file mode 100644 index 00000000000..a757741d967 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/fetch/compression-dictionary/dictionary-clear-site-data.tentative.https.html.ini @@ -0,0 +1,9 @@ +[dictionary-clear-site-data.tentative.https.html] + [Clear-Site-Data with "cache" directive must unregister dictionary] + expected: FAIL + + [Clear-Site-Data with "cookies" directive must unregister dictionary] + expected: FAIL + + [Clear-Site-Data with "storage" directive must not unregister dictionary] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/fetch/compression-dictionary/dictionary-decompression.tentative.https.html.ini b/tests/wpt/meta-legacy-layout/fetch/compression-dictionary/dictionary-decompression.tentative.https.html.ini new file mode 100644 index 00000000000..e6a6956c171 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/fetch/compression-dictionary/dictionary-decompression.tentative.https.html.ini @@ -0,0 +1,9 @@ +[dictionary-decompression.tentative.https.html] + [Decompresion using Brotli with the dictionary works as expected] + expected: FAIL + + [Decompresion using Zstandard with the dictionary works as expected] + expected: FAIL + + [Decompresion of a cross origin resource works as expected] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/fetch/compression-dictionary/dictionary-fetch-with-link-element.tentative.https.html.ini b/tests/wpt/meta-legacy-layout/fetch/compression-dictionary/dictionary-fetch-with-link-element.tentative.https.html.ini new file mode 100644 index 00000000000..31b69125e14 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/fetch/compression-dictionary/dictionary-fetch-with-link-element.tentative.https.html.ini @@ -0,0 +1,9 @@ +[dictionary-fetch-with-link-element.tentative.https.html] + [Browser supports link element with dictionary rel.] + expected: FAIL + + [Fetch same origin dictionary using link element] + expected: FAIL + + [Fetch cross origin dictionary using link element] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/fetch/compression-dictionary/dictionary-fetch-with-link-header.tentative.https.html.ini b/tests/wpt/meta-legacy-layout/fetch/compression-dictionary/dictionary-fetch-with-link-header.tentative.https.html.ini new file mode 100644 index 00000000000..e7588c640c5 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/fetch/compression-dictionary/dictionary-fetch-with-link-header.tentative.https.html.ini @@ -0,0 +1,3 @@ +[dictionary-fetch-with-link-header.tentative.https.html] + [Fetch same origin dictionary using link header] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/fetch/compression-dictionary/dictionary-registration.tentative.https.html.ini b/tests/wpt/meta-legacy-layout/fetch/compression-dictionary/dictionary-registration.tentative.https.html.ini new file mode 100644 index 00000000000..27ecd816f20 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/fetch/compression-dictionary/dictionary-registration.tentative.https.html.ini @@ -0,0 +1,9 @@ +[dictionary-registration.tentative.https.html] + [Simple dictionary registration and unregistration] + expected: FAIL + + [Dictionary registration with dictionary ID] + expected: FAIL + + [New dictionary registration overrides the existing one] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/fetch/content-encoding/br/bad-br-body.https.any.js.ini b/tests/wpt/meta-legacy-layout/fetch/content-encoding/br/bad-br-body.https.any.js.ini new file mode 100644 index 00000000000..2a7f8c45be1 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/fetch/content-encoding/br/bad-br-body.https.any.js.ini @@ -0,0 +1,3 @@ +[bad-br-body.https.any.html] + [Consuming the body of a resource with bad br content with arrayBuffer() should reject] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/fetch/content-encoding/br/big-br-body.https.any.js.ini b/tests/wpt/meta-legacy-layout/fetch/content-encoding/br/big-br-body.https.any.js.ini new file mode 100644 index 00000000000..1ed0a2d3d98 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/fetch/content-encoding/br/big-br-body.https.any.js.ini @@ -0,0 +1,20 @@ +[big-br-body.https.any.worker.html] + [large br data should be decompressed successfully] + expected: FAIL + + [large br data should be decompressed successfully with byte stream] + expected: FAIL + + +[big-br-body.https.any.serviceworker.html] + expected: ERROR + +[big-br-body.https.any.sharedworker.html] + expected: ERROR + +[big-br-body.https.any.html] + [large br data should be decompressed successfully] + expected: FAIL + + [large br data should be decompressed successfully with byte stream] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/fetch/content-encoding/br/br-body.https.any.js.ini b/tests/wpt/meta-legacy-layout/fetch/content-encoding/br/br-body.https.any.js.ini new file mode 100644 index 00000000000..cf915bba768 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/fetch/content-encoding/br/br-body.https.any.js.ini @@ -0,0 +1,9 @@ +[br-body.https.any.serviceworker.html] + expected: ERROR + +[br-body.https.any.sharedworker.html] + expected: ERROR + +[br-body.https.any.worker.html] + +[br-body.https.any.html] diff --git a/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html.ini b/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html.ini index b8fd22e2b81..149bcb4ff8c 100644 --- a/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html.ini +++ b/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html.ini @@ -10,6 +10,3 @@ [load & pageshow events do not fire on contentWindow of + + +
Popover 30
+ + + diff --git a/tests/wpt/tests/import-maps/WEB_FEATURES.yml b/tests/wpt/tests/import-maps/WEB_FEATURES.yml new file mode 100644 index 00000000000..dc3d7fdc233 --- /dev/null +++ b/tests/wpt/tests/import-maps/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: import-maps + files: "**" diff --git a/tests/wpt/tests/intersection-observer/WEB_FEATURES.yml b/tests/wpt/tests/intersection-observer/WEB_FEATURES.yml new file mode 100644 index 00000000000..1b6a42746fc --- /dev/null +++ b/tests/wpt/tests/intersection-observer/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: intersection-observer + files: "**" diff --git a/tests/wpt/tests/intersection-observer/svg-container-element.html b/tests/wpt/tests/intersection-observer/svg-container-element.html index e2b6ab5cb07..1c27acee514 100644 --- a/tests/wpt/tests/intersection-observer/svg-container-element.html +++ b/tests/wpt/tests/intersection-observer/svg-container-element.html @@ -14,6 +14,7 @@ diff --git a/tests/wpt/tests/intersection-observer/v2/WEB_FEATURES.yml b/tests/wpt/tests/intersection-observer/v2/WEB_FEATURES.yml new file mode 100644 index 00000000000..e57d67f6415 --- /dev/null +++ b/tests/wpt/tests/intersection-observer/v2/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: intersection-observer-v2 + files: "**" diff --git a/tests/wpt/tests/jpegxl/WEB_FEATURES.yml b/tests/wpt/tests/jpegxl/WEB_FEATURES.yml new file mode 100644 index 00000000000..a81700e1fb0 --- /dev/null +++ b/tests/wpt/tests/jpegxl/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: jpegxl + files: "**" diff --git a/tests/wpt/tests/largest-contentful-paint/transparent-text.html b/tests/wpt/tests/largest-contentful-paint/transparent-text.html new file mode 100644 index 00000000000..9eb978ab5cd --- /dev/null +++ b/tests/wpt/tests/largest-contentful-paint/transparent-text.html @@ -0,0 +1,48 @@ + + + + + + + + +

fake LCP

+ + + \ No newline at end of file diff --git a/tests/wpt/tests/lint.ignore b/tests/wpt/tests/lint.ignore index 4a2faecb576..61bca89ddc9 100644 --- a/tests/wpt/tests/lint.ignore +++ b/tests/wpt/tests/lint.ignore @@ -749,3 +749,7 @@ HTML INVALID SYNTAX: html/syntax/parsing/unclosed-svg-script.html HTML INVALID SYNTAX: mathml/crashtests/mozilla/411603-1.html HTML INVALID SYNTAX: quirks/percentage-height-calculation.html HTML INVALID SYNTAX: trusted-types/TrustedTypePolicyFactory-getAttributeType-namespace.html + +# Pre compressed data using Shared Brotli and Shared Zstandard. +TRAILING WHITESPACE, INDENT TABS, CR AT EOL: fetch/compression-dictionary/resources/compressed.br-d.data +TRAILING WHITESPACE, INDENT TABS, CR AT EOL: fetch/compression-dictionary/resources/compressed.zstd-d.data diff --git a/tests/wpt/tests/long-animation-frame/tentative/loaf-stream-source-location.html b/tests/wpt/tests/long-animation-frame/tentative/loaf-stream-source-location.html index 5776ff52552..0fd30859d73 100644 --- a/tests/wpt/tests/long-animation-frame/tentative/loaf-stream-source-location.html +++ b/tests/wpt/tests/long-animation-frame/tentative/loaf-stream-source-location.html @@ -17,8 +17,7 @@ promise_test(async t => { const scriptElement = document.createElement("script"); scriptElement.src = scriptLocation; document.body.appendChild(scriptElement); - }, script => { - return script.invoker === "Promise.resolve" }, t); + }, script => script.invoker === "StreamPromise.resolve.then", t); assert_true(script.sourceURL.includes("stream-promise-generates-loaf.js")); }, "Source location should be extracted for stream promises"); diff --git a/tests/wpt/tests/long-animation-frame/tentative/loaf-stream.html b/tests/wpt/tests/long-animation-frame/tentative/loaf-stream.html index 424f2cd0d1e..e35bc2f9aa7 100644 --- a/tests/wpt/tests/long-animation-frame/tentative/loaf-stream.html +++ b/tests/wpt/tests/long-animation-frame/tentative/loaf-stream.html @@ -34,6 +34,6 @@ test_promise_script(async t => { }); response.body.pipeTo(writable); await readable.getReader().read(); -}, "resolve", "Promise.resolve"); +}, "resolve", "StreamPromise.resolve"); diff --git a/tests/wpt/tests/mathml/WEB_FEATURES.yml b/tests/wpt/tests/mathml/WEB_FEATURES.yml new file mode 100644 index 00000000000..4d03bc3eb4d --- /dev/null +++ b/tests/wpt/tests/mathml/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: mathml + files: "**" diff --git a/tests/wpt/tests/mathml/presentation-markup/operators/mo-axis-height-1.html b/tests/wpt/tests/mathml/presentation-markup/operators/mo-axis-height-1.html index 6de62841887..10ea4dcffc5 100644 --- a/tests/wpt/tests/mathml/presentation-markup/operators/mo-axis-height-1.html +++ b/tests/wpt/tests/mathml/presentation-markup/operators/mo-axis-height-1.html @@ -29,24 +29,100 @@ window.addEventListener("load", () => { loadAllFonts().then(runTests); }); function runTests() { + const AxisHeight = 5000 * emToPx; + test(function() { - var v1 = 5000 * emToPx; var moMiddle = (getBox("mo1").bottom + getBox("mo1").top) / 2; assert_approx_equals(getBox("mo1").height, 14000 * emToPx, epsilon, "mo: size"); assert_approx_equals(getBox("baseline1").bottom - moMiddle, - v1, epsilon, "mo: axis height"); - }, "AxisHeight (size variant)"); + AxisHeight, epsilon, "mo: axis height"); + }, "symmetric stretching with respect to the math axis (size variant)"); test(function() { - var v1 = 5000 * emToPx; var moMiddle = (getBox("mo2").bottom + getBox("mo2").top) / 2; assert_approx_equals(getBox("mo2").height, - 2 * (getBox("target2").height - v1), + 2 * (getBox("target2").height - AxisHeight), epsilon, "mo: size"); assert_approx_equals(getBox("baseline2").bottom - moMiddle, - v1, epsilon, "mo: axis height"); - }, "AxisHeight (glyph assembly)"); + AxisHeight, epsilon, "mo: axis height"); + }, "symmetric stretching with respect to the math axis (glyph assembly)"); + + test(function() { + const minsize = 14000 * emToPx; + const Tascent = minsize / 2 + AxisHeight; + const Tdescent = minsize - Tascent; + assert_approx_equals(getBox("baseline3").bottom - getBox("mo3").top, Tascent, epsilon, "mo ascent"); + assert_approx_equals(getBox("mo3").bottom - getBox("baseline3").bottom, Tdescent, epsilon, "mo descent"); + }, "Tascent = Tdescent = 0, minsize = 14em"); + + test(function() { + const minsize = 14000 * emToPx; + var Tascent = getBox("baseline4").bottom - getBox("target4").top; + assert_greater_than(Tascent, AxisHeight); + var Tdescent = getBox("target4").bottom - getBox("baseline4").bottom; + const T = Tascent + Tdescent; + Tascent = Math.max(0, Tascent - AxisHeight) * minsize / T + AxisHeight; + Tdescent = minsize - Tascent; + assert_approx_equals(getBox("baseline4").bottom - getBox("mo4").top, Tascent, epsilon, "mo ascent"); + assert_approx_equals(getBox("mo4").bottom - getBox("baseline4").bottom, Tdescent, epsilon, "mo descent"); + }, "Tascent = 6em > AxisHeight, Tdescent = 1em, symmetric = false, minsize = 14em"); + + test(function() { + const minsize = 14000 * emToPx; + var Tascent = getBox("baseline5").bottom - getBox("target5").top; + assert_less_than(Tascent, AxisHeight); + var Tdescent = getBox("target5").bottom - getBox("baseline5").bottom; + const T = Tascent + Tdescent; + Tascent = Math.max(0, Tascent - AxisHeight) * minsize / T + AxisHeight; + Tdescent = minsize - Tascent; + assert_approx_equals(getBox("baseline5").bottom - getBox("mo5").top, Tascent, epsilon, "mo ascent"); + assert_approx_equals(getBox("mo5").bottom - getBox("baseline5").bottom, Tdescent, epsilon, "mo descent"); + }, "Tascent = 4em < AxisHeight, Tdescent = 3em, symmetric = false, minsize = 14em"); + + test(function() { + const maxsize = 14000 * emToPx; + var Tascent = getBox("baseline6").bottom - getBox("target6").top; + assert_greater_than(Tascent, AxisHeight); + var Tdescent = getBox("target6").bottom - getBox("baseline6").bottom; + const T = Tascent + Tdescent; + Tascent = Math.max(0, Tascent - AxisHeight) * maxsize / T + AxisHeight; + Tdescent = maxsize - Tascent; + assert_approx_equals(getBox("baseline6").bottom - getBox("mo6").top, Tascent, epsilon, "mo ascent"); + assert_approx_equals(getBox("mo6").bottom - getBox("baseline6").bottom, Tdescent, epsilon, "mo descent"); + }, "Tascent = 6em > AxisHeight, Tdescent = 22em, symmetric = false, maxsize = 14em"); + + test(function() { + const maxsize = 14000 * emToPx; + var Tascent = getBox("baseline7").bottom - getBox("target7").top; + assert_less_than(Tascent, AxisHeight); + var Tdescent = getBox("target7").bottom - getBox("baseline7").bottom; + var T = Tascent + Tdescent; + Tascent = Math.max(0, Tascent - AxisHeight) * maxsize / T + AxisHeight; + Tdescent = maxsize - Tascent; + assert_approx_equals(getBox("baseline7").bottom - getBox("mo7").top, Tascent, epsilon, "mo ascent"); + assert_approx_equals(getBox("mo7").bottom - getBox("baseline7").bottom, Tdescent, epsilon, "mo descent"); + }, "Tascent = 4em < AxisHeight, Tdescent = 24em, symmetric = false, maxsize = 14em"); + + test(function() { + const minsize = 14000 * emToPx; + const Uascent = getBox("baseline8").bottom - getBox("target8").top; + const Udescent = getBox("target8").bottom - getBox("baseline8").bottom; + assert_less_than(2 * Math.max(Uascent - AxisHeight, Udescent + AxisHeight), minsize, "Sascent + Sdescent < minsize"); + assert_approx_equals(getBox("mo8").height, minsize, epsilon, "mo size"); + const MathAxis = getBox("baseline8").bottom - AxisHeight; + assert_approx_equals(MathAxis - getBox("mo8").top, getBox("mo8").bottom - MathAxis, epsilon, "mo is symmetric"); + }, "symmetric stretching with respect to the math axis (minsize = 14em)"); + + test(function() { + const maxsize = 14000 * emToPx; + const Uascent = getBox("baseline9").bottom - getBox("target9").top; + const Udescent = getBox("target9").bottom - getBox("baseline9").bottom; + assert_greater_than(2 * Math.max(Uascent - AxisHeight, Udescent + AxisHeight), maxsize, "Sascent + Sdescent > maxsize"); + assert_approx_equals(getBox("mo9").height, maxsize, epsilon, "mo size"); + const MathAxis = getBox("baseline9").bottom - AxisHeight; + assert_approx_equals(MathAxis - getBox("mo9").top, getBox("mo9").bottom - MathAxis, epsilon, "mo is symmetric"); + }, "symmetric stretching with respect to the math axis (maxsize = 14em)"); done(); } @@ -56,20 +132,87 @@

+ + - - - + 1 + + - - - + 2 +

+

+ + + + + + 3 + + +

+

+ + + + + + 4 + + + + + + + + 5 + + +

+

+ + + + + + 6 + + + + + + + + 7 + + +

+ + +

+ + + + + + 8 + + + + + + + + 9 + + +

diff --git a/tests/wpt/tests/mathml/presentation-markup/operators/mo-minsize-maxsize-001.html b/tests/wpt/tests/mathml/presentation-markup/operators/mo-minsize-maxsize-001.html index 3e7e5c9bcc8..c07f64327a3 100644 --- a/tests/wpt/tests/mathml/presentation-markup/operators/mo-minsize-maxsize-001.html +++ b/tests/wpt/tests/mathml/presentation-markup/operators/mo-minsize-maxsize-001.html @@ -20,6 +20,10 @@ mo { font-family: operators; } + @font-face { + font-family: stretchy; + src: url("/fonts/math/stretchy.woff"); + } + + + +

ContactAddress interface

+

+ Click on each button in sequence from top to bottom without refreshing the page. + Each button will bring up the Payment Request UI window. +

+

+ When prompted, please enter addresses as follows... +

+
    +
  1. + + Please use: +
    +
    Recipient:
    +
    web platform test
    +
    Address line:
    +
    55 test st
    +
    Country
    +
    Australia
    +
    City
    +
    Chapel Hill
    +
    State/Region
    +
    Queensland
    +
    postal code
    +
    6095
    +
    organization
    +
    w3c
    +
    Phone number
    +
    +61 7 3378 0000
    +
    +
  2. +
+ + If you find a buggy test, please file a bug + and tag one of the suggested reviewers. + diff --git a/tests/wpt/tests/payment-request/PaymentRequestUpdateEvent/updateWith-call-immediate-manual.https.html b/tests/wpt/tests/payment-request/PaymentRequestUpdateEvent/updateWith-call-immediate-manual.https.html new file mode 100644 index 00000000000..1365ecefebe --- /dev/null +++ b/tests/wpt/tests/payment-request/PaymentRequestUpdateEvent/updateWith-call-immediate-manual.https.html @@ -0,0 +1,206 @@ + + + + + + PaymentRequestUpdateEvent.updateWith() needs to be called immediately + + + + +

updateWith() method

+

+ Click on each button in sequence from top to bottom without refreshing the page. + Each button will bring up the Payment Request UI window. +

+

+ When the payment sheet is shown, select a different shipping address once. Then pay. +

+
    +
  1. + +
  2. +
  3. + +
  4. +
  5. + When the payment sheet is shown, select a different shipping address once, then change shipping option once. Then pay. +
  6. +
  7. + +
  8. +
+ + If you find a buggy test, please file a bug + and tag one of the suggested reviewers. + diff --git a/tests/wpt/tests/payment-request/PaymentRequestUpdateEvent/updateWith-duplicate-shipping-options-manual.https.html b/tests/wpt/tests/payment-request/PaymentRequestUpdateEvent/updateWith-duplicate-shipping-options-manual.https.html new file mode 100644 index 00000000000..a4a7afd7f63 --- /dev/null +++ b/tests/wpt/tests/payment-request/PaymentRequestUpdateEvent/updateWith-duplicate-shipping-options-manual.https.html @@ -0,0 +1,106 @@ + + + + + updateWith() method - duplicate shippingOption ids + + + + +

updateWith() method - duplicate shippingOptions ids

+

+ Click on each button in sequence from top to bottom without refreshing the page. + Each button will bring up the Payment Request UI window. +

+

+ When the payment sheet is shown, select a different shipping address. + If you have to manually abort the test from the payment sheet, then the + test has failed. +

+
    +
  1. + +
  2. +
+ + If you find a buggy test, please file a bug + and tag one of the suggested reviewers. + diff --git a/tests/wpt/tests/payment-request/PaymentRequestUpdateEvent/updateWith-incremental-update-manual.https.html b/tests/wpt/tests/payment-request/PaymentRequestUpdateEvent/updateWith-incremental-update-manual.https.html new file mode 100644 index 00000000000..c1ed1b5f685 --- /dev/null +++ b/tests/wpt/tests/payment-request/PaymentRequestUpdateEvent/updateWith-incremental-update-manual.https.html @@ -0,0 +1,196 @@ + + + + + Incremental updates via updateWith() + + + + +

+ Incremental updates +

+

+ Click on each button in sequence from top to bottom without refreshing the page. + Each button will bring up the Payment Request UI window. +

+

+ Unless stated otherwise, each test will update some part of the displayed payment sheet in + a manner indicated below. When prompted, please change or enter a new + shipping address, look for the tested change, and complete the payment. +

+

+ If the payment request locks up or otherwise aborts, the test has failed. +

+
    +
  1. + +
  2. +
+ +
+

Incremental updates via PaymentDetailsUpdate.total

+
    +
  1. + +
  2. +
+
+ +
+

Incremental updates via PaymentDetailsBase.displayItems

+
    +
  1. + +
  2. +
+
+ +
+

Incremental updates via PaymentDetailsBase.shippingOptions

+
    +
  1. + +
  2. +
+
+ +
+

Incremental updates via PaymentDetailsBase.modifiers

+
    +
  1. + +
  2. +
  3. + +
  4. +
+
+ + + If you find a buggy test, please file a bug + and tag one of the suggested reviewers. + diff --git a/tests/wpt/tests/payment-request/PaymentRequestUpdateEvent/updateWith-method-abort-update-manual.https.html b/tests/wpt/tests/payment-request/PaymentRequestUpdateEvent/updateWith-method-abort-update-manual.https.html new file mode 100644 index 00000000000..e24452c2a99 --- /dev/null +++ b/tests/wpt/tests/payment-request/PaymentRequestUpdateEvent/updateWith-method-abort-update-manual.https.html @@ -0,0 +1,286 @@ + + + + + updateWith() method - "abort the update" + + + + +

updateWith() method - "abort the update"

+

+ Click on each button in sequence from top to bottom without refreshing the page. + Each button will bring up the Payment Request UI window. +

+

+ When the payment sheet is shown, change the shipping address. +

+
    +
  1. + +
  2. +
  3. + +
  4. +
  5. + +
  6. +
  7. + +
  8. +
  9. + +
  10. +
  11. + +
  12. +
  13. + +
  14. +
  15. + +
  16. +
  17. + +
  18. +
  19. + +
  20. +
  21. + +
  22. +
+ + If you find a buggy test, please file a bug + and tag one of the suggested reviewers. + diff --git a/tests/wpt/tests/payment-request/PaymentRequestUpdateEvent/updateWith-state-checks-manual.https.html b/tests/wpt/tests/payment-request/PaymentRequestUpdateEvent/updateWith-state-checks-manual.https.html new file mode 100644 index 00000000000..fb16de5699a --- /dev/null +++ b/tests/wpt/tests/payment-request/PaymentRequestUpdateEvent/updateWith-state-checks-manual.https.html @@ -0,0 +1,125 @@ + + + +updateWith() method - state machine checks + + + +

updateWith() method - state machine checks

+

+ Click on each button in sequence from top to bottom without refreshing the page. + Each button will bring up the Payment Request UI window. +

+

+ When the payment sheet is shown, select a different shipping address once. Then pay. +

+
    +
  1. + +
  2. +
  3. + +
  4. +
  5. + +
  6. +
+ + If you find a buggy test, please file a bug + and tag one of the suggested reviewers. + diff --git a/tests/wpt/tests/payment-request/PaymentRequestUpdateEvent/updatewith-method.https.html b/tests/wpt/tests/payment-request/PaymentRequestUpdateEvent/updatewith-method.https.html index 9a60fe7a4c0..fffd3b3ec54 100644 --- a/tests/wpt/tests/payment-request/PaymentRequestUpdateEvent/updatewith-method.https.html +++ b/tests/wpt/tests/payment-request/PaymentRequestUpdateEvent/updatewith-method.https.html @@ -29,7 +29,9 @@ test(() => { // Github issue: https://github.com/w3c/browser-payment-api/issues/546 test(() => { const untrustedEvents = [ - new PaymentRequestUpdateEvent("just a test") + new PaymentRequestUpdateEvent("just a test"), + new PaymentRequestUpdateEvent("shippingaddresschange"), + new PaymentRequestUpdateEvent("shippingoptionchange"), ].forEach(ev => { assert_throws_dom( "InvalidStateError", @@ -45,7 +47,9 @@ test(() => { test(() => { const request = new PaymentRequest(defaultMethods, defaultDetails); const untrustedEvents = [ - new PaymentRequestUpdateEvent("just a test") + new PaymentRequestUpdateEvent("just a test"), + new PaymentRequestUpdateEvent("shippingaddresschange"), + new PaymentRequestUpdateEvent("shippingoptionchange"), ].map(ev => { request.dispatchEvent(ev); // set .target and dispatch flag // unstrusted event. diff --git a/tests/wpt/tests/payment-request/PaymentValidationErrors/retry-shows-shippingAddress-member-manual.https.html b/tests/wpt/tests/payment-request/PaymentValidationErrors/retry-shows-shippingAddress-member-manual.https.html new file mode 100644 index 00000000000..94e6fa5105b --- /dev/null +++ b/tests/wpt/tests/payment-request/PaymentValidationErrors/retry-shows-shippingAddress-member-manual.https.html @@ -0,0 +1,103 @@ + + + + + PaymentValidationErrors' `shippingAddress` member (AddressErrors) + + + + + +

+ Manual Test for PaymentValidationErrors' `shippingAddress` member - Please run in order! +

+

+ Click on each button in sequence from top to bottom without refreshing the page. + Each button will bring up the Payment Request UI window. +

+

+ When presented with the payment sheet, use any card and select to "Pay". + You will be asked to retry the payment and an error should be shown somewhere + in the UI. The expected error string is described in each individual test. + If you see the error, hit "Pay" again. If you don't see the error, + abort the payment request by hitting "esc" - which means that particular test + has failed. +

+
    +
  1. + +
  2. +
  3. + +
  4. +
  5. + +
  6. +
  7. + +
  8. +
  9. + +
  10. +
  11. + +
  12. +
  13. + +
  14. +
  15. + +
  16. +
  17. + +
  18. +
  19. + +
  20. +
  21. + +
  22. +
  23. + +
  24. +
+ + If you find a buggy test, please file a bug + and tag one of the owners. + diff --git a/tests/wpt/tests/payment-request/algorithms-manual.https.html b/tests/wpt/tests/payment-request/algorithms-manual.https.html new file mode 100644 index 00000000000..b90c312aba3 --- /dev/null +++ b/tests/wpt/tests/payment-request/algorithms-manual.https.html @@ -0,0 +1,176 @@ + + + + + Payment Request algorithms + + + + +

+ Tests for "algorithms" section +

+

+ Click on each button in sequence from top to bottom without refreshing the page. + Each button will bring up the Payment Request UI window. +

+
+

+ User aborts the payment request algorithm +

+ +

+ When presented with the payment sheet, abort the payment request (e.g., by hitting the esc key or pressing a UA provided button). +

+
    +
  1. + +
  2. +
+
+ +
+

Shipping address changed algorithm

+ +

+ When prompted, please change or enter a new shipping address and then select Pay. +

+
    +
  1. + +
  2. +
+
+ +
+

Shipping option changed algorithm

+ +

+ Finally, when prompted, please select "shipping option 2" and then select Pay. +

+
    +
  1. + +
  2. +
+
+ + + If you find a buggy test, please file a bug + and tag one of the suggested reviewers. + diff --git a/tests/wpt/tests/payment-request/billing-address-changed-manual.https.html b/tests/wpt/tests/payment-request/billing-address-changed-manual.https.html new file mode 100644 index 00000000000..d03f7615187 --- /dev/null +++ b/tests/wpt/tests/payment-request/billing-address-changed-manual.https.html @@ -0,0 +1,115 @@ + +Test for requesting billing address + + + + +

Request billing address

+

+ Click on each button in sequence from top to bottom without refreshing the + page. Each button will bring up the Payment Request UI window. +

+

+ When the payment sheet is presented, select a payment method (e.g., a credit + card). +

+
    +
  1. + +
  2. +
  3. + +
  4. +
  5. +
+ + If you find a buggy test, please + file a bug and + tag one of the + suggested reviewers. + diff --git a/tests/wpt/tests/payment-request/change-shipping-option-manual.https.html b/tests/wpt/tests/payment-request/change-shipping-option-manual.https.html new file mode 100644 index 00000000000..438001804ac --- /dev/null +++ b/tests/wpt/tests/payment-request/change-shipping-option-manual.https.html @@ -0,0 +1,104 @@ + + + +Test for PaymentRequest shippingOption attribute + + + + + + +

PaymentRequest shippingOption attribute

+

+ Click on each button in sequence from top to bottom without refreshing the page. + Each button will bring up the Payment Request UI window. +

+

+ When the payment sheet is presented, select "PICK ME!" as the shipping option. +

+
    +
  1. + +
  2. +
+ + If you find a buggy test, please file a bug + and tag one of the suggested reviewers. + diff --git a/tests/wpt/tests/payment-request/change-shipping-option-select-last-manual.https.html b/tests/wpt/tests/payment-request/change-shipping-option-select-last-manual.https.html new file mode 100644 index 00000000000..4ad31d65317 --- /dev/null +++ b/tests/wpt/tests/payment-request/change-shipping-option-select-last-manual.https.html @@ -0,0 +1,101 @@ + + +Test for PaymentDetailsBase's shippingOptions member + + + + + +

PaymentRequest shippingOption attribute

+

+ Click on each button in sequence from top to bottom without refreshing the page. + Each button will bring up the Payment Request UI window. +

+

+ When the payment sheet is presented, hit pay. +

+
    +
  1. + +
  2. +
+ + If you find a buggy test, please file a bug + and tag one of the suggested reviewers. + diff --git a/tests/wpt/tests/payment-request/dynamically-change-shipping-options-manual.https.html b/tests/wpt/tests/payment-request/dynamically-change-shipping-options-manual.https.html new file mode 100644 index 00000000000..0e6670a1b82 --- /dev/null +++ b/tests/wpt/tests/payment-request/dynamically-change-shipping-options-manual.https.html @@ -0,0 +1,142 @@ + + +Test for PaymentRequest shippingOption dynamic updating + + + + + + +

PaymentRequest shippingOption attribute

+

+ Click on each button in sequence from top to bottom without refreshing the + page. Each button (except the 'Done' button) will bring up the Payment Request + UI window. +

+
    +
  1. + When the payment sheet is presented, view options for Shipping Method. There + should only be one: "Default shipping method" +
  2. +
  3. + Change your Shipping Address - either update your existing one by changing + something (name, address, etc), or select a different Shipping Address, or + add a new Shipping Address and select it. +
  4. +
  5. + Go back to Shipping Method, and there is now an option called "Dynamically + added shipping option". Select it +
  6. +
  7. + Click on the 'Done' button +
  8. +
+ + + If you find a buggy test, please + file a bug and + tag one of the + suggested reviewers. + diff --git a/tests/wpt/tests/payment-request/historical.https.html b/tests/wpt/tests/payment-request/historical.https.html index aa183a58cdb..3e881d0122b 100644 --- a/tests/wpt/tests/payment-request/historical.https.html +++ b/tests/wpt/tests/payment-request/historical.https.html @@ -10,7 +10,7 @@ ["paymentRequestID", "PaymentResponse"], // https://github.com/w3c/browser-payment-api/pull/258 - ["careOf", "PaymentAddress"], + ["careOf", "ContactAddress"], // https://github.com/w3c/browser-payment-api/pull/219 ["totalAmount", "PaymentResponse"], @@ -20,7 +20,7 @@ ["paymentRequestId", "PaymentResponse"], // https://github.com/w3c/payment-request/pull/765 - ["languageCode", "PaymentAddress"], + ["languageCode", "ContactAddress"], //https://github.com/whatwg/html/pull/5915 ["allowPaymentRequest", "HTMLIFrameElement"], diff --git a/tests/wpt/tests/payment-request/payment-request-constructor-thcrash.https.html b/tests/wpt/tests/payment-request/payment-request-constructor-thcrash.https.html new file mode 100644 index 00000000000..b6003070851 --- /dev/null +++ b/tests/wpt/tests/payment-request/payment-request-constructor-thcrash.https.html @@ -0,0 +1,254 @@ + + + +Crash tests PaymentRequest Constructor + + + + diff --git a/tests/wpt/tests/payment-request/payment-request-constructor.https.sub.html b/tests/wpt/tests/payment-request/payment-request-constructor.https.sub.html index c1ecc225838..9b0ad06454f 100644 --- a/tests/wpt/tests/payment-request/payment-request-constructor.https.sub.html +++ b/tests/wpt/tests/payment-request/payment-request-constructor.https.sub.html @@ -240,7 +240,7 @@ test(() => { test(() => { smokeTest(); - for (const prop in ["displayItems", "modifiers"]) { + for (const prop in ["displayItems", "shippingOptions", "modifiers"]) { try { const details = Object.assign({}, defaultDetails, { [prop]: [] }); new PaymentRequest(defaultMethods, details); @@ -361,6 +361,186 @@ test(() => { } }, "it handles high precision currency values without throwing"); +// Process shipping options: + +const defaultShippingOption = Object.freeze({ + id: "default", + label: "", + amount: defaultAmount, + selected: false, +}); +const defaultShippingOptions = Object.freeze([ + Object.assign({}, defaultShippingOption), +]); + +test(() => { + smokeTest(); + for (const amount of invalidAmounts) { + const invalidAmount = Object.assign({}, defaultAmount, { + value: amount, + }); + const invalidShippingOption = Object.assign({}, defaultShippingOption, { + amount: invalidAmount, + }); + const details = Object.assign({}, defaultDetails, { + shippingOptions: [invalidShippingOption], + }); + assert_throws_js( + TypeError, + () => { + new PaymentRequest(defaultMethods, details, { requestShipping: true }); + }, + `Expected TypeError for option.amount.value: "${amount}"` + ); + } +}, `For each option in details.shippingOptions: if option.amount.value is not a valid decimal monetary value, then throw a TypeError`); + +test(() => { + smokeTest(); + const shippingOptions = [defaultShippingOption]; + const details = Object.assign({}, defaultDetails, { shippingOptions }); + const request = new PaymentRequest(defaultMethods, details); + assert_equals( + request.shippingOption, + null, + "shippingOption must be null, as requestShipping is missing" + ); + // defaultDetails lacks shipping options + const request2 = new PaymentRequest(defaultMethods, defaultDetails, { + requestShipping: true, + }); + assert_equals( + request2.shippingOption, + null, + `request2.shippingOption must be null` + ); +}, "If there is no selected shipping option, then PaymentRequest.shippingOption remains null"); + +test(() => { + smokeTest(); + const selectedOption = Object.assign({}, defaultShippingOption, { + selected: true, + id: "the-id", + }); + const shippingOptions = [selectedOption]; + const details = Object.assign({}, defaultDetails, { shippingOptions }); + const requestNoShippingRequested1 = new PaymentRequest( + defaultMethods, + details + ); + assert_equals( + requestNoShippingRequested1.shippingOption, + null, + "Must be null when no shipping is requested (defaults to false)" + ); + const requestNoShippingRequested2 = new PaymentRequest( + defaultMethods, + details, + { requestShipping: false } + ); + assert_equals( + requestNoShippingRequested2.shippingOption, + null, + "Must be null when requestShipping is false" + ); + const requestWithShipping = new PaymentRequest(defaultMethods, details, { + requestShipping: "truthy value", + }); + assert_equals( + requestWithShipping.shippingOption, + "the-id", + "Selected option must be 'the-id'" + ); +}, "If there is a selected shipping option, and requestShipping is set, then that option becomes synchronously selected"); + +test(() => { + smokeTest(); + const failOption1 = Object.assign({}, defaultShippingOption, { + selected: true, + id: "FAIL1", + }); + const failOption2 = Object.assign({}, defaultShippingOption, { + selected: false, + id: "FAIL2", + }); + const passOption = Object.assign({}, defaultShippingOption, { + selected: true, + id: "the-id", + }); + const shippingOptions = [failOption1, failOption2, passOption]; + const details = Object.assign({}, defaultDetails, { shippingOptions }); + const requestNoShipping = new PaymentRequest(defaultMethods, details, { + requestShipping: false, + }); + assert_equals( + requestNoShipping.shippingOption, + null, + "shippingOption must be null, as requestShipping is false" + ); + const requestWithShipping = new PaymentRequest(defaultMethods, details, { + requestShipping: true, + }); + assert_equals( + requestWithShipping.shippingOption, + "the-id", + "selected option must 'the-id" + ); +}, "If requestShipping is set, and if there is a multiple selected shipping options, only the last is selected."); + +test(() => { + smokeTest(); + const selectedOption = Object.assign({}, defaultShippingOption, { + selected: true, + }); + const unselectedOption = Object.assign({}, defaultShippingOption, { + selected: false, + }); + const shippingOptions = [selectedOption, unselectedOption]; + const details = Object.assign({}, defaultDetails, { shippingOptions }); + const requestNoShipping = new PaymentRequest(defaultMethods, details); + assert_equals( + requestNoShipping.shippingOption, + null, + "shippingOption must be null, because requestShipping is false" + ); + assert_throws_js( + TypeError, + () => { + new PaymentRequest(defaultMethods, details, { requestShipping: true }); + }, + "Expected to throw a TypeError because duplicate IDs" + ); +}, "If there are any duplicate shipping option ids, and shipping is requested, then throw a TypeError"); + +test(() => { + smokeTest(); + const dupShipping1 = Object.assign({}, defaultShippingOption, { + selected: true, + id: "DUPLICATE", + label: "Fail 1", + }); + const dupShipping2 = Object.assign({}, defaultShippingOption, { + selected: false, + id: "DUPLICATE", + label: "Fail 2", + }); + const shippingOptions = [dupShipping1, defaultShippingOption, dupShipping2]; + const details = Object.assign({}, defaultDetails, { shippingOptions }); + const requestNoShipping = new PaymentRequest(defaultMethods, details); + assert_equals( + requestNoShipping.shippingOption, + null, + "shippingOption must be null, because requestShipping is false" + ); + assert_throws_js( + TypeError, + () => { + new PaymentRequest(defaultMethods, details, { requestShipping: true }); + }, + "Expected to throw a TypeError because duplicate IDs" + ); +}, "Throw when there are duplicate shippingOption ids, even if other values are different"); + // Process payment details modifiers: test(() => { smokeTest(); @@ -474,4 +654,44 @@ test(() => { }); }, "Rethrow any exceptions of JSON-serializing modifier.data"); +//Setting ShippingType attribute during construction +test(() => { + smokeTest(); + assert_throws_js(TypeError, () => { + new PaymentRequest(defaultMethods, defaultDetails, { + shippingType: "invalid", + }); + }); +}, "Shipping type should be valid"); + +test(() => { + smokeTest(); + const request = new PaymentRequest(defaultMethods, defaultDetails, {}); + assert_equals(request.shippingAddress, null, "must be null"); +}, "PaymentRequest.shippingAddress must initially be null"); + +test(() => { + smokeTest(); + const request1 = new PaymentRequest(defaultMethods, defaultDetails, {}); + assert_equals(request1.shippingType, null, "must be null"); + const request2 = new PaymentRequest(defaultMethods, defaultDetails, { + requestShipping: false, + }); + assert_equals(request2.shippingType, null, "must be null"); +}, "If options.requestShipping is not set, then request.shippingType attribute is null."); + +test(() => { + smokeTest(); + // option.shippingType defaults to 'shipping' + const request1 = new PaymentRequest(defaultMethods, defaultDetails, { + requestShipping: true, + }); + assert_equals(request1.shippingType, "shipping", "must be shipping"); + const request2 = new PaymentRequest(defaultMethods, defaultDetails, { + requestShipping: true, + shippingType: "delivery", + }); + assert_equals(request2.shippingType, "delivery", "must be delivery"); +}, "If options.requestShipping is true, request.shippingType will be options.shippingType."); + diff --git a/tests/wpt/tests/payment-request/payment-request-ctor-currency-code-checks.https.sub.html b/tests/wpt/tests/payment-request/payment-request-ctor-currency-code-checks.https.sub.html index c608608c7eb..b4ca2a0c40b 100644 --- a/tests/wpt/tests/payment-request/payment-request-ctor-currency-code-checks.https.sub.html +++ b/tests/wpt/tests/payment-request/payment-request-ctor-currency-code-checks.https.sub.html @@ -178,6 +178,63 @@ test(() => { } }, "Check and canonicalize invalid details.displayItems amount and rethrow RangeError."); +// Process shipping options: +test(() => { + assert_throws_js(RANGE_ERROR, smokeTest, "Expected smoke test to throw."); + const shippingOptions = []; + for (const validCurrency of wellFormedCurrencyCodes) { + const shippingOption = { + id: `test` + Math.random(), + label: "shipping option", + amount: { currency: validCurrency, value: "5.00" }, + selected: !shippingOptions.length, + }; + const details = { + total: defaultTotal, + shippingOptions: [shippingOption], + }; + try { + new PaymentRequest(defaultMethods, details, { requestShipping: true }); + } catch (err) { + assert_unreached( + `Unexpected exception with valid shippingOption currency code "${validCurrency}": ${err.message}.` + ); + } + shippingOptions.push(shippingOption); + } + try { + const details = Object.assign({}, defaultDetails, { shippingOptions }); + new PaymentRequest(defaultMethods, details, { requestShipping: true }); + } catch (err) { + assert_unreached( + `Unexpected error with multiple valid shppingOptions: ${err.message}.` + ); + } +}, "Check and canonicalize valid details.shippingOptions amount."); + +test(() => { + assert_throws_js(RANGE_ERROR, smokeTest, "Expected smoke test to throw."); + for (const invalidCurrency of invalidCurrencyCodes) { + const shippingOption = { + id: "test", + label: "shipping option", + amount: { currency: invalidCurrency, value: "5.00" }, + selected: true, + }; + const details = { + total: defaultTotal, + shippingOptions: [shippingOption], + }; + assert_throws_js( + RANGE_ERROR, + () => { + new PaymentRequest(defaultMethods, details, { requestShipping: true }); + }, + `Expected RangeError with invalid shippingOption currency code "${invalidCurrency}".` + ); + } +}, "Check and canonicalize invalid details.shippingOptions amount and rethrow RangeError."); + // Process payment details modifiers: test(() => { assert_throws_js(RANGE_ERROR, smokeTest, "Expected smoke test to throw."); diff --git a/tests/wpt/tests/payment-request/payment-request-onshippingaddresschange-attribute.https.html b/tests/wpt/tests/payment-request/payment-request-onshippingaddresschange-attribute.https.html new file mode 100644 index 00000000000..5b2538992f7 --- /dev/null +++ b/tests/wpt/tests/payment-request/payment-request-onshippingaddresschange-attribute.https.html @@ -0,0 +1,78 @@ + + + +Test for onshippingaddresschange attribute + + + + diff --git a/tests/wpt/tests/payment-request/payment-request-onshippingoptionchange-attribute.https.html b/tests/wpt/tests/payment-request/payment-request-onshippingoptionchange-attribute.https.html new file mode 100644 index 00000000000..43ea5dcce87 --- /dev/null +++ b/tests/wpt/tests/payment-request/payment-request-onshippingoptionchange-attribute.https.html @@ -0,0 +1,79 @@ + + + +Test for onshippingoptionchange attribute + + + + diff --git a/tests/wpt/tests/payment-request/payment-request-shippingAddress-attribute.https.html b/tests/wpt/tests/payment-request/payment-request-shippingAddress-attribute.https.html new file mode 100644 index 00000000000..08918356b6f --- /dev/null +++ b/tests/wpt/tests/payment-request/payment-request-shippingAddress-attribute.https.html @@ -0,0 +1,28 @@ + + + +Test for PaymentRequest shippingAddress attribute + + + + diff --git a/tests/wpt/tests/payment-request/payment-request-shippingOption-attribute.https.html b/tests/wpt/tests/payment-request/payment-request-shippingOption-attribute.https.html new file mode 100644 index 00000000000..b5f9ea65c6c --- /dev/null +++ b/tests/wpt/tests/payment-request/payment-request-shippingOption-attribute.https.html @@ -0,0 +1,100 @@ + + + +Test for PaymentRequest shippingOption attribute + + + + diff --git a/tests/wpt/tests/payment-request/payment-request-shippingType-attribute.https.html b/tests/wpt/tests/payment-request/payment-request-shippingType-attribute.https.html new file mode 100644 index 00000000000..11f75b1c862 --- /dev/null +++ b/tests/wpt/tests/payment-request/payment-request-shippingType-attribute.https.html @@ -0,0 +1,72 @@ + + + +Test for PaymentRequest's shippingType attribute + + + + diff --git a/tests/wpt/tests/payment-request/payment-response/helpers.js b/tests/wpt/tests/payment-request/payment-response/helpers.js index 1242ecb743c..3e4f5cfd36f 100644 --- a/tests/wpt/tests/payment-request/payment-response/helpers.js +++ b/tests/wpt/tests/payment-request/payment-response/helpers.js @@ -65,8 +65,30 @@ async function getPaymentRequestResponse(options, id) { label: "Total due", amount: { currency: "USD", value: "1.0" }, }, + shippingOptions: [ + { + id: "fail1", + label: "Fail option 1", + amount: { currency: "USD", value: "5.00" }, + selected: false, + }, + { + id: "pass", + label: "Pass option", + amount: { currency: "USD", value: "5.00" }, + selected: true, + }, + { + id: "fail2", + label: "Fail option 2", + amount: { currency: "USD", value: "5.00" }, + selected: false, + }, + ], }; const request = new PaymentRequest(methods, details, options); + request.onshippingaddresschange = ev => ev.updateWith(details); + request.onshippingoptionchange = ev => ev.updateWith(details); const response = await request.show(); return { request, response }; } @@ -106,5 +128,23 @@ async function runManualTest(button, options, expected = {}, id = undefined) { assert_equals(typeof response.details, "object", "Expected an object"); // Testing that this does not throw: response.toJSON(); + if (options && options.requestShipping) { + assert_equals( + response.shippingOption, + "pass", + "request.shippingOption must be 'pass'" + ); + } else { + assert_equals( + request.shippingOption, + null, + "If requestShipping is falsy, request.shippingOption must be null" + ); + assert_equals( + response.shippingOption, + null, + "request.shippingOption must be null" + ); + } }, button.textContent.trim()); } diff --git a/tests/wpt/tests/payment-request/payment-response/retry-method-manual.https.html b/tests/wpt/tests/payment-request/payment-response/retry-method-manual.https.html new file mode 100644 index 00000000000..a5aab49e387 --- /dev/null +++ b/tests/wpt/tests/payment-request/payment-response/retry-method-manual.https.html @@ -0,0 +1,296 @@ + + + + + PaymentResponse.prototype.retry() method + + + + + +

+ Manual Tests for PaymentResponse.retry() - Please run in order! +

+

+ Click on each button in sequence from top to bottom without refreshing the page. + Each button will bring up the Payment Request UI window. +

+

+ When presented with the payment sheet, use any credit card select to "Pay" multiple times. +

+
    +
  1. + +
  2. +
  3. + +
  4. +
  5. + +
  6. +
  7. + +
  8. +
  9. + +
  10. +
  11. +

    + When shown the payment sheet, hit pay once, then abort retrying the payment. +

    + +
  12. +
  13. +

    + When shown the payment sheet, hit pay once. Check payment sheet for error fields. + Then hit escape or otherwise abort the payment. +

    + +
  14. +
  15. +

    + When shown the payment sheet, hit pay once. + Then, change the shipping option. + Select to pay again. +

    + +
  16. +
  17. +

    + When shown the payment sheet, hit pay once. Then retry once. +

    + +
  18. +
  19. + +
  20. +
+ + If you find a buggy test, please file a bug + and tag one of the owners. + diff --git a/tests/wpt/tests/payment-request/payment-response/retry-method-warnings-manual.https.html b/tests/wpt/tests/payment-request/payment-response/retry-method-warnings-manual.https.html new file mode 100644 index 00000000000..b68bf183097 --- /dev/null +++ b/tests/wpt/tests/payment-request/payment-response/retry-method-warnings-manual.https.html @@ -0,0 +1,158 @@ + +Warn when errorFields don't match request[[options]] + + + + + +

Manual Tests - Please run in order!

+

+ Please open the developer console. Each of the tests below should generate a + warning in the developer console. +

+

When presented with the payment sheet, hit pay twice.

+
    +
  1. + +
  2. +
  3. + +
  4. +
  5. + +
  6. +
  7. + +
  8. +
  9. + +
  10. +
  11. + +
  12. +
  13. + +
  14. +
  15. + +
  16. +
  17. + +
  18. +
  19. + +
  20. +
  21. + +
  22. +
  23. + +
  24. +
  25. + +
  26. +
  27. + +
  28. +
  29. + +
  30. +
  31. +
diff --git a/tests/wpt/tests/payment-request/payment-response/shippingAddress-attribute-manual.https.html b/tests/wpt/tests/payment-request/payment-response/shippingAddress-attribute-manual.https.html new file mode 100644 index 00000000000..f9f0a6e4faf --- /dev/null +++ b/tests/wpt/tests/payment-request/payment-response/shippingAddress-attribute-manual.https.html @@ -0,0 +1,101 @@ + + + + + PaymentResponse.prototype.shippingAddress + + + + + +

shippingAddress attribute

+

+ Click on each button in sequence from top to bottom without refreshing the page. + Each button will bring up the Payment Request UI window. +

+

+ When prompted, please enter "web platform test" as recipient, at address "1 wpt street" in "Kabul, Afghanistan", zip/postal code 1001. +

+
    +
  1. + +
  2. +
  3. + +
  4. +
  5. + +
  6. +
  7. + +
  8. +
+ + If you find a buggy test, please file a bug + and tag one of the suggested reviewers. + diff --git a/tests/wpt/tests/payment-request/payment-response/shippingOption-attribute-manual.https.html b/tests/wpt/tests/payment-request/payment-response/shippingOption-attribute-manual.https.html new file mode 100644 index 00000000000..687d3a52de9 --- /dev/null +++ b/tests/wpt/tests/payment-request/payment-response/shippingOption-attribute-manual.https.html @@ -0,0 +1,43 @@ + + + + + PaymentResponse.prototype.complete() method + + + + +

shippingOption attribute

+

+ Click on each button in sequence from top to bottom without refreshing the page. + Each button will bring up the Payment Request UI window. +

+

+ For the last test, please select the only available shipping option and select "Pay". +

+
    +
  1. + +
  2. +
  3. + +
  4. +
  5. + +
  6. +
  7. + +
  8. +
+ + If you find a buggy test, please file a bug + and tag one of the suggested reviewers. + diff --git a/tests/wpt/tests/payment-request/shipping-address-changed-manual.https.html b/tests/wpt/tests/payment-request/shipping-address-changed-manual.https.html new file mode 100644 index 00000000000..aad57cd724c --- /dev/null +++ b/tests/wpt/tests/payment-request/shipping-address-changed-manual.https.html @@ -0,0 +1,99 @@ + + + +Test for PaymentRequest shippingAddress attribute + + + + + + +

PaymentRequest shippingAddress attribute

+

+ Click on each button in sequence from top to bottom without refreshing the page. + Each button will bring up the Payment Request UI window. +

+

+ When the payment sheet is presented, enter or select a shipping address. +

+
    +
  1. + +
  2. +
+ + If you find a buggy test, please file a bug + and tag one of the suggested reviewers. + diff --git a/tests/wpt/tests/payment-request/show-method-optional-promise-rejects.https.html b/tests/wpt/tests/payment-request/show-method-optional-promise-rejects.https.html index 4a41f28fc9b..3b429655039 100644 --- a/tests/wpt/tests/payment-request/show-method-optional-promise-rejects.https.html +++ b/tests/wpt/tests/payment-request/show-method-optional-promise-rejects.https.html @@ -84,6 +84,10 @@ total: invalidNegativeTotal, }); + // PaymentOptions + const validOptions = Object.freeze({ + requestShipping: true, + }); // PaymentItem const validPaymentItem = Object.freeze({ @@ -100,6 +104,24 @@ const validPaymentItems = Object.freeze([validPaymentItem]); const invalidPaymentItems = Object.freeze([invalidPaymentItem]); + // PaymentShippingOption + const invalidShippingOption = Object.freeze({ + id: "abc", + label: "Invalid shipping option", + amount: invalidAmount, + selected: true, + }); + + // PaymentShippingOptions + const validShippingOption = Object.freeze({ + id: "abc", + label: "valid shipping option", + amount: validAmount, + }); + + const validShippingOptions = Object.freeze([validShippingOption]); + const invalidShippingOptions = Object.freeze([invalidShippingOption]); + // PaymentDetailsModifier const validModifier = Object.freeze({ additionalDisplayItems: validPaymentItems, @@ -144,7 +166,8 @@ promise_test(async (t) => { const request = new PaymentRequest( validMethods, - validDetails + validDetails, + validOptions ); await test_driver.bless("Payment request"); const detailsPromise = Promise.resolve(badDetails); @@ -193,6 +216,21 @@ RangeError ); + testBadUpdate( + "Updating with duplicate shippingOptions (same IDs) results in a TypeError.", + { + ...validDetails, + shippingOptions: [validShippingOption, validShippingOption], + }, + TypeError + ); + + testBadUpdate( + "Updating with a shippingOption with an invalid currency value results in a RangError.", + { ...validDetails, shippingOptions: invalidShippingOptions }, + RangeError + ); + testBadUpdate( "Must throw a RangeError when a modifier's total item has an invalid currency.", { ...validDetails, modifiers: [modifierWithInvalidTotal, validModifier] }, diff --git a/tests/wpt/tests/payment-request/show-method-optional-promise-resolves-manual.https.html b/tests/wpt/tests/payment-request/show-method-optional-promise-resolves-manual.https.html new file mode 100644 index 00000000000..5360a9704af --- /dev/null +++ b/tests/wpt/tests/payment-request/show-method-optional-promise-resolves-manual.https.html @@ -0,0 +1,339 @@ + + +Test for PaymentRequest.show(optional promise) method + + + + +

+ PaymentRequest .show(optional detailsPromise) tests +

+

+ These test cause detailsPromise to resolve successfully with some updated value. As such, that will cause + something in the payment sheet to change. Each test describes what is expected to change - if anything. +

+

+ Instructions: Click on each button in sequence from top to bottom without refreshing the page. The payment + sheet will be shown. If required, confirm that the expected value appears in the payment sheet. Finally, manually abort/cancel + the payment request by closing the payment sheet. +

+
    +
  1. +
  2. +
  3. +
  4. +
  5. +
  6. +
  7. +
  8. +
  9. +
  10. +
  11. +
  12. +
  13. +
  14. + +
  15. +
  16. + +
  17. +
  18. + +
  19. +
  20. + +
  21. +
+ + + If you find a buggy test, please file a bug + and tag one of the suggested reviewers. + diff --git a/tests/wpt/tests/payment-request/updateWith-method-pmi-handling-manual.https.html b/tests/wpt/tests/payment-request/updateWith-method-pmi-handling-manual.https.html new file mode 100644 index 00000000000..1a52978ca3e --- /dev/null +++ b/tests/wpt/tests/payment-request/updateWith-method-pmi-handling-manual.https.html @@ -0,0 +1,140 @@ + + +Test for validity of payment method identifiers when calling updateWith() method + + + + +

updateWith() method: test validity of payment method identifiers.

+

+ When shown a payment sheet, select a different address. +

+
    +
  1. + +
  2. +
  3. + +
  4. +
  5. + +
  6. +
  7. + +
  8. +
  9. + +
  10. +
  11. + +
  12. +
  13. + +
  14. +
  15. + +
  16. +
  17. + +
  18. +
  19. + +
  20. +
+ + If you find a buggy test, please file a bug + and tag one of the suggested reviewers. + diff --git a/tests/wpt/tests/payment-request/user-accepts-payment-request-algo-manual.https.html b/tests/wpt/tests/payment-request/user-accepts-payment-request-algo-manual.https.html new file mode 100644 index 00000000000..300f04811fd --- /dev/null +++ b/tests/wpt/tests/payment-request/user-accepts-payment-request-algo-manual.https.html @@ -0,0 +1,230 @@ + + + + + User accepts the payment request algorithm + + + + + +
+

User accepts payment request

+

+ Click on each button in sequence from top to bottom without refreshing the page. + Each button will bring up the Payment Request UI window. +

+

+ When shown the payment sheet, please input a credit card and select Pay. +

+
    +
  1. + Use any credit card to pay. +
  2. +
  3. + Select any shipping option, and use any credit card to pay. +
  4. +
  5. + + When prompted, please use "wpt@w3.org" as the email. +
  6. +
  7. + + When prompted, please use "+12345678910" as the phone number. +
  8. +
  9. + + When prompted, please use "web platform test" as the payer name. +
  10. +
  11. + + When prompted, please use: "+12345678910" as the phone number, "web platform test" as the payer name, and "wpt@w3.org" as the email. Then press Pay. +
  12. +
  13. + +
  14. +
+
+ + If you find a buggy test, please file a bug + and tag one of the suggested reviewers. + diff --git a/tests/wpt/tests/performance-timeline/not-restored-reasons/performance-navigation-timing-cross-origin-bfcache.tentative.window.js b/tests/wpt/tests/performance-timeline/not-restored-reasons/performance-navigation-timing-cross-origin-bfcache.tentative.window.js index 42bda12919d..2a313fe7b14 100644 --- a/tests/wpt/tests/performance-timeline/not-restored-reasons/performance-navigation-timing-cross-origin-bfcache.tentative.window.js +++ b/tests/wpt/tests/performance-timeline/not-restored-reasons/performance-navigation-timing-cross-origin-bfcache.tentative.window.js @@ -53,8 +53,7 @@ promise_test(async t => { 'url': null, 'src': rc1_child_url, 'id': 'test-id', - // Iframes that are generated by addIframe have an empty name. - 'name': '', + 'name': null, 'reasons': null, 'children': null }]); diff --git a/tests/wpt/tests/performance-timeline/not-restored-reasons/performance-navigation-timing-iframes-without-attributes.tentative.window.js b/tests/wpt/tests/performance-timeline/not-restored-reasons/performance-navigation-timing-iframes-without-attributes.tentative.window.js new file mode 100644 index 00000000000..cda0ac43944 --- /dev/null +++ b/tests/wpt/tests/performance-timeline/not-restored-reasons/performance-navigation-timing-iframes-without-attributes.tentative.window.js @@ -0,0 +1,103 @@ +// META: title=RemoteContextHelper navigation using BFCache +// META: script=./test-helper.js +// META: script=/common/dispatcher/dispatcher.js +// META: script=/common/get-host-info.sub.js +// META: script=/common/utils.js +// META: script=/html/browsers/browsing-the-web/back-forward-cache/resources/rc-helper.js +// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js +// META: script=/websockets/constants.sub.js +// META: timeout=long + +'use strict'; + +// Ensure that empty attributes are reported as empty strings and missing +// attributes are reported as null. +promise_test(async t => { + const rcHelper = new RemoteContextHelper(); + // Open a window with noopener so that BFCache will work. + const rc1 = await rcHelper.addWindow( + /*config=*/ null, /*options=*/ {features: 'noopener'}); + const rc1_url = await rc1.executeScript(() => { + return location.href; + }); + // Add a cross-origin iframe. + const rc1_child = await rc1.addIframe( + /*extraConfig=*/ { + origin: 'HTTP_REMOTE_ORIGIN', + scripts: [], + headers: [], + }, + /*attributes=*/ {id: '', name: ''}, + ); + const rc2_child = await rc1.addIframe( + /*extraConfig=*/ { + origin: 'HTTP_REMOTE_ORIGIN', + scripts: [], + headers: [], + }, + /*attributes=*/ {}, + ); + const rc3_child = await rc1.addIframe( + /*extraConfig=*/ {}, + /*attributes=*/ {}, + ); + const rc4_child = await rc1.addIframe( + /*extraConfig=*/ {}, + /*attributes=*/ {id: '', name: ''}, + ); + // Use WebSocket to block BFCache. + await useWebSocket(rc1); + const rc1_child_url = await rc1_child.executeScript(() => { + return location.href; + }); + const rc2_child_url = await rc2_child.executeScript(() => { + return location.href; + }); + const rc3_child_url = await rc3_child.executeScript(() => { + return location.href; + }); + const rc4_child_url = await rc4_child.executeScript(() => { + return location.href; + }); + // Check the BFCache result and the reported reasons. + await assertBFCacheEligibility(rc1, /*shouldRestoreFromBFCache=*/ false); + await assertNotRestoredReasonsEquals( + rc1, + /*url=*/ rc1_url, + /*src=*/ null, + /*id=*/ null, + /*name=*/ null, + /*reasons=*/[{'reason': 'websocket'}], + /*children=*/[{ + 'url': null, + 'src': rc1_child_url, + // Id and name should be empty. + 'id': '', + 'name': '', + 'reasons': null, + 'children': null + }, { + 'url': null, + 'src': rc2_child_url, + // Id and name should be null. + 'id': null, + 'name': null, + 'reasons': null, + 'children': null + },{ + 'url': rc3_child_url, + 'src': rc3_child_url, + // Id and name should be null. + 'id': null, + 'name': null, + 'reasons': [], + 'children': [] + }, { + 'url': rc4_child_url, + 'src': rc4_child_url, + 'id': '', + 'name': '', + 'reasons': [], + 'children': [] + }]); +}); \ No newline at end of file diff --git a/tests/wpt/tests/performance-timeline/not-restored-reasons/test-helper.js b/tests/wpt/tests/performance-timeline/not-restored-reasons/test-helper.js index 826b0ccb2be..ba9a4c0342f 100644 --- a/tests/wpt/tests/performance-timeline/not-restored-reasons/test-helper.js +++ b/tests/wpt/tests/performance-timeline/not-restored-reasons/test-helper.js @@ -27,9 +27,9 @@ function assertReasonsStructEquals( } else { for (let j = 0; j < children.length; j++) { assertReasonsStructEquals( - result.children[0], children[0].url, - children[0].src, children[0].id, children[0].name, children[0].reasons, - children[0].children); + result.children[j], children[j].url, + children[j].src, children[j].id, children[j].name, children[j].reasons, + children[j].children); } } } diff --git a/tests/wpt/tests/pointerlock/WEB_FEATURES.yml b/tests/wpt/tests/pointerlock/WEB_FEATURES.yml new file mode 100644 index 00000000000..61ab30b26b6 --- /dev/null +++ b/tests/wpt/tests/pointerlock/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: pointer-lock + files: "**" diff --git a/tests/wpt/tests/preload/resources/A4.ogv b/tests/wpt/tests/preload/resources/A4.ogv deleted file mode 100644 index de99616eceb..00000000000 Binary files a/tests/wpt/tests/preload/resources/A4.ogv and /dev/null differ diff --git a/tests/wpt/tests/resource-timing/initiator-type/video.html b/tests/wpt/tests/resource-timing/initiator-type/video.html index 16f3b3dea5f..2d8c9dcc474 100644 --- a/tests/wpt/tests/resource-timing/initiator-type/video.html +++ b/tests/wpt/tests/resource-timing/initiator-type/video.html @@ -19,14 +19,14 @@ src="/resource-timing/resources/empty.py?id=track"> diff --git a/tests/wpt/tests/scroll-animations/WEB_FEATURES.yml b/tests/wpt/tests/scroll-animations/WEB_FEATURES.yml new file mode 100644 index 00000000000..adf4bf2ac17 --- /dev/null +++ b/tests/wpt/tests/scroll-animations/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: scroll-driven-animations + files: "**" diff --git a/tests/wpt/tests/selection/crashtests/selection-modify-line-next-to-input-and-make-it-invisible.html b/tests/wpt/tests/selection/crashtests/selection-modify-line-next-to-input-and-make-it-invisible.html new file mode 100644 index 00000000000..09e018f5819 --- /dev/null +++ b/tests/wpt/tests/selection/crashtests/selection-modify-line-next-to-input-and-make-it-invisible.html @@ -0,0 +1,23 @@ + + + + + + + + +
+ +
+ + diff --git a/tests/wpt/tests/selection/selection-nested-video.html b/tests/wpt/tests/selection/selection-nested-video.html new file mode 100644 index 00000000000..9777d7d9927 --- /dev/null +++ b/tests/wpt/tests/selection/selection-nested-video.html @@ -0,0 +1,25 @@ + + +Selection with nested videos doesn't crash + + + + +
A
+