mirror of
https://github.com/servo/servo.git
synced 2025-07-03 21:43:41 +01:00
Update web-platform-tests to revision b'544363de4568baf9ae90d71e4822661edc546650'
This commit is contained in:
parent
4d5a804d03
commit
32cc2e03c4
197 changed files with 3539 additions and 2824 deletions
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,3 @@
|
|||
[hit-test-floats-001.html]
|
||||
[hit-test-floats-001]
|
||||
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
|||
[hit-test-floats-004.html]
|
||||
[Miss float below something else]
|
||||
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
|||
[hit-test-floats-005.html]
|
||||
[Miss clipped float]
|
||||
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
|||
[block-in-inline-hittest-001.html]
|
||||
[block-in-inline-hittest-001]
|
||||
expected: FAIL
|
|
@ -1,3 +1,6 @@
|
|||
[block-in-inline-hittest-002.html]
|
||||
[elementsFromPoint]
|
||||
expected: FAIL
|
||||
|
||||
[elementFromPoint]
|
||||
expected: FAIL
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
[hit-test-anonymous-block.html]
|
||||
[Hit test beside line of text inside anonymous block]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[opacity-animation-ending-correctly-002.html]
|
||||
expected: TIMEOUT
|
|
@ -149,9 +149,6 @@
|
|||
[Matching font-style: 'oblique 0deg' should prefer 'oblique 40deg 50deg' over 'italic']
|
||||
expected: FAIL
|
||||
|
||||
[Matching font-stretch: '90%' should prefer '60% 70%' over '110% 140%']
|
||||
expected: FAIL
|
||||
|
||||
[Matching font-style: 'italic' should prefer 'oblique 5deg 10deg' over 'oblique 5deg']
|
||||
expected: FAIL
|
||||
|
||||
|
@ -245,9 +242,6 @@
|
|||
[Matching font-weight: '501' should prefer '500' over '450 460']
|
||||
expected: FAIL
|
||||
|
||||
[Matching font-style: 'oblique -21deg' should prefer 'oblique -60deg -40deg' over 'oblique -10deg']
|
||||
expected: FAIL
|
||||
|
||||
[Matching font-weight: '400' should prefer '351 398' over '501 550']
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -175,303 +175,3 @@
|
|||
|
||||
[padding-bottom length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-bottom length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-bottom length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-bottom length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-bottom length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-left length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-left length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-left length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-left length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-left length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-left length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-left length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-left length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-right length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-right length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-right length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-right length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-right length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-right length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-right length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-right length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-top length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-top length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-top length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-top length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-top length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-top length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-top length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-top length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-bottom length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-bottom length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-bottom length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-bottom length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-bottom length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-bottom length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-bottom length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-bottom length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-left length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-left length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-left length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-left length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-left length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-left length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-left length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-left length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-right length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-right length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-right length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-right length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-right length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-right length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[color color(rgba) / values]
|
||||
expected: FAIL
|
||||
|
||||
[font-size length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[font-size length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[font-size length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[font-size length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[font-size length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[font-size length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[font-size length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[font-size length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[font-size percentage(%) / values]
|
||||
expected: FAIL
|
||||
|
||||
[font-weight font-weight(keyword) / values]
|
||||
expected: FAIL
|
||||
|
||||
[font-weight font-weight(numeric) / values]
|
||||
expected: FAIL
|
||||
|
||||
[line-height number(integer) / values]
|
||||
expected: FAIL
|
||||
|
||||
[line-height number(decimal) / values]
|
||||
expected: FAIL
|
||||
|
||||
[line-height length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[line-height length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[line-height length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[line-height length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[line-height length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[line-height length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[line-height length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[line-height length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[line-height percentage(%) / values]
|
||||
expected: FAIL
|
||||
|
||||
[letter-spacing length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[letter-spacing length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[letter-spacing length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[letter-spacing length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[letter-spacing length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[letter-spacing length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[letter-spacing length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[letter-spacing length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing percentage(%) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent percentage(%) / values]
|
||||
expected: FAIL
|
||||
|
||||
[text-shadow shadow(shadow) / values]
|
||||
expected: FAIL
|
||||
|
|
|
@ -490,3 +490,33 @@
|
|||
|
||||
[object-view-box object-view-box(xywh) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-left-radius border-radius(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-left-radius border-radius(px-px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-right-radius border-radius(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-right-radius border-radius(px-px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-left-radius border-radius(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-left-radius border-radius(px-px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-right-radius border-radius(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-right-radius border-radius(px-px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[box-shadow box-shadow(shadow) / values]
|
||||
expected: FAIL
|
||||
|
||||
[font-stretch font-stretch(keyword) / values]
|
||||
expected: FAIL
|
||||
|
|
|
@ -56,279 +56,6 @@
|
|||
[background-position length(px) / events]
|
||||
expected: FAIL
|
||||
|
||||
[background-color color(rgba) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width length(pt) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width length(pc) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width length(px) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width length(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width length(ex) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width length(mm) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width length(cm) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width length(in) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width length(pt) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width length(pc) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width length(px) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width length(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width length(ex) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width length(mm) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width length(cm) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width length(in) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width length(pt) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width length(pc) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width length(px) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width length(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width length(ex) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width length(mm) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width length(cm) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width length(in) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width length(pt) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width length(pc) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width length(px) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width length(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width length(ex) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width length(mm) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width length(cm) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width length(in) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-color color(rgba) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-color color(rgba) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-color color(rgba) / events]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-color color(rgba) / events]
|
||||
expected: FAIL
|
||||
|
||||
[padding-bottom length(pt) / events]
|
||||
expected: FAIL
|
||||
|
||||
[padding-bottom length(pc) / events]
|
||||
expected: FAIL
|
||||
|
||||
[padding-bottom length(px) / events]
|
||||
expected: FAIL
|
||||
|
||||
[padding-bottom length(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[padding-bottom length(ex) / events]
|
||||
expected: FAIL
|
||||
|
||||
[padding-bottom length(mm) / events]
|
||||
expected: FAIL
|
||||
|
||||
[padding-bottom length(cm) / events]
|
||||
expected: FAIL
|
||||
|
||||
[padding-bottom length(in) / events]
|
||||
expected: FAIL
|
||||
|
||||
[padding-left length(pt) / events]
|
||||
expected: FAIL
|
||||
|
||||
[padding-left length(pc) / events]
|
||||
expected: FAIL
|
||||
|
||||
[padding-left length(px) / events]
|
||||
expected: FAIL
|
||||
|
||||
[padding-left length(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[padding-left length(ex) / events]
|
||||
expected: FAIL
|
||||
|
||||
[padding-left length(mm) / events]
|
||||
expected: FAIL
|
||||
|
||||
[padding-left length(cm) / events]
|
||||
expected: FAIL
|
||||
|
||||
[padding-left length(in) / events]
|
||||
expected: FAIL
|
||||
|
||||
[padding-right length(pt) / events]
|
||||
expected: FAIL
|
||||
|
||||
[padding-right length(pc) / events]
|
||||
expected: FAIL
|
||||
|
||||
[padding-right length(px) / events]
|
||||
expected: FAIL
|
||||
|
||||
[padding-right length(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[padding-right length(ex) / events]
|
||||
expected: FAIL
|
||||
|
||||
[padding-right length(mm) / events]
|
||||
expected: FAIL
|
||||
|
||||
[padding-right length(cm) / events]
|
||||
expected: FAIL
|
||||
|
||||
[padding-right length(in) / events]
|
||||
expected: FAIL
|
||||
|
||||
[padding-top length(pt) / events]
|
||||
expected: FAIL
|
||||
|
||||
[padding-top length(pc) / events]
|
||||
expected: FAIL
|
||||
|
||||
[padding-top length(px) / events]
|
||||
expected: FAIL
|
||||
|
||||
[padding-top length(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[padding-top length(ex) / events]
|
||||
expected: FAIL
|
||||
|
||||
[padding-top length(mm) / events]
|
||||
expected: FAIL
|
||||
|
||||
[padding-top length(cm) / events]
|
||||
expected: FAIL
|
||||
|
||||
[padding-top length(in) / events]
|
||||
expected: FAIL
|
||||
|
||||
[margin-bottom length(pt) / events]
|
||||
expected: FAIL
|
||||
|
||||
[margin-bottom length(pc) / events]
|
||||
expected: FAIL
|
||||
|
||||
[margin-bottom length(px) / events]
|
||||
expected: FAIL
|
||||
|
||||
[margin-bottom length(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[margin-bottom length(ex) / events]
|
||||
expected: FAIL
|
||||
|
||||
[margin-bottom length(mm) / events]
|
||||
expected: FAIL
|
||||
|
||||
[margin-bottom length(cm) / events]
|
||||
expected: FAIL
|
||||
|
||||
[margin-bottom length(in) / events]
|
||||
expected: FAIL
|
||||
|
||||
[margin-left length(pt) / events]
|
||||
expected: FAIL
|
||||
|
||||
[margin-left length(pc) / events]
|
||||
expected: FAIL
|
||||
|
||||
[margin-left length(px) / events]
|
||||
expected: FAIL
|
||||
|
||||
[margin-left length(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[margin-left length(ex) / events]
|
||||
expected: FAIL
|
||||
|
||||
[margin-left length(mm) / events]
|
||||
expected: FAIL
|
||||
|
||||
[margin-left length(cm) / events]
|
||||
expected: FAIL
|
||||
|
||||
[margin-left length(in) / events]
|
||||
expected: FAIL
|
||||
|
||||
[margin-right length(pt) / events]
|
||||
expected: FAIL
|
||||
|
||||
[margin-right length(pc) / events]
|
||||
expected: FAIL
|
||||
|
||||
[margin-right length(px) / events]
|
||||
expected: FAIL
|
||||
|
||||
[margin-right length(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[margin-right length(ex) / events]
|
||||
expected: FAIL
|
||||
|
||||
[margin-right length(mm) / events]
|
||||
expected: FAIL
|
||||
|
||||
[margin-right length(cm) / events]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -628,153 +355,3 @@
|
|||
|
||||
[left percentage(%) / events]
|
||||
expected: FAIL
|
||||
|
||||
[color color(rgba) / events]
|
||||
expected: FAIL
|
||||
|
||||
[font-size length(pt) / events]
|
||||
expected: FAIL
|
||||
|
||||
[font-size length(pc) / events]
|
||||
expected: FAIL
|
||||
|
||||
[font-size length(px) / events]
|
||||
expected: FAIL
|
||||
|
||||
[font-size length(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[font-size length(ex) / events]
|
||||
expected: FAIL
|
||||
|
||||
[font-size length(mm) / events]
|
||||
expected: FAIL
|
||||
|
||||
[font-size length(cm) / events]
|
||||
expected: FAIL
|
||||
|
||||
[font-size length(in) / events]
|
||||
expected: FAIL
|
||||
|
||||
[font-size percentage(%) / events]
|
||||
expected: FAIL
|
||||
|
||||
[font-weight font-weight(keyword) / events]
|
||||
expected: FAIL
|
||||
|
||||
[font-weight font-weight(numeric) / events]
|
||||
expected: FAIL
|
||||
|
||||
[line-height number(integer) / events]
|
||||
expected: FAIL
|
||||
|
||||
[line-height number(decimal) / events]
|
||||
expected: FAIL
|
||||
|
||||
[line-height length(pt) / events]
|
||||
expected: FAIL
|
||||
|
||||
[line-height length(pc) / events]
|
||||
expected: FAIL
|
||||
|
||||
[line-height length(px) / events]
|
||||
expected: FAIL
|
||||
|
||||
[line-height length(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[line-height length(ex) / events]
|
||||
expected: FAIL
|
||||
|
||||
[line-height length(mm) / events]
|
||||
expected: FAIL
|
||||
|
||||
[line-height length(cm) / events]
|
||||
expected: FAIL
|
||||
|
||||
[line-height length(in) / events]
|
||||
expected: FAIL
|
||||
|
||||
[line-height percentage(%) / events]
|
||||
expected: FAIL
|
||||
|
||||
[letter-spacing length(pt) / events]
|
||||
expected: FAIL
|
||||
|
||||
[letter-spacing length(pc) / events]
|
||||
expected: FAIL
|
||||
|
||||
[letter-spacing length(px) / events]
|
||||
expected: FAIL
|
||||
|
||||
[letter-spacing length(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[letter-spacing length(ex) / events]
|
||||
expected: FAIL
|
||||
|
||||
[letter-spacing length(mm) / events]
|
||||
expected: FAIL
|
||||
|
||||
[letter-spacing length(cm) / events]
|
||||
expected: FAIL
|
||||
|
||||
[letter-spacing length(in) / events]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing length(pt) / events]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing length(pc) / events]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing length(px) / events]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing length(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing length(ex) / events]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing length(mm) / events]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing length(cm) / events]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing length(in) / events]
|
||||
expected: FAIL
|
||||
|
||||
[word-spacing percentage(%) / events]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(pt) / events]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(pc) / events]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(px) / events]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(ex) / events]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(mm) / events]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(cm) / events]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent length(in) / events]
|
||||
expected: FAIL
|
||||
|
||||
[text-indent percentage(%) / events]
|
||||
expected: FAIL
|
||||
|
||||
[text-shadow shadow(shadow) / events]
|
||||
expected: FAIL
|
||||
|
|
|
@ -52,3 +52,276 @@
|
|||
|
||||
[background-position length(px) / events]
|
||||
expected: FAIL
|
||||
|
||||
[background-color color(rgba) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-width length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-width length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-width length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-width length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-top-color color(rgba) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-right-color color(rgba) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-bottom-color color(rgba) / values]
|
||||
expected: FAIL
|
||||
|
||||
[border-left-color color(rgba) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-bottom length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-bottom length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-bottom length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-bottom length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-bottom length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-bottom length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-bottom length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-bottom length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-left length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-left length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-left length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-left length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-left length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-left length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-left length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-left length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-right length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-right length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-right length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-right length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-right length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-right length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-right length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-right length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-top length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-top length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-top length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-top length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-top length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-top length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-top length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-top length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-bottom length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-bottom length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-bottom length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-bottom length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-bottom length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-bottom length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-bottom length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-bottom length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-left length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-left length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-left length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-left length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-left length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-left length(mm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-left length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-left length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-right length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-right length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-right length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-right length(em) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-right length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-right length(mm) / values]
|
||||
expected: FAIL
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
[elementFromPoint-001.html]
|
||||
[CSSOM View - 5 - extensions to the Document interface]
|
||||
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
|||
[elementFromPoint-ellipsis-in-inline-box.html]
|
||||
[elementFromPoint-ellipsis-in-inline-box]
|
||||
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
|||
[elementFromPoint-float-in-relative.html]
|
||||
[elementFromPoint-float-in-relative]
|
||||
expected: FAIL
|
|
@ -14,8 +14,5 @@
|
|||
[<li>Outside 3</li>]
|
||||
expected: FAIL
|
||||
|
||||
[<li>Inside 2</li>]
|
||||
expected: FAIL
|
||||
|
||||
[<li>Image Inside 1</li>]
|
||||
[<li>Inside 1</li>]
|
||||
expected: FAIL
|
||||
|
|
|
@ -17,3 +17,6 @@
|
|||
|
||||
[test some point of the element: bottom right corner]
|
||||
expected: FAIL
|
||||
|
||||
[test the top of layer]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
[elementsFromPoint-invalid-cases.html]
|
||||
[The root element is the last element returned for otherwise empty queries within the viewport]
|
||||
expected: FAIL
|
|
@ -1,8 +1,5 @@
|
|||
[ElementInternals-setFormValue.html]
|
||||
expected: ERROR
|
||||
[Single value - name is missing]
|
||||
expected: FAIL
|
||||
|
||||
[Single value - Non-empty name exists]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -77,5 +77,5 @@
|
|||
[Input: "Content-Length: ". Expected: 42.]
|
||||
expected: FAIL
|
||||
|
||||
[Input: "Content-Length: 42\\r\\nContent-Length: 42". Expected: 42.]
|
||||
[Input: "Content-Length: 42,42". Expected: 42.]
|
||||
expected: FAIL
|
||||
|
|
|
@ -147,8 +147,5 @@
|
|||
[list-style-image sec-fetch-site - HTTPS downgrade-upgrade]
|
||||
expected: FAIL
|
||||
|
||||
[border-image sec-fetch-site - HTTPS downgrade (header not sent)]
|
||||
expected: FAIL
|
||||
|
||||
[background-image sec-fetch-site - Not sent to non-trustworthy same-site destination]
|
||||
[background-image sec-fetch-site - HTTPS downgrade (header not sent)]
|
||||
expected: TIMEOUT
|
||||
|
|
|
@ -13,3 +13,6 @@
|
|||
|
||||
[X-Content-Type-Options%3A%20%22nosniFF%22]
|
||||
expected: FAIL
|
||||
|
||||
[X-Content-Type-Options%3A%20%40%23%24%23%25%25%26%5E%26%5E*()()11!%2Cnosniff]
|
||||
expected: FAIL
|
||||
|
|
|
@ -5,6 +5,3 @@
|
|||
|
||||
[Navigating to a different document with form submission]
|
||||
expected: TIMEOUT
|
||||
|
||||
[Navigating to a different document with link click]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
[javascript-url-referrer.window.html]
|
||||
expected: TIMEOUT
|
||||
[unsafe-url referrer policy used to create the starting page]
|
||||
expected: FAIL
|
||||
|
||||
[origin referrer policy used to create the starting page]
|
||||
expected: FAIL
|
||||
|
||||
[no-referrer referrer policy used to create the starting page]
|
||||
expected: TIMEOUT
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
[nav-cancelation-2.sub.html]
|
||||
expected: TIMEOUT
|
||||
[grandparent cancels a pending navigation in a cross-origin grandchild]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[traverse-during-unload.html]
|
||||
expected: TIMEOUT
|
||||
[Traversing the history during unload]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,3 @@
|
|||
[traverse_the_history_1.html]
|
||||
[Multiple history traversals from the same task]
|
||||
expected: FAIL
|
|
@ -0,0 +1,7 @@
|
|||
[document-base-url-changes-after-nav-about-srcdoc.https.window.html]
|
||||
expected: TIMEOUT
|
||||
[non-sandboxed srcdoc - parent changes baseURI]
|
||||
expected: TIMEOUT
|
||||
|
||||
[sandboxed srcdoc - parent changes baseURI]
|
||||
expected: NOTRUN
|
|
@ -1,15 +1,19 @@
|
|||
[supported-elements.html]
|
||||
expected: TIMEOUT
|
||||
[Contenteditable element should support autofocus]
|
||||
expected: FAIL
|
||||
|
||||
[Element with tabindex should support autofocus]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[Host element with delegatesFocus including no focusable descendants should be skipped]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
[Area element should support autofocus]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
[Host element with delegatesFocus should support autofocus]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
[Non-HTMLElement should not support autofocus]
|
||||
expected: NOTRUN
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
[http-equiv-and-name.html]
|
||||
[<meta> set the color-scheme to dark]
|
||||
expected: FAIL
|
||||
|
||||
[<meta> set the content-language to dark]
|
||||
expected: FAIL
|
|
@ -1,3 +1,4 @@
|
|||
[iframe_sandbox_popups_escaping-2.html]
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
[non-active-document.html]
|
||||
[DOMParser]
|
||||
expected: FAIL
|
||||
|
||||
[createHTMLDocument]
|
||||
expected: FAIL
|
||||
|
||||
[<template>]
|
||||
expected: FAIL
|
||||
|
|
|
@ -175,3 +175,6 @@
|
|||
|
||||
[multipart/form-data: Basic test (formdata event)]
|
||||
expected: FAIL
|
||||
|
||||
[multipart/form-data: 0x00 in value (normal form)]
|
||||
expected: FAIL
|
||||
|
|
|
@ -172,3 +172,9 @@
|
|||
|
||||
[text/plain: backslash in name (formdata event)]
|
||||
expected: FAIL
|
||||
|
||||
[text/plain: Basic test (formdata event)]
|
||||
expected: FAIL
|
||||
|
||||
[text/plain: 0x00 in name (formdata event)]
|
||||
expected: FAIL
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
[valid-invalid-fieldset-disconnected.html]
|
||||
[<input> element becomes invalid inside disconnected <fieldset>]
|
||||
expected: FAIL
|
||||
|
||||
[<select> element becomes valid inside disconnected <fieldset>]
|
||||
expected: FAIL
|
|
@ -1,3 +0,0 @@
|
|||
[module-static-import-delayed.html]
|
||||
[document.write in an imported module]
|
||||
expected: FAIL
|
|
@ -1,7 +1,6 @@
|
|||
[promise-rejection-events.html]
|
||||
expected: TIMEOUT
|
||||
[delayed handling: delaying handling rejected promise created from createImageBitmap will cause both events to fire]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[unhandledrejection: from createImageBitmap which is UA triggered]
|
||||
expected: FAIL
|
||||
|
|
|
@ -13,34 +13,34 @@
|
|||
expected: FAIL
|
||||
|
||||
[content-type 4 : text/plain;charset=gbk,text/html;charset=windows-1254]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[content-type 5 : text/plain;charset=gbk,text/plain]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[content-type 6 : text/plain;charset=gbk,text/plain;charset=windows-1252]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[content-type 7 : text/html;charset=gbk,text/html;x=",text/plain]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[content-type 8 : text/plain;charset=gbk;x=foo,text/plain]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[content-type 9 : text/html;charset=gbk,text/plain,text/html]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[content-type 10 : text/plain,*/*]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[content-type 11 : text/html,*/*]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[content-type 12 : */*,text/html]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[content-type 13 : text/plain,*/*;charset=gbk]
|
||||
expected: NOTRUN
|
||||
expected: TIMEOUT
|
||||
|
||||
[content-type 14 : text/html,*/*;charset=gbk]
|
||||
expected: NOTRUN
|
||||
|
|
|
@ -1318,9 +1318,6 @@
|
|||
[<area>: Setting <http://test/>.protocol = 'https\x0c']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <http://test/>.protocol = 'https\r']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://test/>.protocol = 'https\r']
|
||||
expected: FAIL
|
||||
|
||||
|
@ -1330,6 +1327,15 @@
|
|||
[<area>: Setting <http://test/>.protocol = 'https ']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://test/>.protocol = 'h\r\ntt\tps' Tab and newline are stripped]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <http://test/>.protocol = 'https\x0e']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://test/>.protocol = 'https\x0e']
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[url-setters-a-area.window.html?include=mailto]
|
||||
[<area>: Setting <mailto:me@example.net>.protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must.]
|
||||
|
|
|
@ -117,10 +117,10 @@
|
|||
[URL: Setting <http://test/>.protocol = 'https\x0c']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <http://test/>.protocol = 'https\r']
|
||||
[URL: Setting <http://test/>.protocol = 'https ']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <http://test/>.protocol = 'https ']
|
||||
[URL: Setting <http://test/>.protocol = 'https\x0e']
|
||||
expected: FAIL
|
||||
|
||||
|
||||
|
@ -200,8 +200,8 @@
|
|||
[URL: Setting <http://test/>.protocol = 'https\x0c']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <http://test/>.protocol = 'https\r']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <http://test/>.protocol = 'https ']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <http://test/>.protocol = 'https\x0e']
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
[audiocontext-not-fully-active.html]
|
||||
expected: TIMEOUT
|
||||
[frame in navigated remote-site frame]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[cross-partition.https.tentative.html]
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[BroadcastChannel messages aren't received from a cross-partition iframe]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[017.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, about:blank]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,4 @@
|
|||
[localstorage-about-blank-3P-iframe-opens-3P-window.partitioned.tentative.html]
|
||||
expected: TIMEOUT
|
||||
[StorageKey: test 3P about:blank window opened from a 3P iframe]
|
||||
expected: TIMEOUT
|
|
@ -1,7 +1,11 @@
|
|||
[event-error.sub.any.html]
|
||||
expected: TIMEOUT
|
||||
[error while reading body should report zeros for loaded and total]
|
||||
expected: FAIL
|
||||
|
||||
[onerror should be called]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
||||
[event-error.sub.any.worker.html]
|
||||
[error while reading body should report zeros for loaded and total]
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
[constructor-submitter.html]
|
||||
[FormData construction should throw a TypeError if a non-null submitter is not a submit button]
|
||||
expected: FAIL
|
||||
|
||||
[FormData construction should throw a 'NotFoundError' DOMException if a non-null submitter is not owned by the form]
|
||||
expected: FAIL
|
||||
|
||||
[The constructed FormData object should contain an in-tree-order entry for a named submit button submitter]
|
||||
expected: FAIL
|
||||
|
||||
[The constructed FormData object should contain in-tree-order entries for an activated Image Button submitter]
|
||||
expected: FAIL
|
||||
|
||||
[The constructed FormData object should contain in-tree-order entries for an unactivated Image Button submitter]
|
||||
expected: FAIL
|
|
@ -0,0 +1,5 @@
|
|||
[task_queue_throttling.any.worker.html]
|
||||
|
||||
[task_queue_throttling.any.html]
|
||||
[Throttling the performance timeline task queue.]
|
||||
expected: FAIL
|
|
@ -41,7 +41,7 @@
|
|||
<div class="target" style="width: anchor-size(--a2 width)" data-expected-width=5></div>
|
||||
</div>
|
||||
<script>
|
||||
checkLayout('.target');
|
||||
checkLayout('.target', false);
|
||||
container.classList.add('after');
|
||||
for (const element of document.getElementsByClassName('target')) {
|
||||
if (element.dataset.offsetX === '5')
|
||||
|
@ -49,6 +49,6 @@ for (const element of document.getElementsByClassName('target')) {
|
|||
if (element.dataset.expectedWidth === '5')
|
||||
element.dataset.expectedWidth = '10';
|
||||
}
|
||||
checkLayout('.after .target');
|
||||
checkLayout('.after .target', true);
|
||||
</script>
|
||||
</body>
|
||||
|
|
|
@ -91,7 +91,7 @@ for (const element of document.getElementsByClassName('target')) {
|
|||
element.dataset.expectedWidth = '50';
|
||||
element.dataset.expectedHeight = '70';
|
||||
}
|
||||
checkLayout('.target');
|
||||
checkLayout('.target', false);
|
||||
|
||||
document.body.classList.add('after');
|
||||
for (const element of document.getElementsByClassName('target')) {
|
||||
|
@ -100,6 +100,6 @@ for (const element of document.getElementsByClassName('target')) {
|
|||
element.dataset.expectedWidth = '70';
|
||||
element.dataset.expectedHeight = '50';
|
||||
}
|
||||
checkLayout('.after .target');
|
||||
checkLayout('.after .target', true);
|
||||
</script>
|
||||
</body>
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
background: lime;
|
||||
}
|
||||
</style>
|
||||
<body onload="run_test()">
|
||||
<body>
|
||||
<div class="cb">
|
||||
<div style="contain: strict; height: 50px">
|
||||
<div class="spacer" style="height: 10px"></div>
|
||||
|
@ -39,9 +39,7 @@
|
|||
data-expected-width=30 data-expected-height=20></div>
|
||||
</div>
|
||||
<script>
|
||||
function run_test() {
|
||||
document.body.classList.add('after');
|
||||
checkLayout('.target');
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
|
|
|
@ -34,7 +34,8 @@
|
|||
}
|
||||
</style>
|
||||
|
||||
<body id="container" onload="checkLayout('.target')">
|
||||
<body onload="checkLayout('.target')">
|
||||
<div id="container">
|
||||
<div class="flex-item" id="a1"></div>
|
||||
<div class="flex-item"></div>
|
||||
<div class="flex-item"></div>
|
||||
|
@ -59,9 +60,10 @@
|
|||
<div class="target" style="left: anchor(--inexist-anchor left, 50%)" data-offset-x="150"></div>
|
||||
<div class="target" style="left: anchor(--inexist-anchor left, calc(20% + 20px))" data-offset-x="80"></div>
|
||||
<div class="target" style="top: anchor(--a1 left, anchor(--a2 top))" data-offset-y="100"></div>
|
||||
<div class="target" style="top: anchor(--a1 left, calc((anchor(--a1 bottom) + anchor(--a2 top)) / 2)" data-offset-y="75"></div>
|
||||
<div class="target" style="top: anchor(--a1 left, calc((anchor(--a1 bottom) + anchor(--a2 top)) / 2))" data-offset-y="75"></div>
|
||||
<div class="target" style="width: anchor-size(--inexist-anchor width, 50%)" data-expected-width="150"></div>
|
||||
<div class="target" style="width: anchor-size(--inexist-anchor width, calc(20% + 20px))" data-expected-width="80"></div>
|
||||
<div class="target" style="height: anchor-size(--inexist-anchor height, anchor-size(--a1 width))" data-expected-height="100"></div>
|
||||
<div class="target" style="height: anchor-size(--inexist-anchor height, calc((anchor-size(--a1 width) + anchor-size(--a2 height)) / 2)" data-expected-height="75"></div>
|
||||
<div class="target" style="height: anchor-size(--inexist-anchor height, calc((anchor-size(--a1 width) + anchor-size(--a2 height)) / 2))" data-expected-height="75"></div>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
-->
|
||||
<link rel="help" href="http://www.w3.org/TR/css3-background/#the-border-image-slice">
|
||||
<link rel="match" href="reference/border-image-slice-005-ref.html">
|
||||
<meta name="fuzzy" content="0-35;0-1250">
|
||||
<meta name="fuzzy" content="maxDifference=0-92;totalPixels=0-5314">
|
||||
<meta name="assert" content="This test checks that the border image is sliced into nine regions with inward offsets, '40%' from the top, '30%' from the right,'20%' from the bottom, and '10%' from the left edges of the image. Percentages are relative to the size of the image: the width of the image for the horizontal offsets, the height for vertical offsets.">
|
||||
<style>
|
||||
div
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
-->
|
||||
<link rel="help" href="http://www.w3.org/TR/css3-background/#the-border-image-slice">
|
||||
<link rel="match" href="reference/border-image-slice-007-ref.html">
|
||||
<meta name="fuzzy" content="0-35;0-1250">
|
||||
<meta name="fuzzy" content="maxDifference=0-92;totalPixels=0-5314">
|
||||
<meta name="assert" content="This test checks that the 'fill' keyword, if present, causes the middle part of the border-image to be preserved.">
|
||||
<style>
|
||||
div
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
-->
|
||||
<link rel="help" href="http://www.w3.org/TR/css3-background/#the-border-image-repeat">
|
||||
<link rel="match" href="reference/css3-border-image-repeat-repeat-ref.html">
|
||||
<meta name="fuzzy" content="maxDifference=0-58;totalPixels=0-412">
|
||||
<style>
|
||||
div {
|
||||
border: red solid 18px;
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#pagination">
|
||||
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
|
||||
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||
<div style="columns:2; gap:0; column-fill:auto; width:100px; height:100px; background:red;">
|
||||
<div style="height:50px; background:green;"></div>
|
||||
<div style="display:flex;">
|
||||
<div style="display:flex;">
|
||||
<div style="width:50px;">
|
||||
<div style="height:30px;"></div>
|
||||
<div style="height:50px; contain:size; background:green;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="height:50px; margin-left:-100%; width:200%; background:green;"></div>
|
||||
</div>
|
|
@ -191,16 +191,4 @@
|
|||
test_container_name_invalid('And');
|
||||
test_container_name_invalid('oR');
|
||||
test_container_name_invalid('nOt');
|
||||
|
||||
test_condition_known('style(--my-prop: foo)');
|
||||
test_condition_known('style(--my-prop: foo - bar ())');
|
||||
test_condition_known('style(not ((--foo: calc(10px + 2em)) and ((--foo: url(x)))))');
|
||||
test_condition_known('style((--foo: bar) or (--bar: 10px))');
|
||||
test_condition_known('style(--my-prop:)');
|
||||
test_condition_known('style(--my-prop: )');
|
||||
test_condition_known('style(--foo: bar !important)');
|
||||
|
||||
test_condition_unknown('style(--foo: bar;)');
|
||||
test_condition_unknown('style(--foo)');
|
||||
test_condition_unknown('style(style(--foo: bar))');
|
||||
</script>
|
||||
|
|
|
@ -0,0 +1,75 @@
|
|||
<!doctype html>
|
||||
<title>@container: style queries parsing</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-rule">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="support/cq-testcommon.js"></script>
|
||||
<div style="container-name:name;container-type:size; width:100px; height:100px">
|
||||
<main id=main></main>
|
||||
</div>
|
||||
<script>
|
||||
setup(() => assert_implements_container_queries());
|
||||
|
||||
function cleanup_main() {
|
||||
while (main.firstChild)
|
||||
main.firstChild.remove();
|
||||
}
|
||||
|
||||
function set_style(text) {
|
||||
let style = document.createElement('style');
|
||||
style.innerText = text;
|
||||
main.append(style);
|
||||
return style;
|
||||
}
|
||||
|
||||
function test_rule_valid(query) {
|
||||
test(t => {
|
||||
t.add_cleanup(cleanup_main);
|
||||
let style = set_style(`@container ${query} {}`);
|
||||
assert_equals(style.sheet.rules.length, 1);
|
||||
}, query);
|
||||
}
|
||||
|
||||
function test_condition_invalid(condition) {
|
||||
test(t => {
|
||||
t.add_cleanup(cleanup_main);
|
||||
let style = set_style(`@container name ${condition} {}`);
|
||||
assert_equals(style.sheet.rules.length, 0);
|
||||
}, condition);
|
||||
}
|
||||
|
||||
// Tests that 1) the condition parses, and 2) is either "unknown" or not, as
|
||||
// specified.
|
||||
function test_condition_valid(condition, unknown) {
|
||||
test(t => {
|
||||
t.add_cleanup(cleanup_main);
|
||||
let style = set_style(`
|
||||
@container name ${condition} {}
|
||||
@container name (${condition}) or (not (${condition})) { main { --match:true; } }
|
||||
`);
|
||||
assert_equals(style.sheet.rules.length, 2);
|
||||
const expected = unknown ? '' : 'true';
|
||||
assert_equals(getComputedStyle(main).getPropertyValue('--match'), expected);
|
||||
}, condition);
|
||||
}
|
||||
|
||||
function test_condition_known(condition) {
|
||||
test_condition_valid(condition, false /* unknown */);
|
||||
}
|
||||
|
||||
function test_condition_unknown(condition) {
|
||||
test_condition_valid(condition, true /* unknown */);
|
||||
}
|
||||
|
||||
test_condition_known('style(--my-prop: foo)');
|
||||
test_condition_known('style(--my-prop: foo - bar ())');
|
||||
test_condition_known('style(not ((--foo: calc(10px + 2em)) and ((--foo: url(x)))))');
|
||||
test_condition_known('style((--foo: bar) or (--bar: 10px))');
|
||||
test_condition_known('style(--my-prop:)');
|
||||
test_condition_known('style(--my-prop: )');
|
||||
test_condition_known('style(--foo: bar !important)');
|
||||
|
||||
test_condition_unknown('style(--foo: bar;)');
|
||||
test_condition_unknown('style(--foo)');
|
||||
test_condition_unknown('style(style(--foo: bar))');
|
||||
</script>
|
|
@ -0,0 +1,17 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-inline-3/#baseline-source">
|
||||
<style>
|
||||
#target {
|
||||
baseline-source: first;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
</style>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<div id="target"></div>
|
||||
<script>
|
||||
test(() => {
|
||||
const target = document.getElementById('target');
|
||||
assert_equals(getComputedStyle(target).baselineSource, 'auto');
|
||||
});
|
||||
</script>
|
|
@ -124,4 +124,22 @@
|
|||
& .c { color: blue; }
|
||||
}`, 'color is changed, new rule is ignored');
|
||||
});
|
||||
|
||||
// We cannot insert anything starting with an tag, as that would cause
|
||||
// the serialized rule not to parse back. Compounds starting with a tag
|
||||
// that are _not_ the first compound in a complex selector are OK, though,
|
||||
// as are complex selectors that are not the first in the list.
|
||||
test(() => {
|
||||
document.getElementById('ss').innerHTML = sampleSheetText;
|
||||
let [ss] = document.styleSheets;
|
||||
ss.cssRules[0].cssRules[0].selectorText = 'div.b .c &'; // Ignored.
|
||||
ss.cssRules[0].cssRules[1].selectorText = '.c div.b &, div &'; // Allowed.
|
||||
assert_throws_dom('SyntaxError', () => { ss.cssRules[0].insertRule('div & {}'); });
|
||||
assert_equals(ss.cssRules[0].cssText,
|
||||
`.a {
|
||||
color: red;
|
||||
& .b { color: green; }
|
||||
.c div.b &, div & { color: blue; }
|
||||
}`, 'one rule is kept unchanged, the other is changed');
|
||||
});
|
||||
</script>
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
<!DOCTYPE html>
|
||||
<style>
|
||||
div {
|
||||
width: 15em;
|
||||
height: 10em;
|
||||
overflow: auto;
|
||||
}
|
||||
</style>
|
||||
<div>
|
||||
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
|
||||
</div>
|
|
@ -0,0 +1,13 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/8063">
|
||||
<link rel="match" href="overflow-overlay-ref.html">
|
||||
<style>
|
||||
div {
|
||||
width: 15em;
|
||||
height: 10em;
|
||||
overflow: overlay;
|
||||
}
|
||||
</style>
|
||||
<div>
|
||||
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
|
||||
</div>
|
|
@ -1,42 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<title>Tests animation with tree-scoped names and references</title>
|
||||
<meta name="assert" content="Custom counter style references should work in keyframes">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-scoping/#shadow-names">
|
||||
<link rel="author" href="mailto:xiaochengh@chromium.org">
|
||||
<link rel="match" href="scoped-reference-animation-ref.html">
|
||||
|
||||
<style>
|
||||
/* Overrides predefined lower-roman counter-style */
|
||||
@counter-style lower-roman {
|
||||
system: cyclic;
|
||||
symbols: 'X';
|
||||
}
|
||||
|
||||
/* Overrides predefined upper-roman counter-style */
|
||||
@counter-style upper-roman {
|
||||
system: cyclic;
|
||||
symbols: 'O';
|
||||
}
|
||||
|
||||
/* Should resolve to the custom counter styles, not the predefined ones */
|
||||
@keyframes list-style-type-anim {
|
||||
from { list-style-type: lower-roman; }
|
||||
to { list-style-type: upper-roman; }
|
||||
}
|
||||
|
||||
#target1 {
|
||||
animation: list-style-type-anim 2s -0.9s linear paused;
|
||||
}
|
||||
|
||||
#target2 {
|
||||
animation: list-style-type-anim 2s -1s linear paused;
|
||||
}
|
||||
</style>
|
||||
|
||||
<ul id="target1">
|
||||
<li>List marker should be X
|
||||
</ul>
|
||||
|
||||
<ul id="target2">
|
||||
<li>List marker should be O
|
||||
</ul>
|
|
@ -1,55 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<title>Tests animation with tree-scoped names and references</title>
|
||||
<meta name="assert" content="Custom counter style references should work in shadow DOM keyframes">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-scoping/#shadow-names">
|
||||
<link rel="author" href="mailto:xiaochengh@chromium.org">
|
||||
<link rel="match" href="scoped-reference-animation-ref.html">
|
||||
|
||||
<style>
|
||||
@counter-style lower-roman { system: extends disc; }
|
||||
@counter-style upper-roman { system: extends disc; }
|
||||
</style>
|
||||
|
||||
<div id="host">
|
||||
</div>
|
||||
|
||||
<script>
|
||||
host.attachShadow({mode: 'open'}).innerHTML = `
|
||||
<style>
|
||||
/* Overrides predefined and outer tree scope's custom lower-roman counter-style */
|
||||
@counter-style lower-roman {
|
||||
system: cyclic;
|
||||
symbols: 'X';
|
||||
}
|
||||
|
||||
/* Overrides predefined and outer tree scope's upper-roman counter-style */
|
||||
@counter-style upper-roman {
|
||||
system: cyclic;
|
||||
symbols: 'O';
|
||||
}
|
||||
|
||||
/* Should resolve to the custom counter styles, not the predefined or the outer
|
||||
tree scope's ones */
|
||||
@keyframes list-style-type-anim {
|
||||
from { list-style-type: lower-roman; }
|
||||
to { list-style-type: upper-roman; }
|
||||
}
|
||||
|
||||
#target1 {
|
||||
animation: list-style-type-anim 2s -0.9s linear paused;
|
||||
}
|
||||
|
||||
#target2 {
|
||||
animation: list-style-type-anim 2s -1s linear paused;
|
||||
}
|
||||
</style>
|
||||
|
||||
<ul id="target1">
|
||||
<li>List marker should be X
|
||||
</ul>
|
||||
|
||||
<ul id="target2">
|
||||
<li>List marker should be O
|
||||
</ul>
|
||||
`;
|
||||
</script>
|
|
@ -1,30 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<title>Tests animation with tree-scoped names and references</title>
|
||||
|
||||
<style>
|
||||
@counter-style from-counter-style {
|
||||
system: cyclic;
|
||||
symbols: 'X';
|
||||
}
|
||||
|
||||
@counter-style to-counter-style {
|
||||
system: cyclic;
|
||||
symbols: 'O';
|
||||
}
|
||||
|
||||
#target1 {
|
||||
list-style-type: from-counter-style;
|
||||
}
|
||||
|
||||
#target2 {
|
||||
list-style-type: to-counter-style;
|
||||
}
|
||||
</style>
|
||||
|
||||
<ul id="target1">
|
||||
<li>List marker should be X
|
||||
</ul>
|
||||
|
||||
<ul id="target2">
|
||||
<li>List marker should be O
|
||||
</ul>
|
|
@ -0,0 +1,20 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="author" title="Tim Nguyen" href="https://github.com/nt1m">
|
||||
<link rel="help" href="https://w3c.github.io/csswg-drafts/css-sizing-4/#valdef-width-fit-content">
|
||||
<link rel="match" href="fit-content-block-size-fixedpos-ref.html">
|
||||
<style>
|
||||
body {
|
||||
overflow: hidden;
|
||||
}
|
||||
#container {
|
||||
height: fit-content;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
background-color: gold;
|
||||
margin: auto;
|
||||
bottom: 0;
|
||||
}
|
||||
</style>
|
||||
<div id="container">
|
||||
<div style="height:90vh;width:50px;outline: 2px dotted red;"></div>
|
||||
</div>
|
|
@ -0,0 +1,14 @@
|
|||
<!DOCTYPE html>
|
||||
<style>
|
||||
#container {
|
||||
height: 90vh;
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
background-color: gold;
|
||||
margin: auto;
|
||||
bottom: 0;
|
||||
}
|
||||
</style>
|
||||
<div id="container">
|
||||
<div style="height:90vh;width:50px;outline: 2px dotted red;"></div>
|
||||
</div>
|
|
@ -0,0 +1,17 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="author" title="Tim Nguyen" href="https://github.com/nt1m">
|
||||
<link rel="help" href="https://w3c.github.io/csswg-drafts/css-sizing-4/#valdef-width-fit-content">
|
||||
<link rel="match" href="fit-content-block-size-fixedpos-ref.html">
|
||||
<style>
|
||||
#container {
|
||||
height: fit-content;
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
background-color: gold;
|
||||
margin: auto;
|
||||
bottom: 0;
|
||||
}
|
||||
</style>
|
||||
<div id="container">
|
||||
<div style="height:90vh;width:50px;outline: 2px dotted red;"></div>
|
||||
</div>
|
|
@ -0,0 +1,24 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Test Reference</title>
|
||||
<style>
|
||||
.outer {
|
||||
display: block;
|
||||
width: 500px;
|
||||
background: purple;
|
||||
border: 1px solid green;
|
||||
}
|
||||
.half {
|
||||
display: inline-block;
|
||||
width: 50%;
|
||||
background: blue;
|
||||
}
|
||||
.half + .half {
|
||||
background: yellow;
|
||||
}
|
||||
</style>
|
||||
<div class="outer">
|
||||
<div class="half">A</div>
|
||||
<!-- White space here should take up space -->
|
||||
<div class="half">B</div>
|
||||
</div>
|
|
@ -0,0 +1,32 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>Whitespace inside table isn't incorrectly suppressed</title>
|
||||
<link rel="author" title="Mozilla" href="https://mozilla.org">
|
||||
<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
|
||||
<link rel="help" href="https://bugs.webkit.org/show_bug.cgi?id=251178">
|
||||
<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=1410345">
|
||||
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1811353">
|
||||
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/8358">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-tables/#consecutive-boxes">
|
||||
<link rel="match" href="whitespace-001-ref.html">
|
||||
<style>
|
||||
.outer {
|
||||
display: table;
|
||||
width: 500px;
|
||||
background: purple;
|
||||
border: 1px solid green;
|
||||
}
|
||||
.half {
|
||||
display: inline-block;
|
||||
width: 50%;
|
||||
background: blue;
|
||||
}
|
||||
.half + .half {
|
||||
background: yellow;
|
||||
}
|
||||
</style>
|
||||
<div class="outer">
|
||||
<div class="half">A</div>
|
||||
<!-- White space here should take up space -->
|
||||
<div class="half">B</div>
|
||||
</div>
|
|
@ -28,7 +28,7 @@ test_math_used('calc(atan(e - 2.7182818284590452354) )', '0deg', {type:'angle',
|
|||
|
||||
// General calculations
|
||||
test_math_used('calc(asin(sin(30deg + 1.0471967rad ) ))', '90deg', {type:'angle', approx:0.1});
|
||||
test_math_used('calc(acos(cos(30deg - 0.523599rad ) ))', '0deg'), {type:'angle', approx:0.1};
|
||||
test_math_used('calc(acos(cos(30deg - 0.523599rad ) ))', '0deg', {type:'angle', approx:0.1});
|
||||
test_math_used('calc(asin(sin(3.14159 / 2 + 1 - 1) ))', '90deg', {type:'angle', approx:0.1});
|
||||
test_math_used('calc(asin(sin(100grad) ))', '90deg', {type:'angle', approx:0.1});
|
||||
test_math_used('calc(acos(cos(0 / 2 + 1 - 1) ))', '0deg', {type:'angle', approx:0.1});
|
||||
|
|
|
@ -19,10 +19,10 @@ test_math_used('calc(e - exp(1))', '0', {type:'number', approx:0.1});
|
|||
|
||||
//General calculations
|
||||
test_math_used('calc(log( 1 + 1 + 2 /2 - 2) )', '0', {type:'number', approx:0.1});
|
||||
test_math_used('calc(log(1) + exp(0))', '1'), {type:'number', approx:0.1};
|
||||
test_math_used('calc(exp(log(1) + exp(0)*2))', '7.4'), {type:'number', approx:0.1};
|
||||
test_math_used('calc(log(log(1) + exp(0)*10))', '2.3'), {type:'number', approx:0.1};
|
||||
test_math_used('calc(log(log(1) + exp(0)*20, 10))', '1.3'), {type:'number', approx:0.1};
|
||||
test_math_used('calc(log(1) + exp(0))', '1', {type:'number', approx:0.1});
|
||||
test_math_used('calc(exp(log(1) + exp(0)*2))', '7.4', {type:'number', approx:0.1});
|
||||
test_math_used('calc(log(log(1) + exp(0)*10))', '2.3', {type:'number', approx:0.1});
|
||||
test_math_used('calc(log(log(1) + exp(0)*20, 10))', '1.3', {type:'number', approx:0.1});
|
||||
test_math_used('calc(log(e) / log(e) + exp(0)*2 * log(e))', '3', {type:'number', approx:0.1});
|
||||
test_math_used('calc(log((1 + 1) /2) / log(e) + exp(0*1)*2 * log(e))', '2', {type:'number', approx:0.1});
|
||||
test_math_used('calc(log((3 + 1) /2, 2) / log(e) + exp(0*1)*2 * log(e))', '3', {type:'number', approx:0.1});
|
||||
|
|
|
@ -10,14 +10,14 @@
|
|||
<script>
|
||||
|
||||
// Identity tests
|
||||
test_math_used('pow(1,1)', '1', {type:'number'});
|
||||
test_math_used('sqrt(1)', '1', {type:'number'});
|
||||
test_math_used('hypot(1)', '1', {type:'number'});
|
||||
test_math_used('pow(1,1)', '1', {type:'integer'});
|
||||
test_math_used('sqrt(1)', '1', {type:'integer'});
|
||||
test_math_used('hypot(1)', '1', {type:'integer'});
|
||||
|
||||
// Nestings
|
||||
test_math_used('sqrt(pow(1,1))', '1');
|
||||
test_math_used('hypot(pow(1, sqrt(1)))', '1');
|
||||
test_math_used('calc(hypot(pow((1 + sqrt(1)) / 2, sqrt(1))))', '1');
|
||||
test_math_used('sqrt(pow(1,1))', '1', {type:'integer'});
|
||||
test_math_used('hypot(pow(1, sqrt(1)))', '1', {type:'integer'});
|
||||
test_math_used('calc(hypot(pow((1 + sqrt(1)) / 2, sqrt(1))))', '1', {type:'integer'});
|
||||
|
||||
// General calculations
|
||||
test_math_used('calc(100px * pow(2, pow(2, 2)))','1600px');
|
||||
|
|
|
@ -27,7 +27,6 @@ test_invalid_number('hypot(1 * )');
|
|||
test_invalid_number('hypot(1 / )');
|
||||
test_invalid_number('hypot(1 2)');
|
||||
test_invalid_number('hypot(1, , 2)');
|
||||
test_invalid_number('hypot(1, 2)');
|
||||
test_invalid_number('sqrt()');
|
||||
test_invalid_number('sqrt( )');
|
||||
test_invalid_number('sqrt(,)');
|
||||
|
@ -50,7 +49,6 @@ test_invalid_number('pow(1 * )');
|
|||
test_invalid_number('pow(1 / )');
|
||||
test_invalid_number('pow(1 2)');
|
||||
test_invalid_number('pow(1, , 2)');
|
||||
test_invalid_number('pow(1, 2)');
|
||||
|
||||
// General tests
|
||||
test_invalid_length('calc(1px * pow(1))');
|
||||
|
@ -59,10 +57,12 @@ test_invalid_length('calc(sqrt(100px)');
|
|||
test_invalid_length('hypot(2px, 40%)');
|
||||
test_invalid_length('hypot(2px, 3)');
|
||||
test_invalid_length('hypot(3, ,4)');
|
||||
test_invalid_length('hypot(1, 2)');
|
||||
test_invalid_length('calc(1px * pow(2 3))');
|
||||
test_invalid_length('hypot()');
|
||||
test_invalid_length('calc(pow(2))');
|
||||
test_invalid_length('pow())');
|
||||
test_invalid_length('pow(1, 2)');
|
||||
test_invalid_length('calc(sqrt())');
|
||||
test_invalid_length('calc(sqrt(100, 200))');
|
||||
</script>
|
|
@ -9,15 +9,15 @@
|
|||
<div id="target"></div>
|
||||
<script>
|
||||
// Identity tests
|
||||
test_math_used('abs(1)', '1', {type:'number'});
|
||||
test_math_used('sign(1)', '1', {type:'number'});
|
||||
test_math_used('abs(-1)', '1', {type:'number'});
|
||||
test_math_used('sign(-1)', '-1', {type:'number'});
|
||||
test_math_used('abs(1)', '1', {type:'integer'});
|
||||
test_math_used('sign(1)', '1', {type:'integer'});
|
||||
test_math_used('abs(-1)', '1', {type:'integer'});
|
||||
test_math_used('sign(-1)', '-1', {type:'integer'});
|
||||
|
||||
// Nestings
|
||||
test_math_used('abs(sign(1))', '1');
|
||||
test_math_used('abs(sign(sign(1)))', '1');
|
||||
test_math_used('sign(sign(sign(1) + sign(1)))', '1');
|
||||
test_math_used('abs(sign(1))', '1', {type:'integer'});
|
||||
test_math_used('abs(sign(sign(1)))', '1', {type:'integer'});
|
||||
test_math_used('sign(sign(sign(1) + sign(1)))', '1', {type:'integer'});
|
||||
|
||||
// General calculations
|
||||
test_math_used('calc(abs(0.1 + 0.2) + 0.05)', '0.35', {type:'number', approx:0.1});
|
||||
|
@ -29,94 +29,94 @@ test_math_used('calc(sign(0.1 - 0.2) - 0.05)', '-1.05', {type:'number', approx:0
|
|||
test_math_used('calc(sign(1) + sign(1) - 0.05)', '1.95', {type:'number', approx:0.1});
|
||||
|
||||
// Test sign for zero
|
||||
test_math_used('calc(sign(-0))', '-0', {type:'number'});
|
||||
test_math_used('calc(sign(0))', '0', {type:'number'});
|
||||
test_math_used('calc(sign(-0))', '-0', {type:'integer'});
|
||||
test_math_used('calc(sign(0))', '0', {type:'integer'});
|
||||
|
||||
//Type checking sign
|
||||
test_math_used('sign(1px)', '1');
|
||||
test_math_used('sign(1cm)', '1');
|
||||
test_math_used('sign(1mm)', '1');
|
||||
test_math_used('sign(1Q)', '1');
|
||||
test_math_used('sign(1in)', '1');
|
||||
test_math_used('sign(1pc)', '1');
|
||||
test_math_used('sign(1pt)', '1');
|
||||
test_math_used('sign(1em)', '1');
|
||||
test_math_used('sign(1ex)', '1');
|
||||
test_math_used('sign(1ch)', '1');
|
||||
test_math_used('sign(1rem)', '1');
|
||||
test_math_used('sign(1vh)', '1');
|
||||
test_math_used('sign(1vw)', '1');
|
||||
test_math_used('sign(1vmin)', '1');
|
||||
test_math_used('sign(1vmax)', '1');
|
||||
test_math_used('sign(-1px)', '-1');
|
||||
test_math_used('sign(-1cm)', '-1');
|
||||
test_math_used('sign(-1mm)', '-1');
|
||||
test_math_used('sign(-1Q)', '-1');
|
||||
test_math_used('sign(-1in)', '-1');
|
||||
test_math_used('sign(-1pc)', '-1');
|
||||
test_math_used('sign(-1pt)', '-1');
|
||||
test_math_used('sign(-1em)', '-1');
|
||||
test_math_used('sign(-1ex)', '-1');
|
||||
test_math_used('sign(-1ch)', '-1');
|
||||
test_math_used('sign(-1rem)', '-1');
|
||||
test_math_used('sign(-1vh)', '-1');
|
||||
test_math_used('sign(-1vw)', '-1');
|
||||
test_math_used('sign(-1vmin)', '-1');
|
||||
test_math_used('sign(-1vmax)', '-1');
|
||||
test_math_used('sign(1s)', '1');
|
||||
test_math_used('sign(1ms)', '1');
|
||||
test_math_used('sign(-1s)', '-1');
|
||||
test_math_used('sign(-1ms)', '-1');
|
||||
test_math_used('sign(1deg)', '1');
|
||||
test_math_used('sign(1grad)', '1');
|
||||
test_math_used('sign(1rad)', '1');
|
||||
test_math_used('sign(1turn)', '1');
|
||||
test_math_used('sign(-1deg)', '-1');
|
||||
test_math_used('sign(-1grad)', '-1');
|
||||
test_math_used('sign(-1rad)', '-1');
|
||||
test_math_used('sign(-1turn)', '-1');
|
||||
test_math_used('sign(0px)', '0');
|
||||
test_math_used('sign(0cm)', '0');
|
||||
test_math_used('sign(0mm)', '0');
|
||||
test_math_used('sign(0Q)', '0');
|
||||
test_math_used('sign(0in)', '0');
|
||||
test_math_used('sign(0pc)', '0');
|
||||
test_math_used('sign(0pt)', '0');
|
||||
test_math_used('sign(0em)', '0');
|
||||
test_math_used('sign(0ex)', '0');
|
||||
test_math_used('sign(0ch)', '0');
|
||||
test_math_used('sign(0rem)', '0');
|
||||
test_math_used('sign(0vh)', '0');
|
||||
test_math_used('sign(0vw)', '0');
|
||||
test_math_used('sign(0vmin)', '0');
|
||||
test_math_used('sign(0vmax)', '0');
|
||||
test_math_used('sign(-0px)', '-0');
|
||||
test_math_used('sign(-0cm)', '-0');
|
||||
test_math_used('sign(-0mm)', '-0');
|
||||
test_math_used('sign(-0Q)', '-0');
|
||||
test_math_used('sign(-0in)', '-0');
|
||||
test_math_used('sign(-0pc)', '-0');
|
||||
test_math_used('sign(-0pt)', '-0');
|
||||
test_math_used('sign(-0em)', '-0');
|
||||
test_math_used('sign(-0ex)', '-0');
|
||||
test_math_used('sign(-0ch)', '-0');
|
||||
test_math_used('sign(-0rem)', '-0');
|
||||
test_math_used('sign(-0vh)', '-0');
|
||||
test_math_used('sign(-0vw)', '-0');
|
||||
test_math_used('sign(-0vmin)', '-0');
|
||||
test_math_used('sign(-0vmax)', '-0');
|
||||
test_math_used('sign(0s)', '0');
|
||||
test_math_used('sign(0ms)', '0');
|
||||
test_math_used('sign(-0s)', '0');
|
||||
test_math_used('sign(-0ms)', '0');
|
||||
test_math_used('sign(0deg)', '0');
|
||||
test_math_used('sign(0grad)', '0');
|
||||
test_math_used('sign(0rad)', '0');
|
||||
test_math_used('sign(0turn)', '0');
|
||||
test_math_used('sign(-0deg)', '-0');
|
||||
test_math_used('sign(-0grad)', '-0');
|
||||
test_math_used('sign(-0rad)', '-0');
|
||||
test_math_used('sign(-0turn)', '-0');
|
||||
test_math_used('sign(1px)', '1', {type:'integer'});
|
||||
test_math_used('sign(1cm)', '1', {type:'integer'});
|
||||
test_math_used('sign(1mm)', '1', {type:'integer'});
|
||||
test_math_used('sign(1Q)', '1', {type:'integer'});
|
||||
test_math_used('sign(1in)', '1', {type:'integer'});
|
||||
test_math_used('sign(1pc)', '1', {type:'integer'});
|
||||
test_math_used('sign(1pt)', '1', {type:'integer'});
|
||||
test_math_used('sign(1em)', '1', {type:'integer'});
|
||||
test_math_used('sign(1ex)', '1', {type:'integer'});
|
||||
test_math_used('sign(1ch)', '1', {type:'integer'});
|
||||
test_math_used('sign(1rem)', '1', {type:'integer'});
|
||||
test_math_used('sign(1vh)', '1', {type:'integer'});
|
||||
test_math_used('sign(1vw)', '1', {type:'integer'});
|
||||
test_math_used('sign(1vmin)', '1', {type:'integer'});
|
||||
test_math_used('sign(1vmax)', '1', {type:'integer'});
|
||||
test_math_used('sign(-1px)', '-1', {type:'integer'});
|
||||
test_math_used('sign(-1cm)', '-1', {type:'integer'});
|
||||
test_math_used('sign(-1mm)', '-1', {type:'integer'});
|
||||
test_math_used('sign(-1Q)', '-1', {type:'integer'});
|
||||
test_math_used('sign(-1in)', '-1', {type:'integer'});
|
||||
test_math_used('sign(-1pc)', '-1', {type:'integer'});
|
||||
test_math_used('sign(-1pt)', '-1', {type:'integer'});
|
||||
test_math_used('sign(-1em)', '-1', {type:'integer'});
|
||||
test_math_used('sign(-1ex)', '-1', {type:'integer'});
|
||||
test_math_used('sign(-1ch)', '-1', {type:'integer'});
|
||||
test_math_used('sign(-1rem)', '-1', {type:'integer'});
|
||||
test_math_used('sign(-1vh)', '-1', {type:'integer'});
|
||||
test_math_used('sign(-1vw)', '-1', {type:'integer'});
|
||||
test_math_used('sign(-1vmin)', '-1', {type:'integer'});
|
||||
test_math_used('sign(-1vmax)', '-1', {type:'integer'});
|
||||
test_math_used('sign(1s)', '1', {type:'integer'});
|
||||
test_math_used('sign(1ms)', '1', {type:'integer'});
|
||||
test_math_used('sign(-1s)', '-1', {type:'integer'});
|
||||
test_math_used('sign(-1ms)', '-1', {type:'integer'});
|
||||
test_math_used('sign(1deg)', '1', {type:'integer'});
|
||||
test_math_used('sign(1grad)', '1', {type:'integer'});
|
||||
test_math_used('sign(1rad)', '1', {type:'integer'});
|
||||
test_math_used('sign(1turn)', '1', {type:'integer'});
|
||||
test_math_used('sign(-1deg)', '-1', {type:'integer'});
|
||||
test_math_used('sign(-1grad)', '-1', {type:'integer'});
|
||||
test_math_used('sign(-1rad)', '-1', {type:'integer'});
|
||||
test_math_used('sign(-1turn)', '-1', {type:'integer'});
|
||||
test_math_used('sign(0px)', '0', {type:'integer'});
|
||||
test_math_used('sign(0cm)', '0', {type:'integer'});
|
||||
test_math_used('sign(0mm)', '0', {type:'integer'});
|
||||
test_math_used('sign(0Q)', '0', {type:'integer'});
|
||||
test_math_used('sign(0in)', '0', {type:'integer'});
|
||||
test_math_used('sign(0pc)', '0', {type:'integer'});
|
||||
test_math_used('sign(0pt)', '0', {type:'integer'});
|
||||
test_math_used('sign(0em)', '0', {type:'integer'});
|
||||
test_math_used('sign(0ex)', '0', {type:'integer'});
|
||||
test_math_used('sign(0ch)', '0', {type:'integer'});
|
||||
test_math_used('sign(0rem)', '0', {type:'integer'});
|
||||
test_math_used('sign(0vh)', '0', {type:'integer'});
|
||||
test_math_used('sign(0vw)', '0', {type:'integer'});
|
||||
test_math_used('sign(0vmin)', '0', {type:'integer'});
|
||||
test_math_used('sign(0vmax)', '0', {type:'integer'});
|
||||
test_math_used('sign(-0px)', '-0', {type:'integer'});
|
||||
test_math_used('sign(-0cm)', '-0', {type:'integer'});
|
||||
test_math_used('sign(-0mm)', '-0', {type:'integer'});
|
||||
test_math_used('sign(-0Q)', '-0', {type:'integer'});
|
||||
test_math_used('sign(-0in)', '-0', {type:'integer'});
|
||||
test_math_used('sign(-0pc)', '-0', {type:'integer'});
|
||||
test_math_used('sign(-0pt)', '-0', {type:'integer'});
|
||||
test_math_used('sign(-0em)', '-0', {type:'integer'});
|
||||
test_math_used('sign(-0ex)', '-0', {type:'integer'});
|
||||
test_math_used('sign(-0ch)', '-0', {type:'integer'});
|
||||
test_math_used('sign(-0rem)', '-0', {type:'integer'});
|
||||
test_math_used('sign(-0vh)', '-0', {type:'integer'});
|
||||
test_math_used('sign(-0vw)', '-0', {type:'integer'});
|
||||
test_math_used('sign(-0vmin)', '-0', {type:'integer'});
|
||||
test_math_used('sign(-0vmax)', '-0', {type:'integer'});
|
||||
test_math_used('sign(0s)', '0', {type:'integer'});
|
||||
test_math_used('sign(0ms)', '0', {type:'integer'});
|
||||
test_math_used('sign(-0s)', '0', {type:'integer'});
|
||||
test_math_used('sign(-0ms)', '0', {type:'integer'});
|
||||
test_math_used('sign(0deg)', '0', {type:'integer'});
|
||||
test_math_used('sign(0grad)', '0', {type:'integer'});
|
||||
test_math_used('sign(0rad)', '0', {type:'integer'});
|
||||
test_math_used('sign(0turn)', '0', {type:'integer'});
|
||||
test_math_used('sign(-0deg)', '-0', {type:'integer'});
|
||||
test_math_used('sign(-0grad)', '-0', {type:'integer'});
|
||||
test_math_used('sign(-0rad)', '-0', {type:'integer'});
|
||||
test_math_used('sign(-0turn)', '-0', {type:'integer'});
|
||||
|
||||
//Type checking abs
|
||||
test_math_used('abs(1px)', '1px');
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
<!DOCTYPE html [<?xml-stylesheet href="data:text/css,html{z-index: 1}"?>]>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>xml-stylesheet processing instruction in doctype internal subset</title>
|
||||
<link rel="help" href="https://w3c.github.io/csswg-drafts/cssom/#prolog"/>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
promise_test(async () => {
|
||||
await new Promise(resolve => window.onload = resolve);
|
||||
assert_equals(getComputedStyle(document.documentElement).zIndex, "auto");
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -26,7 +26,7 @@ function test_computed_value(property, specified, computed, titleExtra) {
|
|||
assert_in_array(readValue, computed);
|
||||
} else {
|
||||
if (property == "color")
|
||||
colorValuesAlmostEqual(readValue, computed, 0.0001);
|
||||
colorValuesAlmostEqual(readValue, computed, 0.0001, 1);
|
||||
else
|
||||
assert_equals(readValue, computed);
|
||||
}
|
||||
|
@ -39,7 +39,9 @@ function test_computed_value(property, specified, computed, titleExtra) {
|
|||
}, `Property ${property} value '${specified}'${titleExtra ? ' ' + titleExtra : ''}`);
|
||||
}
|
||||
|
||||
function colorValuesAlmostEqual(color1, color2, epsilon) {
|
||||
function colorValuesAlmostEqual(color1, color2, float_epsilon, integer_epsilon) {
|
||||
// Legacy color formats use integers in [0, 255] and thus will have wider epsilons
|
||||
const epsilon = getNonNumbers(color1).startsWith("rgb") ? integer_epsilon : float_epsilon;
|
||||
// Colors can be split by spaces, commas or the '(' character.
|
||||
const colorElementDividers = /( |\(|,)/;
|
||||
// Return the string stripped of numbers.
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
<!DOCTYPE html>
|
||||
<title>Test that documentPictureInPicture.requestWindow()
|
||||
fails if width or height is specified without the other</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>
|
||||
<body>
|
||||
<script>
|
||||
promise_test(async t => {
|
||||
await test_driver.bless('request PiP window');
|
||||
await promise_rejects_js(t, RangeError,
|
||||
documentPictureInPicture.requestWindow({width: 500}));
|
||||
},
|
||||
"requestWindow should fail when width is specified without height");
|
||||
|
||||
promise_test(async t => {
|
||||
await test_driver.bless('request PiP window');
|
||||
await promise_rejects_js(t, RangeError,
|
||||
documentPictureInPicture.requestWindow({height: 300}));
|
||||
},
|
||||
"requestWindow should fail when height is specified without width");
|
||||
</script>
|
||||
</body>
|
|
@ -58,6 +58,17 @@ function waitForCompositorCommit() {
|
|||
});
|
||||
});
|
||||
}
|
||||
|
||||
// Please don't remove this. This is necessary for chromium-based browsers.
|
||||
// This shouldn't be necessary if the test harness deferred running the tests
|
||||
// until after paint holding. This can be a no-op on user-agents that do not
|
||||
// have a separate compositor thread.
|
||||
async function waitForCompositorReady() {
|
||||
const animation =
|
||||
document.body.animate({ opacity: [ 1, 1 ] }, {duration: 1 });
|
||||
return animation.finished;
|
||||
}
|
||||
|
||||
function waitForNextFrame() {
|
||||
const startTime = performance.now();
|
||||
return new Promise(resolve => {
|
||||
|
@ -71,7 +82,6 @@ function waitForNextFrame() {
|
|||
});
|
||||
}
|
||||
|
||||
|
||||
// TODO(crbug.com/1400399): Deprecate as frame rates may vary greatly in
|
||||
// different test environments.
|
||||
function waitForAnimationEnd(getValue) {
|
||||
|
|
|
@ -45,8 +45,8 @@ async function verifyNoScrollendOnDocument(test) {
|
|||
window.addEventListener('scrollend', callback);
|
||||
}
|
||||
|
||||
async function createScrollendPromise(test) {
|
||||
return waitForScrollendEvent(test, target_div).then(evt => {
|
||||
async function createScrollendPromise(test, timeoutMs = 500) {
|
||||
return waitForScrollendEvent(test, target_div, timeoutMs).then(evt => {
|
||||
assert_false(evt.cancelable, 'Event is not cancelable');
|
||||
assert_false(evt.bubbles, 'Event targeting element does not bubble');
|
||||
});
|
||||
|
@ -60,11 +60,21 @@ function runTest() {
|
|||
return;
|
||||
|
||||
await resetTargetScrollState(t);
|
||||
await waitForCompositorCommit();
|
||||
await waitForCompositorReady();
|
||||
|
||||
const targetScrollendPromise = createScrollendPromise(t);
|
||||
const timeout = 1000; // Because we have two pauses we need longer timeout
|
||||
const targetScrollendPromise = createScrollendPromise(t, timeout);
|
||||
verifyNoScrollendOnDocument(t);
|
||||
|
||||
let scrollend_count = 0;
|
||||
const scrollend_listener = () => {
|
||||
scrollend_count += 1;
|
||||
};
|
||||
target_div.addEventListener("scrollend", scrollend_listener);
|
||||
t.add_cleanup(() => {
|
||||
target_div.removeEventListener('scrollend', scrollend_listener);
|
||||
});
|
||||
|
||||
// Perform a touch drag on target div and wait for target_div to get
|
||||
// a scrollend event.
|
||||
await new test_driver.Actions()
|
||||
|
@ -75,6 +85,9 @@ function runTest() {
|
|||
.pointerMove(0, -40, {origin: target_div}) // Drag up to move down.
|
||||
.addTick()
|
||||
.pause(200) // Prevent inertial scroll.
|
||||
.pointerMove(0, -60, {origin: target_div})
|
||||
.addTick()
|
||||
.pause(200) // Prevent inertial scroll.
|
||||
.pointerUp()
|
||||
.send();
|
||||
|
||||
|
@ -82,6 +95,7 @@ function runTest() {
|
|||
|
||||
assert_true(target_div.scrollTop > 0);
|
||||
await verifyScrollStopped(t, target_div);
|
||||
assert_equals(scrollend_count, 1);
|
||||
}, 'Tests that the target_div gets scrollend event when touch dragging.');
|
||||
|
||||
promise_test(async (t) => {
|
||||
|
@ -92,7 +106,7 @@ function runTest() {
|
|||
return;
|
||||
|
||||
await resetTargetScrollState(t);
|
||||
await waitForCompositorCommit();
|
||||
await waitForCompositorReady();
|
||||
|
||||
const targetScrollendPromise = createScrollendPromise(t);
|
||||
verifyNoScrollendOnDocument(t);
|
||||
|
@ -122,7 +136,9 @@ function runTest() {
|
|||
if (scrollbar_width == 0)
|
||||
return;
|
||||
|
||||
resetTargetScrollState(t);
|
||||
await resetTargetScrollState(t);
|
||||
await waitForCompositorReady();
|
||||
|
||||
const targetScrollendPromise = createScrollendPromise(t);
|
||||
verifyNoScrollendOnDocument(t);
|
||||
|
||||
|
@ -146,7 +162,9 @@ function runTest() {
|
|||
'scrollbar thumb.');
|
||||
|
||||
promise_test(async (t) => {
|
||||
resetTargetScrollState(t);
|
||||
await resetTargetScrollState(t);
|
||||
await waitForCompositorReady();
|
||||
|
||||
const targetScrollendPromise = createScrollendPromise(t);
|
||||
verifyNoScrollendOnDocument(t);
|
||||
|
||||
|
@ -167,7 +185,7 @@ function runTest() {
|
|||
|
||||
promise_test(async (t) => {
|
||||
await resetTargetScrollState(t);
|
||||
await waitForCompositorCommit();
|
||||
await waitForCompositorReady();
|
||||
|
||||
verifyNoScrollendOnDocument(t);
|
||||
const targetScrollendPromise = createScrollendPromise(t);
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
<!DOCTYPE html [<!--x-->]><html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>XML: Comment in doctype internal subset</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
test(() => {
|
||||
assert_equals(document.documentElement.previousSibling, document.firstChild);
|
||||
assert_equals(document.firstChild.nodeType, Node.DOCUMENT_TYPE_NODE);
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,15 @@
|
|||
<!DOCTYPE html [<?x y?>]><html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>XML: Processing instruction in doctype internal subset</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
test(() => {
|
||||
assert_equals(document.documentElement.previousSibling, document.firstChild);
|
||||
assert_equals(document.firstChild.nodeType, Node.DOCUMENT_TYPE_NODE);
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -2806,4 +2806,66 @@ var browserTests = [
|
|||
"<ul><li>abcghi<br></li></ul>"],
|
||||
[true],
|
||||
{"delete":[false,false,"",false,false,""]}],
|
||||
|
||||
// <font>s shouldn't be joined if they have different attributes.
|
||||
["<p><font color=blue>foo</font><p><font color=brown>[]bar</font>",
|
||||
[["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]],
|
||||
"<p><font color=\"blue\">foo[]</font><font color=\"brown\">bar</font></p>",
|
||||
[true,true,true],
|
||||
{"foreColor":[false,false,"rgb(165, 42, 42)",false,false,"rgb(0, 0, 255)"]}],
|
||||
["<p><font color=blue>foo</font><p><font color=brown>[]bar</font>",
|
||||
[["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]],
|
||||
"<p><font color=\"blue\">foo[]</font><font color=\"brown\">bar</font></p>",
|
||||
[true,true,true],
|
||||
{"foreColor":[false,false,"rgb(165, 42, 42)",false,false,"rgb(0, 0, 255)"]}],
|
||||
["<p><font size=3>foo</font><p><font size=5>[]bar</font>",
|
||||
[["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]],
|
||||
"<p><font size=\"3\">foo[]</font><font size=\"5\">bar</font></p>",
|
||||
[true,true,true],
|
||||
{"fontSize":[false,false,"5",false,false,"3"]}],
|
||||
["<p><font size=3>foo</font><p><font size=5>[]bar</font>",
|
||||
[["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]],
|
||||
"<p><font size=\"3\">foo[]</font><font size=\"5\">bar</font></p>",
|
||||
[true,true,true],
|
||||
{"fontSize":[false,false,"5",false,false,"3"]}],
|
||||
["<p><font size=4>foo</font><p><font size=5>[]bar</font>",
|
||||
[["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]],
|
||||
"<p><font size=\"4\">foo[]</font><font size=\"5\">bar</font></p>",
|
||||
[true,true,true],
|
||||
{"fontSize":[false,false,"5",false,false,"4"]}],
|
||||
["<p><font size=4>foo</font><p><font size=5>[]bar</font>",
|
||||
[["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]],
|
||||
"<p><font size=\"4\">foo[]</font><font size=\"5\">bar</font></p>",
|
||||
[true,true,true],
|
||||
{"fontSize":[false,false,"5",false,false,"4"]}],
|
||||
["<p><font color=blue>foo</font><p><font size=5>[]bar</font>",
|
||||
[["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]],
|
||||
"<p><font color=\"blue\">foo[]</font><font size=\"5\">bar</font></p>",
|
||||
[true,true,true],
|
||||
{"fontSize":[false,false,"5",false,false,"3"],"foreColor":[false,false,"rgb(0, 0, 0)",false,false,"rgb(0, 0, 255)"]}],
|
||||
["<p><font color=blue>foo</font><p><font size=5>[]bar</font>",
|
||||
[["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]],
|
||||
"<p><font color=\"blue\">foo[]</font><font size=\"5\">bar</font></p>",
|
||||
[true,true,true],
|
||||
{"fontSize":[false,false,"5",false,false,"3"],"foreColor":[false,false,"rgb(0, 0, 0)",false,false,"rgb(0, 0, 255)"]}],
|
||||
["<p><font size=5>foo</font><p><font color=blue>[]bar</font>",
|
||||
[["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]],
|
||||
"<p><font size=\"5\">foo[]</font><font color=\"blue\">bar</font></p>",
|
||||
[true,true,true],
|
||||
{"fontSize":[false,false,"3",false,false,"5"],"foreColor":[false,false,"rgb(0, 0, 255)",false,false,"rgb(0, 0, 0)"]}],
|
||||
["<p><font size=5>foo</font><p><font color=blue>[]bar</font>",
|
||||
[["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]],
|
||||
"<p><font size=\"5\">foo[]</font><font color=\"blue\">bar</font></p>",
|
||||
[true,true,true],
|
||||
{"fontSize":[false,false,"3",false,false,"5"],"foreColor":[false,false,"rgb(0, 0, 255)",false,false,"rgb(0, 0, 0)"]}],
|
||||
["<p><font face=monospace>foo</font><p><font face=sans-serif>[]bar</font>",
|
||||
[["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]],
|
||||
"<p><font face=\"monospace\">foo[]</font><font face=\"sans-serif\">bar</font></p>",
|
||||
[true,true,true],
|
||||
{"fontName":[false,false,"sans-serif",false,false,"monospace"]}],
|
||||
["<p><font face=monospace>foo</font><p><font face=sans-serif>[]bar</font>",
|
||||
[["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]],
|
||||
"<p><font face=\"monospace\">foo[]</font><font face=\"sans-serif\">bar</font></p>",
|
||||
[true,true,true],
|
||||
{"fontName":[false,false,"sans-serif",false,false,"monospace"]}],
|
||||
]
|
||||
|
|
|
@ -370,9 +370,13 @@ var browserTests = [
|
|||
"foo{<font color=\"#0000ff\">bar}</font>baz",
|
||||
[true,true],
|
||||
{"stylewithcss":[false,true,"",false,false,""],"forecolor":[false,false,"rgb(0, 0, 255)",false,false,"rgb(0, 0, 255)"]}],
|
||||
// Once the inner <span> style is updated, it has same style as the outer one.
|
||||
// Therefore, it may be okay to use the outer one is the only container of the
|
||||
// text nodes or it may be okay to split the outer one and keep 3 <span>s.
|
||||
["<span style=\"color: blue\">foo<span style=\"color: brown\">[bar]</span>baz</span>",
|
||||
[["stylewithcss","true"],["forecolor","#0000FF"]],
|
||||
"<span style=\"color:rgb(0, 0, 255)\">foo</span><span style=\"color:rgb(0, 0, 255)\">bar</span><span style=\"color:rgb(0, 0, 255)\">baz</span>",
|
||||
["<span style=\"color:rgb(0, 0, 255)\">foo</span><span style=\"color:rgb(0, 0, 255)\">bar</span><span style=\"color:rgb(0, 0, 255)\">baz</span>",
|
||||
"<span style=\"color:rgb(0, 0, 255)\">foo[bar]baz</span>"],
|
||||
[true,true],
|
||||
{"stylewithcss":[false,false,"",false,true,""],"forecolor":[false,false,"rgb(165, 42, 42)",false,false,"rgb(0, 0, 255)"]}],
|
||||
["<span style=\"color: blue\">foo<span style=\"color: brown\">[bar]</span>baz</span>",
|
||||
|
@ -410,9 +414,12 @@ var browserTests = [
|
|||
"<span style=\"color:rgb(0, 0, 255)\">foo[bar]baz</span>",
|
||||
[true,true],
|
||||
{"stylewithcss":[false,true,"",false,false,""],"forecolor":[false,false,"rgb(165, 42, 42)",false,false,"rgb(0, 0, 255)"]}],
|
||||
// Use the inner <font> for the `style` attribute container. Then, the outer
|
||||
// <font> should be split and may be serialized.
|
||||
["<font color=blue>foo<font color=brown>[bar]</font>baz</font>",
|
||||
[["stylewithcss","true"],["forecolor","#0000FF"]],
|
||||
"<font color=\"blue\">foo[bar]baz</font>",
|
||||
["<span style=\"color:rgb(0, 0, 255)\">foo</span><font style=\"color:rgb(0, 0, 255)\">bar</font><span style=\"color:rgb(0, 0, 255)\">baz</span>",
|
||||
"<font color=\"blue\">foo</font><span style=\"color:rgb(0, 0, 255)\">bar</span><font color=\"blue\">baz</font>"],
|
||||
[true,true],
|
||||
{"stylewithcss":[false,false,"",false,true,""],"forecolor":[false,false,"rgb(165, 42, 42)",false,false,"rgb(0, 0, 255)"]}],
|
||||
["<font color=blue>foo<font color=brown>[bar]</font>baz</font>",
|
||||
|
|
|
@ -2686,4 +2686,66 @@ var browserTests = [
|
|||
"<ul><li>abcghi<br></li></ul>"],
|
||||
[true],
|
||||
{"forwarddelete":[false,false,"",false,false,""]}],
|
||||
|
||||
// <font>s shouldn't be joined if they have different attributes.
|
||||
["<p><font color=blue>foo[]</font><p><font color=brown>bar</font>",
|
||||
[["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]],
|
||||
"<p><font color=\"blue\">foo[]</font><font color=\"brown\">bar</font></p>",
|
||||
[true,true,true],
|
||||
{"foreColor":[false,false,"rgb(0, 0, 255)",false,false,"rgb(0, 0, 255)"]}],
|
||||
["<p><font color=blue>foo[]</font><p><font color=brown>bar</font>",
|
||||
[["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]],
|
||||
"<p><font color=\"blue\">foo[]</font><font color=\"brown\">bar</font></p>",
|
||||
[true,true,true],
|
||||
{"foreColor":[false,false,"rgb(0, 0, 255)",false,false,"rgb(0, 0, 255)"]}],
|
||||
["<p><font size=3>foo[]</font><p><font size=5>bar</font>",
|
||||
[["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]],
|
||||
"<p><font size=\"3\">foo[]</font><font size=\"5\">bar</font></p>",
|
||||
[true,true,true],
|
||||
{"fontSize":[false,false,"3",false,false,"3"]}],
|
||||
["<p><font size=3>foo[]</font><p><font size=5>bar</font>",
|
||||
[["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]],
|
||||
"<p><font size=\"3\">foo[]</font><font size=\"5\">bar</font></p>",
|
||||
[true,true,true],
|
||||
{"fontSize":[false,false,"3",false,false,"3"]}],
|
||||
["<p><font size=4>foo[]</font><p><font size=5>bar</font>",
|
||||
[["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]],
|
||||
"<p><font size=\"4\">foo[]</font><font size=\"5\">bar</font></p>",
|
||||
[true,true,true],
|
||||
{"fontSize":[false,false,"4",false,false,"4"]}],
|
||||
["<p><font size=4>foo[]</font><p><font size=5>bar</font>",
|
||||
[["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]],
|
||||
"<p><font size=\"4\">foo[]</font><font size=\"5\">bar</font></p>",
|
||||
[true,true,true],
|
||||
{"fontSize":[false,false,"4",false,false,"4"]}],
|
||||
["<p><font color=blue>foo[]</font><p><font size=5>bar</font>",
|
||||
[["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]],
|
||||
"<p><font color=\"blue\">foo[]</font><font size=\"5\">bar</font></p>",
|
||||
[true,true,true],
|
||||
{"fontSize":[false,false,"3",false,false,"3"],"foreColor":[false,false,"rgb(0, 0, 255)",false,false,"rgb(0, 0, 255)"]}],
|
||||
["<p><font color=blue>foo[]</font><p><font size=5>bar</font>",
|
||||
[["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]],
|
||||
"<p><font color=\"blue\">foo[]</font><font size=\"5\">bar</font></p>",
|
||||
[true,true,true],
|
||||
{"fontSize":[false,false,"3",false,false,"3"],"foreColor":[false,false,"rgb(0, 0, 255)",false,false,"rgb(0, 0, 255)"]}],
|
||||
["<p><font size=5>foo[]</font><p><font color=blue>bar</font>",
|
||||
[["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]],
|
||||
"<p><font size=\"5\">foo[]</font><font color=\"blue\">bar</font></p>",
|
||||
[true,true,true],
|
||||
{"fontSize":[false,false,"5",false,false,"5"],"foreColor":[false,false,"rgb(0, 0, 0)",false,false,"rgb(0, 0, 0)"]}],
|
||||
["<p><font size=5>foo[]</font><p><font color=blue>bar</font>",
|
||||
[["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]],
|
||||
"<p><font size=\"5\">foo[]</font><font color=\"blue\">bar</font></p>",
|
||||
[true,true,true],
|
||||
{"fontSize":[false,false,"5",false,false,"5"],"foreColor":[false,false,"rgb(0, 0, 0)",false,false,"rgb(0, 0, 0)"]}],
|
||||
["<p><font face=monospace>foo[]</font><p><font face=sans-serif>bar</font>",
|
||||
[["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]],
|
||||
"<p><font face=\"monospace\">foo[]</font><font face=\"sans-serif\">bar</font></p>",
|
||||
[true,true,true],
|
||||
{"fontName":[false,false,"monospace",false,false,"monospace"]}],
|
||||
["<p><font face=monospace>foo[]</font><p><font face=sans-serif>bar</font>",
|
||||
[["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]],
|
||||
"<p><font face=\"monospace\">foo[]</font><font face=\"sans-serif\">bar</font></p>",
|
||||
[true,true,true],
|
||||
{"fontName":[false,false,"monospace",false,false,"monospace"]}],
|
||||
]
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -22,8 +22,10 @@ var ctx = canvas.getContext('2d');
|
|||
|
||||
ctx.fillStyle = '#0f0';
|
||||
ctx.fillRect(0, 0, 100, 50);
|
||||
|
||||
ctx.lineCap = 'butt';
|
||||
ctx.lineWidth = 20;
|
||||
|
||||
ctx.fillStyle = '#f00';
|
||||
ctx.strokeStyle = '#0f0';
|
||||
ctx.fillRect(15, 15, 20, 20);
|
||||
|
@ -31,6 +33,7 @@ ctx.beginPath();
|
|||
ctx.moveTo(25, 15);
|
||||
ctx.lineTo(25, 35);
|
||||
ctx.stroke();
|
||||
|
||||
ctx.fillStyle = '#0f0';
|
||||
ctx.strokeStyle = '#f00';
|
||||
ctx.beginPath();
|
||||
|
@ -38,12 +41,14 @@ ctx.moveTo(75, 15);
|
|||
ctx.lineTo(75, 35);
|
||||
ctx.stroke();
|
||||
ctx.fillRect(65, 15, 20, 20);
|
||||
|
||||
_assertPixel(canvas, 25,14, 0,255,0,255);
|
||||
_assertPixel(canvas, 25,15, 0,255,0,255);
|
||||
_assertPixel(canvas, 25,16, 0,255,0,255);
|
||||
_assertPixel(canvas, 25,34, 0,255,0,255);
|
||||
_assertPixel(canvas, 25,35, 0,255,0,255);
|
||||
_assertPixel(canvas, 25,36, 0,255,0,255);
|
||||
|
||||
_assertPixel(canvas, 75,14, 0,255,0,255);
|
||||
_assertPixel(canvas, 75,15, 0,255,0,255);
|
||||
_assertPixel(canvas, 75,16, 0,255,0,255);
|
||||
|
|
|
@ -18,8 +18,10 @@ var ctx = canvas.getContext('2d');
|
|||
|
||||
ctx.fillStyle = '#0f0';
|
||||
ctx.fillRect(0, 0, 100, 50);
|
||||
|
||||
ctx.lineCap = 'butt';
|
||||
ctx.lineWidth = 20;
|
||||
|
||||
ctx.fillStyle = '#f00';
|
||||
ctx.strokeStyle = '#0f0';
|
||||
ctx.fillRect(15, 15, 20, 20);
|
||||
|
@ -27,6 +29,7 @@ ctx.beginPath();
|
|||
ctx.moveTo(25, 15);
|
||||
ctx.lineTo(25, 35);
|
||||
ctx.stroke();
|
||||
|
||||
ctx.fillStyle = '#0f0';
|
||||
ctx.strokeStyle = '#f00';
|
||||
ctx.beginPath();
|
||||
|
@ -34,12 +37,14 @@ ctx.moveTo(75, 15);
|
|||
ctx.lineTo(75, 35);
|
||||
ctx.stroke();
|
||||
ctx.fillRect(65, 15, 20, 20);
|
||||
|
||||
_assertPixel(canvas, 25,14, 0,255,0,255);
|
||||
_assertPixel(canvas, 25,15, 0,255,0,255);
|
||||
_assertPixel(canvas, 25,16, 0,255,0,255);
|
||||
_assertPixel(canvas, 25,34, 0,255,0,255);
|
||||
_assertPixel(canvas, 25,35, 0,255,0,255);
|
||||
_assertPixel(canvas, 25,36, 0,255,0,255);
|
||||
|
||||
_assertPixel(canvas, 75,14, 0,255,0,255);
|
||||
_assertPixel(canvas, 75,15, 0,255,0,255);
|
||||
_assertPixel(canvas, 75,16, 0,255,0,255);
|
||||
|
|
|
@ -23,9 +23,11 @@ var ctx = canvas.getContext('2d');
|
|||
ctx.fillStyle = '#0f0';
|
||||
ctx.strokeStyle = '#f00';
|
||||
ctx.fillRect(0, 0, 100, 50);
|
||||
|
||||
ctx.lineJoin = 'bevel';
|
||||
ctx.lineCap = 'square';
|
||||
ctx.lineWidth = 400;
|
||||
|
||||
ctx.beginPath();
|
||||
ctx.moveTo(200, 200);
|
||||
ctx.lineTo(200, 1000);
|
||||
|
@ -33,6 +35,7 @@ ctx.lineTo(1000, 1000);
|
|||
ctx.lineTo(1000, 200);
|
||||
ctx.closePath();
|
||||
ctx.stroke();
|
||||
|
||||
_assertPixel(canvas, 1,1, 0,255,0,255);
|
||||
_assertPixel(canvas, 48,1, 0,255,0,255);
|
||||
_assertPixel(canvas, 48,48, 0,255,0,255);
|
||||
|
|
|
@ -19,9 +19,11 @@ var ctx = canvas.getContext('2d');
|
|||
ctx.fillStyle = '#0f0';
|
||||
ctx.strokeStyle = '#f00';
|
||||
ctx.fillRect(0, 0, 100, 50);
|
||||
|
||||
ctx.lineJoin = 'bevel';
|
||||
ctx.lineCap = 'square';
|
||||
ctx.lineWidth = 400;
|
||||
|
||||
ctx.beginPath();
|
||||
ctx.moveTo(200, 200);
|
||||
ctx.lineTo(200, 1000);
|
||||
|
@ -29,6 +31,7 @@ ctx.lineTo(1000, 1000);
|
|||
ctx.lineTo(1000, 200);
|
||||
ctx.closePath();
|
||||
ctx.stroke();
|
||||
|
||||
_assertPixel(canvas, 1,1, 0,255,0,255);
|
||||
_assertPixel(canvas, 48,1, 0,255,0,255);
|
||||
_assertPixel(canvas, 48,48, 0,255,0,255);
|
||||
|
|
|
@ -22,21 +22,27 @@ var ctx = canvas.getContext('2d');
|
|||
|
||||
ctx.lineCap = 'butt'
|
||||
_assertSame(ctx.lineCap, 'butt', "ctx.lineCap", "'butt'");
|
||||
|
||||
ctx.lineCap = 'butt';
|
||||
ctx.lineCap = 'invalid';
|
||||
_assertSame(ctx.lineCap, 'butt', "ctx.lineCap", "'butt'");
|
||||
|
||||
ctx.lineCap = 'butt';
|
||||
ctx.lineCap = 'ROUND';
|
||||
_assertSame(ctx.lineCap, 'butt', "ctx.lineCap", "'butt'");
|
||||
|
||||
ctx.lineCap = 'butt';
|
||||
ctx.lineCap = 'round\0';
|
||||
_assertSame(ctx.lineCap, 'butt', "ctx.lineCap", "'butt'");
|
||||
|
||||
ctx.lineCap = 'butt';
|
||||
ctx.lineCap = 'round ';
|
||||
_assertSame(ctx.lineCap, 'butt', "ctx.lineCap", "'butt'");
|
||||
|
||||
ctx.lineCap = 'butt';
|
||||
ctx.lineCap = "";
|
||||
_assertSame(ctx.lineCap, 'butt', "ctx.lineCap", "'butt'");
|
||||
|
||||
ctx.lineCap = 'butt';
|
||||
ctx.lineCap = 'bevel';
|
||||
_assertSame(ctx.lineCap, 'butt', "ctx.lineCap", "'butt'");
|
||||
|
|
|
@ -18,21 +18,27 @@ var ctx = canvas.getContext('2d');
|
|||
|
||||
ctx.lineCap = 'butt'
|
||||
_assertSame(ctx.lineCap, 'butt', "ctx.lineCap", "'butt'");
|
||||
|
||||
ctx.lineCap = 'butt';
|
||||
ctx.lineCap = 'invalid';
|
||||
_assertSame(ctx.lineCap, 'butt', "ctx.lineCap", "'butt'");
|
||||
|
||||
ctx.lineCap = 'butt';
|
||||
ctx.lineCap = 'ROUND';
|
||||
_assertSame(ctx.lineCap, 'butt', "ctx.lineCap", "'butt'");
|
||||
|
||||
ctx.lineCap = 'butt';
|
||||
ctx.lineCap = 'round\0';
|
||||
_assertSame(ctx.lineCap, 'butt', "ctx.lineCap", "'butt'");
|
||||
|
||||
ctx.lineCap = 'butt';
|
||||
ctx.lineCap = 'round ';
|
||||
_assertSame(ctx.lineCap, 'butt', "ctx.lineCap", "'butt'");
|
||||
|
||||
ctx.lineCap = 'butt';
|
||||
ctx.lineCap = "";
|
||||
_assertSame(ctx.lineCap, 'butt', "ctx.lineCap", "'butt'");
|
||||
|
||||
ctx.lineCap = 'butt';
|
||||
ctx.lineCap = 'bevel';
|
||||
_assertSame(ctx.lineCap, 'butt', "ctx.lineCap", "'butt'");
|
||||
|
|
|
@ -23,9 +23,11 @@ var ctx = canvas.getContext('2d');
|
|||
ctx.fillStyle = '#f00';
|
||||
ctx.strokeStyle = '#0f0';
|
||||
ctx.fillRect(0, 0, 100, 50);
|
||||
|
||||
ctx.lineJoin = 'bevel';
|
||||
ctx.lineCap = 'square';
|
||||
ctx.lineWidth = 400;
|
||||
|
||||
ctx.beginPath();
|
||||
ctx.moveTo(200, 200);
|
||||
ctx.lineTo(200, 1000);
|
||||
|
@ -33,6 +35,7 @@ ctx.lineTo(1000, 1000);
|
|||
ctx.lineTo(1000, 200);
|
||||
ctx.lineTo(200, 200);
|
||||
ctx.stroke();
|
||||
|
||||
_assertPixel(canvas, 1,1, 0,255,0,255);
|
||||
_assertPixel(canvas, 48,1, 0,255,0,255);
|
||||
_assertPixel(canvas, 48,48, 0,255,0,255);
|
||||
|
|
|
@ -19,9 +19,11 @@ var ctx = canvas.getContext('2d');
|
|||
ctx.fillStyle = '#f00';
|
||||
ctx.strokeStyle = '#0f0';
|
||||
ctx.fillRect(0, 0, 100, 50);
|
||||
|
||||
ctx.lineJoin = 'bevel';
|
||||
ctx.lineCap = 'square';
|
||||
ctx.lineWidth = 400;
|
||||
|
||||
ctx.beginPath();
|
||||
ctx.moveTo(200, 200);
|
||||
ctx.lineTo(200, 1000);
|
||||
|
@ -29,6 +31,7 @@ ctx.lineTo(1000, 1000);
|
|||
ctx.lineTo(1000, 200);
|
||||
ctx.lineTo(200, 200);
|
||||
ctx.stroke();
|
||||
|
||||
_assertPixel(canvas, 1,1, 0,255,0,255);
|
||||
_assertPixel(canvas, 48,1, 0,255,0,255);
|
||||
_assertPixel(canvas, 48,48, 0,255,0,255);
|
||||
|
|
|
@ -22,37 +22,49 @@ var ctx = canvas.getContext('2d');
|
|||
|
||||
ctx.fillStyle = '#0f0';
|
||||
ctx.fillRect(0, 0, 100, 50);
|
||||
|
||||
var tol = 1; // tolerance to avoid antialiasing artifacts
|
||||
|
||||
ctx.lineCap = 'round';
|
||||
ctx.lineWidth = 20;
|
||||
|
||||
|
||||
ctx.fillStyle = '#f00';
|
||||
ctx.strokeStyle = '#0f0';
|
||||
|
||||
ctx.beginPath();
|
||||
ctx.moveTo(35-tol, 15);
|
||||
ctx.arc(25, 15, 10-tol, 0, Math.PI, true);
|
||||
ctx.arc(25, 35, 10-tol, Math.PI, 0, true);
|
||||
ctx.fill();
|
||||
|
||||
ctx.beginPath();
|
||||
ctx.moveTo(25, 15);
|
||||
ctx.lineTo(25, 35);
|
||||
ctx.stroke();
|
||||
|
||||
|
||||
ctx.fillStyle = '#0f0';
|
||||
ctx.strokeStyle = '#f00';
|
||||
|
||||
ctx.beginPath();
|
||||
ctx.moveTo(75, 15);
|
||||
ctx.lineTo(75, 35);
|
||||
ctx.stroke();
|
||||
|
||||
ctx.beginPath();
|
||||
ctx.moveTo(85+tol, 15);
|
||||
ctx.arc(75, 15, 10+tol, 0, Math.PI, true);
|
||||
ctx.arc(75, 35, 10+tol, Math.PI, 0, true);
|
||||
ctx.fill();
|
||||
|
||||
_assertPixel(canvas, 17,6, 0,255,0,255);
|
||||
_assertPixel(canvas, 25,6, 0,255,0,255);
|
||||
_assertPixel(canvas, 32,6, 0,255,0,255);
|
||||
_assertPixel(canvas, 17,43, 0,255,0,255);
|
||||
_assertPixel(canvas, 25,43, 0,255,0,255);
|
||||
_assertPixel(canvas, 32,43, 0,255,0,255);
|
||||
|
||||
_assertPixel(canvas, 67,6, 0,255,0,255);
|
||||
_assertPixel(canvas, 75,6, 0,255,0,255);
|
||||
_assertPixel(canvas, 82,6, 0,255,0,255);
|
||||
|
|
|
@ -18,37 +18,49 @@ var ctx = canvas.getContext('2d');
|
|||
|
||||
ctx.fillStyle = '#0f0';
|
||||
ctx.fillRect(0, 0, 100, 50);
|
||||
|
||||
var tol = 1; // tolerance to avoid antialiasing artifacts
|
||||
|
||||
ctx.lineCap = 'round';
|
||||
ctx.lineWidth = 20;
|
||||
|
||||
|
||||
ctx.fillStyle = '#f00';
|
||||
ctx.strokeStyle = '#0f0';
|
||||
|
||||
ctx.beginPath();
|
||||
ctx.moveTo(35-tol, 15);
|
||||
ctx.arc(25, 15, 10-tol, 0, Math.PI, true);
|
||||
ctx.arc(25, 35, 10-tol, Math.PI, 0, true);
|
||||
ctx.fill();
|
||||
|
||||
ctx.beginPath();
|
||||
ctx.moveTo(25, 15);
|
||||
ctx.lineTo(25, 35);
|
||||
ctx.stroke();
|
||||
|
||||
|
||||
ctx.fillStyle = '#0f0';
|
||||
ctx.strokeStyle = '#f00';
|
||||
|
||||
ctx.beginPath();
|
||||
ctx.moveTo(75, 15);
|
||||
ctx.lineTo(75, 35);
|
||||
ctx.stroke();
|
||||
|
||||
ctx.beginPath();
|
||||
ctx.moveTo(85+tol, 15);
|
||||
ctx.arc(75, 15, 10+tol, 0, Math.PI, true);
|
||||
ctx.arc(75, 35, 10+tol, Math.PI, 0, true);
|
||||
ctx.fill();
|
||||
|
||||
_assertPixel(canvas, 17,6, 0,255,0,255);
|
||||
_assertPixel(canvas, 25,6, 0,255,0,255);
|
||||
_assertPixel(canvas, 32,6, 0,255,0,255);
|
||||
_assertPixel(canvas, 17,43, 0,255,0,255);
|
||||
_assertPixel(canvas, 25,43, 0,255,0,255);
|
||||
_assertPixel(canvas, 32,43, 0,255,0,255);
|
||||
|
||||
_assertPixel(canvas, 67,6, 0,255,0,255);
|
||||
_assertPixel(canvas, 75,6, 0,255,0,255);
|
||||
_assertPixel(canvas, 82,6, 0,255,0,255);
|
||||
|
|
|
@ -22,8 +22,10 @@ var ctx = canvas.getContext('2d');
|
|||
|
||||
ctx.fillStyle = '#0f0';
|
||||
ctx.fillRect(0, 0, 100, 50);
|
||||
|
||||
ctx.lineCap = 'square';
|
||||
ctx.lineWidth = 20;
|
||||
|
||||
ctx.fillStyle = '#f00';
|
||||
ctx.strokeStyle = '#0f0';
|
||||
ctx.fillRect(15, 5, 20, 40);
|
||||
|
@ -31,6 +33,7 @@ ctx.beginPath();
|
|||
ctx.moveTo(25, 15);
|
||||
ctx.lineTo(25, 35);
|
||||
ctx.stroke();
|
||||
|
||||
ctx.fillStyle = '#0f0';
|
||||
ctx.strokeStyle = '#f00';
|
||||
ctx.beginPath();
|
||||
|
@ -38,12 +41,14 @@ ctx.moveTo(75, 15);
|
|||
ctx.lineTo(75, 35);
|
||||
ctx.stroke();
|
||||
ctx.fillRect(65, 5, 20, 40);
|
||||
|
||||
_assertPixel(canvas, 25,4, 0,255,0,255);
|
||||
_assertPixel(canvas, 25,5, 0,255,0,255);
|
||||
_assertPixel(canvas, 25,6, 0,255,0,255);
|
||||
_assertPixel(canvas, 25,44, 0,255,0,255);
|
||||
_assertPixel(canvas, 25,45, 0,255,0,255);
|
||||
_assertPixel(canvas, 25,46, 0,255,0,255);
|
||||
|
||||
_assertPixel(canvas, 75,4, 0,255,0,255);
|
||||
_assertPixel(canvas, 75,5, 0,255,0,255);
|
||||
_assertPixel(canvas, 75,6, 0,255,0,255);
|
||||
|
|
|
@ -18,8 +18,10 @@ var ctx = canvas.getContext('2d');
|
|||
|
||||
ctx.fillStyle = '#0f0';
|
||||
ctx.fillRect(0, 0, 100, 50);
|
||||
|
||||
ctx.lineCap = 'square';
|
||||
ctx.lineWidth = 20;
|
||||
|
||||
ctx.fillStyle = '#f00';
|
||||
ctx.strokeStyle = '#0f0';
|
||||
ctx.fillRect(15, 5, 20, 40);
|
||||
|
@ -27,6 +29,7 @@ ctx.beginPath();
|
|||
ctx.moveTo(25, 15);
|
||||
ctx.lineTo(25, 35);
|
||||
ctx.stroke();
|
||||
|
||||
ctx.fillStyle = '#0f0';
|
||||
ctx.strokeStyle = '#f00';
|
||||
ctx.beginPath();
|
||||
|
@ -34,12 +37,14 @@ ctx.moveTo(75, 15);
|
|||
ctx.lineTo(75, 35);
|
||||
ctx.stroke();
|
||||
ctx.fillRect(65, 5, 20, 40);
|
||||
|
||||
_assertPixel(canvas, 25,4, 0,255,0,255);
|
||||
_assertPixel(canvas, 25,5, 0,255,0,255);
|
||||
_assertPixel(canvas, 25,6, 0,255,0,255);
|
||||
_assertPixel(canvas, 25,44, 0,255,0,255);
|
||||
_assertPixel(canvas, 25,45, 0,255,0,255);
|
||||
_assertPixel(canvas, 25,46, 0,255,0,255);
|
||||
|
||||
_assertPixel(canvas, 75,4, 0,255,0,255);
|
||||
_assertPixel(canvas, 75,5, 0,255,0,255);
|
||||
_assertPixel(canvas, 75,6, 0,255,0,255);
|
||||
|
|
|
@ -22,8 +22,10 @@ var ctx = canvas.getContext('2d');
|
|||
|
||||
ctx.lineCap = 'butt'
|
||||
_assertSame(ctx.lineCap, 'butt', "ctx.lineCap", "'butt'");
|
||||
|
||||
ctx.lineCap = 'round';
|
||||
_assertSame(ctx.lineCap, 'round', "ctx.lineCap", "'round'");
|
||||
|
||||
ctx.lineCap = 'square';
|
||||
_assertSame(ctx.lineCap, 'square', "ctx.lineCap", "'square'");
|
||||
t.done();
|
||||
|
|
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