mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
Update web-platform-tests to revision 2b758296541cf4f2209b8c2352cf6c7890c97be3
This commit is contained in:
parent
2304f02123
commit
835d593cd0
118 changed files with 3269 additions and 703 deletions
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,2 @@
|
|||
[font-feature-resolution-001.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,31 @@
|
|||
[list-interpolation.html]
|
||||
[Animation between "scale(2) rotate(0deg) translate(100px)" and "rotate(720deg) scale(2) translate(200px)" at progress 0.25]
|
||||
expected: FAIL
|
||||
|
||||
[Animation between "rotate(0deg) translate(100px)" and "rotate(720deg) scale(2) translate(200px)" at progress 0.25]
|
||||
expected: FAIL
|
||||
|
||||
[Animation between "translateX(100px) scaleX(3) translate(500px) scale(2)" and "translateY(200px) scale(5) translateX(100px) scaleY(3)" at progress 0.25]
|
||||
expected: FAIL
|
||||
|
||||
[Animation between "none" and "none" at progress 0.25]
|
||||
expected: FAIL
|
||||
|
||||
[Animation between "translate(200px) rotate(720deg)" and "none" at progress 0.25]
|
||||
expected: FAIL
|
||||
|
||||
[Animation between "translate(100px) rotate(720deg)" and "translate(200px)" at progress 0.25]
|
||||
expected: FAIL
|
||||
|
||||
[Animation between "translate(100px)" and "translate(200px) rotate(720deg)" at progress 0.25]
|
||||
expected: FAIL
|
||||
|
||||
[Animation between "scale(2) rotate(0deg)" and "rotate(720deg) scale(2) translate(200px)" at progress 0.25]
|
||||
expected: FAIL
|
||||
|
||||
[Animation between "none" and "translate(200px) rotate(720deg)" at progress 0.25]
|
||||
expected: FAIL
|
||||
|
||||
[Animation between "scale(2) rotate(360deg) translate(100px) matrix(1, 0, 0, 1, 100, 0) skew(0deg)" and "scale(3) rotate(1080deg) translate(200px) matrix(1, 0, 0, 1, 0, 200) skew(720deg)" at progress 0.25]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[dynamic-fixed-pos-cb-change.html]
|
||||
expected: TIMEOUT
|
|
@ -623,6 +623,459 @@
|
|||
[border-bottom-width length(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[visibility visibility(keyword) / values]
|
||||
[outline-width length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[line-height number(decimal) / values]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[opacity number[0,1\](zero-to-one) / values]
|
||||
expected: FAIL
|
||||
|
||||
[line-height number(integer) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-offset length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[font-size length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-height length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[vertical-align length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-height percentage(%) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-width length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-color color(rgba) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-color color(rgba) / values]
|
||||
expected: FAIL
|
||||
|
||||
[font-size length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-height length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[line-height length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[vertical-align percentage(%) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[line-height length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[color color(rgba) / values]
|
||||
expected: FAIL
|
||||
|
||||
[font-size length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[font-size length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[vertical-align length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[clip rectangle(rectangle) / values]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-width length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[font-size length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-offset length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-width length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-height length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-width length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[vertical-align length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[vertical-align length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-height length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[vertical-align length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-height percentage(%) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-height length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-offset length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[font-weight font-weight(keyword) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-height length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-offset length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[line-height length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[line-height length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[letter-spacing length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-color color(rgba) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-width percentage(%) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-height length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[letter-spacing length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[font-size percentage(%) / values]
|
||||
expected: FAIL
|
||||
|
||||
[letter-spacing length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[vertical-align length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-color color(rgba) / values]
|
||||
expected: FAIL
|
||||
|
||||
[letter-spacing length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[letter-spacing length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[line-height length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-width length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-width length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-height length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-width length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-height length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-width length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[font-size length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-width length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[letter-spacing length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[line-height length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-offset length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-width length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[font-size length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-width length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-width length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-color color(rgba) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-shadow shadow(shadow) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-height length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[line-height length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-width length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[font-size length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-width length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-width length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-width percentage(%) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-width length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[letter-spacing length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-width length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-width length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing percentage(%) / values]
|
||||
expected: FAIL
|
||||
|
||||
[font-weight font-weight(numeric) / values]
|
||||
expected: FAIL
|
||||
|
||||
[vertical-align length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[letter-spacing length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-width length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[line-height percentage(%) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-height length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-height length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-width length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-height length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-width length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-offset length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-offset length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[z-index integer(integer) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[vertical-align length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent percentage(%) / values]
|
||||
expected: FAIL
|
||||
|
||||
[line-height length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-height length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-offset length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-height length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[background-color color(rgba) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-height length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-width length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-width length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -458,21 +458,48 @@
|
|||
[column-width length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[display display(block to inline-block) / values]
|
||||
[background-image image(data) / values]
|
||||
expected: FAIL
|
||||
|
||||
[display display(static to absolute) / events]
|
||||
[transform transform(rotate) / values]
|
||||
expected: FAIL
|
||||
|
||||
[position position(absolute to fixed) / values]
|
||||
[border-bottom-right-radius border-radius(px-px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[display display(static to absolute) / values]
|
||||
[background-image image(gradient) / values]
|
||||
expected: FAIL
|
||||
|
||||
[position position(relative to absolute) / values]
|
||||
[font-stretch font-stretch(keyword) / values]
|
||||
expected: FAIL
|
||||
|
||||
[position position(static to absolute) / values]
|
||||
[transform-origin horizontal(keyword) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-right-radius border-radius(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-left-radius border-radius(px-px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-right-radius border-radius(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-left-radius border-radius(px-px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[background-image image(url) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-left-radius border-radius(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-left-radius border-radius(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[box-shadow box-shadow(shadow) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-right-radius border-radius(px-px) / values]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -5,3 +5,48 @@
|
|||
[background-position length-em(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width length-em(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-width length-em(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[line-height length-em(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[vertical-align length-em(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-height length-em(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width length-em(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing length-em(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-width length-em(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[letter-spacing length-em(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-height length-em(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-width length-em(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length-em(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-offset length-em(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width length-em(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width length-em(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -53,6 +53,459 @@
|
|||
[background-position length(px) / events]
|
||||
expected: FAIL
|
||||
|
||||
[visibility visibility(keyword) / values]
|
||||
[outline-width length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[line-height number(decimal) / values]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[opacity number[0,1\](zero-to-one) / values]
|
||||
expected: FAIL
|
||||
|
||||
[line-height number(integer) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-offset length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[font-size length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-height length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[vertical-align length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-height percentage(%) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-width length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-color color(rgba) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-color color(rgba) / values]
|
||||
expected: FAIL
|
||||
|
||||
[font-size length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-height length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[line-height length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[vertical-align percentage(%) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[line-height length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[color color(rgba) / values]
|
||||
expected: FAIL
|
||||
|
||||
[font-size length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[font-size length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[vertical-align length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[clip rectangle(rectangle) / values]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-width length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[font-size length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-offset length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-width length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-height length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-width length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[vertical-align length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[vertical-align length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-height length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[vertical-align length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-height percentage(%) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-height length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-offset length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[font-weight font-weight(keyword) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-height length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-offset length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[line-height length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[line-height length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[letter-spacing length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-color color(rgba) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-width percentage(%) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-height length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[letter-spacing length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[font-size percentage(%) / values]
|
||||
expected: FAIL
|
||||
|
||||
[letter-spacing length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[vertical-align length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-color color(rgba) / values]
|
||||
expected: FAIL
|
||||
|
||||
[letter-spacing length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[letter-spacing length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[line-height length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-width length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-width length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-height length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-width length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-height length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-width length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[font-size length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-width length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[letter-spacing length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[line-height length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-offset length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-width length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[font-size length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-width length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-width length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-color color(rgba) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-shadow shadow(shadow) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-height length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[line-height length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-width length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[font-size length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-width length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-width length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-width percentage(%) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-width length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[letter-spacing length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-width length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-width length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing percentage(%) / values]
|
||||
expected: FAIL
|
||||
|
||||
[font-weight font-weight(numeric) / values]
|
||||
expected: FAIL
|
||||
|
||||
[vertical-align length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[letter-spacing length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-width length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[line-height percentage(%) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-height length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-height length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-width length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-height length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-width length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-offset length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-offset length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[z-index integer(integer) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[vertical-align length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent percentage(%) / values]
|
||||
expected: FAIL
|
||||
|
||||
[line-height length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-height length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[outline-offset length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-height length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[background-color color(rgba) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-height length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[max-width length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[min-width length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -53,9 +53,6 @@
|
|||
[right end]
|
||||
expected: FAIL
|
||||
|
||||
[left end]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing intermediate]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -80,123 +77,15 @@
|
|||
[text-indent intermediate]
|
||||
expected: FAIL
|
||||
|
||||
[margin-right end]
|
||||
expected: FAIL
|
||||
|
||||
[padding-right end]
|
||||
expected: FAIL
|
||||
|
||||
[width end]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing end]
|
||||
expected: FAIL
|
||||
|
||||
[max-height end]
|
||||
expected: FAIL
|
||||
|
||||
[max-width end]
|
||||
expected: FAIL
|
||||
|
||||
[outline-color end]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent end]
|
||||
expected: FAIL
|
||||
|
||||
[height end]
|
||||
expected: FAIL
|
||||
|
||||
[outline-offset end]
|
||||
expected: FAIL
|
||||
|
||||
[margin-top end]
|
||||
expected: FAIL
|
||||
|
||||
[line-height end]
|
||||
expected: FAIL
|
||||
|
||||
[min-height end]
|
||||
expected: FAIL
|
||||
|
||||
[padding-left end]
|
||||
expected: FAIL
|
||||
|
||||
[bottom end]
|
||||
expected: FAIL
|
||||
|
||||
[clip end]
|
||||
expected: FAIL
|
||||
|
||||
[top end]
|
||||
expected: FAIL
|
||||
|
||||
[font-weight end]
|
||||
expected: FAIL
|
||||
|
||||
[font-size end]
|
||||
expected: FAIL
|
||||
|
||||
[text-shadow end]
|
||||
expected: FAIL
|
||||
|
||||
[margin-left end]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-color end]
|
||||
expected: FAIL
|
||||
|
||||
[min-width end]
|
||||
expected: FAIL
|
||||
|
||||
[background-color end]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width end]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width end]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width end]
|
||||
expected: FAIL
|
||||
|
||||
[padding-top end]
|
||||
expected: FAIL
|
||||
|
||||
[letter-spacing end]
|
||||
expected: FAIL
|
||||
|
||||
[margin-bottom end]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-color end]
|
||||
expected: FAIL
|
||||
|
||||
[vertical-align end]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width end]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-color end]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-color end]
|
||||
expected: FAIL
|
||||
|
||||
[color end]
|
||||
expected: FAIL
|
||||
|
||||
[border-spacing end]
|
||||
expected: FAIL
|
||||
|
||||
[visibility end]
|
||||
expected: FAIL
|
||||
|
||||
[padding-bottom end]
|
||||
expected: FAIL
|
||||
|
||||
[z-index end]
|
||||
[opacity end]
|
||||
expected: FAIL
|
||||
|
||||
|
|
7
tests/wpt/metadata/css/cssom-view/inheritance.html.ini
Normal file
7
tests/wpt/metadata/css/cssom-view/inheritance.html.ini
Normal file
|
@ -0,0 +1,7 @@
|
|||
[inheritance.html]
|
||||
[Property scroll-behavior has initial value auto]
|
||||
expected: FAIL
|
||||
|
||||
[Property scroll-behavior does not inherit]
|
||||
expected: FAIL
|
||||
|
|
@ -22,6 +22,3 @@
|
|||
[Legacy listener of animationstart]
|
||||
expected: TIMEOUT
|
||||
|
||||
[Listener of transitionend]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
[traverse_the_history_2.html]
|
||||
[traverse_the_history_5.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
[non-active-document.html]
|
||||
[DOMParser]
|
||||
expected: FAIL
|
||||
|
||||
[createHTMLDocument]
|
||||
expected: FAIL
|
||||
|
||||
[<template>]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
[toggleEvent.html]
|
||||
[Calling open twice on 'details' fires only one toggle event]
|
||||
expected: FAIL
|
||||
|
||||
[Setting open=true to opened 'details' element should not fire a toggle event at the 'details' element]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[DOMContentLoaded-defer.html]
|
||||
[The end: DOMContentLoaded and defer scripts]
|
||||
expected: FAIL
|
||||
|
283
tests/wpt/metadata/quirks/unitless-length/no-quirks.html.ini
Normal file
283
tests/wpt/metadata/quirks/unitless-length/no-quirks.html.ini
Normal file
|
@ -0,0 +1,283 @@
|
|||
[no-quirks.html]
|
||||
[top: -\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -1A]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -1a]
|
||||
expected: FAIL
|
||||
|
||||
[top: @1]
|
||||
expected: FAIL
|
||||
|
||||
[top: "1a"]
|
||||
expected: FAIL
|
||||
|
||||
[top: @a]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: "1"]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -/**/1]
|
||||
expected: FAIL
|
||||
|
||||
[top: +/**/1]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: @1a]
|
||||
expected: FAIL
|
||||
|
||||
[top: 1\\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[top: url('1')]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -\\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[top: calc(1)]
|
||||
expected: FAIL
|
||||
|
||||
[top: \\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +1\\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: 1\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: #0001]
|
||||
expected: FAIL
|
||||
|
||||
[top: calc(2 * 2px)]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: 1a]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: A]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: #01]
|
||||
expected: FAIL
|
||||
|
||||
[top: +\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: #1]
|
||||
expected: FAIL
|
||||
|
||||
[top: -/**/1]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: \\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: calc(1)]
|
||||
expected: FAIL
|
||||
|
||||
[top: #001]
|
||||
expected: FAIL
|
||||
|
||||
[top: +\\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +\\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[top: +1.5]
|
||||
expected: FAIL
|
||||
|
||||
[top: +1\\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: @a]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: @1]
|
||||
expected: FAIL
|
||||
|
||||
[top: #1]
|
||||
expected: FAIL
|
||||
|
||||
[top: 1a]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +1a]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +1A]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: "a"]
|
||||
expected: FAIL
|
||||
|
||||
[top: #00001]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -1\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[top: "1"]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: 1.5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: url('1')]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -1.5]
|
||||
expected: FAIL
|
||||
|
||||
[top: \\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: "1a"]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: calc(2 * 2px)]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +1\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: 1\\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +/**/1]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: #00001]
|
||||
expected: FAIL
|
||||
|
||||
[top: url(1)]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: #001]
|
||||
expected: FAIL
|
||||
|
||||
[top: +1\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[top: -1a]
|
||||
expected: FAIL
|
||||
|
||||
[top: -1A]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: url(1)]
|
||||
expected: FAIL
|
||||
|
||||
[top: a]
|
||||
expected: FAIL
|
||||
|
||||
[top: A]
|
||||
expected: FAIL
|
||||
|
||||
[top: #000001]
|
||||
expected: FAIL
|
||||
|
||||
[top: 1]
|
||||
expected: FAIL
|
||||
|
||||
[top: 1\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: a]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: 1]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +1]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: #000001]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +a]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +A]
|
||||
expected: FAIL
|
||||
|
||||
[top: 1.5]
|
||||
expected: FAIL
|
||||
|
||||
[top: +A]
|
||||
expected: FAIL
|
||||
|
||||
[top: +a]
|
||||
expected: FAIL
|
||||
|
||||
[top: +1]
|
||||
expected: FAIL
|
||||
|
||||
[top: -1.5]
|
||||
expected: FAIL
|
||||
|
||||
[top: -1\\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[top: +1a]
|
||||
expected: FAIL
|
||||
|
||||
[top: +1A]
|
||||
expected: FAIL
|
||||
|
||||
[top: @1a]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: \\31 .5]
|
||||
expected: FAIL
|
||||
|
||||
[top: "a"]
|
||||
expected: FAIL
|
||||
|
||||
[top: #01]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: +1.5]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -A]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -a]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -1\\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[top: #0001]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: -1]
|
||||
expected: FAIL
|
||||
|
||||
[top: -\\31 ]
|
||||
expected: FAIL
|
||||
|
||||
[top: -A]
|
||||
expected: FAIL
|
||||
|
||||
[top: -a]
|
||||
expected: FAIL
|
||||
|
||||
[top: -1]
|
||||
expected: FAIL
|
||||
|
||||
[top: -1\\31 ]
|
||||
expected: FAIL
|
||||
|
|
@ -1,14 +1,8 @@
|
|||
[urlencoded-parser.any.html]
|
||||
[response.formData() with input: _charset_=windows-1252&test=%C2x]
|
||||
[request.formData() with input: a&b&c]
|
||||
expected: FAIL
|
||||
|
||||
[response.formData() with input: a&b&c]
|
||||
expected: FAIL
|
||||
|
||||
[response.formData() with input: a=b&c=d]
|
||||
expected: FAIL
|
||||
|
||||
[response.formData() with input: &&&a=b&&&&c=d&]
|
||||
[request.formData() with input: _charset_=windows-1252&test=%C2x]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
|
@ -16,15 +10,21 @@
|
|||
[request.formData() with input: a=b&c=d]
|
||||
expected: FAIL
|
||||
|
||||
[request.formData() with input: a=b&c=d&]
|
||||
expected: FAIL
|
||||
|
||||
[request.formData() with input: a&b&c]
|
||||
expected: FAIL
|
||||
|
||||
[request.formData() with input: _charset_=windows-1252&test=%C2x]
|
||||
expected: FAIL
|
||||
|
||||
[response.formData() with input: a&b&c]
|
||||
expected: FAIL
|
||||
|
||||
[response.formData() with input: a=b&c=d&]
|
||||
expected: FAIL
|
||||
|
||||
[response.formData() with input: _charset_=windows-1252&test=%C2x]
|
||||
expected: FAIL
|
||||
|
||||
[response.formData() with input: &&&a=b&&&&c=d&]
|
||||
expected: FAIL
|
||||
|
||||
[response.formData() with input: a=b&c=d]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -282,3 +282,41 @@ backgroundFetchTest(async (test, backgroundFetch) => {
|
|||
assert_equals(nullResponse, null);
|
||||
|
||||
}, 'Fetches with mixed content should fail.');
|
||||
|
||||
backgroundFetchTest(async (test, backgroundFetch) => {
|
||||
const registrationId = 'matchexistingrequest';
|
||||
const registration =
|
||||
await backgroundFetch.fetch(registrationId, 'resources/feature-name.txt');
|
||||
|
||||
assert_equals(registration.id, registrationId);
|
||||
|
||||
const {type, eventRegistration, results} = await getMessageFromServiceWorker();
|
||||
assert_equals('backgroundfetchsuccess', type);
|
||||
assert_equals(results.length, 1);
|
||||
|
||||
assert_equals(eventRegistration.id, registration.id);
|
||||
assert_equals(eventRegistration.result, 'success');
|
||||
assert_equals(eventRegistration.failureReason, '');
|
||||
|
||||
assert_true(results[0].url.includes('resources/feature-name.txt'));
|
||||
assert_equals(results[0].status, 200);
|
||||
assert_equals(results[0].text, 'Background Fetch');
|
||||
|
||||
}, 'Matching to a single request should work');
|
||||
|
||||
backgroundFetchTest(async (test, backgroundFetch) => {
|
||||
const registrationId = 'matchmissingrequest';
|
||||
const registration =
|
||||
await backgroundFetch.fetch(registrationId, 'resources/feature-name.txt');
|
||||
|
||||
assert_equals(registration.id, registrationId);
|
||||
|
||||
const {type, eventRegistration, results} = await getMessageFromServiceWorker();
|
||||
assert_equals('backgroundfetchsuccess', type);
|
||||
assert_equals(results.length, 0);
|
||||
|
||||
assert_equals(eventRegistration.id, registration.id);
|
||||
assert_equals(eventRegistration.result, 'success');
|
||||
assert_equals(eventRegistration.failureReason, '');
|
||||
|
||||
}, 'Matching to a non-existing request should work');
|
|
@ -13,10 +13,33 @@ async function getFetchResult(record) {
|
|||
}
|
||||
|
||||
function handleBackgroundFetchEvent(event) {
|
||||
let matchFunction = null;
|
||||
switch (event.registration.id) {
|
||||
case 'matchexistingrequest':
|
||||
matchFunction = event.registration.match.bind(
|
||||
event.registration, '/background-fetch/resources/feature-name.txt');
|
||||
break;
|
||||
case 'matchmissingrequest':
|
||||
matchFunction = event.registration.match.bind(
|
||||
event.registration, '/background-fetch/resources/missing.txt');
|
||||
break;
|
||||
default:
|
||||
matchFunction = event.registration.matchAll.bind(event.registration);
|
||||
break;
|
||||
}
|
||||
|
||||
event.waitUntil(
|
||||
event.registration.matchAll()
|
||||
matchFunction()
|
||||
// Format `match(All)?` function results.
|
||||
.then(records => {
|
||||
if (!records) return []; // Nothing was matched.
|
||||
if (!records.map) return [records]; // One entry was returned.
|
||||
return records; // Already in a list.
|
||||
})
|
||||
// Extract responses.
|
||||
.then(records =>
|
||||
Promise.all(records.map(record => getFetchResult(record))))
|
||||
// Clone registration and send message.
|
||||
.then(results => {
|
||||
const registrationCopy = cloneRegistration(event.registration);
|
||||
sendMessageToDocument(
|
||||
|
|
|
@ -43,7 +43,6 @@
|
|||
{file: "disabled-chromium0020", name: "disabled-chromium0020"},
|
||||
{file: "chromium0021", name: "chromium0021"},
|
||||
{file: "disabled-chromium0022", name: "disabled-chromium0022"},
|
||||
{file: "disabled-chromium0023", name: "disabled-chromium0023"},
|
||||
];
|
||||
|
||||
for (const i in TEST_CASES) {
|
||||
|
|
Binary file not shown.
|
@ -1 +0,0 @@
|
|||
Cookie: AAA=BB
|
|
@ -1 +0,0 @@
|
|||
Set-Cookie: AAA=BB
ZYX
|
|
@ -6,18 +6,18 @@
|
|||
<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-items">
|
||||
<link rel="match" href="reference/flex-flexitem-percentage-prescation-ref.html">
|
||||
<meta name="flags" content="" />
|
||||
<meta name="assert" content="no blue color could be seen." />
|
||||
<meta name="assert" content="no red color could be seen." />
|
||||
<style type="text/css">
|
||||
#test
|
||||
{
|
||||
background: blue;
|
||||
background: red;
|
||||
display: flex;
|
||||
height:300px;
|
||||
width:101px;
|
||||
}
|
||||
p {
|
||||
flex:1;
|
||||
background:red;
|
||||
background:olive;
|
||||
flex-direction:row;
|
||||
margin:0 0 0 0;
|
||||
}
|
||||
|
@ -25,8 +25,8 @@
|
|||
</head>
|
||||
<body>
|
||||
<div id="test">
|
||||
<p style="background:green;">damer</p>
|
||||
<p>damer</p>
|
||||
<p style="background:green;">d</p>
|
||||
<p>d</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -0,0 +1,49 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CSS Flexible Box Test: Minimum height of flex items</title>
|
||||
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
|
||||
<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#min-size-auto" title="4.5. Implied Minimum Size of Flex Items" />
|
||||
<link rel="match" href="../reference/ref-filled-green-100px-square.xht" />
|
||||
<meta name="assert" content="Checks that minimum height for flex items is the min-content size." />
|
||||
<style type="text/css"><![CDATA[
|
||||
#reference-overlapped-red {
|
||||
position: absolute;
|
||||
background-color: red;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
#constrained-flex {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
width: 100px;
|
||||
height: 10px;
|
||||
}
|
||||
|
||||
#test-flex-item-overlapping-green {
|
||||
display: flex;
|
||||
flex-basis: 0;
|
||||
color: green;
|
||||
background-color: green;
|
||||
font: 50px/1 Ahem;
|
||||
}
|
||||
|
||||
#content-100x100 {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
}
|
||||
]]></style>
|
||||
</head>
|
||||
<body>
|
||||
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||
|
||||
<div id="reference-overlapped-red"></div>
|
||||
<div id="constrained-flex">
|
||||
<div id="test-flex-item-overlapping-green">
|
||||
<div id="content-100x100"></div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -7,7 +7,7 @@
|
|||
<style>
|
||||
#test
|
||||
{
|
||||
background: blue;
|
||||
background: red;
|
||||
position:relative;
|
||||
height:300px;
|
||||
width:101px;
|
||||
|
@ -23,8 +23,8 @@
|
|||
<body>
|
||||
<div id="test">
|
||||
<div id="test">
|
||||
<p style="background:green;top:0px;height:300px;left:0px;height:300px;width:50.5px;">damer</p>
|
||||
<p style="top:0px;left:50.5px;height:300px;background:Red;width:50.5px;">damer</p>
|
||||
<p style="background:green;top:0px;height:300px;left:0px;height:300px;width:50.5px;">d</p>
|
||||
<p style="top:0px;left:50.5px;height:300px;background:olive;width:50.5px;">d</p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -0,0 +1,356 @@
|
|||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>CSS Test: feature property settings are resolved in the correct order for 'liga'.</title>
|
||||
<link rel="author" title="Ben Wagner" href="bungeman@chromium.org" />
|
||||
<link rel="help" href="https://www.w3.org/TR/css-fonts-3/#feature-precedence" />
|
||||
<style>
|
||||
@font-face {
|
||||
font-family: lato-ffs-;
|
||||
src: url(support/fonts/Lato-Medium.ttf);
|
||||
}
|
||||
.test, .ref {
|
||||
font-family: lato-ffs-;
|
||||
font-size: 2em;
|
||||
position: absolute;
|
||||
}
|
||||
.test { color: green; }
|
||||
.ref { color: red; }
|
||||
|
||||
.align { width: 1em; }
|
||||
|
||||
.ls-0 { letter-spacing: 0em; }
|
||||
.ls-1 { letter-spacing: 0.1em; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p>Test passes if there is no red visible.</p>
|
||||
<table class="ref"><tr>
|
||||
|
||||
<td class="align ff- fvl- ls- ffs- ">fi</td>
|
||||
<td class="align ff- fvl- ls- ffs-n">fi</td>
|
||||
<td class="align ff- fvl- ls- ffs-0">f‌i</td>
|
||||
<td class="align ff- fvl- ls- ffs-1">fi</td>
|
||||
<td class="align ff- fvl- ls-0 ffs- ">fi</td>
|
||||
<td class="align ff- fvl- ls-0 ffs-n">fi</td>
|
||||
<td class="align ff- fvl- ls-0 ffs-0">f‌i</td>
|
||||
<td class="align ff- fvl- ls-0 ffs-1">fi</td>
|
||||
<td class="align ff- fvl- ls-1 ffs- ">f‌i</td>
|
||||
<td class="align ff- fvl- ls-1 ffs-n">f‌i</td>
|
||||
<td class="align ff- fvl- ls-1 ffs-0">f‌i</td>
|
||||
<td class="align ff- fvl- ls-1 ffs-1">fi</td>
|
||||
</tr><tr>
|
||||
<td class="align ff- fvl-n ls- ffs- ">fi</td>
|
||||
<td class="align ff- fvl-n ls- ffs-n">fi</td>
|
||||
<td class="align ff- fvl-n ls- ffs-0">f‌i</td>
|
||||
<td class="align ff- fvl-n ls- ffs-1">fi</td>
|
||||
<td class="align ff- fvl-n ls-0 ffs- ">fi</td>
|
||||
<td class="align ff- fvl-n ls-0 ffs-n">fi</td>
|
||||
<td class="align ff- fvl-n ls-0 ffs-0">f‌i</td>
|
||||
<td class="align ff- fvl-n ls-0 ffs-1">fi</td>
|
||||
<td class="align ff- fvl-n ls-1 ffs- ">f‌i</td>
|
||||
<td class="align ff- fvl-n ls-1 ffs-n">f‌i</td>
|
||||
<td class="align ff- fvl-n ls-1 ffs-0">f‌i</td>
|
||||
<td class="align ff- fvl-n ls-1 ffs-1">fi</td>
|
||||
</tr><tr>
|
||||
<td class="align ff- fvl-0 ls- ffs- ">f‌i</td>
|
||||
<td class="align ff- fvl-0 ls- ffs-n">f‌i</td>
|
||||
<td class="align ff- fvl-0 ls- ffs-0">f‌i</td>
|
||||
<td class="align ff- fvl-0 ls- ffs-1">fi</td>
|
||||
<td class="align ff- fvl-0 ls-0 ffs- ">f‌i</td>
|
||||
<td class="align ff- fvl-0 ls-0 ffs-n">f‌i</td>
|
||||
<td class="align ff- fvl-0 ls-0 ffs-0">f‌i</td>
|
||||
<td class="align ff- fvl-0 ls-0 ffs-1">fi</td>
|
||||
<td class="align ff- fvl-0 ls-1 ffs- ">f‌i</td>
|
||||
<td class="align ff- fvl-0 ls-1 ffs-n">f‌i</td>
|
||||
<td class="align ff- fvl-0 ls-1 ffs-0">f‌i</td>
|
||||
<td class="align ff- fvl-0 ls-1 ffs-1">fi</td>
|
||||
</tr><tr>
|
||||
<td class="align ff- fvl-1 ls- ffs- ">fi</td>
|
||||
<td class="align ff- fvl-1 ls- ffs-n">fi</td>
|
||||
<td class="align ff- fvl-1 ls- ffs-0">f‌i</td>
|
||||
<td class="align ff- fvl-1 ls- ffs-1">fi</td>
|
||||
<td class="align ff- fvl-1 ls-0 ffs- ">fi</td>
|
||||
<td class="align ff- fvl-1 ls-0 ffs-n">fi</td>
|
||||
<td class="align ff- fvl-1 ls-0 ffs-0">f‌i</td>
|
||||
<td class="align ff- fvl-1 ls-0 ffs-1">fi</td>
|
||||
<td class="align ff- fvl-1 ls-1 ffs- ">f‌i</td>
|
||||
<td class="align ff- fvl-1 ls-1 ffs-n">f‌i</td>
|
||||
<td class="align ff- fvl-1 ls-1 ffs-0">f‌i</td>
|
||||
<td class="align ff- fvl-1 ls-1 ffs-1">fi</td>
|
||||
|
||||
</tr><tr>
|
||||
|
||||
<td class="align ff-0 fvl- ls- ffs- ">f‌i</td>
|
||||
<td class="align ff-0 fvl- ls- ffs-n">f‌i</td>
|
||||
<td class="align ff-0 fvl- ls- ffs-0">f‌i</td>
|
||||
<td class="align ff-0 fvl- ls- ffs-1">fi</td>
|
||||
<td class="align ff-0 fvl- ls-0 ffs- ">f‌i</td>
|
||||
<td class="align ff-0 fvl- ls-0 ffs-n">f‌i</td>
|
||||
<td class="align ff-0 fvl- ls-0 ffs-0">f‌i</td>
|
||||
<td class="align ff-0 fvl- ls-0 ffs-1">fi</td>
|
||||
<td class="align ff-0 fvl- ls-1 ffs- ">f‌i</td>
|
||||
<td class="align ff-0 fvl- ls-1 ffs-n">f‌i</td>
|
||||
<td class="align ff-0 fvl- ls-1 ffs-0">f‌i</td>
|
||||
<td class="align ff-0 fvl- ls-1 ffs-1">fi</td>
|
||||
</tr><tr>
|
||||
<td class="align ff-0 fvl-n ls- ffs- ">f‌i</td>
|
||||
<td class="align ff-0 fvl-n ls- ffs-n">f‌i</td>
|
||||
<td class="align ff-0 fvl-n ls- ffs-0">f‌i</td>
|
||||
<td class="align ff-0 fvl-n ls- ffs-1">fi</td>
|
||||
<td class="align ff-0 fvl-n ls-0 ffs- ">f‌i</td>
|
||||
<td class="align ff-0 fvl-n ls-0 ffs-n">f‌i</td>
|
||||
<td class="align ff-0 fvl-n ls-0 ffs-0">f‌i</td>
|
||||
<td class="align ff-0 fvl-n ls-0 ffs-1">fi</td>
|
||||
<td class="align ff-0 fvl-n ls-1 ffs- ">f‌i</td>
|
||||
<td class="align ff-0 fvl-n ls-1 ffs-n">f‌i</td>
|
||||
<td class="align ff-0 fvl-n ls-1 ffs-0">f‌i</td>
|
||||
<td class="align ff-0 fvl-n ls-1 ffs-1">fi</td>
|
||||
</tr><tr>
|
||||
<td class="align ff-0 fvl-0 ls- ffs- ">f‌i</td>
|
||||
<td class="align ff-0 fvl-0 ls- ffs-n">f‌i</td>
|
||||
<td class="align ff-0 fvl-0 ls- ffs-0">f‌i</td>
|
||||
<td class="align ff-0 fvl-0 ls- ffs-1">fi</td>
|
||||
<td class="align ff-0 fvl-0 ls-0 ffs- ">f‌i</td>
|
||||
<td class="align ff-0 fvl-0 ls-0 ffs-n">f‌i</td>
|
||||
<td class="align ff-0 fvl-0 ls-0 ffs-0">f‌i</td>
|
||||
<td class="align ff-0 fvl-0 ls-0 ffs-1">fi</td>
|
||||
<td class="align ff-0 fvl-0 ls-1 ffs- ">f‌i</td>
|
||||
<td class="align ff-0 fvl-0 ls-1 ffs-n">f‌i</td>
|
||||
<td class="align ff-0 fvl-0 ls-1 ffs-0">f‌i</td>
|
||||
<td class="align ff-0 fvl-0 ls-1 ffs-1">fi</td>
|
||||
</tr><tr>
|
||||
<td class="align ff-0 fvl-1 ls- ffs- ">fi</td>
|
||||
<td class="align ff-0 fvl-1 ls- ffs-n">fi</td>
|
||||
<td class="align ff-0 fvl-1 ls- ffs-0">f‌i</td>
|
||||
<td class="align ff-0 fvl-1 ls- ffs-1">fi</td>
|
||||
<td class="align ff-0 fvl-1 ls-0 ffs- ">fi</td>
|
||||
<td class="align ff-0 fvl-1 ls-0 ffs-n">fi</td>
|
||||
<td class="align ff-0 fvl-1 ls-0 ffs-0">f‌i</td>
|
||||
<td class="align ff-0 fvl-1 ls-0 ffs-1">fi</td>
|
||||
<td class="align ff-0 fvl-1 ls-1 ffs- ">f‌i</td>
|
||||
<td class="align ff-0 fvl-1 ls-1 ffs-n">f‌i</td>
|
||||
<td class="align ff-0 fvl-1 ls-1 ffs-0">f‌i</td>
|
||||
<td class="align ff-0 fvl-1 ls-1 ffs-1">fi</td>
|
||||
|
||||
</tr><tr>
|
||||
|
||||
<td class="align ff-1 fvl- ls- ffs- ">fi</td>
|
||||
<td class="align ff-1 fvl- ls- ffs-n">fi</td>
|
||||
<td class="align ff-1 fvl- ls- ffs-0">f‌i</td>
|
||||
<td class="align ff-1 fvl- ls- ffs-1">fi</td>
|
||||
<td class="align ff-1 fvl- ls-0 ffs- ">fi</td>
|
||||
<td class="align ff-1 fvl- ls-0 ffs-n">fi</td>
|
||||
<td class="align ff-1 fvl- ls-0 ffs-0">f‌i</td>
|
||||
<td class="align ff-1 fvl- ls-0 ffs-1">fi</td>
|
||||
<td class="align ff-1 fvl- ls-1 ffs- ">f‌i</td>
|
||||
<td class="align ff-1 fvl- ls-1 ffs-n">f‌i</td>
|
||||
<td class="align ff-1 fvl- ls-1 ffs-0">f‌i</td>
|
||||
<td class="align ff-1 fvl- ls-1 ffs-1">fi</td>
|
||||
</tr><tr>
|
||||
<td class="align ff-1 fvl-n ls- ffs- ">fi</td>
|
||||
<td class="align ff-1 fvl-n ls- ffs-n">fi</td>
|
||||
<td class="align ff-1 fvl-n ls- ffs-0">f‌i</td>
|
||||
<td class="align ff-1 fvl-n ls- ffs-1">fi</td>
|
||||
<td class="align ff-1 fvl-n ls-0 ffs- ">fi</td>
|
||||
<td class="align ff-1 fvl-n ls-0 ffs-n">fi</td>
|
||||
<td class="align ff-1 fvl-n ls-0 ffs-0">f‌i</td>
|
||||
<td class="align ff-1 fvl-n ls-0 ffs-1">fi</td>
|
||||
<td class="align ff-1 fvl-n ls-1 ffs- ">f‌i</td>
|
||||
<td class="align ff-1 fvl-n ls-1 ffs-n">f‌i</td>
|
||||
<td class="align ff-1 fvl-n ls-1 ffs-0">f‌i</td>
|
||||
<td class="align ff-1 fvl-n ls-1 ffs-1">fi</td>
|
||||
</tr><tr>
|
||||
<td class="align ff-1 fvl-0 ls- ffs- ">f‌i</td>
|
||||
<td class="align ff-1 fvl-0 ls- ffs-n">f‌i</td>
|
||||
<td class="align ff-1 fvl-0 ls- ffs-0">f‌i</td>
|
||||
<td class="align ff-1 fvl-0 ls- ffs-1">fi</td>
|
||||
<td class="align ff-1 fvl-0 ls-0 ffs- ">f‌i</td>
|
||||
<td class="align ff-1 fvl-0 ls-0 ffs-n">f‌i</td>
|
||||
<td class="align ff-1 fvl-0 ls-0 ffs-0">f‌i</td>
|
||||
<td class="align ff-1 fvl-0 ls-0 ffs-1">fi</td>
|
||||
<td class="align ff-1 fvl-0 ls-1 ffs- ">f‌i</td>
|
||||
<td class="align ff-1 fvl-0 ls-1 ffs-n">f‌i</td>
|
||||
<td class="align ff-1 fvl-0 ls-1 ffs-0">f‌i</td>
|
||||
<td class="align ff-1 fvl-0 ls-1 ffs-1">fi</td>
|
||||
</tr><tr>
|
||||
<td class="align ff-1 fvl-1 ls- ffs- ">fi</td>
|
||||
<td class="align ff-1 fvl-1 ls- ffs-n">fi</td>
|
||||
<td class="align ff-1 fvl-1 ls- ffs-0">f‌i</td>
|
||||
<td class="align ff-1 fvl-1 ls- ffs-1">fi</td>
|
||||
<td class="align ff-1 fvl-1 ls-0 ffs- ">fi</td>
|
||||
<td class="align ff-1 fvl-1 ls-0 ffs-n">fi</td>
|
||||
<td class="align ff-1 fvl-1 ls-0 ffs-0">f‌i</td>
|
||||
<td class="align ff-1 fvl-1 ls-0 ffs-1">fi</td>
|
||||
<td class="align ff-1 fvl-1 ls-1 ffs- ">f‌i</td>
|
||||
<td class="align ff-1 fvl-1 ls-1 ffs-n">f‌i</td>
|
||||
<td class="align ff-1 fvl-1 ls-1 ffs-0">f‌i</td>
|
||||
<td class="align ff-1 fvl-1 ls-1 ffs-1">fi</td>
|
||||
|
||||
</tr></table>
|
||||
<table class="test"><tr>
|
||||
|
||||
<td class="align ff- fvl- ls- ffs- ">fi</td>
|
||||
<td class="align ff- fvl- ls- ffs-n">fi</td>
|
||||
<td class="align ff- fvl- ls- ffs-0">f‌i</td>
|
||||
<td class="align ff- fvl- ls- ffs-1">fi</td>
|
||||
<td class="align ff- fvl- ls-0 ffs- ">fi</td>
|
||||
<td class="align ff- fvl- ls-0 ffs-n">fi</td>
|
||||
<td class="align ff- fvl- ls-0 ffs-0">f‌i</td>
|
||||
<td class="align ff- fvl- ls-0 ffs-1">fi</td>
|
||||
<td class="align ff- fvl- ls-1 ffs- ">f‌i</td>
|
||||
<td class="align ff- fvl- ls-1 ffs-n">f‌i</td>
|
||||
<td class="align ff- fvl- ls-1 ffs-0">f‌i</td>
|
||||
<td class="align ff- fvl- ls-1 ffs-1">fi</td>
|
||||
</tr><tr>
|
||||
<td class="align ff- fvl-n ls- ffs- ">fi</td>
|
||||
<td class="align ff- fvl-n ls- ffs-n">fi</td>
|
||||
<td class="align ff- fvl-n ls- ffs-0">f‌i</td>
|
||||
<td class="align ff- fvl-n ls- ffs-1">fi</td>
|
||||
<td class="align ff- fvl-n ls-0 ffs- ">fi</td>
|
||||
<td class="align ff- fvl-n ls-0 ffs-n">fi</td>
|
||||
<td class="align ff- fvl-n ls-0 ffs-0">f‌i</td>
|
||||
<td class="align ff- fvl-n ls-0 ffs-1">fi</td>
|
||||
<td class="align ff- fvl-n ls-1 ffs- ">f‌i</td>
|
||||
<td class="align ff- fvl-n ls-1 ffs-n">f‌i</td>
|
||||
<td class="align ff- fvl-n ls-1 ffs-0">f‌i</td>
|
||||
<td class="align ff- fvl-n ls-1 ffs-1">fi</td>
|
||||
</tr><tr>
|
||||
<td class="align ff- fvl-0 ls- ffs- ">f‌i</td>
|
||||
<td class="align ff- fvl-0 ls- ffs-n">f‌i</td>
|
||||
<td class="align ff- fvl-0 ls- ffs-0">f‌i</td>
|
||||
<td class="align ff- fvl-0 ls- ffs-1">fi</td>
|
||||
<td class="align ff- fvl-0 ls-0 ffs- ">f‌i</td>
|
||||
<td class="align ff- fvl-0 ls-0 ffs-n">f‌i</td>
|
||||
<td class="align ff- fvl-0 ls-0 ffs-0">f‌i</td>
|
||||
<td class="align ff- fvl-0 ls-0 ffs-1">fi</td>
|
||||
<td class="align ff- fvl-0 ls-1 ffs- ">f‌i</td>
|
||||
<td class="align ff- fvl-0 ls-1 ffs-n">f‌i</td>
|
||||
<td class="align ff- fvl-0 ls-1 ffs-0">f‌i</td>
|
||||
<td class="align ff- fvl-0 ls-1 ffs-1">fi</td>
|
||||
</tr><tr>
|
||||
<td class="align ff- fvl-1 ls- ffs- ">fi</td>
|
||||
<td class="align ff- fvl-1 ls- ffs-n">fi</td>
|
||||
<td class="align ff- fvl-1 ls- ffs-0">f‌i</td>
|
||||
<td class="align ff- fvl-1 ls- ffs-1">fi</td>
|
||||
<td class="align ff- fvl-1 ls-0 ffs- ">fi</td>
|
||||
<td class="align ff- fvl-1 ls-0 ffs-n">fi</td>
|
||||
<td class="align ff- fvl-1 ls-0 ffs-0">f‌i</td>
|
||||
<td class="align ff- fvl-1 ls-0 ffs-1">fi</td>
|
||||
<td class="align ff- fvl-1 ls-1 ffs- ">f‌i</td>
|
||||
<td class="align ff- fvl-1 ls-1 ffs-n">f‌i</td>
|
||||
<td class="align ff- fvl-1 ls-1 ffs-0">f‌i</td>
|
||||
<td class="align ff- fvl-1 ls-1 ffs-1">fi</td>
|
||||
|
||||
</tr><tr>
|
||||
|
||||
<td class="align ff-0 fvl- ls- ffs- ">f‌i</td>
|
||||
<td class="align ff-0 fvl- ls- ffs-n">f‌i</td>
|
||||
<td class="align ff-0 fvl- ls- ffs-0">f‌i</td>
|
||||
<td class="align ff-0 fvl- ls- ffs-1">fi</td>
|
||||
<td class="align ff-0 fvl- ls-0 ffs- ">f‌i</td>
|
||||
<td class="align ff-0 fvl- ls-0 ffs-n">f‌i</td>
|
||||
<td class="align ff-0 fvl- ls-0 ffs-0">f‌i</td>
|
||||
<td class="align ff-0 fvl- ls-0 ffs-1">fi</td>
|
||||
<td class="align ff-0 fvl- ls-1 ffs- ">f‌i</td>
|
||||
<td class="align ff-0 fvl- ls-1 ffs-n">f‌i</td>
|
||||
<td class="align ff-0 fvl- ls-1 ffs-0">f‌i</td>
|
||||
<td class="align ff-0 fvl- ls-1 ffs-1">fi</td>
|
||||
</tr><tr>
|
||||
<td class="align ff-0 fvl-n ls- ffs- ">f‌i</td>
|
||||
<td class="align ff-0 fvl-n ls- ffs-n">f‌i</td>
|
||||
<td class="align ff-0 fvl-n ls- ffs-0">f‌i</td>
|
||||
<td class="align ff-0 fvl-n ls- ffs-1">fi</td>
|
||||
<td class="align ff-0 fvl-n ls-0 ffs- ">f‌i</td>
|
||||
<td class="align ff-0 fvl-n ls-0 ffs-n">f‌i</td>
|
||||
<td class="align ff-0 fvl-n ls-0 ffs-0">f‌i</td>
|
||||
<td class="align ff-0 fvl-n ls-0 ffs-1">fi</td>
|
||||
<td class="align ff-0 fvl-n ls-1 ffs- ">f‌i</td>
|
||||
<td class="align ff-0 fvl-n ls-1 ffs-n">f‌i</td>
|
||||
<td class="align ff-0 fvl-n ls-1 ffs-0">f‌i</td>
|
||||
<td class="align ff-0 fvl-n ls-1 ffs-1">fi</td>
|
||||
</tr><tr>
|
||||
<td class="align ff-0 fvl-0 ls- ffs- ">f‌i</td>
|
||||
<td class="align ff-0 fvl-0 ls- ffs-n">f‌i</td>
|
||||
<td class="align ff-0 fvl-0 ls- ffs-0">f‌i</td>
|
||||
<td class="align ff-0 fvl-0 ls- ffs-1">fi</td>
|
||||
<td class="align ff-0 fvl-0 ls-0 ffs- ">f‌i</td>
|
||||
<td class="align ff-0 fvl-0 ls-0 ffs-n">f‌i</td>
|
||||
<td class="align ff-0 fvl-0 ls-0 ffs-0">f‌i</td>
|
||||
<td class="align ff-0 fvl-0 ls-0 ffs-1">fi</td>
|
||||
<td class="align ff-0 fvl-0 ls-1 ffs- ">f‌i</td>
|
||||
<td class="align ff-0 fvl-0 ls-1 ffs-n">f‌i</td>
|
||||
<td class="align ff-0 fvl-0 ls-1 ffs-0">f‌i</td>
|
||||
<td class="align ff-0 fvl-0 ls-1 ffs-1">fi</td>
|
||||
</tr><tr>
|
||||
<td class="align ff-0 fvl-1 ls- ffs- ">fi</td>
|
||||
<td class="align ff-0 fvl-1 ls- ffs-n">fi</td>
|
||||
<td class="align ff-0 fvl-1 ls- ffs-0">f‌i</td>
|
||||
<td class="align ff-0 fvl-1 ls- ffs-1">fi</td>
|
||||
<td class="align ff-0 fvl-1 ls-0 ffs- ">fi</td>
|
||||
<td class="align ff-0 fvl-1 ls-0 ffs-n">fi</td>
|
||||
<td class="align ff-0 fvl-1 ls-0 ffs-0">f‌i</td>
|
||||
<td class="align ff-0 fvl-1 ls-0 ffs-1">fi</td>
|
||||
<td class="align ff-0 fvl-1 ls-1 ffs- ">f‌i</td>
|
||||
<td class="align ff-0 fvl-1 ls-1 ffs-n">f‌i</td>
|
||||
<td class="align ff-0 fvl-1 ls-1 ffs-0">f‌i</td>
|
||||
<td class="align ff-0 fvl-1 ls-1 ffs-1">fi</td>
|
||||
|
||||
</tr><tr>
|
||||
|
||||
<td class="align ff-1 fvl- ls- ffs- ">fi</td>
|
||||
<td class="align ff-1 fvl- ls- ffs-n">fi</td>
|
||||
<td class="align ff-1 fvl- ls- ffs-0">f‌i</td>
|
||||
<td class="align ff-1 fvl- ls- ffs-1">fi</td>
|
||||
<td class="align ff-1 fvl- ls-0 ffs- ">fi</td>
|
||||
<td class="align ff-1 fvl- ls-0 ffs-n">fi</td>
|
||||
<td class="align ff-1 fvl- ls-0 ffs-0">f‌i</td>
|
||||
<td class="align ff-1 fvl- ls-0 ffs-1">fi</td>
|
||||
<td class="align ff-1 fvl- ls-1 ffs- ">f‌i</td>
|
||||
<td class="align ff-1 fvl- ls-1 ffs-n">f‌i</td>
|
||||
<td class="align ff-1 fvl- ls-1 ffs-0">f‌i</td>
|
||||
<td class="align ff-1 fvl- ls-1 ffs-1">fi</td>
|
||||
</tr><tr>
|
||||
<td class="align ff-1 fvl-n ls- ffs- ">fi</td>
|
||||
<td class="align ff-1 fvl-n ls- ffs-n">fi</td>
|
||||
<td class="align ff-1 fvl-n ls- ffs-0">f‌i</td>
|
||||
<td class="align ff-1 fvl-n ls- ffs-1">fi</td>
|
||||
<td class="align ff-1 fvl-n ls-0 ffs- ">fi</td>
|
||||
<td class="align ff-1 fvl-n ls-0 ffs-n">fi</td>
|
||||
<td class="align ff-1 fvl-n ls-0 ffs-0">f‌i</td>
|
||||
<td class="align ff-1 fvl-n ls-0 ffs-1">fi</td>
|
||||
<td class="align ff-1 fvl-n ls-1 ffs- ">f‌i</td>
|
||||
<td class="align ff-1 fvl-n ls-1 ffs-n">f‌i</td>
|
||||
<td class="align ff-1 fvl-n ls-1 ffs-0">f‌i</td>
|
||||
<td class="align ff-1 fvl-n ls-1 ffs-1">fi</td>
|
||||
</tr><tr>
|
||||
<td class="align ff-1 fvl-0 ls- ffs- ">f‌i</td>
|
||||
<td class="align ff-1 fvl-0 ls- ffs-n">f‌i</td>
|
||||
<td class="align ff-1 fvl-0 ls- ffs-0">f‌i</td>
|
||||
<td class="align ff-1 fvl-0 ls- ffs-1">fi</td>
|
||||
<td class="align ff-1 fvl-0 ls-0 ffs- ">f‌i</td>
|
||||
<td class="align ff-1 fvl-0 ls-0 ffs-n">f‌i</td>
|
||||
<td class="align ff-1 fvl-0 ls-0 ffs-0">f‌i</td>
|
||||
<td class="align ff-1 fvl-0 ls-0 ffs-1">fi</td>
|
||||
<td class="align ff-1 fvl-0 ls-1 ffs- ">f‌i</td>
|
||||
<td class="align ff-1 fvl-0 ls-1 ffs-n">f‌i</td>
|
||||
<td class="align ff-1 fvl-0 ls-1 ffs-0">f‌i</td>
|
||||
<td class="align ff-1 fvl-0 ls-1 ffs-1">fi</td>
|
||||
</tr><tr>
|
||||
<td class="align ff-1 fvl-1 ls- ffs- ">fi</td>
|
||||
<td class="align ff-1 fvl-1 ls- ffs-n">fi</td>
|
||||
<td class="align ff-1 fvl-1 ls- ffs-0">f‌i</td>
|
||||
<td class="align ff-1 fvl-1 ls- ffs-1">fi</td>
|
||||
<td class="align ff-1 fvl-1 ls-0 ffs- ">fi</td>
|
||||
<td class="align ff-1 fvl-1 ls-0 ffs-n">fi</td>
|
||||
<td class="align ff-1 fvl-1 ls-0 ffs-0">f‌i</td>
|
||||
<td class="align ff-1 fvl-1 ls-0 ffs-1">fi</td>
|
||||
<td class="align ff-1 fvl-1 ls-1 ffs- ">f‌i</td>
|
||||
<td class="align ff-1 fvl-1 ls-1 ffs-n">f‌i</td>
|
||||
<td class="align ff-1 fvl-1 ls-1 ffs-0">f‌i</td>
|
||||
<td class="align ff-1 fvl-1 ls-1 ffs-1">fi</td>
|
||||
|
||||
</tr></table>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,383 @@
|
|||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>CSS Test: feature property settings are resolved in the correct order for 'liga'.</title>
|
||||
<link rel="author" title="Ben Wagner" href="bungeman@chromium.org" />
|
||||
<link rel="help" href="https://www.w3.org/TR/css-fonts-3/#feature-precedence" />
|
||||
<link rel="match" href="font-feature-resolution-001-ref.html" />
|
||||
<meta name="assert" content="default < @font-face < font-variant < letter-spacing < font-feature-settings" />
|
||||
<style>
|
||||
@font-face {
|
||||
font-family: lato-ffs-;
|
||||
src: url(support/fonts/Lato-Medium.ttf);
|
||||
}
|
||||
@font-face {
|
||||
font-family: lato-ffs-0;
|
||||
src: url(support/fonts/Lato-Medium.ttf);
|
||||
font-feature-settings: 'liga' off;
|
||||
}
|
||||
@font-face {
|
||||
font-family: lato-ffs-1;
|
||||
src: url(support/fonts/Lato-Medium.ttf);
|
||||
font-feature-settings: 'liga' on;
|
||||
}
|
||||
.test, .ref {
|
||||
font-family: lato-ffs-;
|
||||
font-size: 2em;
|
||||
position: absolute;
|
||||
}
|
||||
.test { color: green; }
|
||||
.ref { color: red; }
|
||||
|
||||
.align { width: 1em; }
|
||||
|
||||
.ff- { font-family: lato-ffs- ; }
|
||||
.ff-0 { font-family: lato-ffs-0; }
|
||||
.ff-1 { font-family: lato-ffs-1; }
|
||||
|
||||
.fvl- { }
|
||||
.fvl-n { font-variant-ligatures: normal; }
|
||||
.fvl-0 { font-variant-ligatures: no-common-ligatures; }
|
||||
.fvl-1 { font-variant-ligatures: common-ligatures; }
|
||||
|
||||
.ls- { }
|
||||
.ls-0 { letter-spacing: 0em; }
|
||||
.ls-1 { letter-spacing: 0.1em; }
|
||||
|
||||
.ffs- { }
|
||||
.ffs-n { font-feature-settings: normal; }
|
||||
.ffs-0 { font-feature-settings: 'liga' off; }
|
||||
.ffs-1 { font-feature-settings: 'liga' on; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p>Test passes if there is no red visible.</p>
|
||||
<table class="ref"><tr>
|
||||
|
||||
<td class="align ff- fvl- ls- ffs- ">fi</td>
|
||||
<td class="align ff- fvl- ls- ffs-n">fi</td>
|
||||
<td class="align ff- fvl- ls- ffs-0">f‌i</td>
|
||||
<td class="align ff- fvl- ls- ffs-1">fi</td>
|
||||
<td class="align ff- fvl- ls-0 ffs- ">fi</td>
|
||||
<td class="align ff- fvl- ls-0 ffs-n">fi</td>
|
||||
<td class="align ff- fvl- ls-0 ffs-0">f‌i</td>
|
||||
<td class="align ff- fvl- ls-0 ffs-1">fi</td>
|
||||
<td class="align ff- fvl- ls-1 ffs- ">f‌i</td>
|
||||
<td class="align ff- fvl- ls-1 ffs-n">f‌i</td>
|
||||
<td class="align ff- fvl- ls-1 ffs-0">f‌i</td>
|
||||
<td class="align ff- fvl- ls-1 ffs-1">fi</td>
|
||||
</tr><tr>
|
||||
<td class="align ff- fvl-n ls- ffs- ">fi</td>
|
||||
<td class="align ff- fvl-n ls- ffs-n">fi</td>
|
||||
<td class="align ff- fvl-n ls- ffs-0">f‌i</td>
|
||||
<td class="align ff- fvl-n ls- ffs-1">fi</td>
|
||||
<td class="align ff- fvl-n ls-0 ffs- ">fi</td>
|
||||
<td class="align ff- fvl-n ls-0 ffs-n">fi</td>
|
||||
<td class="align ff- fvl-n ls-0 ffs-0">f‌i</td>
|
||||
<td class="align ff- fvl-n ls-0 ffs-1">fi</td>
|
||||
<td class="align ff- fvl-n ls-1 ffs- ">f‌i</td>
|
||||
<td class="align ff- fvl-n ls-1 ffs-n">f‌i</td>
|
||||
<td class="align ff- fvl-n ls-1 ffs-0">f‌i</td>
|
||||
<td class="align ff- fvl-n ls-1 ffs-1">fi</td>
|
||||
</tr><tr>
|
||||
<td class="align ff- fvl-0 ls- ffs- ">f‌i</td>
|
||||
<td class="align ff- fvl-0 ls- ffs-n">f‌i</td>
|
||||
<td class="align ff- fvl-0 ls- ffs-0">f‌i</td>
|
||||
<td class="align ff- fvl-0 ls- ffs-1">fi</td>
|
||||
<td class="align ff- fvl-0 ls-0 ffs- ">f‌i</td>
|
||||
<td class="align ff- fvl-0 ls-0 ffs-n">f‌i</td>
|
||||
<td class="align ff- fvl-0 ls-0 ffs-0">f‌i</td>
|
||||
<td class="align ff- fvl-0 ls-0 ffs-1">fi</td>
|
||||
<td class="align ff- fvl-0 ls-1 ffs- ">f‌i</td>
|
||||
<td class="align ff- fvl-0 ls-1 ffs-n">f‌i</td>
|
||||
<td class="align ff- fvl-0 ls-1 ffs-0">f‌i</td>
|
||||
<td class="align ff- fvl-0 ls-1 ffs-1">fi</td>
|
||||
</tr><tr>
|
||||
<td class="align ff- fvl-1 ls- ffs- ">fi</td>
|
||||
<td class="align ff- fvl-1 ls- ffs-n">fi</td>
|
||||
<td class="align ff- fvl-1 ls- ffs-0">f‌i</td>
|
||||
<td class="align ff- fvl-1 ls- ffs-1">fi</td>
|
||||
<td class="align ff- fvl-1 ls-0 ffs- ">fi</td>
|
||||
<td class="align ff- fvl-1 ls-0 ffs-n">fi</td>
|
||||
<td class="align ff- fvl-1 ls-0 ffs-0">f‌i</td>
|
||||
<td class="align ff- fvl-1 ls-0 ffs-1">fi</td>
|
||||
<td class="align ff- fvl-1 ls-1 ffs- ">f‌i</td>
|
||||
<td class="align ff- fvl-1 ls-1 ffs-n">f‌i</td>
|
||||
<td class="align ff- fvl-1 ls-1 ffs-0">f‌i</td>
|
||||
<td class="align ff- fvl-1 ls-1 ffs-1">fi</td>
|
||||
|
||||
</tr><tr>
|
||||
|
||||
<td class="align ff-0 fvl- ls- ffs- ">f‌i</td>
|
||||
<td class="align ff-0 fvl- ls- ffs-n">f‌i</td>
|
||||
<td class="align ff-0 fvl- ls- ffs-0">f‌i</td>
|
||||
<td class="align ff-0 fvl- ls- ffs-1">fi</td>
|
||||
<td class="align ff-0 fvl- ls-0 ffs- ">f‌i</td>
|
||||
<td class="align ff-0 fvl- ls-0 ffs-n">f‌i</td>
|
||||
<td class="align ff-0 fvl- ls-0 ffs-0">f‌i</td>
|
||||
<td class="align ff-0 fvl- ls-0 ffs-1">fi</td>
|
||||
<td class="align ff-0 fvl- ls-1 ffs- ">f‌i</td>
|
||||
<td class="align ff-0 fvl- ls-1 ffs-n">f‌i</td>
|
||||
<td class="align ff-0 fvl- ls-1 ffs-0">f‌i</td>
|
||||
<td class="align ff-0 fvl- ls-1 ffs-1">fi</td>
|
||||
</tr><tr>
|
||||
<td class="align ff-0 fvl-n ls- ffs- ">f‌i</td>
|
||||
<td class="align ff-0 fvl-n ls- ffs-n">f‌i</td>
|
||||
<td class="align ff-0 fvl-n ls- ffs-0">f‌i</td>
|
||||
<td class="align ff-0 fvl-n ls- ffs-1">fi</td>
|
||||
<td class="align ff-0 fvl-n ls-0 ffs- ">f‌i</td>
|
||||
<td class="align ff-0 fvl-n ls-0 ffs-n">f‌i</td>
|
||||
<td class="align ff-0 fvl-n ls-0 ffs-0">f‌i</td>
|
||||
<td class="align ff-0 fvl-n ls-0 ffs-1">fi</td>
|
||||
<td class="align ff-0 fvl-n ls-1 ffs- ">f‌i</td>
|
||||
<td class="align ff-0 fvl-n ls-1 ffs-n">f‌i</td>
|
||||
<td class="align ff-0 fvl-n ls-1 ffs-0">f‌i</td>
|
||||
<td class="align ff-0 fvl-n ls-1 ffs-1">fi</td>
|
||||
</tr><tr>
|
||||
<td class="align ff-0 fvl-0 ls- ffs- ">f‌i</td>
|
||||
<td class="align ff-0 fvl-0 ls- ffs-n">f‌i</td>
|
||||
<td class="align ff-0 fvl-0 ls- ffs-0">f‌i</td>
|
||||
<td class="align ff-0 fvl-0 ls- ffs-1">fi</td>
|
||||
<td class="align ff-0 fvl-0 ls-0 ffs- ">f‌i</td>
|
||||
<td class="align ff-0 fvl-0 ls-0 ffs-n">f‌i</td>
|
||||
<td class="align ff-0 fvl-0 ls-0 ffs-0">f‌i</td>
|
||||
<td class="align ff-0 fvl-0 ls-0 ffs-1">fi</td>
|
||||
<td class="align ff-0 fvl-0 ls-1 ffs- ">f‌i</td>
|
||||
<td class="align ff-0 fvl-0 ls-1 ffs-n">f‌i</td>
|
||||
<td class="align ff-0 fvl-0 ls-1 ffs-0">f‌i</td>
|
||||
<td class="align ff-0 fvl-0 ls-1 ffs-1">fi</td>
|
||||
</tr><tr>
|
||||
<td class="align ff-0 fvl-1 ls- ffs- ">fi</td>
|
||||
<td class="align ff-0 fvl-1 ls- ffs-n">fi</td>
|
||||
<td class="align ff-0 fvl-1 ls- ffs-0">f‌i</td>
|
||||
<td class="align ff-0 fvl-1 ls- ffs-1">fi</td>
|
||||
<td class="align ff-0 fvl-1 ls-0 ffs- ">fi</td>
|
||||
<td class="align ff-0 fvl-1 ls-0 ffs-n">fi</td>
|
||||
<td class="align ff-0 fvl-1 ls-0 ffs-0">f‌i</td>
|
||||
<td class="align ff-0 fvl-1 ls-0 ffs-1">fi</td>
|
||||
<td class="align ff-0 fvl-1 ls-1 ffs- ">f‌i</td>
|
||||
<td class="align ff-0 fvl-1 ls-1 ffs-n">f‌i</td>
|
||||
<td class="align ff-0 fvl-1 ls-1 ffs-0">f‌i</td>
|
||||
<td class="align ff-0 fvl-1 ls-1 ffs-1">fi</td>
|
||||
|
||||
</tr><tr>
|
||||
|
||||
<td class="align ff-1 fvl- ls- ffs- ">fi</td>
|
||||
<td class="align ff-1 fvl- ls- ffs-n">fi</td>
|
||||
<td class="align ff-1 fvl- ls- ffs-0">f‌i</td>
|
||||
<td class="align ff-1 fvl- ls- ffs-1">fi</td>
|
||||
<td class="align ff-1 fvl- ls-0 ffs- ">fi</td>
|
||||
<td class="align ff-1 fvl- ls-0 ffs-n">fi</td>
|
||||
<td class="align ff-1 fvl- ls-0 ffs-0">f‌i</td>
|
||||
<td class="align ff-1 fvl- ls-0 ffs-1">fi</td>
|
||||
<td class="align ff-1 fvl- ls-1 ffs- ">f‌i</td>
|
||||
<td class="align ff-1 fvl- ls-1 ffs-n">f‌i</td>
|
||||
<td class="align ff-1 fvl- ls-1 ffs-0">f‌i</td>
|
||||
<td class="align ff-1 fvl- ls-1 ffs-1">fi</td>
|
||||
</tr><tr>
|
||||
<td class="align ff-1 fvl-n ls- ffs- ">fi</td>
|
||||
<td class="align ff-1 fvl-n ls- ffs-n">fi</td>
|
||||
<td class="align ff-1 fvl-n ls- ffs-0">f‌i</td>
|
||||
<td class="align ff-1 fvl-n ls- ffs-1">fi</td>
|
||||
<td class="align ff-1 fvl-n ls-0 ffs- ">fi</td>
|
||||
<td class="align ff-1 fvl-n ls-0 ffs-n">fi</td>
|
||||
<td class="align ff-1 fvl-n ls-0 ffs-0">f‌i</td>
|
||||
<td class="align ff-1 fvl-n ls-0 ffs-1">fi</td>
|
||||
<td class="align ff-1 fvl-n ls-1 ffs- ">f‌i</td>
|
||||
<td class="align ff-1 fvl-n ls-1 ffs-n">f‌i</td>
|
||||
<td class="align ff-1 fvl-n ls-1 ffs-0">f‌i</td>
|
||||
<td class="align ff-1 fvl-n ls-1 ffs-1">fi</td>
|
||||
</tr><tr>
|
||||
<td class="align ff-1 fvl-0 ls- ffs- ">f‌i</td>
|
||||
<td class="align ff-1 fvl-0 ls- ffs-n">f‌i</td>
|
||||
<td class="align ff-1 fvl-0 ls- ffs-0">f‌i</td>
|
||||
<td class="align ff-1 fvl-0 ls- ffs-1">fi</td>
|
||||
<td class="align ff-1 fvl-0 ls-0 ffs- ">f‌i</td>
|
||||
<td class="align ff-1 fvl-0 ls-0 ffs-n">f‌i</td>
|
||||
<td class="align ff-1 fvl-0 ls-0 ffs-0">f‌i</td>
|
||||
<td class="align ff-1 fvl-0 ls-0 ffs-1">fi</td>
|
||||
<td class="align ff-1 fvl-0 ls-1 ffs- ">f‌i</td>
|
||||
<td class="align ff-1 fvl-0 ls-1 ffs-n">f‌i</td>
|
||||
<td class="align ff-1 fvl-0 ls-1 ffs-0">f‌i</td>
|
||||
<td class="align ff-1 fvl-0 ls-1 ffs-1">fi</td>
|
||||
</tr><tr>
|
||||
<td class="align ff-1 fvl-1 ls- ffs- ">fi</td>
|
||||
<td class="align ff-1 fvl-1 ls- ffs-n">fi</td>
|
||||
<td class="align ff-1 fvl-1 ls- ffs-0">f‌i</td>
|
||||
<td class="align ff-1 fvl-1 ls- ffs-1">fi</td>
|
||||
<td class="align ff-1 fvl-1 ls-0 ffs- ">fi</td>
|
||||
<td class="align ff-1 fvl-1 ls-0 ffs-n">fi</td>
|
||||
<td class="align ff-1 fvl-1 ls-0 ffs-0">f‌i</td>
|
||||
<td class="align ff-1 fvl-1 ls-0 ffs-1">fi</td>
|
||||
<td class="align ff-1 fvl-1 ls-1 ffs- ">f‌i</td>
|
||||
<td class="align ff-1 fvl-1 ls-1 ffs-n">f‌i</td>
|
||||
<td class="align ff-1 fvl-1 ls-1 ffs-0">f‌i</td>
|
||||
<td class="align ff-1 fvl-1 ls-1 ffs-1">fi</td>
|
||||
|
||||
</tr></table>
|
||||
<table class="test"><tr>
|
||||
|
||||
<td class="align ff- fvl- ls- ffs- ">fi</td>
|
||||
<td class="align ff- fvl- ls- ffs-n">fi</td>
|
||||
<td class="align ff- fvl- ls- ffs-0">fi</td>
|
||||
<td class="align ff- fvl- ls- ffs-1">fi</td>
|
||||
<td class="align ff- fvl- ls-0 ffs- ">fi</td>
|
||||
<td class="align ff- fvl- ls-0 ffs-n">fi</td>
|
||||
<td class="align ff- fvl- ls-0 ffs-0">fi</td>
|
||||
<td class="align ff- fvl- ls-0 ffs-1">fi</td>
|
||||
<td class="align ff- fvl- ls-1 ffs- ">fi</td>
|
||||
<td class="align ff- fvl- ls-1 ffs-n">fi</td>
|
||||
<td class="align ff- fvl- ls-1 ffs-0">fi</td>
|
||||
<td class="align ff- fvl- ls-1 ffs-1">fi</td>
|
||||
</tr><tr>
|
||||
<td class="align ff- fvl-n ls- ffs- ">fi</td>
|
||||
<td class="align ff- fvl-n ls- ffs-n">fi</td>
|
||||
<td class="align ff- fvl-n ls- ffs-0">fi</td>
|
||||
<td class="align ff- fvl-n ls- ffs-1">fi</td>
|
||||
<td class="align ff- fvl-n ls-0 ffs- ">fi</td>
|
||||
<td class="align ff- fvl-n ls-0 ffs-n">fi</td>
|
||||
<td class="align ff- fvl-n ls-0 ffs-0">fi</td>
|
||||
<td class="align ff- fvl-n ls-0 ffs-1">fi</td>
|
||||
<td class="align ff- fvl-n ls-1 ffs- ">fi</td>
|
||||
<td class="align ff- fvl-n ls-1 ffs-n">fi</td>
|
||||
<td class="align ff- fvl-n ls-1 ffs-0">fi</td>
|
||||
<td class="align ff- fvl-n ls-1 ffs-1">fi</td>
|
||||
</tr><tr>
|
||||
<td class="align ff- fvl-0 ls- ffs- ">fi</td>
|
||||
<td class="align ff- fvl-0 ls- ffs-n">fi</td>
|
||||
<td class="align ff- fvl-0 ls- ffs-0">fi</td>
|
||||
<td class="align ff- fvl-0 ls- ffs-1">fi</td>
|
||||
<td class="align ff- fvl-0 ls-0 ffs- ">fi</td>
|
||||
<td class="align ff- fvl-0 ls-0 ffs-n">fi</td>
|
||||
<td class="align ff- fvl-0 ls-0 ffs-0">fi</td>
|
||||
<td class="align ff- fvl-0 ls-0 ffs-1">fi</td>
|
||||
<td class="align ff- fvl-0 ls-1 ffs- ">fi</td>
|
||||
<td class="align ff- fvl-0 ls-1 ffs-n">fi</td>
|
||||
<td class="align ff- fvl-0 ls-1 ffs-0">fi</td>
|
||||
<td class="align ff- fvl-0 ls-1 ffs-1">fi</td>
|
||||
</tr><tr>
|
||||
<td class="align ff- fvl-1 ls- ffs- ">fi</td>
|
||||
<td class="align ff- fvl-1 ls- ffs-n">fi</td>
|
||||
<td class="align ff- fvl-1 ls- ffs-0">fi</td>
|
||||
<td class="align ff- fvl-1 ls- ffs-1">fi</td>
|
||||
<td class="align ff- fvl-1 ls-0 ffs- ">fi</td>
|
||||
<td class="align ff- fvl-1 ls-0 ffs-n">fi</td>
|
||||
<td class="align ff- fvl-1 ls-0 ffs-0">fi</td>
|
||||
<td class="align ff- fvl-1 ls-0 ffs-1">fi</td>
|
||||
<td class="align ff- fvl-1 ls-1 ffs- ">fi</td>
|
||||
<td class="align ff- fvl-1 ls-1 ffs-n">fi</td>
|
||||
<td class="align ff- fvl-1 ls-1 ffs-0">fi</td>
|
||||
<td class="align ff- fvl-1 ls-1 ffs-1">fi</td>
|
||||
|
||||
</tr><tr>
|
||||
|
||||
<td class="align ff-0 fvl- ls- ffs- ">fi</td>
|
||||
<td class="align ff-0 fvl- ls- ffs-n">fi</td>
|
||||
<td class="align ff-0 fvl- ls- ffs-0">fi</td>
|
||||
<td class="align ff-0 fvl- ls- ffs-1">fi</td>
|
||||
<td class="align ff-0 fvl- ls-0 ffs- ">fi</td>
|
||||
<td class="align ff-0 fvl- ls-0 ffs-n">fi</td>
|
||||
<td class="align ff-0 fvl- ls-0 ffs-0">fi</td>
|
||||
<td class="align ff-0 fvl- ls-0 ffs-1">fi</td>
|
||||
<td class="align ff-0 fvl- ls-1 ffs- ">fi</td>
|
||||
<td class="align ff-0 fvl- ls-1 ffs-n">fi</td>
|
||||
<td class="align ff-0 fvl- ls-1 ffs-0">fi</td>
|
||||
<td class="align ff-0 fvl- ls-1 ffs-1">fi</td>
|
||||
</tr><tr>
|
||||
<td class="align ff-0 fvl-n ls- ffs- ">fi</td>
|
||||
<td class="align ff-0 fvl-n ls- ffs-n">fi</td>
|
||||
<td class="align ff-0 fvl-n ls- ffs-0">fi</td>
|
||||
<td class="align ff-0 fvl-n ls- ffs-1">fi</td>
|
||||
<td class="align ff-0 fvl-n ls-0 ffs- ">fi</td>
|
||||
<td class="align ff-0 fvl-n ls-0 ffs-n">fi</td>
|
||||
<td class="align ff-0 fvl-n ls-0 ffs-0">fi</td>
|
||||
<td class="align ff-0 fvl-n ls-0 ffs-1">fi</td>
|
||||
<td class="align ff-0 fvl-n ls-1 ffs- ">fi</td>
|
||||
<td class="align ff-0 fvl-n ls-1 ffs-n">fi</td>
|
||||
<td class="align ff-0 fvl-n ls-1 ffs-0">fi</td>
|
||||
<td class="align ff-0 fvl-n ls-1 ffs-1">fi</td>
|
||||
</tr><tr>
|
||||
<td class="align ff-0 fvl-0 ls- ffs- ">fi</td>
|
||||
<td class="align ff-0 fvl-0 ls- ffs-n">fi</td>
|
||||
<td class="align ff-0 fvl-0 ls- ffs-0">fi</td>
|
||||
<td class="align ff-0 fvl-0 ls- ffs-1">fi</td>
|
||||
<td class="align ff-0 fvl-0 ls-0 ffs- ">fi</td>
|
||||
<td class="align ff-0 fvl-0 ls-0 ffs-n">fi</td>
|
||||
<td class="align ff-0 fvl-0 ls-0 ffs-0">fi</td>
|
||||
<td class="align ff-0 fvl-0 ls-0 ffs-1">fi</td>
|
||||
<td class="align ff-0 fvl-0 ls-1 ffs- ">fi</td>
|
||||
<td class="align ff-0 fvl-0 ls-1 ffs-n">fi</td>
|
||||
<td class="align ff-0 fvl-0 ls-1 ffs-0">fi</td>
|
||||
<td class="align ff-0 fvl-0 ls-1 ffs-1">fi</td>
|
||||
</tr><tr>
|
||||
<td class="align ff-0 fvl-1 ls- ffs- ">fi</td>
|
||||
<td class="align ff-0 fvl-1 ls- ffs-n">fi</td>
|
||||
<td class="align ff-0 fvl-1 ls- ffs-0">fi</td>
|
||||
<td class="align ff-0 fvl-1 ls- ffs-1">fi</td>
|
||||
<td class="align ff-0 fvl-1 ls-0 ffs- ">fi</td>
|
||||
<td class="align ff-0 fvl-1 ls-0 ffs-n">fi</td>
|
||||
<td class="align ff-0 fvl-1 ls-0 ffs-0">fi</td>
|
||||
<td class="align ff-0 fvl-1 ls-0 ffs-1">fi</td>
|
||||
<td class="align ff-0 fvl-1 ls-1 ffs- ">fi</td>
|
||||
<td class="align ff-0 fvl-1 ls-1 ffs-n">fi</td>
|
||||
<td class="align ff-0 fvl-1 ls-1 ffs-0">fi</td>
|
||||
<td class="align ff-0 fvl-1 ls-1 ffs-1">fi</td>
|
||||
|
||||
</tr><tr>
|
||||
|
||||
<td class="align ff-1 fvl- ls- ffs- ">fi</td>
|
||||
<td class="align ff-1 fvl- ls- ffs-n">fi</td>
|
||||
<td class="align ff-1 fvl- ls- ffs-0">fi</td>
|
||||
<td class="align ff-1 fvl- ls- ffs-1">fi</td>
|
||||
<td class="align ff-1 fvl- ls-0 ffs- ">fi</td>
|
||||
<td class="align ff-1 fvl- ls-0 ffs-n">fi</td>
|
||||
<td class="align ff-1 fvl- ls-0 ffs-0">fi</td>
|
||||
<td class="align ff-1 fvl- ls-0 ffs-1">fi</td>
|
||||
<td class="align ff-1 fvl- ls-1 ffs- ">fi</td>
|
||||
<td class="align ff-1 fvl- ls-1 ffs-n">fi</td>
|
||||
<td class="align ff-1 fvl- ls-1 ffs-0">fi</td>
|
||||
<td class="align ff-1 fvl- ls-1 ffs-1">fi</td>
|
||||
</tr><tr>
|
||||
<td class="align ff-1 fvl-n ls- ffs- ">fi</td>
|
||||
<td class="align ff-1 fvl-n ls- ffs-n">fi</td>
|
||||
<td class="align ff-1 fvl-n ls- ffs-0">fi</td>
|
||||
<td class="align ff-1 fvl-n ls- ffs-1">fi</td>
|
||||
<td class="align ff-1 fvl-n ls-0 ffs- ">fi</td>
|
||||
<td class="align ff-1 fvl-n ls-0 ffs-n">fi</td>
|
||||
<td class="align ff-1 fvl-n ls-0 ffs-0">fi</td>
|
||||
<td class="align ff-1 fvl-n ls-0 ffs-1">fi</td>
|
||||
<td class="align ff-1 fvl-n ls-1 ffs- ">fi</td>
|
||||
<td class="align ff-1 fvl-n ls-1 ffs-n">fi</td>
|
||||
<td class="align ff-1 fvl-n ls-1 ffs-0">fi</td>
|
||||
<td class="align ff-1 fvl-n ls-1 ffs-1">fi</td>
|
||||
</tr><tr>
|
||||
<td class="align ff-1 fvl-0 ls- ffs- ">fi</td>
|
||||
<td class="align ff-1 fvl-0 ls- ffs-n">fi</td>
|
||||
<td class="align ff-1 fvl-0 ls- ffs-0">fi</td>
|
||||
<td class="align ff-1 fvl-0 ls- ffs-1">fi</td>
|
||||
<td class="align ff-1 fvl-0 ls-0 ffs- ">fi</td>
|
||||
<td class="align ff-1 fvl-0 ls-0 ffs-n">fi</td>
|
||||
<td class="align ff-1 fvl-0 ls-0 ffs-0">fi</td>
|
||||
<td class="align ff-1 fvl-0 ls-0 ffs-1">fi</td>
|
||||
<td class="align ff-1 fvl-0 ls-1 ffs- ">fi</td>
|
||||
<td class="align ff-1 fvl-0 ls-1 ffs-n">fi</td>
|
||||
<td class="align ff-1 fvl-0 ls-1 ffs-0">fi</td>
|
||||
<td class="align ff-1 fvl-0 ls-1 ffs-1">fi</td>
|
||||
</tr><tr>
|
||||
<td class="align ff-1 fvl-1 ls- ffs- ">fi</td>
|
||||
<td class="align ff-1 fvl-1 ls- ffs-n">fi</td>
|
||||
<td class="align ff-1 fvl-1 ls- ffs-0">fi</td>
|
||||
<td class="align ff-1 fvl-1 ls- ffs-1">fi</td>
|
||||
<td class="align ff-1 fvl-1 ls-0 ffs- ">fi</td>
|
||||
<td class="align ff-1 fvl-1 ls-0 ffs-n">fi</td>
|
||||
<td class="align ff-1 fvl-1 ls-0 ffs-0">fi</td>
|
||||
<td class="align ff-1 fvl-1 ls-0 ffs-1">fi</td>
|
||||
<td class="align ff-1 fvl-1 ls-1 ffs- ">fi</td>
|
||||
<td class="align ff-1 fvl-1 ls-1 ffs-n">fi</td>
|
||||
<td class="align ff-1 fvl-1 ls-1 ffs-0">fi</td>
|
||||
<td class="align ff-1 fvl-1 ls-1 ffs-1">fi</td>
|
||||
|
||||
</tr></table>
|
||||
</body>
|
||||
</html>
|
|
@ -7,6 +7,7 @@
|
|||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#column-gap" title="4.1. 'column-gap'" />
|
||||
<link rel="match" href="multicol-gap-fraction-001-ref.xht" />
|
||||
<meta name="flags" content="ahem" />
|
||||
<meta name="assert" content="Test checks that increasing column gaps display consistently" />
|
||||
<style type="text/css"><![CDATA[
|
||||
div
|
||||
{
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#column-gap" title="4.1 'column-gap" />
|
||||
<link rel="match" href="multicol-gap-large-002-ref.xht" />
|
||||
<meta name="flags" content="ahem" />
|
||||
<meta name="assert" content="This test checks that a large column-gap is supported. We should have two 3.5em columns with a 4em gap between them." />
|
||||
<style type="text/css"><![CDATA[
|
||||
div
|
||||
{
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#column-gap" title="4.1. 'column-gap'" />
|
||||
<link rel="match" href="multicol-gap-002-ref.xht" />
|
||||
<meta name="flags" content="ahem invalid" />
|
||||
<meta name="asset" content="Test checks that a negative value is not allowed for column-gap" />
|
||||
<style type="text/css"><![CDATA[
|
||||
div
|
||||
{
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title>CSS Multi-column Layout Test: multicolumn and inheritance</title>
|
||||
<link rel="author" title="Opera Software ASA" href="http://www.opera.com/" />
|
||||
<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2013-08-08 -->
|
||||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#pseudo-algorithm" title="3.4 Pseudo-algorithm" />
|
||||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#the-number-and-width-of-columns" />
|
||||
<link rel="match" href="multicol-inherit-001-ref.xht" />
|
||||
<meta name="flags" content="ahem" />
|
||||
<style type="text/css"><![CDATA[
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#the-multi-column-model" title="2. The multi-column model" />
|
||||
<link rel="match" href="multicol-margin-child-001-ref.xht" />
|
||||
<meta name="flags" content="ahem" />
|
||||
<meta name="assert" content="This test checks that the margin-bottom of a block child in a multi-column element will collapse with the margin-top of a following block child of that same multi-colum element if those children are vertically adjacent and if no line boxes, no clearance, no padding and no border separate them." />
|
||||
<meta name="assert" content="This test checks that the margin-bottom of a block child in a multi-column element will collapse with the margin-top of a following block child of that same multi-column element if those children are vertically adjacent and if no line boxes, no clearance, no padding and no border separate them." />
|
||||
<style type="text/css"><![CDATA[
|
||||
div
|
||||
{
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2013-08-27 -->
|
||||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#column-rule" title="4.5 'column-rule'" />
|
||||
<link rel="match" href="multicol-rule-000-ref.xht" />
|
||||
<meta name="assert" content="This test checks that the shorthand column-rule property draws the rule correctly." />
|
||||
<meta name="flags" content="ahem" />
|
||||
<style type="text/css"><![CDATA[
|
||||
div
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2013-08-14 -->
|
||||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#column-gaps-and-rules" title="4. Column gaps and rules" />
|
||||
<link rel="match" href="multicol-rule-003-ref.xht" />
|
||||
<meta name="assert" content="Tests that the three column-rule-* longhand properties are correctly applied." />
|
||||
<meta name="flags" content="ahem" />
|
||||
<style type="text/css"><![CDATA[
|
||||
div
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#column-rule" title="4.5 'column-rule'" />
|
||||
<link rel="match" href="multicol-rule-color-001-ref.xht" />
|
||||
<meta name="flags" content="ahem" />
|
||||
<meta name="assert" content="Basic test that the column-rule-color property is applied." />
|
||||
<style type="text/css"><![CDATA[
|
||||
div
|
||||
{
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#column-rule" title="4.5 'column-rule'" />
|
||||
<link rel="match" href="multicol-rule-dashed-000-ref.xht" />
|
||||
<meta name="flags" content="ahem" />
|
||||
<meta name="assert" content="Tests that the dashed value of column-rule-style is correctly rendered when used in the shorthand column-rule property." />
|
||||
<style type="text/css"><![CDATA[
|
||||
div
|
||||
{
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2013-08-27 -->
|
||||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#column-rule" title="4.5 'column-rule'" />
|
||||
<link rel="match" href="multicol-rule-dotted-000-ref.xht" />
|
||||
<meta name="assert" content="Tests that the dotted value of column-rule-style is correctly rendered when used in the shorthand column-rule property." />
|
||||
<meta name="flags" content="ahem" />
|
||||
<style type="text/css"><![CDATA[
|
||||
div
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#column-rule" title="4.5 'column-rule'" />
|
||||
<link rel="match" href="multicol-rule-double-000-ref.xht" />
|
||||
<meta name="flags" content="ahem" />
|
||||
<meta name="assert" content="Tests that the double value of column-rule-style is correctly rendered when used in the shorthand column-rule property." />
|
||||
<style type="text/css"><![CDATA[
|
||||
div
|
||||
{
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#crw" title="4.4. 'column-rule-width'" />
|
||||
<link rel="match" href="multicol-rule-fraction-001-ref.xht" />
|
||||
<meta name="flags" content="ahem" />
|
||||
<meta name="assert" content="Basic test for the column-rule-width property, checking that values above 0 but below 1 are allowed." />
|
||||
<style type="text/css"><![CDATA[
|
||||
div
|
||||
{
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#column-rule" title="4.5 'column-rule'" />
|
||||
<link rel="match" href="multicol-rule-groove-000-ref.xht" />
|
||||
<meta name="flags" content="ahem" />
|
||||
<meta name="assert" content="Test checks that the value of 'groove' for 'column-rule-style' is drawn correctly." />
|
||||
<style type="text/css"><![CDATA[
|
||||
div
|
||||
{
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#column-rule" title="4.5 'column-rule'" />
|
||||
<link rel="match" href="multicol-rule-hidden-000-ref.xht" />
|
||||
<meta name="flags" content="ahem" />
|
||||
<meta name="assert" content="Test checks that a column-rule-width value of hidden results in no rule being drawn." />
|
||||
<style type="text/css"><![CDATA[
|
||||
div
|
||||
{
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#column-rule" title="4.5 'column-rule'" />
|
||||
<link rel="match" href="multicol-rule-hidden-000-ref.xht" />
|
||||
<meta name="flags" content="ahem" />
|
||||
<meta name="assert" content="Test checks that a column-rule-width value of none results in no rule being drawn." />
|
||||
<style type="text/css"><![CDATA[
|
||||
div
|
||||
{
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#column-gaps-and-rules"/>
|
||||
<link rel="match" href="multicol-rule-ref.xht"/>
|
||||
<meta name="flags" content="ahem"/>
|
||||
<meta name="assert" content="Test checks that a column-rule-width value set in pixels is rendered correctly. The width of the rule should be 16px." />
|
||||
<style type="text/css"><![CDATA[
|
||||
body {
|
||||
margin: 0;
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#column-rule" title="4.5 'column-rule'" />
|
||||
<link rel="match" href="multicol-rule-ridge-000-ref.xht" />
|
||||
<meta name="flags" content="ahem" />
|
||||
<meta name="assert" content="Test checks that the value of 'ridge' for 'column-rule-style' is drawn correctly." />
|
||||
<style type="text/css"><![CDATA[
|
||||
div
|
||||
{
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#crw" title="4.4. 'column-rule-width'" />
|
||||
<link rel="match" href="multicol-rule-samelength-001-ref.xht" />
|
||||
<meta name="flags" content="ahem" />
|
||||
<meta name="assert" content="Test that a gap of 5em and a column-rule-width of 5em both take up the same space." />
|
||||
<style type="text/css"><![CDATA[
|
||||
body {margin: 8px;}
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#crw" title="4.4. 'column-rule-width'" />
|
||||
<link rel="match" href="multicol-rule-samelength-001-ref.xht" />
|
||||
<meta name="flags" content="ahem invalid" />
|
||||
<meta name="assert" content="Tests that column rules are not displayed for invalid properties and values."/>
|
||||
<style type="text/css"><![CDATA[
|
||||
body {margin: 8px;}
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<link rel="help" href=""/>
|
||||
<link rel="match" href="multicol-rule-shorthand-2-ref.xht"/>
|
||||
<meta name="assert" content="Tests that column rules are not displayed for invalid properties and values."/>
|
||||
<meta name="flags" content="invalid"/>
|
||||
<meta name="flags" content="ahem invalid"/>
|
||||
<style type="text/css"><![CDATA[
|
||||
body {
|
||||
margin: 1em;
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#column-rule" title="4.5 'column-rule'" />
|
||||
<link rel="match" href="multicol-rule-solid-000-ref.xht" />
|
||||
<meta name="flags" content="ahem" />
|
||||
<meta name="assert" content="Test checks that a column-rule-style value set as 'solid' is rendered correctly." />
|
||||
<style type="text/css"><![CDATA[
|
||||
div
|
||||
{
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#column-gaps-and-rules"/>
|
||||
<link rel="match" href="multicol-rule-stacking-ref.xht"/>
|
||||
<meta name="flags" content="ahem"/>
|
||||
<meta name="assert" content="The test checks that the span element, which has a higher 'z-index' stacks on top of the other elements in the multicol container." />
|
||||
<style type="text/css"><![CDATA[
|
||||
body {
|
||||
margin: 0;
|
||||
|
@ -20,8 +21,6 @@ body>div {
|
|||
margin: 1em;
|
||||
border: 1em solid gray;
|
||||
width: 14em;
|
||||
orphans: 1;
|
||||
widows: 1;
|
||||
|
||||
column-count: 4;
|
||||
column-gap: 1em;
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#the-number-and-width-of-columns"/>
|
||||
<link rel="match" href="multicol-rule-ref.xht"/>
|
||||
<meta name="flags" content="ahem invalid"/>
|
||||
<meta name="assert" content="Testing that invalid property names used as a shorthand do not result in column-rules being displayed." />
|
||||
<style type="text/css"><![CDATA[
|
||||
body {
|
||||
margin: 0;
|
||||
|
@ -26,8 +27,8 @@ body>div {
|
|||
column-count: 4;
|
||||
column-gap: 1em;
|
||||
column-rule: solid blue 1em;
|
||||
column: normal red 1em;
|
||||
columns: normal red 1em;
|
||||
column: normal red 1em; /* column is not a valid property */
|
||||
columns: normal red 1em; /* columns is a shorthand for colun-width and column-count */
|
||||
}
|
||||
span {
|
||||
background: blue;
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#column-rule" title="4.5 'column-rule'" />
|
||||
<link rel="match" href="multicol-span-000-ref.xht" />
|
||||
<meta name="flags" content="ahem image" />
|
||||
<meta name="assert" content="Tests that the element with an id of 'column-span' spans across all columns." />
|
||||
<style type="text/css"><![CDATA[
|
||||
div
|
||||
{
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#column-span" title="6.1. 'column-span'" />
|
||||
<link rel="match" href="multicol-span-all-001-ref.xht" />
|
||||
<meta name="flags" content="ahem" />
|
||||
<meta name="assert" content="Tests that the h4 set to 'column-span: all' spans across all columns resulting in a black bar across the multicol container." />
|
||||
<style type="text/css"><![CDATA[
|
||||
div
|
||||
{
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#column-span" title="6.1. 'column-span'" />
|
||||
<link rel="match" href="multicol-span-all-002-ref.xht" />
|
||||
<meta name="flags" content="ahem" />
|
||||
<meta name="assert" content="Test of the situation where there is not sufficient space for the spanning element, UA may treat the element as 'column-span: none'; in which case, 'overflow: hidden' will take care of overflowed content out of multi-column box." />
|
||||
<style type="text/css"><![CDATA[
|
||||
div
|
||||
{
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#spanning-columns"/>
|
||||
<link rel="match" href="multicol-span-all-block-sibling-3-ref.xht"/>
|
||||
<meta name="flags" content="ahem"/>
|
||||
<meta name="assert" content="Test that a block element which is a sibling of content in the multicol element acts correctly as a spanner." />
|
||||
<style type="text/css"><![CDATA[
|
||||
body>div {
|
||||
font-family: Ahem;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CSS Multi-column Layout Test: 'column-span: all' element and width exceeding available multi-colum width (complex)</title>
|
||||
<title>CSS Multi-column Layout Test: 'column-span: all' element and width exceeding available multi-column width (complex)</title>
|
||||
<link rel="author" title="Opera Software ASA" href="http://www.opera.com/" />
|
||||
<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2013-08-18 -->
|
||||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#column-span" title="6.1. 'column-span'" />
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#column-span" title="6.1. 'column-span'" />
|
||||
<link rel="match" href="multicol-span-all-margin-002-ref.xht" />
|
||||
<meta name="flags" content="ahem" />
|
||||
<meta name="assert" content="The spanning element extends only to the width of the multicol element, despite an item in the fourth column extending into the overflow area." />
|
||||
<style type="text/css"><![CDATA[
|
||||
div
|
||||
{
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#column-span" title="6.1. 'column-span'" />
|
||||
<link rel="match" href="multicol-span-all-margin-bottom-001-ref.xht" />
|
||||
<meta name="flags" content="ahem" />
|
||||
<meta name="assert" content="In this test, the glyphs 'or' are painted into 1st column box, the glyphs 'ang' extend outside the box, and should not be clipped. In this test they are overwritten by spans so are not visible." />
|
||||
<style type="text/css"><![CDATA[
|
||||
div
|
||||
{
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#the-multi-column-model"/>
|
||||
<link rel="match" href="multicol-table-cell-vertical-align-ref.xht"/>
|
||||
<meta name="flags" content="ahem"/>
|
||||
<meta name="assert" content="This test checks that 'column-count' applies to elements with 'display' set to 'table-cell' which also use 'vertical-align: middle'. The 'vertical-align' property should still apply." />
|
||||
<style type="text/css"><![CDATA[
|
||||
div {
|
||||
font-family: Ahem;
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
<title>Multicol under vertical-rl scrolling container</title>
|
||||
<link rel="match" href="multicol-under-vertical-rl-scroll-ref.html">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-multicol">
|
||||
<meta name="assert" content="Test that multicol works as expected when overflow is scrolling in vertical-rl" />
|
||||
<p>Passes if there are two green squares</p>
|
||||
<div style="width: 200px; height: 200px; overflow: scroll; writing-mode: vertical-rl; border: 1px solid black">
|
||||
<div style="columns: 2; column-gap: 20px; width: 80px; height: 180px">
|
||||
|
|
|
@ -46,6 +46,7 @@ assert_valid("<length>", "calc(2px*4 + 10px)");
|
|||
assert_valid("<length>", "7.1e-4cm");
|
||||
assert_valid("<length>", "calc(7in - 12px)");
|
||||
assert_valid("<length>+", "2px 7px calc(8px)");
|
||||
assert_valid("<length>#", "2px, 7px, calc(8px)");
|
||||
assert_valid("<percentage>", "-9.3e3%");
|
||||
assert_valid("<length-percentage>", "-54%");
|
||||
assert_valid("<length-percentage>", "0");
|
||||
|
@ -151,6 +152,8 @@ assert_invalid("<length>", "calc(4px + 3em)");
|
|||
assert_invalid("<length>", "calc(4px + calc(8 * 2em))");
|
||||
assert_invalid("<length>+", "calc(2ex + 16px)");
|
||||
assert_invalid("<length>+", "10px calc(20px + 4rem)");
|
||||
assert_invalid("<length>+", "");
|
||||
assert_invalid("<length>#", "");
|
||||
assert_invalid("<percentage> | <length>+", "calc(100vh - 10px) 30px");
|
||||
assert_invalid("<length>", "10px;");
|
||||
assert_invalid("<length-percentage>", "calc(2px + 10% + 7ex)");
|
||||
|
|
|
@ -1,28 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Text level 3 Test: single preserved white space at the end of the line with white-space:break-spaces overflow-wrap:break-word</title>
|
||||
<link rel="author" title="Florian Rivoal" href="http://florian.rivoal.net/">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-text-3/#white-space-phase-2">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-text-3/#overflow-wrap-property">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-text-3/#white-space-property">
|
||||
<link rel="match" href="reference/pre-wrap-001-ref.html">
|
||||
<meta name="assert" content="a single preserved white space at the end of the line is wrapped when the white-space property is set to break-spaces and overflow-wrap is break-word.">
|
||||
<style>
|
||||
div {
|
||||
font-size: 20px;
|
||||
font-family: Ahem;
|
||||
line-height: 1em;
|
||||
white-space: break-spaces;
|
||||
color: green;
|
||||
|
||||
background: linear-gradient(red, red) 1ch 0/2ch 2ch no-repeat;
|
||||
|
||||
width: 3ch;
|
||||
overflow-wrap: break-word;
|
||||
margin-left: -1ch;
|
||||
}
|
||||
</style>
|
||||
<body>
|
||||
<p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
|
||||
<div> XX XX</div>
|
||||
</body>
|
|
@ -1,39 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Text level 3 Test: single preserved white space at the end of the line with white-space:break-spaces overflow-wrap:break-word in a textarea</title>
|
||||
<link rel="author" title="Florian Rivoal" href="http://florian.rivoal.net/">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-text-3/#white-space-phase-2">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-text-3/#overflow-wrap-property">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-text-3/#white-space-property">
|
||||
<link rel="match" href="reference/textarea-pre-wrap-001-ref.html">
|
||||
<meta name="assert" content="a single preserved white space at the end of the line is wrapped when the white-space property is set to break-spaces and overflow-wrap is break-word in a textarea.">
|
||||
<style>
|
||||
textarea {
|
||||
word-wrap: initial; /*deprecated alias*/
|
||||
overflow-wrap: initial;
|
||||
line-break: initial;
|
||||
word-break: initial;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: none;
|
||||
outline: none;
|
||||
resize: none;
|
||||
overflow: hidden; /* I don't want scrollbars, and overflow:visible isn't typically supported on textarea */
|
||||
|
||||
font-size: 20px;
|
||||
font-family: Ahem;
|
||||
line-height: 1em;
|
||||
white-space: break-spaces;
|
||||
color: green;
|
||||
|
||||
background: linear-gradient(red, red) 1ch 0/2ch 2ch no-repeat;
|
||||
|
||||
width: 3ch;
|
||||
overflow-wrap: break-word;
|
||||
margin-left: -1ch;
|
||||
}
|
||||
</style>
|
||||
<body>
|
||||
<p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
|
||||
<textarea> XX XX</textarea>
|
||||
</body>
|
|
@ -0,0 +1,120 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Transform list interpolation</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-transforms-1/#interpolation-of-transforms">
|
||||
<meta name="assert" content="Interpolation of transform function lists is performed as follows">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="resources/interpolation-testcommon.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
// none -> none
|
||||
test_interpolation(
|
||||
{
|
||||
property: 'transform',
|
||||
from: 'none',
|
||||
to: 'none',
|
||||
},
|
||||
[{ at: 0.25, expect: 'none' }]
|
||||
);
|
||||
|
||||
// none -> something
|
||||
test_interpolation(
|
||||
{
|
||||
property: 'transform',
|
||||
from: 'none',
|
||||
to: 'translate(200px) rotate(720deg)',
|
||||
},
|
||||
[{ at: 0.25, expect: 'translate(50px) rotate(180deg)' }]
|
||||
);
|
||||
|
||||
// something -> none
|
||||
test_interpolation(
|
||||
{
|
||||
property: 'transform',
|
||||
from: 'translate(200px) rotate(720deg)',
|
||||
to: 'none',
|
||||
},
|
||||
[{ at: 0.25, expect: 'translate(150px) rotate(540deg)' }]
|
||||
);
|
||||
|
||||
// Mismatched lengths (from is shorter), common part matches
|
||||
test_interpolation(
|
||||
{
|
||||
property: 'transform',
|
||||
from: 'translate(100px)',
|
||||
to: 'translate(200px) rotate(720deg)',
|
||||
},
|
||||
[{ at: 0.25, expect: 'translate(125px) rotate(180deg)' }]
|
||||
);
|
||||
|
||||
// Mismatched lengths (to is shorter), common part matches
|
||||
test_interpolation(
|
||||
{
|
||||
property: 'transform',
|
||||
from: 'translate(100px) rotate(720deg)',
|
||||
to: 'translate(200px)',
|
||||
},
|
||||
[{ at: 0.25, expect: 'translate(125px) rotate(540deg)' }]
|
||||
);
|
||||
|
||||
// Perfect match
|
||||
test_interpolation(
|
||||
{
|
||||
property: 'transform',
|
||||
from: 'scale(2) rotate(360deg) translate(100px) matrix(1, 0, 0, 1, 100, 0) skew(0deg)',
|
||||
to: 'scale(3) rotate(1080deg) translate(200px) matrix(1, 0, 0, 1, 0, 200) skew(720deg)',
|
||||
},
|
||||
[
|
||||
{
|
||||
at: 0.25,
|
||||
expect: 'scale(2.25) rotate(540deg) translate(125px) matrix(1, 0, 0, 1, 75, 50) skew(180deg)',
|
||||
},
|
||||
]
|
||||
);
|
||||
|
||||
// Matches on primitives
|
||||
test_interpolation(
|
||||
{
|
||||
property: 'transform',
|
||||
from: 'translateX(100px) scaleX(3) translate(500px) scale(2)',
|
||||
to: 'translateY(200px) scale(5) translateX(100px) scaleY(3)',
|
||||
},
|
||||
[{ at: 0.25, expect: 'translate(75px, 50px) scale(3.5, 2) translate(400px, 0px) scale(1.75, 2.25)' }]
|
||||
);
|
||||
|
||||
// Common prefix
|
||||
test_interpolation(
|
||||
{
|
||||
property: 'transform',
|
||||
from: 'rotate(0deg) translate(100px)',
|
||||
to: 'rotate(720deg) scale(2) translate(200px)',
|
||||
},
|
||||
[{ at: 0.25, expect: 'rotate(180deg) matrix(1.25, 0, 0, 1.25, 175, 0)' }]
|
||||
);
|
||||
|
||||
// Complete mismatch (except length)
|
||||
test_interpolation(
|
||||
{
|
||||
property: 'transform',
|
||||
from: 'scale(2) rotate(0deg) translate(100px)',
|
||||
to: 'rotate(720deg) scale(2) translate(200px)',
|
||||
},
|
||||
[{ at: 0.25, expect: 'matrix(2, 0, 0, 2, 250, 0)' }]
|
||||
);
|
||||
|
||||
// Complete mismatch including length
|
||||
test_interpolation(
|
||||
{
|
||||
property: 'transform',
|
||||
from: 'scale(2) rotate(0deg)',
|
||||
to: 'rotate(720deg) scale(2) translate(200px)',
|
||||
},
|
||||
[{ at: 0.25, expect: 'matrix(2, 0, 0, 2, 100, 0)' }]
|
||||
);
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,47 @@
|
|||
<!doctype html>
|
||||
<title>CSS Test Reference</title>
|
||||
<meta charset="utf-8">
|
||||
<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
|
||||
<link rel="author" title="Mozilla" href="https://mozilla.org">
|
||||
<style>
|
||||
html,
|
||||
body {
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background-color: #222;
|
||||
}
|
||||
|
||||
body {
|
||||
display: flex;
|
||||
transform: scale(0.9);
|
||||
}
|
||||
|
||||
#fixed {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 1;
|
||||
background: black;
|
||||
}
|
||||
|
||||
#popup {
|
||||
position: absolute;
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
left: 0;
|
||||
top: 0;
|
||||
z-index: 2;
|
||||
background: green;
|
||||
transform: scale( 1.1111 );
|
||||
}
|
||||
|
||||
body, #popup {
|
||||
transform-origin: 50% 50%;
|
||||
}
|
||||
</style>
|
||||
<div id="popup"></div>
|
||||
<div id="fixed"></div>
|
|
@ -0,0 +1,65 @@
|
|||
<!doctype html>
|
||||
<html class="reftest-wait">
|
||||
<title>CSS Test: Checks that dynamic changes to whether we're a fixed-pos containing block are handled correctly</title>
|
||||
<meta charset="utf-8">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-transforms-1/#containing-block-for-all-descendants">
|
||||
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1498873">
|
||||
<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
|
||||
<link rel="author" title="Mozilla" href="https://mozilla.org">
|
||||
<link rel="match" href="dynamic-fixed-pos-cb-change-ref.html">
|
||||
<style>
|
||||
html,
|
||||
body {
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background-color: #222;
|
||||
}
|
||||
|
||||
body {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
#fixed {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 1;
|
||||
background: black;
|
||||
}
|
||||
|
||||
#popup {
|
||||
position: absolute;
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
left: 0;
|
||||
top: 0;
|
||||
z-index: 2;
|
||||
background: red;
|
||||
transform: scale( 1.1111 );
|
||||
}
|
||||
|
||||
body, #popup {
|
||||
transform-origin: 50% 50%;
|
||||
}
|
||||
</style>
|
||||
<div id="popup">
|
||||
<!-- Seeing this box change color should not move me or change my size. -->
|
||||
</div>
|
||||
<div id="fixed"></div>
|
||||
<script>
|
||||
onload = function() {
|
||||
requestAnimationFrame(() => {
|
||||
document.body.style.transform = "scale(0.9)";
|
||||
requestAnimationFrame(() => {
|
||||
popup.style.backgroundColor = "green";
|
||||
requestAnimationFrame(() => {
|
||||
document.documentElement.className = "";
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
</script>
|
|
@ -0,0 +1,24 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Test Reference</title>
|
||||
<style>
|
||||
.container {
|
||||
border: 1px solid green;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
margin-top: 100px;
|
||||
display: flex;
|
||||
position: relative;
|
||||
}
|
||||
.abspos {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
background: orange;
|
||||
height: 20px;
|
||||
width: 20px;
|
||||
}
|
||||
</style>
|
||||
<div class="container">
|
||||
<div class="abspos"></div>
|
||||
</div>
|
|
@ -0,0 +1,30 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Test: will-change: position turns an element in an abspos containing block.</title>
|
||||
<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
|
||||
<link rel="author" title="Boris Zbarsky" href="mailto:bzbarsky@mit.edu">
|
||||
<link rel="author" title="Mozilla" href="https://mozilla.org">
|
||||
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1498873">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-will-change/#will-change">
|
||||
<link rel="match" href="will-change-abspos-cb-001-ref.html">
|
||||
<style>
|
||||
.container {
|
||||
border: 1px solid green;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
margin-top: 100px;
|
||||
display: flex;
|
||||
will-change: position;
|
||||
}
|
||||
.abspos {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
background: orange;
|
||||
height: 20px;
|
||||
width: 20px;
|
||||
}
|
||||
</style>
|
||||
<div class="container">
|
||||
<div class="abspos"></div>
|
||||
</div>
|
|
@ -0,0 +1,34 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Test: will-change: position turns an element in an abspos containing block when changed dynamically.</title>
|
||||
<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
|
||||
<link rel="author" title="Mozilla" href="https://mozilla.org">
|
||||
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1499863">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-will-change/#will-change">
|
||||
<link rel="match" href="will-change-abspos-cb-001-ref.html">
|
||||
<style>
|
||||
.container {
|
||||
border: 1px solid green;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
margin-top: 100px;
|
||||
}
|
||||
.abspos {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
background: orange;
|
||||
height: 20px;
|
||||
width: 20px;
|
||||
}
|
||||
</style>
|
||||
<div class="container">
|
||||
<div class="abspos"></div>
|
||||
</div>
|
||||
<script>
|
||||
onload = function() {
|
||||
let container = document.querySelector(".container");
|
||||
container.offsetTop;
|
||||
container.style.willChange = "position";
|
||||
}
|
||||
</script>
|
21
tests/wpt/web-platform-tests/css/cssom-view/inheritance.html
Normal file
21
tests/wpt/web-platform-tests/css/cssom-view/inheritance.html
Normal file
|
@ -0,0 +1,21 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Inheritance of CSSOM View properties</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/cssom-view/#property-index">
|
||||
<meta name="assert" content="Properties inherit or not according to the spec.">
|
||||
<meta name="assert" content="Properties have initial values according to the spec.">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/inheritance-testcommon.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="container">
|
||||
<div id="target"></div>
|
||||
</div>
|
||||
<script>
|
||||
assert_not_inherited('scroll-behavior', 'auto', 'smooth');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -21,7 +21,6 @@ function test_interpolation(settings, expectations) {
|
|||
var animationId = 'anim' + i;
|
||||
var targetId = 'target' + i;
|
||||
var referenceId = 'reference' + i;
|
||||
|
||||
test(function(){
|
||||
assert_true(CSS.supports(settings.property, expectation), 'Value "' + expectation + '" is supported by ' + settings.property);
|
||||
|
||||
|
@ -49,7 +48,9 @@ function test_interpolation(settings, expectations) {
|
|||
reference.style = '';
|
||||
|
||||
assert_equals(getComputedStyle(target)[settings.property], getComputedStyle(reference)[settings.property]);
|
||||
}, 'Animation between "' + settings.from + '" and "' + settings.to + '" at progress ' + progress);
|
||||
}, (settings.test_prefix ? settings.test_prefix : "") +
|
||||
'Animation between "' + settings.from + '" and "' + settings.to +
|
||||
'" at progress ' + progress);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -20,10 +20,10 @@ Or to run in a specified copy of Firefox:
|
|||
|
||||
./wpt run --binary ~/local/firefox/firefox firefox dom/historical.html
|
||||
|
||||
`./wpt run --help` lists the supported products.
|
||||
|
||||
For details on the supported products and a large number of other options for
|
||||
customising the test run, see `./wpt run --help`.
|
||||
customising the test run:
|
||||
|
||||
./wpt run --help
|
||||
|
||||
Additional browser-specific documentation:
|
||||
|
||||
|
|
|
@ -54,6 +54,12 @@ themselves precede any test type flag, but are otherwise unordered.
|
|||
: (js files only) Indicates that the file generates tests in which it
|
||||
is [run in multiple scopes][multi-global-tests].
|
||||
|
||||
`.optional`
|
||||
: Indicates that a test makes assertions about optional behavior in a
|
||||
specification, typically marked by the [RFC 2119] "MAY" or "OPTIONAL"
|
||||
keywords. This flag should not be used for "SHOULD"; such requirements
|
||||
can be tested with regular tests, like "MUST".
|
||||
|
||||
`.tentative`
|
||||
: Indicates that a test makes assertions not yet required by any specification,
|
||||
or in contradiction to some specification. This is useful when implementation
|
||||
|
@ -64,3 +70,4 @@ themselves precede any test type flag, but are otherwise unordered.
|
|||
|
||||
[server-side substitution]: https://wptserve.readthedocs.io/en/latest/pipes.html#sub
|
||||
[multi-global-tests]: {{ site.baseurl }}{% link _writing-tests/testharness.md %}#multi-global-tests
|
||||
[RFC 2119]: https://tools.ietf.org/html/rfc2119
|
||||
|
|
|
@ -18,6 +18,15 @@ the global scope.
|
|||
NB: presently, testdriver.js only works in the top-level test browsing
|
||||
context (and not therefore in any frame or window opened from it).
|
||||
|
||||
### action_sequence
|
||||
Usage: `test_driver.action_sequence(actions)`
|
||||
* `actions`: <[Array]<[Object]>> an array of Action objects`
|
||||
* `action`: <[Object]> A single action. See [spec](https://www.w3.org/TR/webdriver/#actions) for format
|
||||
|
||||
This function causes a sequence of actions to be sent to the browser. It is based of the [WebDriver API](https://www.w3.org/TR/webdriver/#actions).
|
||||
The action can be a keyboard action, a pointer action or a pause. It returns a `Promise` that
|
||||
resolves after the actions have been sent or rejects if an error was thrown.
|
||||
|
||||
### bless
|
||||
|
||||
Usage: `test_driver.bless(intent, action)`
|
||||
|
@ -80,13 +89,5 @@ between the function being called and the promise settling.
|
|||
To send special keys, one must send the respective key's codepoint. Since this uses the WebDriver protocol, you can find a [list for code points to special keys in the spec](https://w3c.github.io/webdriver/webdriver-spec.html#keyboard-actions).
|
||||
For example, to send the tab key you would send "\uE004".
|
||||
|
||||
### `test_driver.action_sequence(actions)`
|
||||
- `actions` <[Array]<[Object]>> an array of Action objects`
|
||||
- `action` <[Object]> A single action. See [spec](https://www.w3.org/TR/webdriver/#actions) for format
|
||||
|
||||
This function causes a sequence of actions to be sent to the browser. It is based of the [WebDriver API](https://www.w3.org/TR/webdriver/#actions).
|
||||
The action can be a keyboard action, a pointer action or a pause. It returns a `Promise` that
|
||||
resolves after the actions have been sent or rejects if an error was thrown.
|
||||
|
||||
[activation]: https://html.spec.whatwg.org/multipage/interaction.html#activation
|
||||
[testharness]: {{ site.baseurl }}{% link _writing-tests/testharness.md %}
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
<!DOCTYPE html>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/motion/animation/resources/interpolation-testcommon.js"></script>
|
||||
<title> 'layout-animations' Policy : Correct behavior for affected and unaffected properties when
|
||||
feature is disabled.
|
||||
</title>
|
||||
<body>
|
||||
<script>
|
||||
// Sanity-check: Properties which are not affected by the policy 'layout-animations' should be
|
||||
// interpolated normally (linearly) when the policy is disabled for the document.
|
||||
test_interpolation(
|
||||
{
|
||||
property: "color",
|
||||
from: "rgba(0, 50, 100, 1)",
|
||||
to: "rgba(200, 150, 200, 1)",
|
||||
test_prefix: 'Testing property "color".'
|
||||
},
|
||||
[
|
||||
{at: 0.00, expect: "rgba(0, 50, 100, 1)"},
|
||||
{at: 0.1, expect: "rgba(20, 60, 110, 1)"},
|
||||
{at: 0.2, expect: "rgba(40, 70, 120, 1)"},
|
||||
{at: 0.4, expect: "rgba(80, 90, 140, 1)"},
|
||||
{at: 0.6, expect: "rgba(120, 110, 160, 1)"},
|
||||
{at: 0.8, expect: "rgba(160, 130, 180, 1)"},
|
||||
{at: 0.9, expect: "rgba(180, 140, 190, 1)"},
|
||||
]);
|
||||
|
||||
// There is no interpolation for the affected properties when the policy is disabled.
|
||||
["bottom", "height", "left", "right", "top", "width"].forEach(
|
||||
(p) => test_no_interpolation(
|
||||
{
|
||||
property: p,
|
||||
from: "100px",
|
||||
to: "200px",
|
||||
test_prefix: `Testing property "${p}".`
|
||||
}));
|
||||
</script>
|
||||
</body>
|
|
@ -0,0 +1 @@
|
|||
Feature-Policy: layout-animations 'none'
|
|
@ -0,0 +1,30 @@
|
|||
<!DOCTYPE html>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/motion/animation/resources/interpolation-testcommon.js"></script>
|
||||
<title> 'layout-animations' Policy : Correct behavior for affected and unaffected properties when
|
||||
feature is enabled.
|
||||
</title>
|
||||
<body>
|
||||
<script>
|
||||
// The expectation for all the following properties could be the same (they are all of type length).
|
||||
let length_expectations_100_to_200 = [
|
||||
{at: 0.00, expect: "100px"},
|
||||
{at: 0.1, expect: "110px"},
|
||||
{at: 0.2, expect: "120px"},
|
||||
{at: 0.4, expect: "140px"},
|
||||
{at: 0.6, expect: "160px"},
|
||||
{at: 0.8, expect: "180px"},
|
||||
{at: 0.9, expect: "190px"},
|
||||
];
|
||||
// Ensure all the affected animations run normally.
|
||||
["bottom", "height", "left", "right", "top", "width"].forEach(
|
||||
(p) => test_interpolation({
|
||||
property: p,
|
||||
from: "100px",
|
||||
to: "200px",
|
||||
test_prefix: `Testing property "${p}".`
|
||||
},
|
||||
length_expectations_100_to_200));
|
||||
</script>
|
||||
</body>
|
|
@ -10,7 +10,7 @@ for(let i = 0; i < 0x21; i++) {
|
|||
let fail = false,
|
||||
strip = false
|
||||
|
||||
// REMOVE 0x0B/0x0C exception once https://github.com/w3c/wptserve/issues/111 is fixed
|
||||
// REMOVE 0x0B/0x0C exception once https://github.com/web-platform-tests/wpt/issues/8372 is fixed
|
||||
if(i === 0x0B || i === 0x0C)
|
||||
continue
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
def main(request, response):
|
||||
headers = []
|
||||
request_headers = []
|
||||
if "headers" in request.GET:
|
||||
checked_headers = request.GET.first("headers").split("|")
|
||||
for header in checked_headers:
|
||||
|
|
|
@ -105,7 +105,7 @@ var tests_arr = [
|
|||
|
||||
tests_arr.forEach(function(test_obj) {
|
||||
["<meta>", "Refresh header"].forEach(type => {
|
||||
if(type === "Refresh header" && test_obj.input.match("[\n\r\f]")) { // See https://github.com/w3c/wptserve/issues/111 for why \f as well
|
||||
if(type === "Refresh header" && test_obj.input.match("[\n\r\f]")) { // See https://github.com/web-platform-tests/wpt/issues/8372 for why \f as well
|
||||
return;
|
||||
}
|
||||
const filename = type === "<meta>" ? "refresh.sub.html" : "refresh.py";
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
n<!DOCTYPE html>
|
||||
<meta charset=utf-8>
|
||||
<title>Test that <object> renders its own fallback.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<body>
|
||||
<script>
|
||||
// The host exists but the resource is unavailable.
|
||||
const cross_origin_url_a = "http://{{hosts[alt][www]}}:{{ports[http][0]}}/foo.html";
|
||||
// The destination does not even exist and the navigation fails.
|
||||
const cross_origin_url_b = "http://{{hosts[alt][nonexistent]}}:{{ports[http][0]}}/foo.html";
|
||||
|
||||
// Returns a promise which is resolved when |callback| returns true. The |callback| is invoked at
|
||||
// every animation frame.
|
||||
function for_each_animation_frame(callback) {
|
||||
return new Promise((resolve) => {
|
||||
function on_raf() {
|
||||
if (!callback())
|
||||
resolve();
|
||||
window.requestAnimationFrame(on_raf);
|
||||
}
|
||||
window.requestAnimationFrame(on_raf);
|
||||
});
|
||||
}
|
||||
|
||||
// Create an <object> with some fallback content.
|
||||
function create_object_with_fallback(url) {
|
||||
var object = document.createElement("object");
|
||||
var fallback = document.createElement("button");
|
||||
fallback.textContent = "FALLBACK CONTENT";
|
||||
object.appendChild(fallback);
|
||||
object.data = url;
|
||||
object.type = "text/html";
|
||||
document.body.appendChild(object);
|
||||
return object;
|
||||
}
|
||||
|
||||
function area(el) {
|
||||
let bounds = el.getBoundingClientRect();
|
||||
return el.width * el.height;
|
||||
}
|
||||
|
||||
promise_test(async() => {
|
||||
var object = create_object_with_fallback(cross_origin_url_a);
|
||||
await for_each_animation_frame(() => area(object.firstChild) > 0);
|
||||
object.parentElement.removeChild(object);
|
||||
object = create_object_with_fallback(cross_origin_url_b);
|
||||
await for_each_animation_frame(() => area(object.firstChild) > 0);
|
||||
object.parentElement.removeChild(object);
|
||||
}, "Verify fallback content for failed cross-origin navigations is shown correctly.");
|
||||
</script>
|
||||
</body>
|
|
@ -0,0 +1,23 @@
|
|||
<!doctype html>
|
||||
<title><audio and <video> autoplay</title>
|
||||
<link rel="help" href="https://html.spec.whatwg.org/multipage/media.html#dom-media-play">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/common/media.js"></script>
|
||||
<video></video>
|
||||
<script>
|
||||
async_test(t => {
|
||||
const a = new Audio(getAudioURI("/media/sound_5"));
|
||||
a.play();
|
||||
assert_false(a.paused);
|
||||
a.onplaying = t.step_func_done();
|
||||
}, "<audio> autoplay");
|
||||
|
||||
async_test(t => {
|
||||
const v = document.querySelector("video");
|
||||
v.src = getVideoURI("/media/movie_5");
|
||||
v.play();
|
||||
assert_false(v.paused);
|
||||
v.onplaying = t.step_func_done();
|
||||
}, "<video> autoplay");
|
||||
</script>
|
|
@ -0,0 +1,8 @@
|
|||
[allowed-to-play.html]
|
||||
expected:
|
||||
if product == "safari" or product == "safari_webdriver": ERROR # https://bugs.webkit.org/show_bug.cgi?id=190775
|
||||
|
||||
|
||||
[<audio> autoplay]
|
||||
expected:
|
||||
if product == "safari" or product == "safari_webdriver": FAIL # https://bugs.webkit.org/show_bug.cgi?id=190775
|
|
@ -0,0 +1,9 @@
|
|||
[html-elements.html]
|
||||
[Compare CSS span definitions (only valid if pre-reqs pass)]
|
||||
expected:
|
||||
if product == "safari" or product == "safari_webdriver": FAIL # https://webkit.org/show_bug.cgi?id=187052
|
||||
|
||||
|
||||
[Compare CSS div definitions (only valid if pre-reqs pass)]
|
||||
expected:
|
||||
if product == "safari" or product == "safari_webdriver": FAIL # https://webkit.org/show_bug.cgi?id=187052
|
|
@ -0,0 +1,4 @@
|
|||
[context.any.sharedworker.html]
|
||||
[context]
|
||||
expected:
|
||||
if product == "safari" or product == "safari_webdriver": FAIL # https://bugs.webkit.org/show_bug.cgi?id=149850
|
|
@ -0,0 +1,4 @@
|
|||
[order-of-metas.any.sharedworker.html]
|
||||
[foo]
|
||||
expected:
|
||||
if product == "safari" or product == "safari_webdriver": FAIL # https://bugs.webkit.org/show_bug.cgi?id=149850
|
|
@ -0,0 +1,4 @@
|
|||
[secure-context.https.any.sharedworker.html]
|
||||
[secure-context]
|
||||
expected:
|
||||
if product == "safari" or product == "safari_webdriver": FAIL # https://bugs.webkit.org/show_bug.cgi?id=149850
|
|
@ -0,0 +1,4 @@
|
|||
[title.any.sharedworker.html]
|
||||
[foobar]
|
||||
expected:
|
||||
if product == "safari" or product == "safari_webdriver": FAIL # https://bugs.webkit.org/show_bug.cgi?id=149850
|
|
@ -1,3 +1,3 @@
|
|||
[elementPosition.html]
|
||||
expected:
|
||||
if product == "chrome": ERROR
|
||||
if product == "chrome" or product == "safari" or product == "safari_webdriver": ERROR
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
[elementTiming.html]
|
||||
expected:
|
||||
if product == "chrome": ERROR
|
||||
if product == "chrome" or product == "safari" or product == "safari_webdriver": ERROR
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
[eventOrder.html]
|
||||
expected:
|
||||
if product == "chrome": ERROR
|
||||
if product == "chrome" or product == "safari" or product == "safari_webdriver": ERROR
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
[multiDevice.html]
|
||||
expected:
|
||||
if product == "chrome": ERROR
|
||||
if product == "chrome" or product == "safari" or product == "safari_webdriver": ERROR
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
// GENERATED CONTENT - DO NOT EDIT
|
||||
// Content was automatically extracted by Reffy into reffy-reports
|
||||
// (https://github.com/tidoust/reffy-reports)
|
||||
// Source: Content Security Policy: Embedded Enforcement (https://w3c.github.io/webappsec-csp/embedded/)
|
||||
// Source: Content Security Policy: Embedded Enforcement (https://w3c.github.io/webappsec-cspee/)
|
||||
|
||||
partial interface HTMLIFrameElement {
|
||||
[CEReactions] attribute DOMString csp;
|
||||
|
|
|
@ -78,12 +78,6 @@ dictionary PaymentItem {
|
|||
required DOMString label;
|
||||
required PaymentCurrencyAmount amount;
|
||||
boolean pending = false;
|
||||
// Note: type member is "at risk" of being removed!
|
||||
PaymentItemType type;
|
||||
};
|
||||
|
||||
enum PaymentItemType {
|
||||
"tax"
|
||||
};
|
||||
|
||||
[SecureContext, Exposed=(Window)]
|
||||
|
@ -92,8 +86,6 @@ interface PaymentAddress {
|
|||
readonly attribute DOMString city;
|
||||
readonly attribute DOMString country;
|
||||
readonly attribute DOMString dependentLocality;
|
||||
// "languageCode" is a feature at risk
|
||||
readonly attribute DOMString languageCode;
|
||||
readonly attribute DOMString organization;
|
||||
readonly attribute DOMString phone;
|
||||
readonly attribute DOMString postalCode;
|
||||
|
@ -113,7 +105,6 @@ dictionary AddressInit {
|
|||
DOMString dependentLocality;
|
||||
DOMString postalCode;
|
||||
DOMString sortingCode;
|
||||
DOMString languageCode;
|
||||
DOMString organization;
|
||||
DOMString recipient;
|
||||
DOMString phone;
|
||||
|
@ -124,7 +115,6 @@ dictionary AddressErrors {
|
|||
DOMString city;
|
||||
DOMString country;
|
||||
DOMString dependentLocality;
|
||||
DOMString languageCode;
|
||||
DOMString organization;
|
||||
DOMString phone;
|
||||
DOMString postalCode;
|
||||
|
|
|
@ -95,6 +95,7 @@ interface ServiceWorkerGlobalScope : WorkerGlobalScope {
|
|||
[Exposed=ServiceWorker]
|
||||
interface Client {
|
||||
readonly attribute USVString url;
|
||||
readonly attribute FrameType frameType;
|
||||
readonly attribute DOMString id;
|
||||
readonly attribute ClientType type;
|
||||
void postMessage(any message, optional sequence<object> transfer = []);
|
||||
|
@ -109,6 +110,13 @@ interface WindowClient : Client {
|
|||
[NewObject] Promise<WindowClient?> navigate(USVString url);
|
||||
};
|
||||
|
||||
enum FrameType {
|
||||
"auxiliary",
|
||||
"top-level",
|
||||
"nested",
|
||||
"none"
|
||||
};
|
||||
|
||||
[Exposed=ServiceWorker]
|
||||
interface Clients {
|
||||
// The objects returned will be new instances every time
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
// Source: Web MIDI API (http://webaudio.github.io/web-midi-api/)
|
||||
|
||||
partial interface Navigator {
|
||||
Promise<MIDIAccess> requestMIDIAccess(optional MIDIOptions options);
|
||||
[SecureContext] Promise<MIDIAccess> requestMIDIAccess(optional MIDIOptions options);
|
||||
};
|
||||
|
||||
dictionary MIDIOptions {
|
||||
|
@ -20,14 +20,14 @@ interface MIDIOutputMap {
|
|||
readonly maplike<DOMString, MIDIOutput>;
|
||||
};
|
||||
|
||||
interface MIDIAccess : EventTarget {
|
||||
[SecureContext] interface MIDIAccess : EventTarget {
|
||||
readonly attribute MIDIInputMap inputs;
|
||||
readonly attribute MIDIOutputMap outputs;
|
||||
attribute EventHandler onstatechange;
|
||||
readonly attribute boolean sysexEnabled;
|
||||
};
|
||||
|
||||
interface MIDIPort : EventTarget {
|
||||
[SecureContext] interface MIDIPort : EventTarget {
|
||||
readonly attribute DOMString id;
|
||||
readonly attribute DOMString? manufacturer;
|
||||
readonly attribute DOMString? name;
|
||||
|
@ -40,11 +40,11 @@ interface MIDIPort : EventTarget {
|
|||
Promise<MIDIPort> close();
|
||||
};
|
||||
|
||||
interface MIDIInput : MIDIPort {
|
||||
[SecureContext] interface MIDIInput : MIDIPort {
|
||||
attribute EventHandler onmidimessage;
|
||||
};
|
||||
|
||||
interface MIDIOutput : MIDIPort {
|
||||
[SecureContext] interface MIDIOutput : MIDIPort {
|
||||
void send(sequence<octet> data, optional DOMHighResTimeStamp timestamp = 0);
|
||||
void clear();
|
||||
};
|
||||
|
@ -65,7 +65,7 @@ enum MIDIPortConnectionState {
|
|||
"pending",
|
||||
};
|
||||
|
||||
[Constructor(DOMString type, optional MIDIMessageEventInit eventInitDict)]
|
||||
[SecureContext, Constructor(DOMString type, optional MIDIMessageEventInit eventInitDict)]
|
||||
interface MIDIMessageEvent : Event {
|
||||
readonly attribute Uint8Array data;
|
||||
};
|
||||
|
@ -74,7 +74,7 @@ dictionary MIDIMessageEventInit : EventInit {
|
|||
Uint8Array data;
|
||||
};
|
||||
|
||||
[Constructor(DOMString type, optional MIDIConnectionEventInit eventInitDict)]
|
||||
[SecureContext, Constructor(DOMString type, optional MIDIConnectionEventInit eventInitDict)]
|
||||
interface MIDIConnectionEvent : Event {
|
||||
readonly attribute MIDIPort port;
|
||||
};
|
||||
|
|
|
@ -36,40 +36,40 @@ promise_test(async t => {
|
|||
}, `Throws if the promise [[state]] is not "interactive"`);
|
||||
|
||||
promise_test(async t => {
|
||||
return test_driver.bless("show payment request", async () => {
|
||||
const request = new PaymentRequest(defaultMethods, defaultDetails);
|
||||
const acceptPromise = request.show();
|
||||
try {
|
||||
await request.abort();
|
||||
} catch (err) {
|
||||
assert_unreached("Unexpected promise rejection: " + err.message);
|
||||
}
|
||||
await promise_rejects(t, "AbortError", acceptPromise);
|
||||
// As request is now "closed", trying to show it will fail
|
||||
await promise_rejects(t, "InvalidStateError", request.show());
|
||||
});
|
||||
const request = new PaymentRequest(defaultMethods, defaultDetails);
|
||||
const acceptPromise = test_driver.bless("show payment request", () =>
|
||||
request.show()
|
||||
);
|
||||
try {
|
||||
await request.abort();
|
||||
} catch (err) {
|
||||
assert_unreached("Unexpected promise rejection: " + err.message);
|
||||
}
|
||||
await promise_rejects(t, "AbortError", acceptPromise);
|
||||
// As request is now "closed", trying to show it will fail
|
||||
await promise_rejects(t, "InvalidStateError", request.show());
|
||||
});
|
||||
|
||||
promise_test(async t => {
|
||||
return test_driver.bless("show payment request", async () => {
|
||||
// request is in "created" state.
|
||||
const request = new PaymentRequest(defaultMethods, defaultDetails);
|
||||
await promise_rejects(t, "InvalidStateError", request.abort());
|
||||
// Call it again, for good measure.
|
||||
await promise_rejects(t, "InvalidStateError", request.abort());
|
||||
// The request's state is "created", so let's show it
|
||||
// which changes the state to "interactive.".
|
||||
const acceptPromise = request.show();
|
||||
// Let's set request the state to "closed" by calling .abort()
|
||||
try {
|
||||
await request.abort();
|
||||
} catch (err) {
|
||||
assert_unreached("Unexpected promise rejection: " + err.message);
|
||||
}
|
||||
// The request is now "closed", so...
|
||||
await promise_rejects(t, "InvalidStateError", request.abort());
|
||||
await promise_rejects(t, "AbortError", acceptPromise);
|
||||
});
|
||||
// request is in "created" state.
|
||||
const request = new PaymentRequest(defaultMethods, defaultDetails);
|
||||
await promise_rejects(t, "InvalidStateError", request.abort());
|
||||
// Call it again, for good measure.
|
||||
await promise_rejects(t, "InvalidStateError", request.abort());
|
||||
// The request's state is "created", so let's show it
|
||||
// which changes the state to "interactive.".
|
||||
const acceptPromise = test_driver.bless("show payment request", () =>
|
||||
request.show()
|
||||
);
|
||||
// Let's set request the state to "closed" by calling .abort()
|
||||
try {
|
||||
await request.abort();
|
||||
} catch (err) {
|
||||
assert_unreached("Unexpected promise rejection: " + err.message);
|
||||
}
|
||||
// The request is now "closed", so...
|
||||
await promise_rejects(t, "InvalidStateError", request.abort());
|
||||
await promise_rejects(t, "AbortError", acceptPromise);
|
||||
});
|
||||
|
||||
promise_test(async t => {
|
||||
|
|
|
@ -8,7 +8,8 @@
|
|||
<script src="/resources/testdriver.js"></script>
|
||||
<script>
|
||||
const basicCard = Object.freeze({ supportedMethods: "basic-card" });
|
||||
const defaultMethods = Object.freeze([basicCard]);
|
||||
const applePay = Object.freeze({ supportedMethods: "https://apple.com/apple-pay" });
|
||||
const defaultMethods = Object.freeze([basicCard, applePay]);
|
||||
const defaultDetails = Object.freeze({
|
||||
total: {
|
||||
label: "Total",
|
||||
|
@ -41,7 +42,7 @@ promise_test(async t => {
|
|||
|
||||
promise_test(async t => {
|
||||
const request = new PaymentRequest(defaultMethods, defaultDetails);
|
||||
assert_true(await request.canMakePayment(), "basic-card should be supported");
|
||||
assert_true(await request.canMakePayment(), "one of the methods should be supported");
|
||||
}, `If payment method identifier and serialized parts are supported, resolve promise with true.`);
|
||||
|
||||
promise_test(async t => {
|
||||
|
@ -121,63 +122,51 @@ promise_test(async t => {
|
|||
}
|
||||
}, `Optionally, at the user agent's discretion, return a promise rejected with a "NotAllowedError" DOMException.`);
|
||||
|
||||
promise_test(t => {
|
||||
return test_driver.bless("show payment request", async () => {
|
||||
const request = new PaymentRequest(defaultMethods, defaultDetails);
|
||||
const acceptPromise = request.show(); // Sets state to "interactive"
|
||||
const canMakePaymentPromise = request.canMakePayment();
|
||||
try {
|
||||
const result = await canMakePaymentPromise;
|
||||
assert_true(
|
||||
false,
|
||||
`canMakePaymentPromise should have thrown InvalidStateError`
|
||||
);
|
||||
} catch (err) {
|
||||
await promise_rejects(t, "InvalidStateError", canMakePaymentPromise);
|
||||
} finally {
|
||||
await request.abort();
|
||||
await promise_rejects(t, "AbortError", acceptPromise);
|
||||
}
|
||||
// The state should be "closed"
|
||||
await promise_rejects(t, "InvalidStateError", request.canMakePayment());
|
||||
promise_test(async t => {
|
||||
const request = new PaymentRequest(defaultMethods, defaultDetails);
|
||||
const acceptPromise = test_driver.bless("show payment request", () => {
|
||||
request.show() // Sets state to "interactive"
|
||||
});
|
||||
const canMakePaymentPromise = request.canMakePayment();
|
||||
try {
|
||||
const result = await canMakePaymentPromise;
|
||||
assert_true(
|
||||
false,
|
||||
`canMakePaymentPromise should have thrown InvalidStateError`
|
||||
);
|
||||
} catch (err) {
|
||||
await promise_rejects(t, "InvalidStateError", canMakePaymentPromise);
|
||||
} finally {
|
||||
await request.abort();
|
||||
await promise_rejects(t, "AbortError", acceptPromise);
|
||||
}
|
||||
// The state should be "closed"
|
||||
await promise_rejects(t, "InvalidStateError", request.canMakePayment());
|
||||
}, 'If request.[[state]] is "interactive", then return a promise rejected with an "InvalidStateError" DOMException.');
|
||||
|
||||
promise_test(t => {
|
||||
return test_driver.bless("show payment request", async () => {
|
||||
const request = new PaymentRequest(defaultMethods, defaultDetails);
|
||||
const acceptPromise = request.show(); // The state is now "interactive"
|
||||
acceptPromise.catch(() => {}); // no-op, just to silence unhandled rejection in devtools.
|
||||
await request.abort(); // The state is now "closed"
|
||||
await promise_rejects(t, "InvalidStateError", request.canMakePayment());
|
||||
try {
|
||||
const result = await request.canMakePayment();
|
||||
assert_true(
|
||||
false,
|
||||
`should have thrown InvalidStateError, but instead returned "${result}"`
|
||||
);
|
||||
} catch (err) {
|
||||
assert_equals(
|
||||
err.name,
|
||||
"InvalidStateError",
|
||||
"must be an InvalidStateError."
|
||||
);
|
||||
}
|
||||
promise_test(async t => {
|
||||
const request = new PaymentRequest(defaultMethods, defaultDetails);
|
||||
const acceptPromise = test_driver.bless("show payment request", () => {
|
||||
request.show() // Sets state to "interactive"
|
||||
});
|
||||
acceptPromise.catch(() => {}); // no-op, just to silence unhandled rejection in devtools.
|
||||
await request.abort(); // The state is now "closed"
|
||||
await promise_rejects(t, "InvalidStateError", request.canMakePayment());
|
||||
try {
|
||||
const result = await request.canMakePayment();
|
||||
assert_true(
|
||||
false,
|
||||
`should have thrown InvalidStateError, but instead returned "${result}"`
|
||||
);
|
||||
} catch (err) {
|
||||
assert_equals(
|
||||
err.name,
|
||||
"InvalidStateError",
|
||||
"must be an InvalidStateError."
|
||||
);
|
||||
}
|
||||
}, 'If request.[[state]] is "closed", then return a promise rejected with an "InvalidStateError" DOMException.');
|
||||
|
||||
test(() => {
|
||||
const request = new PaymentRequest(
|
||||
[{ supportedMethods: "basic-card" }],
|
||||
defaultDetails
|
||||
);
|
||||
const promises = new Set([
|
||||
request.canMakePayment(),
|
||||
request.canMakePayment(),
|
||||
request.canMakePayment(),
|
||||
]);
|
||||
assert_equals(promises.size, 3, "Must have three unique objects");
|
||||
}, "Calling canMakePayment() multiple times is always a new object.");
|
||||
</script>
|
||||
|
||||
<small>
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
<title>PaymentRequest show() rejects if doc is not fully active</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/testdriver.js"></script>
|
||||
<script src="/resources/testdriver-vendor.js"></script>
|
||||
<link rel="help" href="https://w3c.github.io/payment-request/#dom-paymentrequest-show()">
|
||||
<body>
|
||||
<script>
|
||||
|
@ -39,50 +41,45 @@ function getLoadedPaymentRequest(iframe, url) {
|
|||
}
|
||||
|
||||
promise_test(async t => {
|
||||
// Check that PaymentRequests can be constructed.
|
||||
new PaymentRequest(validMethods, validDetails);
|
||||
const iframe = document.createElement("iframe");
|
||||
iframe.allowPaymentRequest = true;
|
||||
document.body.appendChild(iframe);
|
||||
|
||||
// We first got to page1.html, grab a PaymentRequest instance.
|
||||
const request1 = await getLoadedPaymentRequest(
|
||||
iframe,
|
||||
"/payment-request/resources/page1.html"
|
||||
);
|
||||
|
||||
// We navigate the iframe again, putting request1's document into an inactive state.
|
||||
const request2 = await getLoadedPaymentRequest(
|
||||
iframe,
|
||||
"/payment-request/resources/page2.html"
|
||||
);
|
||||
|
||||
// Now, request1's relevant global object's document is no longer active.
|
||||
// So, call .show(), and make sure it rejects appropriately.
|
||||
await promise_rejects(
|
||||
t,
|
||||
"AbortError",
|
||||
request1.show(),
|
||||
"Inactive document, so must throw AbortError"
|
||||
);
|
||||
|
||||
// request2 has an active document tho, so confirm it's working as expected:
|
||||
request2.show();
|
||||
await request2.abort();
|
||||
await promise_rejects(
|
||||
t,
|
||||
"InvalidStateError",
|
||||
request2.show(),
|
||||
"Abort already called, so InvalidStateError"
|
||||
);
|
||||
// We are done, so clean up.
|
||||
iframe.remove();
|
||||
await test_driver.bless("show payment request", async () => {
|
||||
// Now, request1's relevant global object's document is no longer active.
|
||||
// So, call .show(), and make sure it rejects appropriately.
|
||||
await promise_rejects(
|
||||
t,
|
||||
"AbortError",
|
||||
request1.show(),
|
||||
"Inactive document, so must throw AbortError"
|
||||
);
|
||||
});
|
||||
await test_driver.bless("show payment request", async () => {
|
||||
// request2 has an active document tho, so confirm it's working as expected:
|
||||
request2.show();
|
||||
await request2.abort();
|
||||
await promise_rejects(
|
||||
t,
|
||||
"InvalidStateError",
|
||||
request2.show(),
|
||||
"Abort already called, so InvalidStateError"
|
||||
);
|
||||
// We are done, so clean up.
|
||||
iframe.remove();
|
||||
});
|
||||
}, "PaymentRequest.show() aborts if the document is not active");
|
||||
|
||||
promise_test(async t => {
|
||||
// check that PaymentRequests can be constructed (smoke test).
|
||||
new PaymentRequest(validMethods, validDetails);
|
||||
|
||||
// We nest two iframes and wait for them to load.
|
||||
const outerIframe = document.createElement("iframe");
|
||||
outerIframe.allowPaymentRequest = true;
|
||||
|
@ -112,6 +109,10 @@ promise_test(async t => {
|
|||
outerIframe.addEventListener("load", resolve);
|
||||
outerIframe.src = "/payment-request/resources/page2.html";
|
||||
});
|
||||
|
||||
const showPromise = await test_driver.bless("show payment request", () => {
|
||||
return request.show();
|
||||
});
|
||||
// Now, request's relevant global object's document is still active
|
||||
// (it is the active document of the inner iframe), but is not fully active
|
||||
// (since the parent of the inner iframe is itself no longer active).
|
||||
|
@ -119,16 +120,15 @@ promise_test(async t => {
|
|||
await promise_rejects(
|
||||
t,
|
||||
"AbortError",
|
||||
request.show(),
|
||||
showPromise,
|
||||
"Active, but not fully active, so must throw AbortError"
|
||||
);
|
||||
// We are done, so clean up.
|
||||
|
||||
iframe.remove();
|
||||
}, "PaymentRequest.show() aborts if the document is active, but not fully active");
|
||||
|
||||
promise_test(async t => {
|
||||
// Check that PaymentRequests can be constructed.
|
||||
new PaymentRequest(validMethods, validDetails);
|
||||
const iframe = document.createElement("iframe");
|
||||
iframe.allowPaymentRequest = true;
|
||||
document.body.appendChild(iframe);
|
||||
|
@ -137,8 +137,9 @@ promise_test(async t => {
|
|||
iframe,
|
||||
"/payment-request/resources/page1.html"
|
||||
);
|
||||
// Present the payment sheet.
|
||||
const showPromise = request.show();
|
||||
const showPromise = await test_driver.bless("show payment request", () => {
|
||||
return request.show();
|
||||
});
|
||||
// Navigate the iframe to a new location. Wait for the load event to fire.
|
||||
await new Promise(resolve => {
|
||||
iframe.addEventListener("load", resolve);
|
||||
|
|
|
@ -10,9 +10,9 @@
|
|||
|
||||
const hostInfo = get_host_info()
|
||||
const urls = {
|
||||
'same-origin': `${hostInfo.HTTP_ORIGIN}/server-timing/resources/blue.png`,
|
||||
'cross-origin': `${hostInfo.HTTP_REMOTE_ORIGIN}/server-timing/resources/blue.png`,
|
||||
'cross-origin-tao': `${hostInfo.HTTP_REMOTE_ORIGIN}/server-timing/resources/blue_tao.png`
|
||||
'same-origin': `${hostInfo.HTTPS_ORIGIN}/server-timing/resources/blue.png`,
|
||||
'cross-origin': `${hostInfo.HTTPS_REMOTE_ORIGIN}/server-timing/resources/blue.png`,
|
||||
'cross-origin-tao': `${hostInfo.HTTPS_REMOTE_ORIGIN}/server-timing/resources/blue_tao.png`
|
||||
}
|
||||
Object.keys(urls).forEach(function(key) {
|
||||
const img = document.createElement('img')
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue