mirror of
https://github.com/servo/servo.git
synced 2025-06-29 03:23:41 +01:00
Update web-platform-tests to revision de9a09ab7f605aed6a4b53ed96427412bab76463
This commit is contained in:
parent
f3f9303fc9
commit
73a776843f
225 changed files with 5750 additions and 2858 deletions
|
@ -14,6 +14,9 @@
|
||||||
[Revoke blob URL after creating Request, will fetch]
|
[Revoke blob URL after creating Request, will fetch]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[Revoke blob URL after calling fetch, fetch should succeed]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
||||||
[url-with-fetch.any.html]
|
[url-with-fetch.any.html]
|
||||||
[Untitled]
|
[Untitled]
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -296,3 +296,42 @@
|
||||||
[Matching font-style: 'oblique 0deg' should prefer 'oblique 15deg 20deg' over 'oblique 30deg 60deg']
|
[Matching font-style: 'oblique 0deg' should prefer 'oblique 15deg 20deg' over 'oblique 30deg 60deg']
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[Matching font-style: 'italic' should prefer 'oblique 5deg' over 'normal']
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Matching font-style: 'oblique 20deg' should prefer 'oblique 20deg' over 'oblique 30deg 60deg']
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Matching font-weight: '399' should prefer '500 501' over '502 510']
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Matching font-style: 'oblique -21deg' should prefer 'oblique 0deg' over 'oblique 30deg 60deg']
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Matching font-stretch: '110%' should prefer '110% 120%' over '115% 116%']
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Matching font-stretch: '110%' should prefer '105%' over '100%']
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Matching font-style: 'oblique 20deg' should prefer 'oblique -50deg -20deg' over 'oblique -40deg -30deg']
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Matching font-style: 'oblique 0deg' should prefer 'oblique 40deg 50deg' over 'italic']
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Matching font-weight: '500' should prefer '500' over '450 460']
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Matching font-style: 'italic' should prefer 'oblique 0deg' over 'oblique -60deg -30deg']
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Matching font-style: 'oblique 20deg' should prefer 'italic' over 'oblique 0deg']
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Matching font-stretch: '90%' should prefer '60% 70%' over '110% 140%']
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Matching font-style: 'oblique -21deg' should prefer 'oblique 30deg 60deg' over 'oblique 40deg 50deg']
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
[text-space-collapse-discard-001.xht]
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
||||||
|
[text-space-collapse-preserve-breaks-001.xht]
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
||||||
|
[text-space-trim-trim-inner-001.xht]
|
||||||
|
expected: FAIL
|
|
@ -74,3 +74,6 @@
|
||||||
[opacity end]
|
[opacity end]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[border-top-width end]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
[text-overflow-ruby.html]
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
||||||
|
[variable-exponential-blowup.html]
|
||||||
|
expected: TIMEOUT
|
|
@ -1,2 +0,0 @@
|
||||||
[backdrop-filter-basic-opacity.html]
|
|
||||||
expected: FAIL
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
[backdrop-filter-fixed-clip.html]
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
||||||
|
[backdrop-filter-isolation-fixed.html]
|
||||||
|
expected: FAIL
|
4
tests/wpt/metadata/css/geometry/DOMMatrix-002.html.ini
Normal file
4
tests/wpt/metadata/css/geometry/DOMMatrix-002.html.ini
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
[DOMMatrix-002.html]
|
||||||
|
[test scaleNonUniform() doesn't mutate]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -6,3 +6,12 @@
|
||||||
[test rotateAxisAngle() ]
|
[test rotateAxisAngle() ]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[test scaleNonUniform() with sx]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[test scaleNonUniform() with sx, sy]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[test scaleNonUniform()]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
[adopted-callback.html]
|
[adopted-callback.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
expected: ERROR
|
|
||||||
[Inserting a custom element into a shadow tree in the document of the template elements must enqueue and invoke adoptedCallback]
|
[Inserting a custom element into a shadow tree in the document of the template elements must enqueue and invoke adoptedCallback]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
[parser-uses-registry-of-owner-document.html]
|
[parser-uses-registry-of-owner-document.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
expected: ERROR
|
|
||||||
[HTML parser must not instantiate custom elements inside template elements]
|
[HTML parser must not instantiate custom elements inside template elements]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
[perform-microtask-checkpoint-before-construction.html]
|
||||||
|
[HTML parser must perform a microtask checkpoint before constructing a custom element]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[HTML parser must perform a microtask checkpoint before constructing a custom element during the adoption agency algorithm]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
[Attr.html]
|
|
||||||
[value on Attr must not enqueue an attributeChanged reaction when replacing an existing unobserved attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[value on Attr must enqueue an attributeChanged reaction when replacing an existing attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -24,69 +24,3 @@
|
||||||
[A webkit prefixed dashed property (-webkit-filter) on CSSStyleDeclaration must not enqueue an attributeChanged reaction when it mutates the style attribute but the style attribute is not observed]
|
[A webkit prefixed dashed property (-webkit-filter) on CSSStyleDeclaration must not enqueue an attributeChanged reaction when it mutates the style attribute but the style attribute is not observed]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[A dashed property (border-width) on CSSStyleDeclaration must enqueue an attributeChanged reaction when it adds the observed style attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[cssText on CSSStyleDeclaration must not enqueue an attributeChanged reaction when it mutates the style attribute but the style attribute is not observed]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[setProperty on CSSStyleDeclaration must enqueue an attributeChanged reaction when it mutates the observed style attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[cssFloat on CSSStyleDeclaration must enqueue an attributeChanged reaction when it adds the observed style attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[cssText on CSSStyleDeclaration must not enqueue an attributeChanged reaction when it adds the style attribute but the style attribute is not observed]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[A camel case attribute (borderWidth) on CSSStyleDeclaration must not enqueue an attributeChanged reaction when it mutates the style attribute but the style attribute is not observed]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[cssFloat on CSSStyleDeclaration must not enqueue an attributeChanged reaction when it adds the style attribute but the style attribute is not observed]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[setProperty on CSSStyleDeclaration must not enqueue an attributeChanged reaction when it adds the style attribute but the style attribute is not observed]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[setProperty on CSSStyleDeclaration must enqueue an attributeChanged reaction when it makes a property important but the style attribute is not observed]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[setProperty on CSSStyleDeclaration must enqueue an attributeChanged reaction when it makes a property important and the style attribute is observed]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[A dashed property (border-width) on CSSStyleDeclaration must enqueue an attributeChanged reaction when it mutates the observed style attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[A camel case attribute (borderWidth) on CSSStyleDeclaration must enqueue an attributeChanged reaction when it adds the observed style attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[setProperty on CSSStyleDeclaration must enqueue an attributeChanged reaction when it adds the observed style attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[removeProperty on CSSStyleDeclaration must enqueue an attributeChanged reaction when it removes a property from the observed style attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[cssText on CSSStyleDeclaration must enqueue an attributeChanged reaction when it mutates the observed style attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[A camel case attribute (borderWidth) on CSSStyleDeclaration must not enqueue an attributeChanged reaction when it adds the style attribute but the style attribute is not observed]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[A dashed property (border-width) on CSSStyleDeclaration must not enqueue an attributeChanged reaction when it adds the style attribute but the style attribute is not observed]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[setProperty on CSSStyleDeclaration must not enqueue an attributeChanged reaction when it mutates the style attribute but the style attribute is not observed]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[cssText on CSSStyleDeclaration must enqueue an attributeChanged reaction when it adds the observed style attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[removeProperty on CSSStyleDeclaration must not enqueue an attributeChanged reaction when it removes a property from the style attribute but the style attribute is not observed]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[A camel case attribute (borderWidth) on CSSStyleDeclaration must enqueue an attributeChanged reaction when it mutates the observed style attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[A dashed property (border-width) on CSSStyleDeclaration must not enqueue an attributeChanged reaction when it mutates the style attribute but the style attribute is not observed]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
|
@ -1,22 +0,0 @@
|
||||||
[ChildNode.html]
|
|
||||||
[before on ChildNode must enqueue a connected reaction]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[replaceWith on ChildNode must enqueue a disconnected reaction, an adopted reaction, and a connected reaction when the custom element was in another document]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[before on ChildNode must enqueue a disconnected reaction, an adopted reaction, and a connected reaction when the custom element was in another document]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[after on ChildNode must enqueue a connected reaction]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[remove on ChildNode must enqueue a disconnected reaction]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[replaceWith on ChildNode must enqueue a connected reaction]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[after on ChildNode must enqueue a disconnected reaction, an adopted reaction, and a connected reaction when the custom element was in another document]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,25 +0,0 @@
|
||||||
[DOMStringMap.html]
|
|
||||||
[deleter on DOMStringMap must enqueue an attributeChanged reaction when removing an observed data attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[deleter on DOMStringMap must not enqueue an attributeChanged reaction when removing an unobserved data attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[setter on DOMStringMap must not enqueue an attributeChanged reaction when mutating the value of an unobserved data attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[setter on DOMStringMap must enqueue an attributeChanged reaction when adding an observed data attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[setter on DOMStringMap must not enqueue an attributeChanged reaction when adding an unobserved data attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[setter on DOMStringMap must enqueue an attributeChanged reaction when mutating the value of an observed data attribute to the same value]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[deleter on DOMStringMap must not enqueue an attributeChanged reaction when it does not remove a data attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[setter on DOMStringMap must enqueue an attributeChanged reaction when mutating the value of an observed data attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,58 +0,0 @@
|
||||||
[DOMTokenList.html]
|
|
||||||
[add on DOMTokenList must not enqueue an attributeChanged reaction when adding an unobserved attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[replace on DOMTokenList must not enqueue an attributeChanged reaction when the token to replace does not exist in the attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[replace on DOMTokenList must not enqueue an attributeChanged reaction when replacing a value in an unobserved attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[toggle on DOMTokenList must enqueue an attributeChanged reaction when removing a value from an attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[add on DOMTokenList must not enqueue an attributeChanged reaction when adding a value to an unobserved attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[add on DOMTokenList must enqueue exactly one attributeChanged reaction when adding multiple values to an attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[remove on DOMTokenList must enqueue an attributeChanged reaction when removing a value from an attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[the stringifier of DOMTokenList must not enqueue an attributeChanged reaction when adding an unobserved attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[the stringifier of DOMTokenList must enqueue an attributeChanged reaction when the setter is called with the original value of the attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[toggle on DOMTokenList must enqueue an attributeChanged reaction when adding a value to an attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[the stringifier of DOMTokenList must enqueue an attributeChanged reaction when adding an observed attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[add on DOMTokenList must enqueue an attributeChanged reaction when adding a value to an existing attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[remove on DOMTokenList must enqueue an attributeChanged reaction even when removing a non-existent value from an attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[remove on DOMTokenList must not enqueue an attributeChanged reaction when removing a value from an unobserved attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[remove on DOMTokenList must enqueue exactly one attributeChanged reaction when removing multiple values to an attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[the stringifier of DOMTokenList must enqueue an attributeChanged reaction when mutating the value of an observed attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[replace on DOMTokenList must enqueue an attributeChanged reaction when replacing a value in an attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[add on DOMTokenList must enqueue an attributeChanged reaction when adding an attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[the stringifier of DOMTokenList must not enqueue an attributeChanged reaction when mutating the value of an unobserved attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -6,120 +6,3 @@
|
||||||
[slot on Element must enqueue an attributeChanged reaction when replacing an existing attribute]
|
[slot on Element must enqueue an attributeChanged reaction when replacing an existing attribute]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[className on Element must enqueue an attributeChanged reaction when adding class content attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[id on Element must enqueue an attributeChanged reaction when adding id content attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[removeAttributeNS on Element must not enqueue an attributeChanged reaction when removing an unobserved attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[setAttributeNode on Element must not enqueue an attributeChanged reaction when adding an unobserved attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[insertAdjacentHTML on Element must enqueue a attributeChanged reaction for a newly constructed custom element]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[removeAttribute on Element must enqueue an attributeChanged reaction when removing an existing attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[setAttributeNodeNS on Element must not enqueue an attributeChanged reaction when adding an unobserved attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[removeAttribute on Element must not enqueue an attributeChanged reaction when removing an existing unobserved attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[id on Element must enqueue an attributeChanged reaction when replacing an existing attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[insertAdjacentHTML on Element must enqueue a connected reaction for a newly constructed custom element]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[removeAttributeNode on Element must not enqueue an attributeChanged reaction when removing an unobserved attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[removeAttributeNode on Element must enqueue an attributeChanged reaction when removing an existing attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[outerHTML on Element must enqueue a attributeChanged reaction for a newly constructed custom element]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[innerHTML on Element must enqueue a disconnected reaction]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[setAttributeNS on Element must enqueue an attributeChanged reaction when replacing an existing attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[setAttribute on Element must not enqueue an attributeChanged reaction when adding an unobserved attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[outerHTML on Element must enqueue a disconnected reaction]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[removeAttributeNode on Element must not enqueue an attributeChanged reaction when removing an existing unobserved attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[outerHTML on Element must enqueue a connected reaction for a newly constructed custom element]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[innerHTML on Element must enqueue a attributeChanged reaction for a newly constructed custom element]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[setAttribute on Element must enqueue an attributeChanged reaction when replacing an existing attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[setAttributeNode on Element must enqueue an attributeChanged reaction when adding an attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[setAttributeNodeNS on Element must enqueue an attributeChanged reaction when replacing an existing attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[insertAdjacentElement on Element must enqueue a disconnected reaction, an adopted reaction, and a connected reaction when the custom element was in another document]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[removeAttribute on Element must not enqueue an attributeChanged reaction when removing an unobserved attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[setAttributeNodeNS on Element must enqueue an attributeChanged reaction when replacing an existing unobserved attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[className on Element must enqueue an attributeChanged reaction when replacing an existing attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[removeAttributeNS on Element must enqueue an attributeChanged reaction when removing an existing attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[innerHTML on Element must enqueue a connected reaction for a newly constructed custom element]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[setAttributeNodeNS on Element must enqueue an attributeChanged reaction when adding an attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[removeAttributeNS on Element must not enqueue an attributeChanged reaction when removing an existing unobserved attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[insertAdjacentElement on Element must enqueue a connected reaction]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[setAttributeNode on Element must enqueue an attributeChanged reaction when replacing an existing unobserved attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[setAttribute on Element must enqueue an attributeChanged reaction when replacing an existing unobserved attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[setAttributeNS on Element must enqueue an attributeChanged reaction when replacing an existing unobserved attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[setAttribute on Element must enqueue an attributeChanged reaction when adding an attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[setAttributeNode on Element must enqueue an attributeChanged reaction when replacing an existing attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[setAttributeNS on Element must not enqueue an attributeChanged reaction when adding an unobserved attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[setAttributeNS on Element must enqueue an attributeChanged reaction when adding an attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
|
@ -1,61 +1,19 @@
|
||||||
[HTMLButtonElement.html]
|
[HTMLButtonElement.html]
|
||||||
[formMethod on HTMLButtonElement must enqueue an attributeChanged reaction when replacing an existing attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[formMethod on HTMLButtonElement must enqueue an attributeChanged reaction when adding a new attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[formEnctype on HTMLButtonElement must enqueue an attributeChanged reaction when adding a new attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[formNoValidate on HTMLButtonElement must enqueue an attributeChanged reaction when adding a new attribute]
|
[formNoValidate on HTMLButtonElement must enqueue an attributeChanged reaction when adding a new attribute]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[formAction on HTMLButtonElement must enqueue an attributeChanged reaction when adding a new attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[value on HTMLButtonElement must enqueue an attributeChanged reaction when adding value content attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[type on HTMLButtonElement must enqueue an attributeChanged reaction when replacing an existing attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[disabled on HTMLButtonElement must enqueue an attributeChanged reaction when adding disabled content attribute]
|
[disabled on HTMLButtonElement must enqueue an attributeChanged reaction when adding disabled content attribute]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[formTarget on HTMLButtonElement must enqueue an attributeChanged reaction when replacing an existing attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[disabled on HTMLButtonElement must enqueue an attributeChanged reaction when replacing an existing attribute]
|
[disabled on HTMLButtonElement must enqueue an attributeChanged reaction when replacing an existing attribute]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[formTarget on HTMLButtonElement must enqueue an attributeChanged reaction when adding a new attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[formAction on HTMLButtonElement must enqueue an attributeChanged reaction when replacing an existing attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[autofocus on HTMLButtonElement must enqueue an attributeChanged reaction when replacing an existing attribute]
|
[autofocus on HTMLButtonElement must enqueue an attributeChanged reaction when replacing an existing attribute]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[formNoValidate on HTMLButtonElement must enqueue an attributeChanged reaction when replacing an existing attribute]
|
[formNoValidate on HTMLButtonElement must enqueue an attributeChanged reaction when replacing an existing attribute]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[name on HTMLButtonElement must enqueue an attributeChanged reaction when adding name content attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[value on HTMLButtonElement must enqueue an attributeChanged reaction when replacing an existing attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[formEnctype on HTMLButtonElement must enqueue an attributeChanged reaction when replacing an existing attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[name on HTMLButtonElement must enqueue an attributeChanged reaction when replacing an existing attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[type on HTMLButtonElement must enqueue an attributeChanged reaction when adding a new attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[autofocus on HTMLButtonElement must enqueue an attributeChanged reaction when adding autofocus content attribute]
|
[autofocus on HTMLButtonElement must enqueue an attributeChanged reaction when adding autofocus content attribute]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -51,21 +51,3 @@
|
||||||
[innerText on HTMLElement must enqueue a disconnected reaction]
|
[innerText on HTMLElement must enqueue a disconnected reaction]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[hidden on HTMLElement must enqueue an attributeChanged reaction when adding hidden content attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[hidden on HTMLElement must enqueue an attributeChanged reaction when replacing an existing attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[lang on HTMLElement must enqueue an attributeChanged reaction when replacing an existing attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[title on HTMLElement must enqueue an attributeChanged reaction when replacing an existing attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[lang on HTMLElement must enqueue an attributeChanged reaction when adding lang content attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[title on HTMLElement must enqueue an attributeChanged reaction when adding title content attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
|
@ -1,43 +0,0 @@
|
||||||
[NamedNodeMap.html]
|
|
||||||
[removeNamedItem on NamedNodeMap must not enqueue an attributeChanged reaction when removing an existing unobserved attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[removeNamedItemNS on NamedNodeMap must enqueue an attributeChanged reaction when removing an existing attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[setNamedItemNS on NamedNodeMap must enqueue an attributeChanged reaction when adding an attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[removeNamedItem on NamedNodeMap must enqueue an attributeChanged reaction when removing an existing attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[setNamedItemNS on NamedNodeMap must enqueue an attributeChanged reaction when replacing an existing unobserved attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[removeNamedItemNS on NamedNodeMap must not enqueue an attributeChanged reaction when removing an unobserved attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[setNamedItem on NamedNodeMap must enqueue an attributeChanged reaction when adding an attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[setNamedItem on NamedNodeMap must not enqueue an attributeChanged reaction when adding an unobserved attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[removeNamedItem on NamedNodeMap must not enqueue an attributeChanged reaction when removing an unobserved attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[setNamedItemNS on NamedNodeMap must enqueue an attributeChanged reaction when replacing an existing attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[setNamedItem on NamedNodeMap must enqueue an attributeChanged reaction when replacing an existing unobserved attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[removeNamedItemNS on NamedNodeMap must not enqueue an attributeChanged reaction when removing an existing unobserved attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[setNamedItemNS on NamedNodeMap must not enqueue an attributeChanged reaction when adding an unobserved attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[setNamedItem on NamedNodeMap must enqueue an attributeChanged reaction when replacing an existing attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,43 +0,0 @@
|
||||||
[Node.html]
|
|
||||||
[removeChild on ChildNode must enqueue a disconnected reaction]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[cloneNode on Node must enqueue an attributeChanged reaction when cloning an element with an observed attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[replaceChild on ChildNode must enqueue a connected reaction]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[nodeValue on Node must enqueue an attributeChanged reaction when replacing an existing attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[cloneNode on Node must not enqueue an attributeChanged reaction when cloning an element with an unobserved attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[cloneNode on Node must enqueue an attributeChanged reaction when cloning an element only for observed attributes]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[appendChild on ChildNode must enqueue a disconnected reaction, an adopted reaction, and a connected reaction when the custom element was in another document]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[insertBefore on ChildNode must enqueue a disconnected reaction, an adopted reaction, and a connected reaction when the custom element was in another document]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[insertBefore on ChildNode must enqueue a connected reaction]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[appendChild on ChildNode must enqueue a connected reaction]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[textContent on Node must not enqueue an attributeChanged reaction when replacing an existing unobserved attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[textContent on Node must enqueue an attributeChanged reaction when replacing an existing attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[replaceChild on ChildNode must enqueue a disconnected reaction, an adopted reaction, and a connected reaction when the custom element was in another document]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[nodeValue on Node must not enqueue an attributeChanged reaction when replacing an existing unobserved attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
[ParentNode.html]
|
|
||||||
[prepend on ParentNode must enqueue a connected reaction]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[prepend on ParentNode must enqueue a disconnected reaction, an adopted reaction, and a connected reaction when the custom element was in another document]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[append on ParentNode must enqueue a disconnected reaction, an adopted reaction, and a connected reaction when the custom element was in another document]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[append on ParentNode must enqueue a connected reaction]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -3,30 +3,3 @@
|
||||||
[createContextualFragment on Range must construct a custom element]
|
[createContextualFragment on Range must construct a custom element]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[cloneContents on Range must enqueue an attributeChanged reaction when cloning an element only for observed attributes]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[cloneContents on Range must not enqueue an attributeChanged reaction when cloning an element with an unobserved attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[deleteContents on Range must enqueue a disconnected reaction]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[extractContents on Range must enqueue a disconnected reaction]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[insertNode on Range must enqueue a disconnected reaction, an adopted reaction, and a connected reaction when the custom element was in another document]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[cloneContents on Range must enqueue an attributeChanged reaction when cloning an element with an observed attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[surroundContents on Range must enqueue a disconnected reaction, an adopted reaction, and a connected reaction when the custom element was in another document]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[surroundContents on Range must enqueue a connected reaction]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[insertNode on Range must enqueue a connected reaction]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
|
@ -509,7 +509,7 @@
|
||||||
|
|
||||||
|
|
||||||
[single-byte-decoder.html?XMLHttpRequest]
|
[single-byte-decoder.html?XMLHttpRequest]
|
||||||
expected: CRASH
|
expected: TIMEOUT
|
||||||
[ISO-8859-2: iso_8859-2:1987 (XMLHttpRequest)]
|
[ISO-8859-2: iso_8859-2:1987 (XMLHttpRequest)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -535,7 +535,91 @@
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[windows-1254: iso_8859-9:1989 (XMLHttpRequest)]
|
[windows-1254: iso_8859-9:1989 (XMLHttpRequest)]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[windows-1258: cp1258 (XMLHttpRequest)]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[windows-1253: x-cp1253 (XMLHttpRequest)]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[windows-1256: cp1256 (XMLHttpRequest)]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[windows-1254: iso_8859-9 (XMLHttpRequest)]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[windows-1254: iso88599 (XMLHttpRequest)]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[windows-1254: iso-8859-9 (XMLHttpRequest)]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[windows-1258: x-cp1258 (XMLHttpRequest)]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[windows-1257: windows-1257 (XMLHttpRequest)]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[windows-1254: windows-1254 (XMLHttpRequest)]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[x-mac-cyrillic: x-mac-ukrainian (XMLHttpRequest)]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[windows-1254: csisolatin5 (XMLHttpRequest)]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[windows-1257: cp1257 (XMLHttpRequest)]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[windows-1255: x-cp1255 (XMLHttpRequest)]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[windows-1257: x-cp1257 (XMLHttpRequest)]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[windows-1254: cp1254 (XMLHttpRequest)]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[windows-1254: iso8859-9 (XMLHttpRequest)]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[windows-1253: windows-1253 (XMLHttpRequest)]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[windows-1253: cp1253 (XMLHttpRequest)]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[windows-1254: l5 (XMLHttpRequest)]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[windows-1254: x-cp1254 (XMLHttpRequest)]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[windows-1254: latin5 (XMLHttpRequest)]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[windows-1252: x-cp1252 (XMLHttpRequest)]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[windows-1255: cp1255 (XMLHttpRequest)]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[windows-1254: iso-ir-148 (XMLHttpRequest)]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[windows-1258: windows-1258 (XMLHttpRequest)]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[windows-1255: windows-1255 (XMLHttpRequest)]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[x-mac-cyrillic: x-mac-cyrillic (XMLHttpRequest)]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[windows-1256: windows-1256 (XMLHttpRequest)]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
|
||||||
[single-byte-decoder.html?TextDecoder]
|
[single-byte-decoder.html?TextDecoder]
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
[fetch-destination-prefetch.https.html]
|
||||||
|
[HTMLLinkElement with rel=prefetch fetches with an empty string Request.destination]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Initialize global state]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
[request-cache-default-conditional.html]
|
|
||||||
expected: TIMEOUT
|
|
||||||
[RequestCache "default" mode with an If-Range header is treated similarly to "no-store" with Etag and stale response]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[RequestCache "default" mode with an If-Range header is treated similarly to "no-store" with Etag and fresh response]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[RequestCache "default" mode with an If-Range header (following a request without additional headers) is treated similarly to "no-store" with Last-Modified and fresh response]
|
|
||||||
expected: TIMEOUT
|
|
||||||
|
|
||||||
[RequestCache "default" mode with an If-Range header is treated similarly to "no-store" with Last-Modified and fresh response]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
||||||
[RequestCache "default" mode with an If-Range header is treated similarly to "no-store" with Last-Modified and stale response]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[response.window.html]
|
[response.window.html]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
[fetch(): combined response Content-Type: text/plain ]
|
[fetch(): combined response Content-Type: text/plain ]
|
||||||
expected: TIMEOUT
|
expected: FAIL
|
||||||
|
|
||||||
[Response: combined response Content-Type: text/plain;charset=gbk text/plain;charset=windows-1252]
|
[Response: combined response Content-Type: text/plain;charset=gbk text/plain;charset=windows-1252]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
@ -64,7 +64,7 @@
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[fetch(): combined response Content-Type: text/html text/plain]
|
[fetch(): combined response Content-Type: text/html text/plain]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Request: combined response Content-Type: text/html;charset=gbk text/plain text/html]
|
[Request: combined response Content-Type: text/html;charset=gbk text/plain text/html]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
@ -76,13 +76,13 @@
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Response: combined response Content-Type: text/plain ]
|
[Response: combined response Content-Type: text/plain ]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[fetch(): combined response Content-Type: text/plain;charset=gbk text/plain]
|
[fetch(): combined response Content-Type: text/plain;charset=gbk text/plain]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Request: combined response Content-Type: text/html text/plain]
|
[Request: combined response Content-Type: text/html text/plain]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/plain */*]
|
[<iframe>: separate response Content-Type: text/plain */*]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
@ -118,7 +118,7 @@
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Response: combined response Content-Type: text/html text/plain]
|
[Response: combined response Content-Type: text/html text/plain]
|
||||||
expected: NOTRUN
|
expected: TIMEOUT
|
||||||
|
|
||||||
[fetch(): separate response Content-Type: text/plain ]
|
[fetch(): separate response Content-Type: text/plain ]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
@ -241,7 +241,7 @@
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Request: combined response Content-Type: text/plain ]
|
[Request: combined response Content-Type: text/plain ]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Response: combined response Content-Type: text/html */*;charset=gbk]
|
[Response: combined response Content-Type: text/html */*;charset=gbk]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
@ -280,7 +280,7 @@
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[fetch(): separate response Content-Type: text/html text/plain]
|
[fetch(): separate response Content-Type: text/html text/plain]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
[Request: combined response Content-Type: text/html;" text/plain]
|
[Request: combined response Content-Type: text/html;" text/plain]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[006.html]
|
|
||||||
[Link with onclick form submit and href navigation ]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -2,10 +2,10 @@
|
||||||
type: testharness
|
type: testharness
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
[picture: source (max-width:500px) broken image, img valid image, resize to wide]
|
[picture: source (max-width:500px) broken image, img valid image, resize to wide]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
[picture: source (max-width:500px) valid image, img valid image, resize to wide]
|
[picture: source (max-width:500px) valid image, img valid image, resize to wide]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
[picture: source (max-width:500px) valid image, img broken image, resize to narrow]
|
[picture: source (max-width:500px) valid image, img broken image, resize to narrow]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
[toggleEvent.html]
|
|
||||||
[Calling open twice on 'details' fires only one toggle event]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Setting open=true to opened 'details' element should not fire a toggle event at the 'details' element]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[122.html]
|
|
||||||
[scheduler: altering the type attribute and adding/removing external script ]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[iframe_005.html]
|
|
||||||
[document.write external script into iframe write back into parent]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -2,3 +2,6 @@
|
||||||
[document.open() after parser is aborted]
|
[document.open() after parser is aborted]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[async document.open() after parser is aborted]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,3 @@
|
||||||
[Verifies the resolution of entry.startTime is at least 5 microseconds.]
|
[Verifies the resolution of entry.startTime is at least 5 microseconds.]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
|
|
||||||
[Verifies the resolution of performance.now() is at least 5 microseconds.]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
|
@ -53,3 +53,15 @@
|
||||||
['link (Potentially Cached): Immediately fetch the same URL, exercising the cache hit path (if any).]
|
['link (Potentially Cached): Immediately fetch the same URL, exercising the cache hit path (if any).]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
['link 250ms delay in headers does not affect responseStart']
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
['iframe 250ms delay in headers does not affect responseStart']
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
['xmlhttprequest 250ms delay in headers does not affect responseStart']
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
['script 250ms delay in headers does not affect responseStart']
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
[005.html]
|
[005.html]
|
||||||
|
expected: ERROR
|
||||||
[dedicated worker in shared worker in dedicated worker]
|
[dedicated worker in shared worker in dedicated worker]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -61,7 +61,7 @@ tasks:
|
||||||
owner: ${event.pusher.email}
|
owner: ${event.pusher.email}
|
||||||
source: ${event.repository.url}
|
source: ${event.repository.url}
|
||||||
payload:
|
payload:
|
||||||
image: harjgam/web-platform-tests:0.22
|
image: hexcles/web-platform-tests:0.23
|
||||||
maxRunTime: 7200
|
maxRunTime: 7200
|
||||||
artifacts:
|
artifacts:
|
||||||
public/results:
|
public/results:
|
||||||
|
@ -125,7 +125,7 @@ tasks:
|
||||||
owner: ${event.pull_request.user.login}@users.noreply.github.com
|
owner: ${event.pull_request.user.login}@users.noreply.github.com
|
||||||
source: ${event.repository.url}
|
source: ${event.repository.url}
|
||||||
payload:
|
payload:
|
||||||
image: harjgam/web-platform-tests:0.22
|
image: hexcles/web-platform-tests:0.23
|
||||||
maxRunTime: 7200
|
maxRunTime: 7200
|
||||||
artifacts:
|
artifacts:
|
||||||
public/results:
|
public/results:
|
||||||
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
// META: script=support-promises.js
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This file contains a test that was separated out from the rest of the idb
|
||||||
|
* explict commit tests because it requires the flag 'allow_uncaught_exception',
|
||||||
|
* which prevents unintentionally thrown errors from failing tests.
|
||||||
|
*
|
||||||
|
* @author andreasbutler@google.com
|
||||||
|
*/
|
||||||
|
|
||||||
|
setup({allow_uncaught_exception:true});
|
||||||
|
|
||||||
|
promise_test(async testCase => {
|
||||||
|
// Register an event listener that will prevent the intentionally thrown
|
||||||
|
// error from bubbling up to the window and failing the testharness. This
|
||||||
|
// is necessary because currently allow_uncaught_exception does not behave
|
||||||
|
// as expected for promise_test.
|
||||||
|
//
|
||||||
|
// Git issue: https://github.com/web-platform-tests/wpt/issues/14041
|
||||||
|
self.addEventListener('error', (event) => { event.preventDefault(); });
|
||||||
|
|
||||||
|
const db = await createDatabase(testCase, async db => {
|
||||||
|
await createBooksStore(testCase, db);
|
||||||
|
});
|
||||||
|
|
||||||
|
const txn = db.transaction(['books'], 'readwrite');
|
||||||
|
const objectStore = txn.objectStore('books');
|
||||||
|
const putRequest = objectStore.put({isbn:'one', title:'title'});
|
||||||
|
txn.commit();
|
||||||
|
putRequest.onsuccess = () => {
|
||||||
|
throw new Error('This error thrown after an explicit commit should not ' +
|
||||||
|
'prevent the transaction from committing.');
|
||||||
|
}
|
||||||
|
await promiseForTransaction(testCase, txn);
|
||||||
|
|
||||||
|
// Ensure that despite the uncaught error after the put request, the explicit
|
||||||
|
// commit still causes the request to be committed.
|
||||||
|
const txn2 = db.transaction(['books'], 'readwrite');
|
||||||
|
const objectStore2 = txn2.objectStore('books');
|
||||||
|
const getRequest = objectStore2.get('one');
|
||||||
|
await promiseForTransaction(testCase, txn2);
|
||||||
|
|
||||||
|
assert_equals(getRequest.result.title, 'title');
|
||||||
|
}, 'Any errors in callbacks that run after an explicit commit will not stop '
|
||||||
|
+ 'the commit from being processed.');
|
|
@ -0,0 +1,181 @@
|
||||||
|
// META: script=support-promises.js
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This file contains the webplatform tests for the explicit commit() method
|
||||||
|
* of the IndexedDB transaction API.
|
||||||
|
*
|
||||||
|
* @author andreasbutler@google.com
|
||||||
|
*/
|
||||||
|
|
||||||
|
promise_test(async testCase => {
|
||||||
|
const db = await createDatabase(testCase, async db => {
|
||||||
|
await createBooksStore(testCase, db);
|
||||||
|
});
|
||||||
|
const txn = db.transaction(['books'], 'readwrite');
|
||||||
|
const objectStore = txn.objectStore('books');
|
||||||
|
objectStore.put({isbn: 'one', title: 'title1'});
|
||||||
|
objectStore.put({isbn: 'two', title: 'title2'});
|
||||||
|
objectStore.put({isbn: 'three', title: 'title3'});
|
||||||
|
txn.commit();
|
||||||
|
await promiseForTransaction(testCase, txn);
|
||||||
|
|
||||||
|
const txn2 = db.transaction(['books'], 'readonly');
|
||||||
|
const objectStore2 = txn2.objectStore('books');
|
||||||
|
const getRequestitle1 = objectStore2.get('one');
|
||||||
|
const getRequestitle2 = objectStore2.get('two');
|
||||||
|
const getRequestitle3 = objectStore2.get('three');
|
||||||
|
txn2.commit();
|
||||||
|
await promiseForTransaction(testCase, txn2);
|
||||||
|
assert_array_equals(
|
||||||
|
[getRequestitle1.result.title,
|
||||||
|
getRequestitle2.result.title,
|
||||||
|
getRequestitle3.result.title],
|
||||||
|
['title1', 'title2', 'title3'],
|
||||||
|
'All three retrieved titles should match those that were put.');
|
||||||
|
db.close();
|
||||||
|
}, 'Explicitly committed data can be read back out.');
|
||||||
|
|
||||||
|
|
||||||
|
promise_test(async testCase => {
|
||||||
|
let db = await createDatabase(testCase, () => {});
|
||||||
|
assert_equals(1, db.version, 'A database should be created as version 1');
|
||||||
|
db.close();
|
||||||
|
|
||||||
|
// Upgrade the versionDB database and explicitly commit its versionchange
|
||||||
|
// transaction.
|
||||||
|
db = await migrateDatabase(testCase, 2, async (db, txn) => {
|
||||||
|
txn.commit();
|
||||||
|
});
|
||||||
|
assert_equals(2, db.version,
|
||||||
|
'The database version should have been incremented regardless of '
|
||||||
|
+ 'whether the versionchange transaction was explicitly or implicitly '
|
||||||
|
+ 'committed.');
|
||||||
|
db.close();
|
||||||
|
}, 'commit() on a version change transaction does not cause errors.');
|
||||||
|
|
||||||
|
|
||||||
|
promise_test(async testCase => {
|
||||||
|
const db = await createDatabase(testCase, async db => {
|
||||||
|
await createBooksStore(testCase, db);
|
||||||
|
});
|
||||||
|
const txn = db.transaction(['books'], 'readwrite');
|
||||||
|
const objectStore = txn.objectStore('books');
|
||||||
|
txn.commit();
|
||||||
|
assert_throws('TransactionInactiveError',
|
||||||
|
() => { objectStore.put({isbn: 'one', title: 'title1'}); },
|
||||||
|
'After commit is called, the transaction should be inactive.');
|
||||||
|
db.close();
|
||||||
|
}, 'A committed transaction becomes inactive immediately.');
|
||||||
|
|
||||||
|
|
||||||
|
promise_test(async testCase => {
|
||||||
|
const db = await createDatabase(testCase, async db => {
|
||||||
|
await createBooksStore(testCase, db);
|
||||||
|
});
|
||||||
|
const txn = db.transaction(['books'], 'readwrite');
|
||||||
|
const objectStore = txn.objectStore('books');
|
||||||
|
const putRequest = objectStore.put({isbn: 'one', title: 'title1'});
|
||||||
|
putRequest.onsuccess = testCase.step_func(() => {
|
||||||
|
assert_throws('TransactionInactiveError',
|
||||||
|
() => { objectStore.put({isbn:'two', title:'title2'}); },
|
||||||
|
'The transaction should not be active in the callback of a request after '
|
||||||
|
+ 'commit() is called.');
|
||||||
|
});
|
||||||
|
txn.commit();
|
||||||
|
await promiseForTransaction(testCase, txn);
|
||||||
|
db.close();
|
||||||
|
}, 'A committed transaction is inactive in future request callbacks.');
|
||||||
|
|
||||||
|
|
||||||
|
promise_test(async testCase => {
|
||||||
|
const db = await createDatabase(testCase, async db => {
|
||||||
|
await createBooksStore(testCase, db);
|
||||||
|
});
|
||||||
|
const txn = db.transaction(['books'], 'readwrite');
|
||||||
|
const objectStore = txn.objectStore('books');
|
||||||
|
txn.commit();
|
||||||
|
|
||||||
|
assert_throws('TransactionInactiveError',
|
||||||
|
() => { objectStore.put({isbn:'one', title:'title1'}); },
|
||||||
|
'After commit is called, the transaction should be inactive.');
|
||||||
|
|
||||||
|
const txn2 = db.transaction(['books'], 'readonly');
|
||||||
|
const objectStore2 = txn2.objectStore('books');
|
||||||
|
const getRequest = objectStore2.get('one');
|
||||||
|
await promiseForTransaction(testCase, txn2);
|
||||||
|
assert_equals(getRequest.result, undefined);
|
||||||
|
|
||||||
|
db.close();
|
||||||
|
}, 'Puts issued after commit are not fulfilled.');
|
||||||
|
|
||||||
|
|
||||||
|
promise_test(async testCase => {
|
||||||
|
const db = await createDatabase(testCase, async db => {
|
||||||
|
await createBooksStore(testCase, db);
|
||||||
|
});
|
||||||
|
const txn = db.transaction(['books'], 'readwrite');
|
||||||
|
const objectStore = txn.objectStore('books');
|
||||||
|
txn.abort();
|
||||||
|
assert_throws('InvalidStateError',
|
||||||
|
() => { txn.commit(); },
|
||||||
|
'The transaction should have been aborted.');
|
||||||
|
db.close();
|
||||||
|
}, 'Calling commit on an aborted transaction throws.');
|
||||||
|
|
||||||
|
|
||||||
|
promise_test(async testCase => {
|
||||||
|
const db = await createDatabase(testCase, async db => {
|
||||||
|
await createBooksStore(testCase, db);
|
||||||
|
});
|
||||||
|
const txn = db.transaction(['books'], 'readwrite');
|
||||||
|
const objectStore = txn.objectStore('books');
|
||||||
|
txn.commit();
|
||||||
|
assert_throws('InvalidStateError',
|
||||||
|
() => { txn.commit(); },
|
||||||
|
'The transaction should have already committed.');
|
||||||
|
db.close();
|
||||||
|
}, 'Calling commit on a committed transaction throws.');
|
||||||
|
|
||||||
|
|
||||||
|
promise_test(async testCase => {
|
||||||
|
const db = await createDatabase(testCase, async db => {
|
||||||
|
await createBooksStore(testCase, db);
|
||||||
|
});
|
||||||
|
const txn = db.transaction(['books'], 'readwrite');
|
||||||
|
const objectStore = txn.objectStore('books');
|
||||||
|
const putRequest = objectStore.put({isbn:'one', title:'title1'});
|
||||||
|
txn.commit();
|
||||||
|
assert_throws('InvalidStateError',
|
||||||
|
() => { txn.abort(); },
|
||||||
|
'The transaction should already have committed.');
|
||||||
|
const txn2 = db.transaction(['books'], 'readwrite');
|
||||||
|
const objectStore2 = txn2.objectStore('books');
|
||||||
|
const getRequest = objectStore2.get('one');
|
||||||
|
await promiseForTransaction(testCase, txn2);
|
||||||
|
assert_equals(
|
||||||
|
getRequest.result.title,
|
||||||
|
'title1',
|
||||||
|
'Explicitly committed data should be gettable.');
|
||||||
|
db.close();
|
||||||
|
}, 'Calling abort on a committed transaction throws and does not prevent '
|
||||||
|
+ 'persisting the data.');
|
||||||
|
|
||||||
|
|
||||||
|
promise_test(async testCase => {
|
||||||
|
const db = await createDatabase(testCase, async db => {
|
||||||
|
await createBooksStore(testCase, db);
|
||||||
|
});
|
||||||
|
const txn = db.transaction(['books'], 'readwrite');
|
||||||
|
const objectStore = txn.objectStore('books');
|
||||||
|
const releaseTxnFunction = keepAlive(testCase, txn, 'books');
|
||||||
|
|
||||||
|
// Break up the scope of execution to force the transaction into an inactive
|
||||||
|
// state.
|
||||||
|
await timeoutPromise(0);
|
||||||
|
|
||||||
|
assert_throws('InvalidStateError',
|
||||||
|
() => { txn.commit(); },
|
||||||
|
'The transaction should be inactive so calling commit should throw.');
|
||||||
|
releaseTxnFunction();
|
||||||
|
db.close();
|
||||||
|
}, 'Calling txn.commit() when txn is inactive should throw.');
|
|
@ -312,3 +312,32 @@ async function deleteAllDatabases(testCase) {
|
||||||
await eventWatcher.wait_for('success');
|
await eventWatcher.wait_for('success');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Keeps the passed transaction alive indefinitely (by making requests
|
||||||
|
// against the named store). Returns a function that asserts that the
|
||||||
|
// transaction has not already completed and then ends the request loop so that
|
||||||
|
// the transaction may autocommit and complete.
|
||||||
|
function keepAlive(testCase, transaction, storeName) {
|
||||||
|
let completed = false;
|
||||||
|
transaction.addEventListener('complete', () => { completed = true; });
|
||||||
|
|
||||||
|
let keepSpinning = true;
|
||||||
|
|
||||||
|
function spin() {
|
||||||
|
if (!keepSpinning)
|
||||||
|
return;
|
||||||
|
transaction.objectStore(storeName).get(0).onsuccess = spin;
|
||||||
|
}
|
||||||
|
spin();
|
||||||
|
|
||||||
|
return testCase.step_func(() => {
|
||||||
|
assert_false(completed, 'Transaction completed while kept alive');
|
||||||
|
keepSpinning = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Return a promise that resolves after a setTimeout finishes to break up the
|
||||||
|
// scope of a function's execution.
|
||||||
|
function timeoutPromise(ms) {
|
||||||
|
return new Promise(resolve => { setTimeout(resolve, ms); });
|
||||||
|
}
|
||||||
|
|
|
@ -1,6 +1,3 @@
|
||||||
var databaseName = "database";
|
|
||||||
var databaseVersion = 1;
|
|
||||||
|
|
||||||
/* Delete created databases
|
/* Delete created databases
|
||||||
*
|
*
|
||||||
* Go through each finished test, see if it has an associated database. Close
|
* Go through each finished test, see if it has an associated database. Close
|
||||||
|
@ -170,18 +167,18 @@ function is_transaction_active(tx, store_name) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Keep the passed transaction alive indefinitely (by making requests
|
// Keeps the passed transaction alive indefinitely (by making requests
|
||||||
// against the named store). Returns a function to to let the
|
// against the named store). Returns a function that asserts that the
|
||||||
// transaction finish, and asserts that the transaction is not yet
|
// transaction has not already completed and then ends the request loop so that
|
||||||
// finished.
|
// the transaction may autocommit and complete.
|
||||||
function keep_alive(tx, store_name) {
|
function keep_alive(tx, store_name) {
|
||||||
let completed = false;
|
let completed = false;
|
||||||
tx.addEventListener('complete', () => { completed = true; });
|
tx.addEventListener('complete', () => { completed = true; });
|
||||||
|
|
||||||
let pin = true;
|
let keepSpinning = true;
|
||||||
|
|
||||||
function spin() {
|
function spin() {
|
||||||
if (!pin)
|
if (!keepSpinning)
|
||||||
return;
|
return;
|
||||||
tx.objectStore(store_name).get(0).onsuccess = spin;
|
tx.objectStore(store_name).get(0).onsuccess = spin;
|
||||||
}
|
}
|
||||||
|
@ -189,6 +186,6 @@ function keep_alive(tx, store_name) {
|
||||||
|
|
||||||
return () => {
|
return () => {
|
||||||
assert_false(completed, 'Transaction completed while kept alive');
|
assert_false(completed, 'Transaction completed while kept alive');
|
||||||
pin = false;
|
keepSpinning = false;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Security-Policy" content="img-src 'self'">
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<script>
|
||||||
|
var t1 = async_test("First image should be blocked");
|
||||||
|
var t2 = async_test("Second image should be blocked");
|
||||||
|
window.onmessage = t1.step_func_done(function(e) {
|
||||||
|
if (e.data == "img blocked") {
|
||||||
|
frames[0].frames[0].frameElement.srcdoc =
|
||||||
|
`<script>
|
||||||
|
window.addEventListener('securitypolicyviolation', function(e) {
|
||||||
|
if (e.violatedDirective == 'img-src') {
|
||||||
|
top.postMessage('img blocked', '*');
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</scr` + `ipt>
|
||||||
|
<img src='/content-security-policy/support/fail.png'
|
||||||
|
onload='top.postMessage("img loaded", "*")'/>`;
|
||||||
|
window.onmessage = t2.step_func_done(function(e) {
|
||||||
|
if (e.data != "img blocked")
|
||||||
|
assert_true(false, "The second image should have been blocked");
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
assert_true(false, "The first image should have been blocked");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<iframe src="support/srcdoc-child-frame.html"></iframe>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,19 @@
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Security-Policy" content="img-src 'none'">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<script>
|
||||||
|
var i = document.createElement('iframe');
|
||||||
|
i.srcdoc=`<script>
|
||||||
|
window.addEventListener('securitypolicyviolation', function(e) {
|
||||||
|
if (e.violatedDirective == 'img-src') {
|
||||||
|
top.postMessage('img blocked', '*');
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</scr` + `ipt>
|
||||||
|
<img src='/content-security-policy/support/fail.png'
|
||||||
|
onload='top.postMessage("img loaded", "*")'/>`;
|
||||||
|
i.id = "srcdoc-frame";
|
||||||
|
document.body.appendChild(i);
|
||||||
|
</script>
|
||||||
|
</body>
|
|
@ -0,0 +1,2 @@
|
||||||
|
<meta http-equiv="Content-Security-Policy" content="{{GET[csp]}}">
|
||||||
|
CHILD FRAME
|
|
@ -0,0 +1,18 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<head>
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<iframe src="support/frame-with-csp.sub.html?csp=script-src%20%27self%27"></iframe>
|
||||||
|
<div onclick="frames[0].location.href = 'javascript:parent.postMessage(\'executed\', \'*\')'" id="special_div"></div>
|
||||||
|
<script>
|
||||||
|
var t = async_test("Should have executed the javascript url");
|
||||||
|
window.onmessage = t.step_func(function(e) {
|
||||||
|
if (e.data == "executed")
|
||||||
|
t.done();
|
||||||
|
});
|
||||||
|
window.addEventListener('securitypolicyviolation', t.unreached_func("Should not have raised a violation event"));
|
||||||
|
document.getElementById('special_div').click();
|
||||||
|
</script>
|
||||||
|
</body>
|
|
@ -0,0 +1,22 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="content-security-policy" content="script-src 'self' 'nonce-abc'">
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<iframe src="support/frame-with-csp.sub.html"></iframe>
|
||||||
|
<div onclick="frames[0].location.href = 'javascript:parent.postMessage(\'executed\', \'*\')'" id="special_div"></div>
|
||||||
|
<script nonce='abc'>
|
||||||
|
var t = async_test("Should not have executed the javascript url");
|
||||||
|
window.onmessage = t.step_func(function(e) {
|
||||||
|
if (e.data == "executed")
|
||||||
|
assert_true(false, "Javascript url executed");
|
||||||
|
});
|
||||||
|
window.addEventListener('securitypolicyviolation', t.step_func_done(function(e) {
|
||||||
|
assert_equals(e.blockedURI, 'inline');
|
||||||
|
assert_equals(e.violatedDirective, 'script-src-attr');
|
||||||
|
}));
|
||||||
|
document.getElementById('special_div').click();
|
||||||
|
</script>
|
||||||
|
</body>
|
|
@ -0,0 +1,75 @@
|
||||||
|
<!doctype html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Test for the page-break-* legacy shorthands.</title>
|
||||||
|
<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
|
||||||
|
<link rel="author" title="Mozilla" href="https://mozilla.org">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-cascade-4/#legacy-shorthand">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-break/#page-break-properties">
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<div></div>
|
||||||
|
<script>
|
||||||
|
const NEW_VALUES = ["page", "column"].filter(v => CSS.supports("break-before", v));
|
||||||
|
const LEGACY_VALUES = ["always", "auto", "left", "right", "avoid"];
|
||||||
|
const LEGACY_MAPPING = { "always": "page" };
|
||||||
|
const REVERSE_LEGACY_MAPPING = { "page": "always" };
|
||||||
|
const div = document.querySelector("div");
|
||||||
|
const cs = getComputedStyle(div);
|
||||||
|
|
||||||
|
test(function() {
|
||||||
|
for (const property of ["break-before", "break-after"]) {
|
||||||
|
for (const val of LEGACY_VALUES) {
|
||||||
|
const mapped_value = LEGACY_MAPPING[val] || val;
|
||||||
|
|
||||||
|
div.style["page-" + property] = val;
|
||||||
|
|
||||||
|
assert_equals(div.style["page-" + property], val);
|
||||||
|
assert_equals(div.style[property], mapped_value);
|
||||||
|
assert_equals(cs.getPropertyValue("page-" + property), val);
|
||||||
|
assert_equals(cs.getPropertyValue(property), mapped_value);
|
||||||
|
assert_not_equals(div.style.cssText.indexOf(property + ": " + mapped_value + ";"), -1);
|
||||||
|
assert_equals(div.style.cssText.indexOf("page-" + property), -1,
|
||||||
|
"Legacy shorthands don't appear in cssText");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, "Legacy values of the shorthands work as expected")
|
||||||
|
|
||||||
|
test(function() {
|
||||||
|
for (const property of ["break-before", "break-after"]) {
|
||||||
|
for (const val of NEW_VALUES) {
|
||||||
|
const mapped_value = REVERSE_LEGACY_MAPPING[val] || "";
|
||||||
|
|
||||||
|
div.style[property] = val;
|
||||||
|
|
||||||
|
assert_equals(div.style[property], val);
|
||||||
|
assert_equals(div.style["page-" + property], mapped_value);
|
||||||
|
assert_equals(cs.getPropertyValue("page-" + property), mapped_value);
|
||||||
|
assert_equals(cs.getPropertyValue(property), val);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, "New values work on the new longhands, but serialize to the empty string in the legacy shorthands");
|
||||||
|
|
||||||
|
test(function() {
|
||||||
|
for (const property of ["break-before", "break-after"]) {
|
||||||
|
for (const val of NEW_VALUES) {
|
||||||
|
div.style["page-" + property] = "";
|
||||||
|
div.style["page-" + property] = val;
|
||||||
|
assert_equals(div.style["page-" + property], "");
|
||||||
|
assert_equals(div.style[property], "");
|
||||||
|
assert_equals(cs.getPropertyValue("page-" + property), "auto");
|
||||||
|
assert_equals(cs.getPropertyValue(property), "auto");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, "New values of the break longhands don't work on legacy shorthands");
|
||||||
|
|
||||||
|
// See https://github.com/w3c/csswg-drafts/issues/3332
|
||||||
|
test(function() {
|
||||||
|
for (const property of ["break-before", "break-after"]) {
|
||||||
|
div.style["page-" + property] = "var(--a)";
|
||||||
|
|
||||||
|
assert_equals(div.style["page-" + property], "var(--a)");
|
||||||
|
assert_equals(div.style[property], "");
|
||||||
|
assert_equals(div.style.cssText.indexOf("page-" + property), -1);
|
||||||
|
}
|
||||||
|
}, "Legacy shorthands really never appear on cssText, even when there are variable references");
|
||||||
|
</script>
|
|
@ -0,0 +1,37 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>CSS Multi-column Layout Test Reference: column-span:all should act like column-span:none in different block formatting context</title>
|
||||||
|
<link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com">
|
||||||
|
<link rel="author" title="Mozilla" href="http://www.mozilla.org/">
|
||||||
|
|
||||||
|
<style>
|
||||||
|
#column {
|
||||||
|
column-count: 3;
|
||||||
|
column-rule: 6px solid;
|
||||||
|
width: 600px;
|
||||||
|
outline: 1px solid black;
|
||||||
|
}
|
||||||
|
h3 {
|
||||||
|
column-span: none;
|
||||||
|
outline: 1px solid blue;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<body onload="runTest();">
|
||||||
|
<article id="column">
|
||||||
|
<div>block1</div>
|
||||||
|
<div style="display: inline-block;">
|
||||||
|
<h3>non-spanner</h3>
|
||||||
|
</div>
|
||||||
|
<div style="overflow: hidden;">
|
||||||
|
<h3>non-spanner</h3>
|
||||||
|
</div>
|
||||||
|
<div style="column-span: all; outline: 1px solid green;">
|
||||||
|
Spanner
|
||||||
|
<h3>non-spanner in a spanner</h3>
|
||||||
|
</div>
|
||||||
|
<div>block2</div>
|
||||||
|
</article>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,40 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>CSS Multi-column Layout Test: column-span:all should act like column-span:none in different block formatting context</title>
|
||||||
|
<link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com">
|
||||||
|
<link rel="author" title="Mozilla" href="http://www.mozilla.org/">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-multicol-1/#column-span">
|
||||||
|
<link rel="match" href="multicol-span-all-004-ref.html">
|
||||||
|
<meta name="assert" content="This test checks a column-span:all element should act like column-span: none if it's under different block formatting context.">
|
||||||
|
|
||||||
|
<style>
|
||||||
|
#column {
|
||||||
|
column-count: 3;
|
||||||
|
column-rule: 6px solid;
|
||||||
|
width: 600px;
|
||||||
|
outline: 1px solid black;
|
||||||
|
}
|
||||||
|
h3 {
|
||||||
|
column-span: all;
|
||||||
|
outline: 1px solid blue;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<body onload="runTest();">
|
||||||
|
<article id="column">
|
||||||
|
<div>block1</div>
|
||||||
|
<div style="display: inline-block;">
|
||||||
|
<h3>non-spanner</h3>
|
||||||
|
</div>
|
||||||
|
<div style="overflow: hidden;">
|
||||||
|
<h3>non-spanner</h3>
|
||||||
|
</div>
|
||||||
|
<div style="column-span: all; outline: 1px solid green;">
|
||||||
|
Spanner
|
||||||
|
<h3>non-spanner in a spanner</h3>
|
||||||
|
</div>
|
||||||
|
<div>block2</div>
|
||||||
|
</article>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -42,7 +42,7 @@
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
if(getLeftPosition("target-block") !== 0) {
|
if(getLeftPosition("target-block") !== 0) {
|
||||||
|
|
||||||
var test1 = async_test("onkeydown event fired in textfield inside region", {timeout: testTimeout});
|
var test1 = async_test("onkeydown event fired in textfield inside region");
|
||||||
test1.step(function () {
|
test1.step(function () {
|
||||||
var testTarget = document.getElementById("textfield-inside");
|
var testTarget = document.getElementById("textfield-inside");
|
||||||
testTarget.onkeydown = test1.step_func(function (evt) {
|
testTarget.onkeydown = test1.step_func(function (evt) {
|
||||||
|
|
|
@ -43,7 +43,7 @@
|
||||||
|
|
||||||
if(getLeftPosition("target-block") !== 0) {
|
if(getLeftPosition("target-block") !== 0) {
|
||||||
|
|
||||||
var test1 = async_test("onkeydown event fired in textfield outside region", {timeout: testTimeout});
|
var test1 = async_test("onkeydown event fired in textfield outside region");
|
||||||
test1.step( function() {
|
test1.step( function() {
|
||||||
var testTarget = document.getElementById("outside-region");
|
var testTarget = document.getElementById("outside-region");
|
||||||
testTarget.onkeydown = test1.step_func(function (evt) {
|
testTarget.onkeydown = test1.step_func(function (evt) {
|
||||||
|
|
|
@ -44,7 +44,7 @@
|
||||||
|
|
||||||
if(getLeftPosition("target-block") !== 0) {
|
if(getLeftPosition("target-block") !== 0) {
|
||||||
|
|
||||||
var test1 = async_test("onkeypress event fired in textfield inside region", {timeout: testTimeout});
|
var test1 = async_test("onkeypress event fired in textfield inside region");
|
||||||
test1.step( function() {
|
test1.step( function() {
|
||||||
var testTarget = document.getElementById("textfield-inside");
|
var testTarget = document.getElementById("textfield-inside");
|
||||||
testTarget.onkeypress = test1.step_func(function (evt) {
|
testTarget.onkeypress = test1.step_func(function (evt) {
|
||||||
|
@ -59,7 +59,7 @@
|
||||||
keyDown("textfield-inside");
|
keyDown("textfield-inside");
|
||||||
});
|
});
|
||||||
|
|
||||||
var test2 = async_test("onkeypress event fired in textfield outside region", {timeout: testTimeout});
|
var test2 = async_test("onkeypress event fired in textfield outside region");
|
||||||
test2.step( function() {
|
test2.step( function() {
|
||||||
var testTarget = document.getElementById("outside-region");
|
var testTarget = document.getElementById("outside-region");
|
||||||
testTarget.onkeypress = test2.step_func(function (evt) {
|
testTarget.onkeypress = test2.step_func(function (evt) {
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
|
|
||||||
if(getLeftPosition("target-block") !== 0) {
|
if(getLeftPosition("target-block") !== 0) {
|
||||||
|
|
||||||
var test1 = async_test("onkeydown event fired in textfield inside region", {timeout: testTimeout});
|
var test1 = async_test("onkeydown event fired in textfield inside region");
|
||||||
test1.step(function () {
|
test1.step(function () {
|
||||||
var testTarget = document.getElementById("textfield-inside");
|
var testTarget = document.getElementById("textfield-inside");
|
||||||
testTarget.onkeydown = test1.step_func(function (evt) {
|
testTarget.onkeydown = test1.step_func(function (evt) {
|
||||||
|
@ -59,7 +59,7 @@
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
var test2 = async_test("onkeyup event fired in textfield inside region", {timeout: testTimeout});
|
var test2 = async_test("onkeyup event fired in textfield inside region");
|
||||||
test2.step(function () {
|
test2.step(function () {
|
||||||
var testTarget = document.getElementById("textfield-inside");
|
var testTarget = document.getElementById("textfield-inside");
|
||||||
testTarget.onkeyup = test2.step_func(function (evt) {
|
testTarget.onkeyup = test2.step_func(function (evt) {
|
||||||
|
@ -74,7 +74,7 @@
|
||||||
keyDown("textfield-inside");
|
keyDown("textfield-inside");
|
||||||
});
|
});
|
||||||
|
|
||||||
var test3 = async_test("onkeydown event fired in textfield outside region", {timeout: testTimeout});
|
var test3 = async_test("onkeydown event fired in textfield outside region");
|
||||||
test3.step( function() {
|
test3.step( function() {
|
||||||
var testTarget = document.getElementById("outside-region");
|
var testTarget = document.getElementById("outside-region");
|
||||||
testTarget.onkeydown = test3.step_func(function (evt) {
|
testTarget.onkeydown = test3.step_func(function (evt) {
|
||||||
|
@ -88,7 +88,7 @@
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
var test4 = async_test("onkeyup event fired in textfield outside region", {timeout: testTimeout});
|
var test4 = async_test("onkeyup event fired in textfield outside region");
|
||||||
test4.step( function() {
|
test4.step( function() {
|
||||||
var testTarget = document.getElementById("outside-region");
|
var testTarget = document.getElementById("outside-region");
|
||||||
testTarget.onkeyup = test4.step_func(function (evt) {
|
testTarget.onkeyup = test4.step_func(function (evt) {
|
||||||
|
|
|
@ -47,7 +47,7 @@
|
||||||
|
|
||||||
if(getLeftPosition("target-block") !== 0) {
|
if(getLeftPosition("target-block") !== 0) {
|
||||||
|
|
||||||
var test1 = async_test("onkeydown event fired in textfield outside region", {timeout: testTimeout});
|
var test1 = async_test("onkeydown event fired in textfield outside region");
|
||||||
test1.step( function() {
|
test1.step( function() {
|
||||||
var testTarget = document.getElementById("textfield-outside");
|
var testTarget = document.getElementById("textfield-outside");
|
||||||
testTarget.onkeydown = test1.step_func(function (evt) {
|
testTarget.onkeydown = test1.step_func(function (evt) {
|
||||||
|
@ -66,7 +66,7 @@
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
var test2 = async_test("onkeyup event fired in textarea outside region", {timeout: testTimeout});
|
var test2 = async_test("onkeyup event fired in textarea outside region");
|
||||||
test2.step(function () {
|
test2.step(function () {
|
||||||
var testTarget = document.getElementById("textarea-outside");
|
var testTarget = document.getElementById("textarea-outside");
|
||||||
testTarget.onkeyup = test2.step_func(function (evt) {
|
testTarget.onkeyup = test2.step_func(function (evt) {
|
||||||
|
@ -80,7 +80,7 @@
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
var test3 = async_test("onkeydown event fired in textarea outside region", {timeout: testTimeout});
|
var test3 = async_test("onkeydown event fired in textarea outside region");
|
||||||
test3.step( function() {
|
test3.step( function() {
|
||||||
var testTarget = document.getElementById("textarea-outside");
|
var testTarget = document.getElementById("textarea-outside");
|
||||||
testTarget.onkeydown = test3.step_func( function(evt) {
|
testTarget.onkeydown = test3.step_func( function(evt) {
|
||||||
|
|
|
@ -49,7 +49,7 @@
|
||||||
|
|
||||||
if(getLeftPosition("target-block") !== 0) {
|
if(getLeftPosition("target-block") !== 0) {
|
||||||
|
|
||||||
var test1 = async_test("onkeydown event fired in textfield inside region", {timeout: testTimeout});
|
var test1 = async_test("onkeydown event fired in textfield inside region");
|
||||||
test1.step(function () {
|
test1.step(function () {
|
||||||
var testTarget = document.getElementById("textfield-inside");
|
var testTarget = document.getElementById("textfield-inside");
|
||||||
testTarget.onkeydown = test1.step_func(function (evt) {
|
testTarget.onkeydown = test1.step_func(function (evt) {
|
||||||
|
@ -63,7 +63,7 @@
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
var test2 = async_test("onkeyup event fired in textfield inside region", {timeout: testTimeout});
|
var test2 = async_test("onkeyup event fired in textfield inside region");
|
||||||
test2.step(function () {
|
test2.step(function () {
|
||||||
var testTarget = document.getElementById("textfield-inside");
|
var testTarget = document.getElementById("textfield-inside");
|
||||||
testTarget.onkeyup = test2.step_func(function (evt) {
|
testTarget.onkeyup = test2.step_func(function (evt) {
|
||||||
|
@ -78,7 +78,7 @@
|
||||||
pressDeleteKey("textfield-inside");
|
pressDeleteKey("textfield-inside");
|
||||||
});
|
});
|
||||||
|
|
||||||
var test3 = async_test("onkeydown event fired in textfield outside region", {timeout: testTimeout});
|
var test3 = async_test("onkeydown event fired in textfield outside region");
|
||||||
test3.step(function () {
|
test3.step(function () {
|
||||||
var testTarget = document.getElementById("outside-region");
|
var testTarget = document.getElementById("outside-region");
|
||||||
testTarget.onkeydown = test3.step_func(function (evt) {
|
testTarget.onkeydown = test3.step_func(function (evt) {
|
||||||
|
@ -92,7 +92,7 @@
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
var test4 = async_test("onkeyup event fired in textfield outside region", {timeout: testTimeout});
|
var test4 = async_test("onkeyup event fired in textfield outside region");
|
||||||
test4.step( function() {
|
test4.step( function() {
|
||||||
var testTarget = document.getElementById("outside-region");
|
var testTarget = document.getElementById("outside-region");
|
||||||
testTarget.onkeyup = test4.step_func(function (evt) {
|
testTarget.onkeyup = test4.step_func(function (evt) {
|
||||||
|
|
|
@ -47,7 +47,7 @@
|
||||||
|
|
||||||
if(getLeftPosition("target-block") !== 0) {
|
if(getLeftPosition("target-block") !== 0) {
|
||||||
|
|
||||||
var test1 = async_test("onkeydown event fired in textfield1 inside region", {timeout: testTimeout});
|
var test1 = async_test("onkeydown event fired in textfield1 inside region");
|
||||||
test1.step(function () {
|
test1.step(function () {
|
||||||
var testTarget = document.getElementById("textfield-inside1");
|
var testTarget = document.getElementById("textfield-inside1");
|
||||||
testTarget.onkeydown = test1.step_func(function (evt) {
|
testTarget.onkeydown = test1.step_func(function (evt) {
|
||||||
|
@ -66,7 +66,7 @@
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
var test2 = async_test("onkeyup event fired in textfield2 inside region", {timeout: testTimeout});
|
var test2 = async_test("onkeyup event fired in textfield2 inside region");
|
||||||
test2.step(function () {
|
test2.step(function () {
|
||||||
var testTarget = document.getElementById("textfield-inside2");
|
var testTarget = document.getElementById("textfield-inside2");
|
||||||
testTarget.onkeyup = test2.step_func(function (evt) {
|
testTarget.onkeyup = test2.step_func(function (evt) {
|
||||||
|
@ -77,7 +77,7 @@
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
var test3 = async_test("onkeydown event fired in textfield2 inside region", {timeout: testTimeout});
|
var test3 = async_test("onkeydown event fired in textfield2 inside region");
|
||||||
test3.step( function() {
|
test3.step( function() {
|
||||||
var testTarget = document.getElementById("textfield-inside2");
|
var testTarget = document.getElementById("textfield-inside2");
|
||||||
testTarget.onkeydown = test3.step_func(function (evt) {
|
testTarget.onkeydown = test3.step_func(function (evt) {
|
||||||
|
@ -96,7 +96,7 @@
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
var test4 = async_test("onkeyup event fired in textarea inside region", {timeout: testTimeout});
|
var test4 = async_test("onkeyup event fired in textarea inside region");
|
||||||
test4.step( function() {
|
test4.step( function() {
|
||||||
var testTarget = document.getElementById("textarea-inside");
|
var testTarget = document.getElementById("textarea-inside");
|
||||||
testTarget.onkeyup = test4.step_func(function (evt) {
|
testTarget.onkeyup = test4.step_func(function (evt) {
|
||||||
|
@ -110,7 +110,7 @@
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
var test5 = async_test("onkeydown event fired in textarea inside region", {timeout: testTimeout});
|
var test5 = async_test("onkeydown event fired in textarea inside region");
|
||||||
test5.step( function() {
|
test5.step( function() {
|
||||||
var testTarget = document.getElementById("textarea-inside");
|
var testTarget = document.getElementById("textarea-inside");
|
||||||
testTarget.onkeydown = test5.step_func(function (evt) {
|
testTarget.onkeydown = test5.step_func(function (evt) {
|
||||||
|
|
|
@ -44,7 +44,7 @@
|
||||||
|
|
||||||
if(getLeftPosition("target-block") !== 0) {
|
if(getLeftPosition("target-block") !== 0) {
|
||||||
|
|
||||||
var test1 = async_test("onkeydown event fired in textfield inside region", {timeout: testTimeout});
|
var test1 = async_test("onkeydown event fired in textfield inside region");
|
||||||
test1.step(function () {
|
test1.step(function () {
|
||||||
var testTarget = document.getElementById("textfield-inside");
|
var testTarget = document.getElementById("textfield-inside");
|
||||||
testTarget.onkeydown = test1.step_func(function (evt) {
|
testTarget.onkeydown = test1.step_func(function (evt) {
|
||||||
|
@ -63,7 +63,7 @@
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
var test2 = async_test("onkeydown event fired in textfield outside region", {timeout: testTimeout});
|
var test2 = async_test("onkeydown event fired in textfield outside region");
|
||||||
test2.step(function () {
|
test2.step(function () {
|
||||||
var testTarget = document.getElementById("textfield-outside");
|
var testTarget = document.getElementById("textfield-outside");
|
||||||
testTarget.onkeydown = test2.step_func(function (evt) {
|
testTarget.onkeydown = test2.step_func(function (evt) {
|
||||||
|
@ -77,7 +77,7 @@
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
var test3 = async_test("onkeyup event fired in textfield outside region", {timeout: testTimeout});
|
var test3 = async_test("onkeyup event fired in textfield outside region");
|
||||||
test3.step(function () {
|
test3.step(function () {
|
||||||
var testTarget = document.getElementById("textfield-outside");
|
var testTarget = document.getElementById("textfield-outside");
|
||||||
testTarget.onkeyup = test3.step_func(function (evt) {
|
testTarget.onkeyup = test3.step_func(function (evt) {
|
||||||
|
|
|
@ -44,7 +44,7 @@
|
||||||
|
|
||||||
if(getLeftPosition("target-block") !== 0) {
|
if(getLeftPosition("target-block") !== 0) {
|
||||||
|
|
||||||
var test1 = async_test("onkeydown event fired in textfield outside region", {timeout: testTimeout});
|
var test1 = async_test("onkeydown event fired in textfield outside region");
|
||||||
test1.step(function () {
|
test1.step(function () {
|
||||||
var testTarget = document.getElementById("textfield-outside");
|
var testTarget = document.getElementById("textfield-outside");
|
||||||
testTarget.onkeydown = test1.step_func(function (evt) {
|
testTarget.onkeydown = test1.step_func(function (evt) {
|
||||||
|
@ -63,7 +63,7 @@
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
var test2 = async_test("onkeyup event fired in textfield outside region", {timeout: testTimeout});
|
var test2 = async_test("onkeyup event fired in textfield outside region");
|
||||||
test2.step(function () {
|
test2.step(function () {
|
||||||
var testTarget = document.getElementById("textfield-outside");
|
var testTarget = document.getElementById("textfield-outside");
|
||||||
testTarget.onkeyup = test2.step_func(function (evt) {
|
testTarget.onkeyup = test2.step_func(function (evt) {
|
||||||
|
@ -75,7 +75,7 @@
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
var test3 = async_test("onkeydown event fired in textarea outside region", {timeout: testTimeout});
|
var test3 = async_test("onkeydown event fired in textarea outside region");
|
||||||
test3.step(function () {
|
test3.step(function () {
|
||||||
var testTarget = document.getElementById("textarea-outside");
|
var testTarget = document.getElementById("textarea-outside");
|
||||||
testTarget.onkeydown = test3.step_func(function (evt) {
|
testTarget.onkeydown = test3.step_func(function (evt) {
|
||||||
|
@ -89,7 +89,7 @@
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
var test4 = async_test("onkeyup event fired in textarea outside region", {timeout: testTimeout});
|
var test4 = async_test("onkeyup event fired in textarea outside region");
|
||||||
test4.step( function() {
|
test4.step( function() {
|
||||||
var testTarget = document.getElementById("textarea-outside");
|
var testTarget = document.getElementById("textarea-outside");
|
||||||
testTarget.onkeyup = test4.step_func(function (evt) {
|
testTarget.onkeyup = test4.step_func(function (evt) {
|
||||||
|
|
|
@ -44,7 +44,7 @@
|
||||||
|
|
||||||
if(getLeftPosition("target-block") !== 0) {
|
if(getLeftPosition("target-block") !== 0) {
|
||||||
|
|
||||||
var test1 = async_test("onkeydown event fired in textfield inside region", {timeout: testTimeout});
|
var test1 = async_test("onkeydown event fired in textfield inside region");
|
||||||
test1.step(function () {
|
test1.step(function () {
|
||||||
var testTarget = document.getElementById("textfield-inside");
|
var testTarget = document.getElementById("textfield-inside");
|
||||||
testTarget.onkeydown = test1.step_func(function (evt) {
|
testTarget.onkeydown = test1.step_func(function (evt) {
|
||||||
|
@ -63,7 +63,7 @@
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
var test2 = async_test("onkeyup event fired in textarea inside region", {timeout: testTimeout});
|
var test2 = async_test("onkeyup event fired in textarea inside region");
|
||||||
test2.step(function () {
|
test2.step(function () {
|
||||||
var testTarget = document.getElementById("textarea-inside");
|
var testTarget = document.getElementById("textarea-inside");
|
||||||
testTarget.onkeyup = test2.step_func(function (evt) {
|
testTarget.onkeyup = test2.step_func(function (evt) {
|
||||||
|
@ -77,7 +77,7 @@
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
var test3 = async_test("onkeydown event fired in textarea inside region", {timeout: testTimeout});
|
var test3 = async_test("onkeydown event fired in textarea inside region");
|
||||||
test3.step( function() {
|
test3.step( function() {
|
||||||
var testTarget = document.getElementById("textarea-inside");
|
var testTarget = document.getElementById("textarea-inside");
|
||||||
testTarget.onkeydown = test3.step_func(function (evt) {
|
testTarget.onkeydown = test3.step_func(function (evt) {
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
||||||
if(getLeftPosition("target-block") !== 0) {
|
if(getLeftPosition("target-block") !== 0) {
|
||||||
var test1 = async_test("onclick event fired inside region", {timeout: testTimeout});
|
var test1 = async_test("onclick event fired inside region");
|
||||||
test1.step(function () {
|
test1.step(function () {
|
||||||
var testTarget = document.getElementById("target-block");
|
var testTarget = document.getElementById("target-block");
|
||||||
testTarget.onclick = test1.step_func(function (evt) {
|
testTarget.onclick = test1.step_func(function (evt) {
|
||||||
|
@ -46,7 +46,7 @@
|
||||||
mouseClick("target-block");
|
mouseClick("target-block");
|
||||||
});
|
});
|
||||||
|
|
||||||
var test2 = async_test("onclick event fired outside region", {timeout: testTimeout});
|
var test2 = async_test("onclick event fired outside region");
|
||||||
test2.step(function () {
|
test2.step(function () {
|
||||||
var testTarget = document.getElementById("outside-region");
|
var testTarget = document.getElementById("outside-region");
|
||||||
testTarget.onclick = test2.step_func(function (evt) {
|
testTarget.onclick = test2.step_func(function (evt) {
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
||||||
if(getLeftPosition("target-block") !== 0) {
|
if(getLeftPosition("target-block") !== 0) {
|
||||||
var test1 = async_test("onmousedown event fired inside region", {timeout: testTimeout});
|
var test1 = async_test("onmousedown event fired inside region");
|
||||||
test1.step(function () {
|
test1.step(function () {
|
||||||
var testTarget = document.getElementById("target-block");
|
var testTarget = document.getElementById("target-block");
|
||||||
testTarget.onmousedown = test1.step_func(function (evt) {
|
testTarget.onmousedown = test1.step_func(function (evt) {
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
||||||
if(getLeftPosition("target-block") !== 0) {
|
if(getLeftPosition("target-block") !== 0) {
|
||||||
var test1 = async_test("onmousedown event fired outside region", {timeout: testTimeout});
|
var test1 = async_test("onmousedown event fired outside region");
|
||||||
test1.step(function () {
|
test1.step(function () {
|
||||||
var testTarget = document.getElementById("outside-region");
|
var testTarget = document.getElementById("outside-region");
|
||||||
testTarget.onmousedown = test1.step_func(function (evt) {
|
testTarget.onmousedown = test1.step_func(function (evt) {
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
||||||
if(getLeftPosition("target-block") !== 0) {
|
if(getLeftPosition("target-block") !== 0) {
|
||||||
var test1 = async_test("onmouseup event fired inside region", {timeout: testTimeout});
|
var test1 = async_test("onmouseup event fired inside region");
|
||||||
test1.step(function () {
|
test1.step(function () {
|
||||||
var testTarget = document.getElementById("target-block");
|
var testTarget = document.getElementById("target-block");
|
||||||
testTarget.onmouseup = test1.step_func(function (evt) {
|
testTarget.onmouseup = test1.step_func(function (evt) {
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
||||||
if(getLeftPosition("target-block") !== 0) {
|
if(getLeftPosition("target-block") !== 0) {
|
||||||
var test1 = async_test("onmouseup event fired outside region", {timeout: testTimeout});
|
var test1 = async_test("onmouseup event fired outside region");
|
||||||
test1.step(function () {
|
test1.step(function () {
|
||||||
var testTarget = document.getElementById("outside-region");
|
var testTarget = document.getElementById("outside-region");
|
||||||
testTarget.onmouseup = test1.step_func(function (evt) {
|
testTarget.onmouseup = test1.step_func(function (evt) {
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
||||||
if(getLeftPosition("target-block") !== 0) {
|
if(getLeftPosition("target-block") !== 0) {
|
||||||
var test1 = async_test("ondblclick event fired inside region", {timeout: testTimeout});
|
var test1 = async_test("ondblclick event fired inside region");
|
||||||
test1.step(function () {
|
test1.step(function () {
|
||||||
var testTarget = document.getElementById("target-block");
|
var testTarget = document.getElementById("target-block");
|
||||||
testTarget.ondblclick = test1.step_func(function (evt) {
|
testTarget.ondblclick = test1.step_func(function (evt) {
|
||||||
|
@ -46,7 +46,7 @@
|
||||||
mouseDblClick("target-block");
|
mouseDblClick("target-block");
|
||||||
});
|
});
|
||||||
|
|
||||||
var test2 = async_test("ondblclick event fired outside region", {timeout: testTimeout});
|
var test2 = async_test("ondblclick event fired outside region");
|
||||||
test2.step(function () {
|
test2.step(function () {
|
||||||
var testTarget = document.getElementById("outside-region");
|
var testTarget = document.getElementById("outside-region");
|
||||||
testTarget.ondblclick = test2.step_func( function(evt) {
|
testTarget.ondblclick = test2.step_func( function(evt) {
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
||||||
if(getLeftPosition("target-block") !== 0) {
|
if(getLeftPosition("target-block") !== 0) {
|
||||||
var test1 = async_test("onmousemove event fired inside region", {timeout: testTimeout});
|
var test1 = async_test("onmousemove event fired inside region");
|
||||||
test1.step(function () {
|
test1.step(function () {
|
||||||
var testTarget = document.getElementById("target-block");
|
var testTarget = document.getElementById("target-block");
|
||||||
testTarget.onmousemove = test1.step_func(function (evt) {
|
testTarget.onmousemove = test1.step_func(function (evt) {
|
||||||
|
@ -46,7 +46,7 @@
|
||||||
mouseMove("target-block");
|
mouseMove("target-block");
|
||||||
});
|
});
|
||||||
|
|
||||||
var test2 = async_test("onmousemove event fired outside region", {timeout: testTimeout});
|
var test2 = async_test("onmousemove event fired outside region");
|
||||||
test2.step(function () {
|
test2.step(function () {
|
||||||
var testTarget = document.getElementById("outside-region");
|
var testTarget = document.getElementById("outside-region");
|
||||||
testTarget.onmousemove = test2.step_func(function (evt) {
|
testTarget.onmousemove = test2.step_func(function (evt) {
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
||||||
if(getLeftPosition("target-block") !== 0) {
|
if(getLeftPosition("target-block") !== 0) {
|
||||||
var test1 = async_test("onmouseover event fired inside region", {timeout: testTimeout});
|
var test1 = async_test("onmouseover event fired inside region");
|
||||||
test1.step(function () {
|
test1.step(function () {
|
||||||
var testTarget = document.getElementById("target-block");
|
var testTarget = document.getElementById("target-block");
|
||||||
testTarget.onmouseover = test1.step_func(function (evt) {
|
testTarget.onmouseover = test1.step_func(function (evt) {
|
||||||
|
@ -46,7 +46,7 @@
|
||||||
mouseOver("target-block");
|
mouseOver("target-block");
|
||||||
});
|
});
|
||||||
|
|
||||||
var test2 = async_test("onmouseout event fired inside region", {timeout: testTimeout});
|
var test2 = async_test("onmouseout event fired inside region");
|
||||||
test2.step(function () {
|
test2.step(function () {
|
||||||
var testTarget = document.getElementById("target-block");
|
var testTarget = document.getElementById("target-block");
|
||||||
testTarget.onmouseout = test2.step_func(function (evt) {
|
testTarget.onmouseout = test2.step_func(function (evt) {
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
||||||
if(getLeftPosition("target-block") !== 0) {
|
if(getLeftPosition("target-block") !== 0) {
|
||||||
var test1 = async_test("onmouseover event fired outside region", {timeout: testTimeout});
|
var test1 = async_test("onmouseover event fired outside region");
|
||||||
test1.step(function () {
|
test1.step(function () {
|
||||||
var testTarget = document.getElementById("outside-region");
|
var testTarget = document.getElementById("outside-region");
|
||||||
testTarget.onmouseover = test1.step_func(function (evt) {
|
testTarget.onmouseover = test1.step_func(function (evt) {
|
||||||
|
@ -46,7 +46,7 @@
|
||||||
mouseOver("outside-region");
|
mouseOver("outside-region");
|
||||||
});
|
});
|
||||||
|
|
||||||
var test2 = async_test("onmouseout event fired outside region", {timeout: testTimeout});
|
var test2 = async_test("onmouseout event fired outside region");
|
||||||
test2.step(function () {
|
test2.step(function () {
|
||||||
var testTarget = document.getElementById("outside-region");
|
var testTarget = document.getElementById("outside-region");
|
||||||
testTarget.onmouseout = test2.step_func(function (evt) {
|
testTarget.onmouseout = test2.step_func(function (evt) {
|
||||||
|
|
|
@ -21,7 +21,7 @@ function runSelectionTest(inSelectionTests, useMouse)
|
||||||
|
|
||||||
if( isRegionsEnabled() )
|
if( isRegionsEnabled() )
|
||||||
{
|
{
|
||||||
var selectionTest = async_test("Text was selected", {timeout: testTimeout});
|
var selectionTest = async_test("Text was selected");
|
||||||
selectionTest.step( function()
|
selectionTest.step( function()
|
||||||
{
|
{
|
||||||
var endSelect = document.getElementById("end-select");
|
var endSelect = document.getElementById("end-select");
|
||||||
|
|
|
@ -0,0 +1,179 @@
|
||||||
|
<!DOCTYPE HTML>
|
||||||
|
<!--
|
||||||
|
Any copyright is dedicated to the Public Domain.
|
||||||
|
http://creativecommons.org/publicdomain/zero/1.0/
|
||||||
|
-->
|
||||||
|
<html><head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>CSS Ruby Reference: ruby content w. layout-internal 'display' values</title>
|
||||||
|
<link rel="author" title="Mats Palmgren" href="mailto:mats@mozilla.com">
|
||||||
|
<style>
|
||||||
|
html,body {
|
||||||
|
color:black; background-color:white; font:14px/1 monospace; padding:0; margin:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
input {
|
||||||
|
width: 20px;
|
||||||
|
-webkit-appearance: none;
|
||||||
|
border: 1px solid black;
|
||||||
|
background: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.thg { display: table-header-group; }
|
||||||
|
.trg { display: table-row-group; }
|
||||||
|
.tfg { display: table-footer-group; }
|
||||||
|
.tr { display: table-row; }
|
||||||
|
.tc { display: table-cell; }
|
||||||
|
.tcg { display: table-column-group; }
|
||||||
|
.tco { display: table-column; }
|
||||||
|
.tca { display: table-caption; }
|
||||||
|
.t { display: table; }
|
||||||
|
|
||||||
|
.rb { display: ruby-base; }
|
||||||
|
.rt { display: ruby-text; }
|
||||||
|
.rbc { display: ruby-base-container; }
|
||||||
|
.rtc { display: ruby-text-container; }
|
||||||
|
|
||||||
|
.x { background: red}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<ruby><rb><span>a<span><input class="thg"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><input class="thg"><input class="thg"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><div class="thg">b</div><input class="thg"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><div class="thg">b</div></span>c</span></rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><span>a<span><input class="trg"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><input class="trg"><input class="trg"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><div class="trg">b</div><input class="trg"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><div class="trg">b</div></span>c</span></rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><span>a<span><input class="tfg"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><input class="tfg"><input class="tfg"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><div class="tfg">b</div><input class="tfg"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><div class="tfg">b</div></span>c</span></rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><span>a<span><input class="tr"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><input class="tr"><input class="tr"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><div class="tr">b</div><input class="tr"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><div class="tr">b</div></span>c</span></rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><span>a<span><input class="tc"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><input class="tc"><input class="tc"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><div class="tc">b</div><input class="tc"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><div class="tc">b</div></span>c</span></rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><span>a<span><input class="tcg"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><input class="tcg"><input class="tcg"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><div class="tcg">b</div><input class="tcg"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><div class="tcg">b</div></span>c</span></rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><span>a<span><input class="tco"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><input class="tco"><input class="tco"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><div class="tco">b</div><input class="tco"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><div class="tco">b</div></span>c</span></rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><span>a<span><input class="tca"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><input class="tca"><input class="tca"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><div class="tca">b</div><input class="tca"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><div class="tca">b</div></span>c</span></rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><span>a<span><input class="t"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><input class="t"><input class="t"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><div class="t">b</div><input class="t"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><div class="t">b</div></span>c</span></rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><span>a<span><input class="rb"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><input class="rb"><input class="rb"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><div class="rb">b</div><input class="rb"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><div class="rb">b</div></span>c</span></rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><span>a<span><input class="rt"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><input class="rt"><input class="rt"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><div class="rt">b</div><input class="rt"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><div class="rt">b</div></span>c</span></rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><span>a<span><input class="rbc"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><input class="rbc"><input class="rbc"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><div class="rbc">b</div><input class="rbc"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><div class="rbc">b</div></span>c</span></rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><span>a<span><input class="rtc"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><input class="rtc"><input class="rtc"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><div class="rtc">b</div><input class="rtc"></span>b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<span><div class="rtc">b</div></span>c</span></rb></ruby>
|
||||||
|
|
||||||
|
<br><hr>
|
||||||
|
|
||||||
|
<!-- -->
|
||||||
|
|
||||||
|
<ruby><rb><span><input class="thg"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><input class="thg"><input class="thg"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><div class="thg">b</div><input class="thg"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><div class="thg">b</div></span>c</rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><span><input class="trg"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><input class="trg"><input class="trg"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><div class="trg">b</div><input class="trg"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><div class="trg">b</div></span>c</rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><span><input class="tfg"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><input class="tfg"><input class="tfg"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><div class="tfg">b</div><input class="tfg"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><div class="tfg">b</div></span>c</rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><span><input class="tr"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><input class="tr"><input class="tr"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><div class="tr">b</div><input class="tr"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><div class="tr">b</div></span>c</rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><span><input class="tc"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><input class="tc"><input class="tc"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><div class="tc">b</div><input class="tc"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><div class="tc">b</div></span>c</rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><span><input class="tcg"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><input class="tcg"><input class="tcg"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><div class="tcg">b</div><input class="tcg"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><div class="tcg">b</div></span>c</rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><span><input class="tco"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><input class="tco"><input class="tco"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><div class="tco">b</div><input class="tco"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><div class="tco">b</div></span>c</rb></ruby>
|
||||||
|
|
||||||
|
<!-- bug NNNNNN
|
||||||
|
<ruby><rb><span><input class="tca"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><input class="tca"><input class="tca"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><div class="tca">b</div><input class="tca"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><div class="tca">b</div></span>c</rb></ruby>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<ruby><rb><span><input class="t"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><input class="t"><input class="t"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><div class="t">b</div><input class="t"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><div class="t">b</div></span>c</rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><span><input class="rb"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><input class="rb"><input class="rb"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><div class="rb">b</div><input class="rb"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><div class="rb">b</div></span>c</rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><span><input class="rt"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><input class="rt"><input class="rt"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><div class="rt">b</div><input class="rt"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><div class="rt">b</div></span>c</rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><span><input class="rbc"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><input class="rbc"><input class="rbc"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><div class="rbc">b</div><input class="rbc"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><div class="rbc">b</div></span>c</rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><span><input class="rtc"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><input class="rtc"><input class="rtc"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><div class="rtc">b</div><input class="rtc"></span>b</rb></ruby>
|
||||||
|
<ruby><rb><span><div class="rtc">b</div></span>c</rb></ruby>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,181 @@
|
||||||
|
<!DOCTYPE HTML>
|
||||||
|
<!--
|
||||||
|
Any copyright is dedicated to the Public Domain.
|
||||||
|
http://creativecommons.org/publicdomain/zero/1.0/
|
||||||
|
-->
|
||||||
|
<html><head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>CSS Ruby Test: ruby content w. layout-internal 'display' values</title>
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-ruby-1/#box-fixup">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-display-3/#inlinify">
|
||||||
|
<link rel="author" title="Mats Palmgren" href="mailto:mats@mozilla.com">
|
||||||
|
<link rel="match" href="ruby-layout-internal-boxes-ref.html">
|
||||||
|
<style>
|
||||||
|
html,body {
|
||||||
|
color:black; background-color:white; font:14px/1 monospace; padding:0; margin:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
input {
|
||||||
|
width: 20px;
|
||||||
|
-webkit-appearance: none;
|
||||||
|
border: 1px solid black;
|
||||||
|
background: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.thg { display: table-header-group; }
|
||||||
|
.trg { display: table-row-group; }
|
||||||
|
.tfg { display: table-footer-group; }
|
||||||
|
.tr { display: table-row; }
|
||||||
|
.tc { display: table-cell; }
|
||||||
|
.tcg { display: table-column-group; }
|
||||||
|
.tco { display: table-column; }
|
||||||
|
.tca { display: table-caption; }
|
||||||
|
.t { display: table; }
|
||||||
|
|
||||||
|
.rb { display: ruby-base; }
|
||||||
|
.rt { display: ruby-text; }
|
||||||
|
.rbc { display: ruby-base-container; }
|
||||||
|
.rtc { display: ruby-text-container; }
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<ruby><rb><span>a<input class="thg">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<input class="thg"><input class="thg">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<div class="thg">b</div><input class="thg">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<div class="thg">b</div>c</span></rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><span>a<input class="trg">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<input class="trg"><input class="trg">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<div class="trg">b</div><input class="trg">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<div class="trg">b</div>c</span></rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><span>a<input class="tfg">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<input class="tfg"><input class="tfg">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<div class="tfg">b</div><input class="tfg">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<div class="tfg">b</div>c</span></rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><span>a<input class="tr">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<input class="tr"><input class="tr">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<div class="tr">b</div><input class="tr">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<div class="tr">b</div>c</span></rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><span>a<input class="tc">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<input class="tc"><input class="tc">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<div class="tc">b</div><input class="tc">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<div class="tc">b</div>c</span></rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><span>a<input class="tcg">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<input class="tcg"><input class="tcg">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<div class="tcg">b</div><input class="tcg">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<div class="tcg">b</div>c</span></rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><span>a<input class="tco">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<input class="tco"><input class="tco">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<div class="tco">b</div><input class="tco">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<div class="tco">b</div>c</span></rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><span>a<input class="tca">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<input class="tca"><input class="tca">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<div class="tca">b</div><input class="tca">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<div class="tca">b</div>c</span></rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><span>a<input class="t">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<input class="t"><input class="t">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<div class="t">b</div><input class="t">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<div class="t">b</div>c</span></rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><span>a<input class="rb">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<input class="rb"><input class="rb">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<div class="rb">b</div><input class="rb">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<div class="rb">b</div>c</span></rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><span>a<input class="rt">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<input class="rt"><input class="rt">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<div class="rt">b</div><input class="rt">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<div class="rt">b</div>c</span></rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><span>a<input class="rbc">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<input class="rbc"><input class="rbc">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<div class="rbc">b</div><input class="rbc">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<div class="rbc">b</div>c</span></rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><span>a<input class="rtc">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<input class="rtc"><input class="rtc">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<div class="rtc">b</div><input class="rtc">b</span></rb></ruby>
|
||||||
|
<ruby><rb><span>a<div class="rtc">b</div>c</span></rb></ruby>
|
||||||
|
|
||||||
|
<br><hr>
|
||||||
|
|
||||||
|
<!-- same as above but without the SPAN wrapper -->
|
||||||
|
|
||||||
|
<ruby><rb><input class="thg">b</rb></ruby>
|
||||||
|
<ruby><rb><input class="thg"><input class="thg">b</rb></ruby>
|
||||||
|
<ruby><rb><div class="thg">b</div><input class="thg">b</rb></ruby>
|
||||||
|
<ruby><rb><div class="thg">b</div>c</rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><input class="trg">b</rb></ruby>
|
||||||
|
<ruby><rb><input class="trg"><input class="trg">b</rb></ruby>
|
||||||
|
<ruby><rb><div class="trg">b</div><input class="trg">b</rb></ruby>
|
||||||
|
<ruby><rb><div class="trg">b</div>c</rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><input class="tfg">b</rb></ruby>
|
||||||
|
<ruby><rb><input class="tfg"><input class="tfg">b</rb></ruby>
|
||||||
|
<ruby><rb><div class="tfg">b</div><input class="tfg">b</rb></ruby>
|
||||||
|
<ruby><rb><div class="tfg">b</div>c</rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><input class="tr">b</rb></ruby>
|
||||||
|
<ruby><rb><input class="tr"><input class="tr">b</rb></ruby>
|
||||||
|
<ruby><rb><div class="tr">b</div><input class="tr">b</rb></ruby>
|
||||||
|
<ruby><rb><div class="tr">b</div>c</rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><input class="tc">b</rb></ruby>
|
||||||
|
<ruby><rb><input class="tc"><input class="tc">b</rb></ruby>
|
||||||
|
<ruby><rb><div class="tc">b</div><input class="tc">b</rb></ruby>
|
||||||
|
<ruby><rb><div class="tc">b</div>c</rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><input class="tcg">b</rb></ruby>
|
||||||
|
<ruby><rb><input class="tcg"><input class="tcg">b</rb></ruby>
|
||||||
|
<ruby><rb><div class="tcg">b</div><input class="tcg">b</rb></ruby>
|
||||||
|
<ruby><rb><div class="tcg">b</div>c</rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><input class="tco">b</rb></ruby>
|
||||||
|
<ruby><rb><input class="tco"><input class="tco">b</rb></ruby>
|
||||||
|
<ruby><rb><div class="tco">b</div><input class="tco">b</rb></ruby>
|
||||||
|
<ruby><rb><div class="tco">b</div>c</rb></ruby>
|
||||||
|
|
||||||
|
<!-- FIXME after https://bugzilla.mozilla.org/show_bug.cgi?id=1510299
|
||||||
|
<ruby><rb><input class="tca">b</rb></ruby>
|
||||||
|
<ruby><rb><input class="tca"><input class="tca">b</rb></ruby>
|
||||||
|
<ruby><rb><div class="tca">b</div><input class="tca">b</rb></ruby>
|
||||||
|
<ruby><rb><div class="tca">b</div>c</rb></ruby>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<ruby><rb><input class="t">b</rb></ruby>
|
||||||
|
<ruby><rb><input class="t"><input class="t">b</rb></ruby>
|
||||||
|
<ruby><rb><div class="t">b</div><input class="t">b</rb></ruby>
|
||||||
|
<ruby><rb><div class="t">b</div>c</rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><input class="rb">b</rb></ruby>
|
||||||
|
<ruby><rb><input class="rb"><input class="rb">b</rb></ruby>
|
||||||
|
<ruby><rb><div class="rb">b</div><input class="rb">b</rb></ruby>
|
||||||
|
<ruby><rb><div class="rb">b</div>c</rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><input class="rt">b</rb></ruby>
|
||||||
|
<ruby><rb><input class="rt"><input class="rt">b</rb></ruby>
|
||||||
|
<ruby><rb><div class="rt">b</div><input class="rt">b</rb></ruby>
|
||||||
|
<ruby><rb><div class="rt">b</div>c</rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><input class="rbc">b</rb></ruby>
|
||||||
|
<ruby><rb><input class="rbc"><input class="rbc">b</rb></ruby>
|
||||||
|
<ruby><rb><div class="rbc">b</div><input class="rbc">b</rb></ruby>
|
||||||
|
<ruby><rb><div class="rbc">b</div>c</rb></ruby>
|
||||||
|
|
||||||
|
<ruby><rb><input class="rtc">b</rb></ruby>
|
||||||
|
<ruby><rb><input class="rtc"><input class="rtc">b</rb></ruby>
|
||||||
|
<ruby><rb><div class="rtc">b</div><input class="rtc">b</rb></ruby>
|
||||||
|
<ruby><rb><div class="rtc">b</div>c</rb></ruby>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -20,15 +20,15 @@
|
||||||
<custom-element id="c-e-1"></custom-element>
|
<custom-element id="c-e-1"></custom-element>
|
||||||
The following text should be green:
|
The following text should be green:
|
||||||
<custom-element id="c-e-2"></custom-element>
|
<custom-element id="c-e-2"></custom-element>
|
||||||
<script type="text/javascript">
|
<script>
|
||||||
"use strict";
|
"use strict";
|
||||||
const colorGreen = "rgb(0, 128, 0)";
|
const colorGreen = "rgb(0, 128, 0)";
|
||||||
test(function() {
|
test(function() {
|
||||||
var el = getElementByShadowIds(document, ["c-e-1", "part"]);
|
const el = getElementByShadowIds(document, ["c-e-1", "part"]);
|
||||||
assert_equals(window.getComputedStyle(el).color, colorGreen);
|
assert_equals(window.getComputedStyle(el).color, colorGreen);
|
||||||
}, "::part with host selector styles in first host");
|
}, "::part with host selector styles in first host");
|
||||||
test(function() {
|
test(function() {
|
||||||
var el = getElementByShadowIds(document, ["c-e-2", "part"]);
|
const el = getElementByShadowIds(document, ["c-e-2", "part"]);
|
||||||
assert_equals(window.getComputedStyle(el).color, colorGreen);
|
assert_equals(window.getComputedStyle(el).color, colorGreen);
|
||||||
}, "::part with host selector styles in second host");
|
}, "::part with host selector styles in second host");
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -26,11 +26,11 @@
|
||||||
<custom-element-inner id="c-e-inner" part="c-e-part"></custom-element-inner>
|
<custom-element-inner id="c-e-inner" part="c-e-part"></custom-element-inner>
|
||||||
</template>
|
</template>
|
||||||
<custom-element-outer id="c-e-outer"></custom-element-outer>
|
<custom-element-outer id="c-e-outer"></custom-element-outer>
|
||||||
<script type="text/javascript">
|
<script>
|
||||||
"use strict";
|
"use strict";
|
||||||
const colorGreen = "rgb(0, 128, 0)";
|
const colorGreen = "rgb(0, 128, 0)";
|
||||||
test(function() {
|
test(function() {
|
||||||
var el = getElementByShadowIds(document, ["c-e-outer", "c-e-inner", "part"]);
|
const el = getElementByShadowIds(document, ["c-e-outer", "c-e-inner", "part"]);
|
||||||
assert_equals(window.getComputedStyle(el).color, colorGreen);
|
assert_equals(window.getComputedStyle(el).color, colorGreen);
|
||||||
}, "::part cannot be chained to reach elements in the inner host");
|
}, "::part cannot be chained to reach elements in the inner host");
|
||||||
test(function() {
|
test(function() {
|
||||||
|
|
|
@ -18,11 +18,11 @@
|
||||||
</template>
|
</template>
|
||||||
The following text should be green:
|
The following text should be green:
|
||||||
<div><custom-element id="c-e"></custom-element></div>
|
<div><custom-element id="c-e"></custom-element></div>
|
||||||
<script type="text/javascript">
|
<script>
|
||||||
"use strict";
|
"use strict";
|
||||||
const colorGreen = "rgb(0, 128, 0)";
|
const colorGreen = "rgb(0, 128, 0)";
|
||||||
test(function() {
|
test(function() {
|
||||||
var el = getElementByShadowIds(document, ["c-e", "part"]);
|
const el = getElementByShadowIds(document, ["c-e", "part"]);
|
||||||
assert_equals(window.getComputedStyle(el).color, colorGreen);
|
assert_equals(window.getComputedStyle(el).color, colorGreen);
|
||||||
}, "Complex selector for host works");
|
}, "Complex selector for host works");
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -18,11 +18,11 @@
|
||||||
</template>
|
</template>
|
||||||
The following text should be green:
|
The following text should be green:
|
||||||
<pre><custom-element id="c-e"></custom-element></pre>
|
<pre><custom-element id="c-e"></custom-element></pre>
|
||||||
<script type="text/javascript">
|
<script>
|
||||||
"use strict";
|
"use strict";
|
||||||
const colorGreen = "rgb(0, 128, 0)";
|
const colorGreen = "rgb(0, 128, 0)";
|
||||||
test(function() {
|
test(function() {
|
||||||
var el = getElementByShadowIds(document, ["c-e", "part"]);
|
const el = getElementByShadowIds(document, ["c-e", "part"]);
|
||||||
assert_equals(window.getComputedStyle(el).color, colorGreen);
|
assert_equals(window.getComputedStyle(el).color, colorGreen);
|
||||||
}, "Non-matching complex selector for host does not style");
|
}, "Non-matching complex selector for host does not style");
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -18,11 +18,11 @@
|
||||||
</template>
|
</template>
|
||||||
The following text should be green:
|
The following text should be green:
|
||||||
<custom-element id="c-e"></custom-element>
|
<custom-element id="c-e"></custom-element>
|
||||||
<script type="text/javascript">
|
<script>
|
||||||
"use strict";
|
"use strict";
|
||||||
const colorGreen = "rgb(0, 128, 0)";
|
const colorGreen = "rgb(0, 128, 0)";
|
||||||
test(function() {
|
test(function() {
|
||||||
var el = getElementByShadowIds(document, ["c-e", "part"]);
|
const el = getElementByShadowIds(document, ["c-e", "part"]);
|
||||||
assert_equals(window.getComputedStyle(el).color, colorGreen);
|
assert_equals(window.getComputedStyle(el).color, colorGreen);
|
||||||
}, "Part is not styled when host is not selected");
|
}, "Part is not styled when host is not selected");
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -20,11 +20,11 @@
|
||||||
</template>
|
</template>
|
||||||
The following text should be green:
|
The following text should be green:
|
||||||
<custom-element id="c-e"></custom-element>
|
<custom-element id="c-e"></custom-element>
|
||||||
<script type="text/javascript">
|
<script>
|
||||||
"use strict";
|
"use strict";
|
||||||
const colorGreen = "rgb(0, 128, 0)";
|
const colorGreen = "rgb(0, 128, 0)";
|
||||||
test(function() {
|
test(function() {
|
||||||
var el = getElementByShadowIds(document, ["c-e", "part"]);
|
const el = getElementByShadowIds(document, ["c-e", "part"]);
|
||||||
assert_equals(window.getComputedStyle(el).color, colorGreen);
|
assert_equals(window.getComputedStyle(el).color, colorGreen);
|
||||||
}, "Part in selected host is not styled by ::part in a stylesheet inside the host");
|
}, "Part in selected host is not styled by ::part in a stylesheet inside the host");
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -25,16 +25,16 @@
|
||||||
</template>
|
</template>
|
||||||
The following text should be green:
|
The following text should be green:
|
||||||
<custom-element-outer id="c-e-outer"></custom-element-outer>
|
<custom-element-outer id="c-e-outer"></custom-element-outer>
|
||||||
<script type="text/javascript">
|
<script>
|
||||||
"use strict";
|
"use strict";
|
||||||
const colorBlue = "rgb(0, 0, 255)";
|
const colorBlue = "rgb(0, 0, 255)";
|
||||||
const colorGreen = "rgb(0, 128, 0)";
|
const colorGreen = "rgb(0, 128, 0)";
|
||||||
test(function() {
|
test(function() {
|
||||||
var el = getElementByShadowIds(document, ["c-e-outer", "green_part"]);
|
const el = getElementByShadowIds(document, ["c-e-outer", "green_part"]);
|
||||||
assert_equals(window.getComputedStyle(el).color, colorGreen);
|
assert_equals(window.getComputedStyle(el).color, colorGreen);
|
||||||
}, "Part in outer host is styled by document style sheet");
|
}, "Part in outer host is styled by document style sheet");
|
||||||
test(function() {
|
test(function() {
|
||||||
var el = getElementByShadowIds(document, ["c-e-outer", "c-e-inner", "blue_part"]);
|
const el = getElementByShadowIds(document, ["c-e-outer", "c-e-inner", "blue_part"]);
|
||||||
assert_equals(window.getComputedStyle(el).color, colorBlue);
|
assert_equals(window.getComputedStyle(el).color, colorBlue);
|
||||||
}, "Part in inner host is not styled by document style sheet");
|
}, "Part in inner host is not styled by document style sheet");
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>CSS Shadow Parts - Invalidation Change Part Name IDL DOMTokenList</title>
|
||||||
|
<meta href="mailto:fergal@chromium.org" rel="author" title="Fergal Daly">
|
||||||
|
<link href="http://www.google.com/" rel="author" title="Google">
|
||||||
|
<link href="https://drafts.csswg.org/css-shadow-parts/" rel="help">
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script src="support/shadow-helper.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<style>#c-e::part(partp) { color: red; }</style>
|
||||||
|
<style>#c-e::part(new-partp) { color: green; }</style>
|
||||||
|
<script>installCustomElement("custom-element", "custom-element-template");</script>
|
||||||
|
<template id="custom-element-template">
|
||||||
|
<style>span { color: blue; }</style>
|
||||||
|
<span id="part" part="partp">This text</span>
|
||||||
|
</template>
|
||||||
|
The following text should be green:
|
||||||
|
<div><custom-element id="c-e"></custom-element></div>
|
||||||
|
<script>
|
||||||
|
"use strict";
|
||||||
|
const colorGreen = "rgb(0, 128, 0)";
|
||||||
|
test(function() {
|
||||||
|
const el = getElementByShadowIds(document, ["c-e", "part"]);
|
||||||
|
el.part.remove("partp");
|
||||||
|
el.part.add("new-partp");
|
||||||
|
assert_equals(window.getComputedStyle(el).color, colorGreen);
|
||||||
|
}, "Part in selected host changed color via part IDL DOMTokenList attribute.");
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,31 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>CSS Shadow Parts - Invalidation Change Part Name IDL Setter</title>
|
||||||
|
<meta href="mailto:fergal@chromium.org" rel="author" title="Fergal Daly">
|
||||||
|
<link href="http://www.google.com/" rel="author" title="Google">
|
||||||
|
<link href="https://drafts.csswg.org/css-shadow-parts/" rel="help">
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script src="support/shadow-helper.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<style>#c-e::part(partp) { color: red; }</style>
|
||||||
|
<script>installCustomElement("custom-element", "custom-element-template");</script>
|
||||||
|
<template id="custom-element-template">
|
||||||
|
<style>span { color: green; }</style>
|
||||||
|
<span id="part" part="partp">This text</span>
|
||||||
|
</template>
|
||||||
|
The following text should be green:
|
||||||
|
<div><custom-element id="c-e"></custom-element></div>
|
||||||
|
<script>
|
||||||
|
"use strict";
|
||||||
|
const colorGreen = "rgb(0, 128, 0)";
|
||||||
|
test(function() {
|
||||||
|
const el = getElementByShadowIds(document, ["c-e", "part"]);
|
||||||
|
el.part = "new-partp"
|
||||||
|
assert_equals(window.getComputedStyle(el).color, colorGreen);
|
||||||
|
}, "Part in selected host changed color via part IDL attribute setter.");
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -18,13 +18,13 @@
|
||||||
</template>
|
</template>
|
||||||
The following text should be green:
|
The following text should be green:
|
||||||
<div><custom-element id="c-e"></custom-element></div>
|
<div><custom-element id="c-e"></custom-element></div>
|
||||||
<script type="text/javascript">
|
<script>
|
||||||
"use strict";
|
"use strict";
|
||||||
test(function() {
|
test(function() {
|
||||||
var part = getElementByShadowIds(document, ["c-e", "part"]);
|
const part = getElementByShadowIds(document, ["c-e", "part"]);
|
||||||
var before = window.getComputedStyle(part).color;
|
const before = window.getComputedStyle(part).color;
|
||||||
part.setAttribute("part", "new-partp");
|
part.setAttribute("part", "new-partp");
|
||||||
var after = window.getComputedStyle(part).color;
|
const after = window.getComputedStyle(part).color;
|
||||||
assert_not_equals(before, after);
|
assert_not_equals(before, after);
|
||||||
}, "Part in selected host changed color");
|
}, "Part in selected host changed color");
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -18,13 +18,13 @@
|
||||||
</template>
|
</template>
|
||||||
The following text should be green:
|
The following text should be green:
|
||||||
<div id="elem"><custom-element id="c-e"></custom-element></div>
|
<div id="elem"><custom-element id="c-e"></custom-element></div>
|
||||||
<script type="text/javascript">
|
<script>
|
||||||
"use strict";
|
"use strict";
|
||||||
test(function() {
|
test(function() {
|
||||||
var part = getElementByShadowIds(document, ["c-e", "part"]);
|
const part = getElementByShadowIds(document, ["c-e", "part"]);
|
||||||
var before = window.getComputedStyle(part).color;
|
const before = window.getComputedStyle(part).color;
|
||||||
document.getElementById("elem").setAttribute("id", "new-elem");
|
document.getElementById("elem").setAttribute("id", "new-elem");
|
||||||
var after = window.getComputedStyle(part).color;
|
const after = window.getComputedStyle(part).color;
|
||||||
assert_not_equals(before, after);
|
assert_not_equals(before, after);
|
||||||
}, "Part in selected host changed color");
|
}, "Part in selected host changed color");
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -0,0 +1,53 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>CSS Shadow Parts - Part Name IDL</title>
|
||||||
|
<meta href="mailto:fergal@chromium.org" rel="author" title="Fergal Daly">
|
||||||
|
<link href="http://www.google.com/" rel="author" title="Google">
|
||||||
|
<link href="https://drafts.csswg.org/css-shadow-parts/" rel="help">
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script src="support/shadow-helper.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<span id="s_no_part"></span>
|
||||||
|
<span id="s_part" part="part1"></span>
|
||||||
|
<span id="s_2_parts" part="part1 part2"></span>
|
||||||
|
<script>
|
||||||
|
"use strict";
|
||||||
|
test(function() {
|
||||||
|
const parts = s_no_part.part;
|
||||||
|
assert_equals(parts.length, 0);
|
||||||
|
assert_equals(parts.value, "");
|
||||||
|
}, "Access to .part returns an empty DOMTokenList.");
|
||||||
|
test(function() {
|
||||||
|
const parts = s_2_parts.part;
|
||||||
|
assert_equals(parts.length, 2);
|
||||||
|
assert_equals(parts[0], "part1");
|
||||||
|
assert_equals(parts[1], "part2");
|
||||||
|
assert_equals(parts.value, "part1 part2");
|
||||||
|
}, "Multiple names give a DOMTokenList with multiple entries.");
|
||||||
|
test(function() {
|
||||||
|
const parts = s_no_part.part;
|
||||||
|
assert_equals(parts.length, 0);
|
||||||
|
assert_equals(parts.value, "");
|
||||||
|
parts.add("part1");
|
||||||
|
assert_equals(parts.length, 1);
|
||||||
|
assert_equals(parts.value, "part1");
|
||||||
|
}, "DOMTokenList created by access is persisted.");
|
||||||
|
test(function() {
|
||||||
|
const parts = s_part.part;
|
||||||
|
assert_equals(parts.length, 1);
|
||||||
|
assert_equals(parts.value, "part1");
|
||||||
|
parts.add("part2");
|
||||||
|
assert_equals(parts.length, 2);
|
||||||
|
assert_equals(parts.value, "part1 part2");
|
||||||
|
assert_equals(s_part.getAttribute("part"), parts.value);
|
||||||
|
parts.remove("part1");
|
||||||
|
assert_equals(parts.length, 1);
|
||||||
|
assert_equals(parts.value, "part2");
|
||||||
|
assert_equals(s_part.getAttribute("part"), parts.value);
|
||||||
|
}, "Changes in DOMTokenList are refected in attribute.");
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -18,11 +18,11 @@
|
||||||
</template>
|
</template>
|
||||||
The following text should be green:
|
The following text should be green:
|
||||||
<custom-element id="c-e"></custom-element>
|
<custom-element id="c-e"></custom-element>
|
||||||
<script type="text/javascript">
|
<script>
|
||||||
"use strict";
|
"use strict";
|
||||||
const colorGreen = "rgb(0, 128, 0)";
|
const colorGreen = "rgb(0, 128, 0)";
|
||||||
test(function() {
|
test(function() {
|
||||||
var el = getElementByShadowIds(document, ["c-e", "part"]);
|
const el = getElementByShadowIds(document, ["c-e", "part"]);
|
||||||
assert_equals(window.getComputedStyle(el).color, colorGreen);
|
assert_equals(window.getComputedStyle(el).color, colorGreen);
|
||||||
}, "Part in selected host is styled");
|
}, "Part in selected host is styled");
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
<head>
|
<head>
|
||||||
<title>CSS Test: white-space-collapsing - discard - basic cases Reftest Reference</title>
|
<title>CSS Test: text-space-collapse - discard - basic cases Reftest Reference</title>
|
||||||
<link rel="author" title="Satoshi Umehara" href="mailto:umehara@est.co.jp" />
|
<link rel="author" title="Satoshi Umehara" href="mailto:umehara@est.co.jp" />
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
<![CDATA[
|
<![CDATA[
|
|
@ -2,7 +2,7 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
<head>
|
<head>
|
||||||
<title>CSS Test: white-space-collapsing - preserve-breaks - basic cases Reftest Reference</title>
|
<title>CSS Test: text-space-collapse - preserve-breaks - basic cases Reftest Reference</title>
|
||||||
<link rel="author" title="Satoshi Umehara" href="mailto:umehara@est.co.jp" />
|
<link rel="author" title="Satoshi Umehara" href="mailto:umehara@est.co.jp" />
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
<![CDATA[
|
<![CDATA[
|
|
@ -2,7 +2,7 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
<head>
|
<head>
|
||||||
<title>CSS Test: white-space-collapsing - trim-inner - basic cases Reftest Reference</title>
|
<title>CSS Test: text-space-trim - trim-inner - basic cases Reftest Reference</title>
|
||||||
<link rel="author" title="Satoshi Umehara" href="mailto:umehara@est.co.jp" />
|
<link rel="author" title="Satoshi Umehara" href="mailto:umehara@est.co.jp" />
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
|
@ -17,20 +17,20 @@
|
||||||
Test passes if each text positions in the first line match the corresponding positions in the second line.
|
Test passes if each text positions in the first line match the corresponding positions in the second line.
|
||||||
</p>
|
</p>
|
||||||
<div>
|
<div>
|
||||||
<span>1 2</span>
|
[<span>1 2</span>]
|
||||||
<span> 3 4 </span>
|
[<span> 3 4 </span>]
|
||||||
<span>5 6</span>
|
[<span>5 6</span>]
|
||||||
<span>7
|
[<span>7
|
||||||
|
|
||||||
8</span>
|
8</span>]
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<span>1 2</span>
|
[<span>1 2</span>]
|
||||||
<span> 3 4 </span>
|
[<span> 3 4 </span>]
|
||||||
<span>5 6</span>
|
[<span>5 6</span>]
|
||||||
<span>7
|
[<span>7
|
||||||
|
|
||||||
8</span>
|
8</span>]
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
|
@ -2,16 +2,16 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
<head>
|
<head>
|
||||||
<title>CSS Test: white-space-collapsing - discard - basic cases</title>
|
<title>CSS Test: text-space-collapse - discard - basic cases</title>
|
||||||
<link rel="author" title="Satoshi Umehara" href="mailto:umehara@est.co.jp" />
|
<link rel="author" title="Satoshi Umehara" href="mailto:umehara@est.co.jp" />
|
||||||
<link rel="help" title="CSS Text Level 3: 4.1. White Space Collapsing: the ‘white-space-collapsing’ property" href="http://www.w3.org/TR/css-text-3/#white-space-collapsing" />
|
<link rel="help" title="CSS Text Level 4: 3.1. White Space Collapsing: the ‘text-space-collapse’ property" href="https://drafts.csswg.org/css-text-4/#white-space-collapsing" />
|
||||||
<link rel="match" href="reference/white-space-collapsing-discard-001-ref.xht"/>
|
<link rel="match" href="reference/text-space-collapse-discard-001-ref.xht"/>
|
||||||
<meta name="flags" content="" />
|
<meta name="flags" content="" />
|
||||||
<meta name="assert" content="The UA should discard all white space in the element when white-space-collapsing is set to discard." />
|
<meta name="assert" content="The UA should discard all white space in the element when text-space-collapse is set to discard." />
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
.test span {
|
.test span {
|
||||||
white-space-collapsing: discard;
|
text-space-collapse: discard;
|
||||||
}
|
}
|
||||||
/* the CSS below is not part of the test */
|
/* the CSS below is not part of the test */
|
||||||
span {
|
span {
|
|
@ -2,16 +2,16 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
<head>
|
<head>
|
||||||
<title>CSS Test: white-space-collapsing - preserve-breaks - basic cases</title>
|
<title>CSS Test: text-space-collapse - preserve-breaks - basic cases</title>
|
||||||
<link rel="author" title="Satoshi Umehara" href="mailto:umehara@est.co.jp" />
|
<link rel="author" title="Satoshi Umehara" href="mailto:umehara@est.co.jp" />
|
||||||
<link rel="help" title="CSS Text Level 3: 4.1. White Space Collapsing: the ‘white-space-collapsing’ property" href="http://www.w3.org/TR/css-text-3/#white-space-collapsing" />
|
<link rel="help" title="CSS Text Level 4: 3.1. White Space Collapsing: the ‘text-space-collapse’ property" href="https://drafts.csswg.org/css-text-4/#white-space-collapsing" />
|
||||||
<link rel="match" href="reference/white-space-collapsing-preserve-breaks-001-ref.xht"/>
|
<link rel="match" href="reference/text-space-collapse-preserve-breaks-001-ref.xht"/>
|
||||||
<meta name="flags" content="" />
|
<meta name="flags" content="" />
|
||||||
<meta name="assert" content="The UA should collapse sequences of white space into a single character when white-space-collapsing is set to preserve." />
|
<meta name="assert" content="The UA should collapse sequences of white space into a single character but preserve segment breaks as forced line breaks when text-space-collapse is set to preserve-breaks." />
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
.test span {
|
.test span {
|
||||||
white-space-collapsing: preserve-breaks;
|
text-space-collapse: preserve-breaks;
|
||||||
}
|
}
|
||||||
/* the CSS below is not part of the test */
|
/* the CSS below is not part of the test */
|
||||||
span {
|
span {
|
|
@ -2,16 +2,16 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
<head>
|
<head>
|
||||||
<title>CSS Test: white-space-collapsing - trim-inner - basic cases</title>
|
<title>CSS Test: text-space-trim - trim-inner - basic cases</title>
|
||||||
<link rel="author" title="Satoshi Umehara" href="mailto:umehara@est.co.jp" />
|
<link rel="author" title="Satoshi Umehara" href="mailto:umehara@est.co.jp" />
|
||||||
<link rel="help" title="CSS Text Level 3: 4.1. White Space Collapsing: the ‘white-space-collapsing’ property" href="http://www.w3.org/TR/css-text-3/#white-space-collapsing" />
|
<link rel="help" title="CSS Text Level 4: 3.2. White Space Trimming: the ‘text-space-trim’ property" href="https://drafts.csswg.org/css-text-4/#white-space-trim" />
|
||||||
<link rel="match" href="reference/white-space-collapsing-trim-inner-001-ref.xht"/>
|
<link rel="match" href="reference/text-space-trim-trim-inner-001-ref.xht"/>
|
||||||
<meta name="flags" content="" />
|
<meta name="flags" content="" />
|
||||||
<meta name="assert" content="The UA should discard all white space at the beginning of a block and all white space at the end of a block when white-space-collapsing is set to trim-inner." />
|
<meta name="assert" content="The UA should discard all white space at the beginning of a block and all white space at the end of a block when text-space-trim is set to trim-inner." />
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
.test span {
|
.test span {
|
||||||
white-space-collapsing: trim-inner;
|
text-space-trim: trim-inner;
|
||||||
}
|
}
|
||||||
/* the CSS below is not part of the test */
|
/* the CSS below is not part of the test */
|
||||||
div {
|
div {
|
||||||
|
@ -26,24 +26,24 @@
|
||||||
</p>
|
</p>
|
||||||
<div>
|
<div>
|
||||||
<div class="test">
|
<div class="test">
|
||||||
<span> 1 2 </span>
|
[<span> 1 2 </span>]
|
||||||
<span> 3 4 </span>
|
[<span> 3 4 </span>]
|
||||||
<span> 5 6 </span>
|
[<span> 5 6 </span>]
|
||||||
<span>
|
[<span>
|
||||||
|
|
||||||
7
|
7
|
||||||
|
|
||||||
8
|
8
|
||||||
|
|
||||||
</span>
|
</span>]
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<span>1 2</span>
|
[<span>1 2</span>]
|
||||||
<span> 3 4 </span>
|
[<span> 3 4 </span>]
|
||||||
<span>5 6</span>
|
[<span>5 6</span>]
|
||||||
<span>7
|
[<span>7
|
||||||
|
|
||||||
8</span>
|
8</span>]
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
|
@ -75,8 +75,6 @@
|
||||||
testsPerSlice: 1,
|
testsPerSlice: 1,
|
||||||
// milliseconds to wait before calling teardown and ending test
|
// milliseconds to wait before calling teardown and ending test
|
||||||
duration: parseFloat(duration) * 1000,
|
duration: parseFloat(duration) * 1000,
|
||||||
// the global suite timeout
|
|
||||||
timeout: timeout,
|
|
||||||
// prepare individual test
|
// prepare individual test
|
||||||
setup: function(data, options) {
|
setup: function(data, options) {
|
||||||
var styles = {
|
var styles = {
|
||||||
|
|
|
@ -76,8 +76,6 @@
|
||||||
testsPerSlice: 1,
|
testsPerSlice: 1,
|
||||||
// milliseconds to wait before calling teardown and ending test
|
// milliseconds to wait before calling teardown and ending test
|
||||||
duration: parseFloat(duration) * 1000,
|
duration: parseFloat(duration) * 1000,
|
||||||
// the global suite timeout
|
|
||||||
timeout: timeout,
|
|
||||||
// prepare individual test
|
// prepare individual test
|
||||||
setup: function(data, options) {
|
setup: function(data, options) {
|
||||||
var styles = {
|
var styles = {
|
||||||
|
|
|
@ -86,8 +86,6 @@
|
||||||
testsPerSlice: 50,
|
testsPerSlice: 50,
|
||||||
// milliseconds to wait before calling teardown and ending test
|
// milliseconds to wait before calling teardown and ending test
|
||||||
duration: parseFloat(duration) * 1000,
|
duration: parseFloat(duration) * 1000,
|
||||||
// the global suite timeout
|
|
||||||
timeout: timeout,
|
|
||||||
// prepare individual test
|
// prepare individual test
|
||||||
setup: function(data, options) {
|
setup: function(data, options) {
|
||||||
var styles = {
|
var styles = {
|
||||||
|
|
|
@ -69,8 +69,6 @@
|
||||||
testsPerSlice: 1,
|
testsPerSlice: 1,
|
||||||
// milliseconds to wait before calling teardown and ending test
|
// milliseconds to wait before calling teardown and ending test
|
||||||
duration: parseFloat(duration) * 1000,
|
duration: parseFloat(duration) * 1000,
|
||||||
// the global suite timeout
|
|
||||||
timeout: timeout,
|
|
||||||
// prepare individual test
|
// prepare individual test
|
||||||
setup: function(data, options) {
|
setup: function(data, options) {
|
||||||
var styles = {
|
var styles = {
|
||||||
|
|
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