mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-31 05:09:12 +00:00
LibWeb: Account for non-shorthand sub-properties when serializing border
Some checks are pending
CI / macOS, arm64, Sanitizer, Clang (push) Waiting to run
CI / Linux, x86_64, Fuzzers, Clang (push) Waiting to run
CI / Linux, x86_64, Sanitizer, GNU (push) Waiting to run
CI / Linux, x86_64, Sanitizer, Clang (push) Waiting to run
Package the js repl as a binary artifact / Linux, arm64 (push) Waiting to run
Package the js repl as a binary artifact / macOS, arm64 (push) Waiting to run
Package the js repl as a binary artifact / Linux, x86_64 (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Label PRs with merge conflicts / auto-labeler (push) Waiting to run
Push notes / build (push) Waiting to run
Some checks are pending
CI / macOS, arm64, Sanitizer, Clang (push) Waiting to run
CI / Linux, x86_64, Fuzzers, Clang (push) Waiting to run
CI / Linux, x86_64, Sanitizer, GNU (push) Waiting to run
CI / Linux, x86_64, Sanitizer, Clang (push) Waiting to run
Package the js repl as a binary artifact / Linux, arm64 (push) Waiting to run
Package the js repl as a binary artifact / macOS, arm64 (push) Waiting to run
Package the js repl as a binary artifact / Linux, x86_64 (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Label PRs with merge conflicts / auto-labeler (push) Waiting to run
Push notes / build (push) Waiting to run
When parsing values in `process_a_keyframes_argument` we don't expand properties using `StyleComputer::for_each_property_expanding_shorthands` unlike most other places - this means that if we parse a `border` we end up with the `border`'s sub-properties (`border-width`, `border-style`, `border-color`) still in their unexpanded forms (`CSSKeywordValue`, `LengthStyleValue`, `StyleValueList`, etc) rather than `ShorthandStyleValue`s which causes a crash when serializing the `border` value in `KeyframeEffect::get_keyframes`. The proper fix here is to parse `border`'s sub-properties directly to `ShorthandStyleValue`s instead of relying on `StyleComputer::for_each_property_expanding_shorthand` to do this conversion for us but this may be a while off. This commit also imports the previously crashing tests.
This commit is contained in:
parent
52e9dcd911
commit
a1c9b86ad3
Notes:
github-actions[bot]
2025-07-16 05:50:48 +00:00
Author: https://github.com/Calme1709
Commit: a1c9b86ad3
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/5467
Reviewed-by: https://github.com/AtkinsSJ ✅
13 changed files with 2497 additions and 0 deletions
|
@ -0,0 +1,159 @@
|
|||
Harness status: OK
|
||||
|
||||
Found 153 tests
|
||||
|
||||
139 Pass
|
||||
14 Fail
|
||||
Pass Element.animate() creates an Animation object
|
||||
Pass Element.animate() creates an Animation object in the relevant realm of the target element
|
||||
Pass Element.animate() creates an Animation object with a KeyframeEffect
|
||||
Pass Element.animate() creates an Animation object with a KeyframeEffect that is created in the relevant realm of the target element
|
||||
Pass Element.animate() accepts empty keyframe lists (input: [])
|
||||
Pass Element.animate() accepts empty keyframe lists (input: null)
|
||||
Pass Element.animate() accepts empty keyframe lists (input: undefined)
|
||||
Pass Element.animate() accepts a one property two value property-indexed keyframes specification
|
||||
Pass Element.animate() accepts a one shorthand property two value property-indexed keyframes specification
|
||||
Pass Element.animate() accepts a two property (one shorthand and one of its longhand components) two value property-indexed keyframes specification
|
||||
Pass Element.animate() accepts a two property (one shorthand and one of its shorthand components) two value property-indexed keyframes specification
|
||||
Pass Element.animate() accepts a two property two value property-indexed keyframes specification
|
||||
Pass Element.animate() accepts a two property property-indexed keyframes specification with different numbers of values
|
||||
Pass Element.animate() accepts a property-indexed keyframes specification with an invalid value
|
||||
Pass Element.animate() accepts a one property two value property-indexed keyframes specification that needs to stringify its values
|
||||
Pass Element.animate() accepts a property-indexed keyframes specification with a CSS variable reference
|
||||
Pass Element.animate() accepts a property-indexed keyframes specification with a CSS variable reference in a shorthand property
|
||||
Pass Element.animate() accepts a one property one value property-indexed keyframes specification
|
||||
Pass Element.animate() accepts a one property one non-array value property-indexed keyframes specification
|
||||
Pass Element.animate() accepts a one property two value property-indexed keyframes specification where the first value is invalid
|
||||
Pass Element.animate() accepts a one property two value property-indexed keyframes specification where the second value is invalid
|
||||
Fail Element.animate() accepts a property-indexed keyframes specification with a CSS variable as the property
|
||||
Fail Element.animate() accepts a property-indexed keyframe with a single offset
|
||||
Pass Element.animate() accepts a property-indexed keyframe with an array of offsets
|
||||
Pass Element.animate() accepts a property-indexed keyframe with an array of offsets that is too short
|
||||
Pass Element.animate() accepts a property-indexed keyframe with an array of offsets that is too long
|
||||
Pass Element.animate() accepts a property-indexed keyframe with an empty array of offsets
|
||||
Fail Element.animate() accepts a property-indexed keyframe with an array of offsets with an embedded null value
|
||||
Fail Element.animate() accepts a property-indexed keyframe with an array of offsets with a trailing null value
|
||||
Fail Element.animate() accepts a property-indexed keyframe with an array of offsets with leading and trailing null values
|
||||
Fail Element.animate() accepts a property-indexed keyframe with an array of offsets with adjacent null values
|
||||
Fail Element.animate() accepts a property-indexed keyframe with an array of offsets with all null values (and too many at that)
|
||||
Pass Element.animate() accepts a property-indexed keyframe with a single null offset
|
||||
Pass Element.animate() accepts a property-indexed keyframe with an array of offsets that is not strictly ascending in the unused part of the array
|
||||
Pass Element.animate() accepts a property-indexed keyframe without any specified easing
|
||||
Pass Element.animate() accepts a property-indexed keyframe with a single easing
|
||||
Pass Element.animate() accepts a property-indexed keyframe with an array of easings
|
||||
Pass Element.animate() accepts a property-indexed keyframe with an array of easings that is too short
|
||||
Pass Element.animate() accepts a property-indexed keyframe with a single-element array of easings
|
||||
Pass Element.animate() accepts a property-indexed keyframe with an empty array of easings
|
||||
Pass Element.animate() accepts a property-indexed keyframe with an array of easings that is too long
|
||||
Pass Element.animate() accepts a property-indexed keyframe with a single composite operation
|
||||
Pass Element.animate() accepts a property-indexed keyframe with a composite array
|
||||
Pass Element.animate() accepts a property-indexed keyframe with a composite array that is too short
|
||||
Pass Element.animate() accepts a property-indexed keyframe with a composite array that is too long
|
||||
Pass Element.animate() accepts a property-indexed keyframe with a single-element composite array
|
||||
Pass Element.animate() accepts a one property one keyframe sequence
|
||||
Pass Element.animate() accepts a one property two keyframe sequence
|
||||
Pass Element.animate() accepts a two property two keyframe sequence
|
||||
Pass Element.animate() accepts a one shorthand property two keyframe sequence
|
||||
Pass Element.animate() accepts a two property (a shorthand and one of its component longhands) two keyframe sequence
|
||||
Pass Element.animate() accepts a two property keyframe sequence where one property is missing from the first keyframe
|
||||
Pass Element.animate() accepts a two property keyframe sequence where one property is missing from the last keyframe
|
||||
Pass Element.animate() accepts a one property two keyframe sequence that needs to stringify its values
|
||||
Pass Element.animate() accepts a keyframe sequence with a CSS variable reference
|
||||
Pass Element.animate() accepts a keyframe sequence with a CSS variable reference in a shorthand property
|
||||
Fail Element.animate() accepts a keyframe sequence with a CSS variable as its property
|
||||
Pass Element.animate() accepts a keyframe sequence with duplicate values for a given interior offset
|
||||
Pass Element.animate() accepts a keyframe sequence with duplicate values for offsets 0 and 1
|
||||
Pass Element.animate() accepts a two property four keyframe sequence
|
||||
Pass Element.animate() accepts a single keyframe sequence with omitted offset
|
||||
Fail Element.animate() accepts a single keyframe sequence with null offset
|
||||
Pass Element.animate() accepts a single keyframe sequence with string offset
|
||||
Fail Element.animate() accepts a single keyframe sequence with a single calc() offset
|
||||
Fail Element.animate() accepts a one property keyframe sequence with some omitted offsets
|
||||
Fail Element.animate() accepts a one property keyframe sequence with some null offsets
|
||||
Fail Element.animate() accepts a two property keyframe sequence with some omitted offsets
|
||||
Pass Element.animate() accepts a one property keyframe sequence with all omitted offsets
|
||||
Pass Element.animate() accepts a keyframe sequence with different easing values, but the same easing value for a given offset
|
||||
Pass Element.animate() accepts a keyframe sequence with different composite values, but the same composite value for a given offset
|
||||
Pass Element.animate() does not accept keyframes with an out-of-bounded positive offset
|
||||
Pass Element.animate() does not accept keyframes with an out-of-bounded negative offset
|
||||
Pass Element.animate() does not accept property-indexed keyframes not loosely sorted by offset
|
||||
Pass Element.animate() does not accept property-indexed keyframes not loosely sorted by offset even though not all offsets are specified
|
||||
Pass Element.animate() does not accept property-indexed keyframes with offsets out of range
|
||||
Pass Element.animate() does not accept keyframes not loosely sorted by offset
|
||||
Pass Element.animate() does not accept property-indexed keyframes with an invalid easing value
|
||||
Pass Element.animate() does not accept property-indexed keyframes with an invalid easing value as one of the array values
|
||||
Pass Element.animate() does not accept property-indexed keyframe with an invalid easing in the unused part of the array of easings
|
||||
Pass Element.animate() does not accept empty property-indexed keyframe with an invalid easing
|
||||
Pass Element.animate() does not accept empty property-indexed keyframe with an invalid easings array
|
||||
Pass Element.animate() does not accept a keyframe sequence with an invalid easing value
|
||||
Pass Element.animate() does not accept property-indexed keyframes with an invalid composite value
|
||||
Pass Element.animate() does not accept property-indexed keyframes with an invalid composite value as one of the array values
|
||||
Pass Element.animate() does not accept keyframes with an invalid composite value
|
||||
Pass Element.animate() accepts a double as an options argument
|
||||
Pass Element.animate() accepts a KeyframeAnimationOptions argument
|
||||
Pass Element.animate() accepts an absent options argument
|
||||
Pass Element.animate() does not accept invalid delay value: NaN
|
||||
Pass Element.animate() does not accept invalid delay value: Infinity
|
||||
Pass Element.animate() does not accept invalid delay value: -Infinity
|
||||
Pass Element.animate() accepts a duration of 'auto' using a dictionary object
|
||||
Pass Element.animate() does not accept invalid duration value: -1
|
||||
Pass Element.animate() does not accept invalid duration value: NaN
|
||||
Pass Element.animate() does not accept invalid duration value: -Infinity
|
||||
Pass Element.animate() does not accept invalid duration value: "abc"
|
||||
Pass Element.animate() does not accept invalid duration value: -1 using a dictionary object
|
||||
Pass Element.animate() does not accept invalid duration value: NaN using a dictionary object
|
||||
Pass Element.animate() does not accept invalid duration value: -Infinity using a dictionary object
|
||||
Pass Element.animate() does not accept invalid duration value: "abc" using a dictionary object
|
||||
Pass Element.animate() does not accept invalid duration value: "100" using a dictionary object
|
||||
Pass Element.animate() does not accept invalid easing: ''
|
||||
Pass Element.animate() does not accept invalid easing: '7'
|
||||
Pass Element.animate() does not accept invalid easing: 'test'
|
||||
Pass Element.animate() does not accept invalid easing: 'initial'
|
||||
Pass Element.animate() does not accept invalid easing: 'inherit'
|
||||
Pass Element.animate() does not accept invalid easing: 'unset'
|
||||
Pass Element.animate() does not accept invalid easing: 'unrecognized'
|
||||
Pass Element.animate() does not accept invalid easing: 'var(--x)'
|
||||
Pass Element.animate() does not accept invalid easing: 'ease-in-out, ease-out'
|
||||
Pass Element.animate() does not accept invalid easing: 'cubic-bezier(1.1, 0, 1, 1)'
|
||||
Pass Element.animate() does not accept invalid easing: 'cubic-bezier(0, 0, 1.1, 1)'
|
||||
Pass Element.animate() does not accept invalid easing: 'cubic-bezier(-0.1, 0, 1, 1)'
|
||||
Pass Element.animate() does not accept invalid easing: 'cubic-bezier(0, 0, -0.1, 1)'
|
||||
Pass Element.animate() does not accept invalid easing: 'cubic-bezier(0.1, 0, 4, 0.4)'
|
||||
Pass Element.animate() does not accept invalid easing: 'steps(-1, start)'
|
||||
Pass Element.animate() does not accept invalid easing: 'steps(0.1, start)'
|
||||
Pass Element.animate() does not accept invalid easing: 'steps(3, nowhere)'
|
||||
Pass Element.animate() does not accept invalid easing: 'steps(-3, end)'
|
||||
Pass Element.animate() does not accept invalid easing: 'function (a){return a}'
|
||||
Pass Element.animate() does not accept invalid easing: 'function (x){return x}'
|
||||
Pass Element.animate() does not accept invalid easing: 'function(x, y){return 0.3}'
|
||||
Pass Element.animate() does not accept invalid iterationStart value: -1
|
||||
Pass Element.animate() does not accept invalid iterationStart value: NaN
|
||||
Pass Element.animate() does not accept invalid iterationStart value: Infinity
|
||||
Pass Element.animate() does not accept invalid iterationStart value: -Infinity
|
||||
Pass Element.animate() does not accept invalid iterations value: -1
|
||||
Pass Element.animate() does not accept invalid iterations value: -Infinity
|
||||
Pass Element.animate() does not accept invalid iterations value: NaN
|
||||
Pass Element.animate() correctly sets the id attribute when no id is specified
|
||||
Pass Element.animate() correctly sets the id attribute
|
||||
Pass Element.animate() correctly sets the Animation's timeline
|
||||
Pass Element.animate() correctly sets the Animation's timeline when triggered on an element in a different document
|
||||
Pass Element.animate() correctly sets the Animation's timeline with no timeline parameter in KeyframeAnimationOptions.
|
||||
Pass Element.animate() correctly sets the Animation's timeline with undefined timeline in KeyframeAnimationOptions.
|
||||
Pass Element.animate() correctly sets the Animation's timeline with null timeline in KeyframeAnimationOptions.
|
||||
Pass Element.animate() correctly sets the Animation's timeline with DocumentTimeline in KeyframeAnimationOptions.
|
||||
Pass Element.animate() calls play on the Animation
|
||||
Pass Element.animate() does NOT trigger a style change event
|
||||
Pass animate() with pseudoElement parameter creates an Animation object
|
||||
Pass animate() with pseudoElement parameter without content creates an Animation object
|
||||
Pass animate() with pseudoElement parameter creates an Animation object for ::marker
|
||||
Pass animate() with pseudoElement parameter creates an Animation object for ::first-line
|
||||
Pass animate() with pseudoElement an Animation object targeting the correct pseudo-element
|
||||
Pass animate() with pseudoElement without content creates an Animation object targeting the correct pseudo-element
|
||||
Pass animate() with pseudoElement an Animation object targeting the correct pseudo-element for ::marker
|
||||
Pass animate() with pseudoElement an Animation object targeting the correct pseudo-element for ::first-line
|
||||
Pass animate() with a non-null invalid pseudoElement '' throws a SyntaxError
|
||||
Pass animate() with a non-null invalid pseudoElement 'before' throws a SyntaxError
|
||||
Pass animate() with a non-null invalid pseudoElement ':abc' throws a SyntaxError
|
||||
Pass animate() with a non-null invalid pseudoElement '::abc' throws a SyntaxError
|
||||
Pass animate() with pseudoElement ::placeholder does not throw
|
||||
Fail Finished fill animation doesn't replace animation on a different pseudoElement
|
|
@ -0,0 +1,181 @@
|
|||
Harness status: OK
|
||||
|
||||
Found 175 tests
|
||||
|
||||
120 Pass
|
||||
55 Fail
|
||||
Pass A KeyframeEffect can be constructed with no frames
|
||||
Pass easing values are parsed correctly when passed to the KeyframeEffect constructor in KeyframeEffectOptions
|
||||
Pass Invalid easing values are correctly rejected when passed to the KeyframeEffect constructor in KeyframeEffectOptions
|
||||
Pass composite values are parsed correctly when passed to the KeyframeEffect constructor in property-indexed keyframes
|
||||
Pass composite values are parsed correctly when passed to the KeyframeEffect constructor in regular keyframes
|
||||
Pass composite value is auto if the composite operation specified on the keyframe effect is being used
|
||||
Pass A KeyframeEffect can be constructed with a one property two value property-indexed keyframes specification
|
||||
Fail A KeyframeEffect constructed with a one property two value property-indexed keyframes specification roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a one shorthand property two value property-indexed keyframes specification
|
||||
Fail A KeyframeEffect constructed with a one shorthand property two value property-indexed keyframes specification roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a two property (one shorthand and one of its longhand components) two value property-indexed keyframes specification
|
||||
Fail A KeyframeEffect constructed with a two property (one shorthand and one of its longhand components) two value property-indexed keyframes specification roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a two property (one shorthand and one of its shorthand components) two value property-indexed keyframes specification
|
||||
Fail A KeyframeEffect constructed with a two property (one shorthand and one of its shorthand components) two value property-indexed keyframes specification roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a two property two value property-indexed keyframes specification
|
||||
Fail A KeyframeEffect constructed with a two property two value property-indexed keyframes specification roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a two property property-indexed keyframes specification with different numbers of values
|
||||
Fail A KeyframeEffect constructed with a two property property-indexed keyframes specification with different numbers of values roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a property-indexed keyframes specification with an invalid value
|
||||
Fail A KeyframeEffect constructed with a property-indexed keyframes specification with an invalid value roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a one property two value property-indexed keyframes specification that needs to stringify its values
|
||||
Fail A KeyframeEffect constructed with a one property two value property-indexed keyframes specification that needs to stringify its values roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a property-indexed keyframes specification with a CSS variable reference
|
||||
Fail A KeyframeEffect constructed with a property-indexed keyframes specification with a CSS variable reference roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a property-indexed keyframes specification with a CSS variable reference in a shorthand property
|
||||
Fail A KeyframeEffect constructed with a property-indexed keyframes specification with a CSS variable reference in a shorthand property roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a one property one value property-indexed keyframes specification
|
||||
Fail A KeyframeEffect constructed with a one property one value property-indexed keyframes specification roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a one property one non-array value property-indexed keyframes specification
|
||||
Fail A KeyframeEffect constructed with a one property one non-array value property-indexed keyframes specification roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a one property two value property-indexed keyframes specification where the first value is invalid
|
||||
Fail A KeyframeEffect constructed with a one property two value property-indexed keyframes specification where the first value is invalid roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a one property two value property-indexed keyframes specification where the second value is invalid
|
||||
Fail A KeyframeEffect constructed with a one property two value property-indexed keyframes specification where the second value is invalid roundtrips
|
||||
Fail A KeyframeEffect can be constructed with a property-indexed keyframes specification with a CSS variable as the property
|
||||
Pass A KeyframeEffect constructed with a property-indexed keyframes specification with a CSS variable as the property roundtrips
|
||||
Fail A KeyframeEffect can be constructed with a property-indexed keyframe with a single offset
|
||||
Fail A KeyframeEffect constructed with a property-indexed keyframe with a single offset roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a property-indexed keyframe with an array of offsets
|
||||
Pass A KeyframeEffect constructed with a property-indexed keyframe with an array of offsets roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a property-indexed keyframe with an array of offsets that is too short
|
||||
Fail A KeyframeEffect constructed with a property-indexed keyframe with an array of offsets that is too short roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a property-indexed keyframe with an array of offsets that is too long
|
||||
Pass A KeyframeEffect constructed with a property-indexed keyframe with an array of offsets that is too long roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a property-indexed keyframe with an empty array of offsets
|
||||
Fail A KeyframeEffect constructed with a property-indexed keyframe with an empty array of offsets roundtrips
|
||||
Fail A KeyframeEffect can be constructed with a property-indexed keyframe with an array of offsets with an embedded null value
|
||||
Pass A KeyframeEffect constructed with a property-indexed keyframe with an array of offsets with an embedded null value roundtrips
|
||||
Fail A KeyframeEffect can be constructed with a property-indexed keyframe with an array of offsets with a trailing null value
|
||||
Fail A KeyframeEffect constructed with a property-indexed keyframe with an array of offsets with a trailing null value roundtrips
|
||||
Fail A KeyframeEffect can be constructed with a property-indexed keyframe with an array of offsets with leading and trailing null values
|
||||
Fail A KeyframeEffect constructed with a property-indexed keyframe with an array of offsets with leading and trailing null values roundtrips
|
||||
Fail A KeyframeEffect can be constructed with a property-indexed keyframe with an array of offsets with adjacent null values
|
||||
Pass A KeyframeEffect constructed with a property-indexed keyframe with an array of offsets with adjacent null values roundtrips
|
||||
Fail A KeyframeEffect can be constructed with a property-indexed keyframe with an array of offsets with all null values (and too many at that)
|
||||
Pass A KeyframeEffect constructed with a property-indexed keyframe with an array of offsets with all null values (and too many at that) roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a property-indexed keyframe with a single null offset
|
||||
Fail A KeyframeEffect constructed with a property-indexed keyframe with a single null offset roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a property-indexed keyframe with an array of offsets that is not strictly ascending in the unused part of the array
|
||||
Pass A KeyframeEffect constructed with a property-indexed keyframe with an array of offsets that is not strictly ascending in the unused part of the array roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a property-indexed keyframe without any specified easing
|
||||
Fail A KeyframeEffect constructed with a property-indexed keyframe without any specified easing roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a property-indexed keyframe with a single easing
|
||||
Fail A KeyframeEffect constructed with a property-indexed keyframe with a single easing roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a property-indexed keyframe with an array of easings
|
||||
Fail A KeyframeEffect constructed with a property-indexed keyframe with an array of easings roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a property-indexed keyframe with an array of easings that is too short
|
||||
Fail A KeyframeEffect constructed with a property-indexed keyframe with an array of easings that is too short roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a property-indexed keyframe with a single-element array of easings
|
||||
Fail A KeyframeEffect constructed with a property-indexed keyframe with a single-element array of easings roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a property-indexed keyframe with an empty array of easings
|
||||
Fail A KeyframeEffect constructed with a property-indexed keyframe with an empty array of easings roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a property-indexed keyframe with an array of easings that is too long
|
||||
Fail A KeyframeEffect constructed with a property-indexed keyframe with an array of easings that is too long roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a property-indexed keyframe with a single composite operation
|
||||
Fail A KeyframeEffect constructed with a property-indexed keyframe with a single composite operation roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a property-indexed keyframe with a composite array
|
||||
Fail A KeyframeEffect constructed with a property-indexed keyframe with a composite array roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a property-indexed keyframe with a composite array that is too short
|
||||
Fail A KeyframeEffect constructed with a property-indexed keyframe with a composite array that is too short roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a property-indexed keyframe with a composite array that is too long
|
||||
Fail A KeyframeEffect constructed with a property-indexed keyframe with a composite array that is too long roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a property-indexed keyframe with a single-element composite array
|
||||
Fail A KeyframeEffect constructed with a property-indexed keyframe with a single-element composite array roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a one property one keyframe sequence
|
||||
Pass A KeyframeEffect constructed with a one property one keyframe sequence roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a one property two keyframe sequence
|
||||
Pass A KeyframeEffect constructed with a one property two keyframe sequence roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a two property two keyframe sequence
|
||||
Pass A KeyframeEffect constructed with a two property two keyframe sequence roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a one shorthand property two keyframe sequence
|
||||
Pass A KeyframeEffect constructed with a one shorthand property two keyframe sequence roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a two property (a shorthand and one of its component longhands) two keyframe sequence
|
||||
Pass A KeyframeEffect constructed with a two property (a shorthand and one of its component longhands) two keyframe sequence roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a two property keyframe sequence where one property is missing from the first keyframe
|
||||
Pass A KeyframeEffect constructed with a two property keyframe sequence where one property is missing from the first keyframe roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a two property keyframe sequence where one property is missing from the last keyframe
|
||||
Pass A KeyframeEffect constructed with a two property keyframe sequence where one property is missing from the last keyframe roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a one property two keyframe sequence that needs to stringify its values
|
||||
Pass A KeyframeEffect constructed with a one property two keyframe sequence that needs to stringify its values roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a keyframe sequence with a CSS variable reference
|
||||
Fail A KeyframeEffect constructed with a keyframe sequence with a CSS variable reference roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a keyframe sequence with a CSS variable reference in a shorthand property
|
||||
Fail A KeyframeEffect constructed with a keyframe sequence with a CSS variable reference in a shorthand property roundtrips
|
||||
Fail A KeyframeEffect can be constructed with a keyframe sequence with a CSS variable as its property
|
||||
Fail A KeyframeEffect constructed with a keyframe sequence with a CSS variable as its property roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a keyframe sequence with duplicate values for a given interior offset
|
||||
Pass A KeyframeEffect constructed with a keyframe sequence with duplicate values for a given interior offset roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a keyframe sequence with duplicate values for offsets 0 and 1
|
||||
Pass A KeyframeEffect constructed with a keyframe sequence with duplicate values for offsets 0 and 1 roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a two property four keyframe sequence
|
||||
Pass A KeyframeEffect constructed with a two property four keyframe sequence roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a single keyframe sequence with omitted offset
|
||||
Fail A KeyframeEffect constructed with a single keyframe sequence with omitted offset roundtrips
|
||||
Fail A KeyframeEffect can be constructed with a single keyframe sequence with null offset
|
||||
Pass A KeyframeEffect constructed with a single keyframe sequence with null offset roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a single keyframe sequence with string offset
|
||||
Pass A KeyframeEffect constructed with a single keyframe sequence with string offset roundtrips
|
||||
Fail A KeyframeEffect can be constructed with a single keyframe sequence with a single calc() offset
|
||||
Fail A KeyframeEffect constructed with a single keyframe sequence with a single calc() offset roundtrips
|
||||
Fail A KeyframeEffect can be constructed with a one property keyframe sequence with some omitted offsets
|
||||
Fail A KeyframeEffect constructed with a one property keyframe sequence with some omitted offsets roundtrips
|
||||
Fail A KeyframeEffect can be constructed with a one property keyframe sequence with some null offsets
|
||||
Fail A KeyframeEffect constructed with a one property keyframe sequence with some null offsets roundtrips
|
||||
Fail A KeyframeEffect can be constructed with a two property keyframe sequence with some omitted offsets
|
||||
Fail A KeyframeEffect constructed with a two property keyframe sequence with some omitted offsets roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a one property keyframe sequence with all omitted offsets
|
||||
Fail A KeyframeEffect constructed with a one property keyframe sequence with all omitted offsets roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a keyframe sequence with different easing values, but the same easing value for a given offset
|
||||
Pass A KeyframeEffect constructed with a keyframe sequence with different easing values, but the same easing value for a given offset roundtrips
|
||||
Pass A KeyframeEffect can be constructed with a keyframe sequence with different composite values, but the same composite value for a given offset
|
||||
Pass A KeyframeEffect constructed with a keyframe sequence with different composite values, but the same composite value for a given offset roundtrips
|
||||
Pass KeyframeEffect constructor throws with keyframes with an out-of-bounded positive offset
|
||||
Pass KeyframeEffect constructor throws with keyframes with an out-of-bounded negative offset
|
||||
Pass KeyframeEffect constructor throws with property-indexed keyframes not loosely sorted by offset
|
||||
Pass KeyframeEffect constructor throws with property-indexed keyframes not loosely sorted by offset even though not all offsets are specified
|
||||
Pass KeyframeEffect constructor throws with property-indexed keyframes with offsets out of range
|
||||
Pass KeyframeEffect constructor throws with keyframes not loosely sorted by offset
|
||||
Pass KeyframeEffect constructor throws with property-indexed keyframes with an invalid easing value
|
||||
Pass KeyframeEffect constructor throws with property-indexed keyframes with an invalid easing value as one of the array values
|
||||
Pass KeyframeEffect constructor throws with property-indexed keyframe with an invalid easing in the unused part of the array of easings
|
||||
Pass KeyframeEffect constructor throws with empty property-indexed keyframe with an invalid easing
|
||||
Pass KeyframeEffect constructor throws with empty property-indexed keyframe with an invalid easings array
|
||||
Pass KeyframeEffect constructor throws with a keyframe sequence with an invalid easing value
|
||||
Pass KeyframeEffect constructor throws with property-indexed keyframes with an invalid composite value
|
||||
Pass KeyframeEffect constructor throws with property-indexed keyframes with an invalid composite value as one of the array values
|
||||
Pass KeyframeEffect constructor throws with keyframes with an invalid composite value
|
||||
Fail A KeyframeEffect constructed without any KeyframeEffectOptions object
|
||||
Pass A KeyframeEffect constructed by an empty KeyframeEffectOptions object
|
||||
Pass A KeyframeEffect constructed by a normal KeyframeEffectOptions object
|
||||
Pass A KeyframeEffect constructed by a double value
|
||||
Pass A KeyframeEffect constructed by +Infinity
|
||||
Pass A KeyframeEffect constructed by an Infinity duration
|
||||
Pass A KeyframeEffect constructed by an auto duration
|
||||
Pass A KeyframeEffect constructed by an Infinity iterations
|
||||
Pass A KeyframeEffect constructed by an auto fill
|
||||
Pass A KeyframeEffect constructed by a forwards fill
|
||||
Pass Invalid KeyframeEffect option by -Infinity
|
||||
Pass Invalid KeyframeEffect option by NaN
|
||||
Pass Invalid KeyframeEffect option by a negative value
|
||||
Pass Invalid KeyframeEffect option by a negative Infinity duration
|
||||
Pass Invalid KeyframeEffect option by a NaN duration
|
||||
Pass Invalid KeyframeEffect option by a negative duration
|
||||
Pass Invalid KeyframeEffect option by a string duration
|
||||
Pass Invalid KeyframeEffect option by a negative Infinity iterations
|
||||
Pass Invalid KeyframeEffect option by a NaN iterations
|
||||
Pass Invalid KeyframeEffect option by a negative iterations
|
||||
Pass Invalid KeyframeEffect option by a blank easing
|
||||
Pass Invalid KeyframeEffect option by an unrecognized easing
|
||||
Pass Invalid KeyframeEffect option by an 'initial' easing
|
||||
Pass Invalid KeyframeEffect option by an 'inherit' easing
|
||||
Pass Invalid KeyframeEffect option by a variable easing
|
||||
Pass Invalid KeyframeEffect option by a multi-value easing
|
||||
Pass A KeyframeEffect constructed with null target
|
||||
Pass KeyframeEffect constructor propagates exceptions generated by accessing the options object
|
|
@ -0,0 +1,86 @@
|
|||
Harness status: OK
|
||||
|
||||
Found 80 tests
|
||||
|
||||
66 Pass
|
||||
14 Fail
|
||||
Pass Keyframes can be replaced with an empty keyframe
|
||||
Pass Keyframes can be replaced with a one property two value property-indexed keyframes specification
|
||||
Pass Keyframes can be replaced with a one shorthand property two value property-indexed keyframes specification
|
||||
Pass Keyframes can be replaced with a two property (one shorthand and one of its longhand components) two value property-indexed keyframes specification
|
||||
Pass Keyframes can be replaced with a two property (one shorthand and one of its shorthand components) two value property-indexed keyframes specification
|
||||
Pass Keyframes can be replaced with a two property two value property-indexed keyframes specification
|
||||
Pass Keyframes can be replaced with a two property property-indexed keyframes specification with different numbers of values
|
||||
Pass Keyframes can be replaced with a property-indexed keyframes specification with an invalid value
|
||||
Pass Keyframes can be replaced with a one property two value property-indexed keyframes specification that needs to stringify its values
|
||||
Pass Keyframes can be replaced with a property-indexed keyframes specification with a CSS variable reference
|
||||
Pass Keyframes can be replaced with a property-indexed keyframes specification with a CSS variable reference in a shorthand property
|
||||
Pass Keyframes can be replaced with a one property one value property-indexed keyframes specification
|
||||
Pass Keyframes can be replaced with a one property one non-array value property-indexed keyframes specification
|
||||
Pass Keyframes can be replaced with a one property two value property-indexed keyframes specification where the first value is invalid
|
||||
Pass Keyframes can be replaced with a one property two value property-indexed keyframes specification where the second value is invalid
|
||||
Fail Keyframes can be replaced with a property-indexed keyframes specification with a CSS variable as the property
|
||||
Fail Keyframes can be replaced with a property-indexed keyframe with a single offset
|
||||
Pass Keyframes can be replaced with a property-indexed keyframe with an array of offsets
|
||||
Pass Keyframes can be replaced with a property-indexed keyframe with an array of offsets that is too short
|
||||
Pass Keyframes can be replaced with a property-indexed keyframe with an array of offsets that is too long
|
||||
Pass Keyframes can be replaced with a property-indexed keyframe with an empty array of offsets
|
||||
Fail Keyframes can be replaced with a property-indexed keyframe with an array of offsets with an embedded null value
|
||||
Fail Keyframes can be replaced with a property-indexed keyframe with an array of offsets with a trailing null value
|
||||
Fail Keyframes can be replaced with a property-indexed keyframe with an array of offsets with leading and trailing null values
|
||||
Fail Keyframes can be replaced with a property-indexed keyframe with an array of offsets with adjacent null values
|
||||
Fail Keyframes can be replaced with a property-indexed keyframe with an array of offsets with all null values (and too many at that)
|
||||
Pass Keyframes can be replaced with a property-indexed keyframe with a single null offset
|
||||
Pass Keyframes can be replaced with a property-indexed keyframe with an array of offsets that is not strictly ascending in the unused part of the array
|
||||
Pass Keyframes can be replaced with a property-indexed keyframe without any specified easing
|
||||
Pass Keyframes can be replaced with a property-indexed keyframe with a single easing
|
||||
Pass Keyframes can be replaced with a property-indexed keyframe with an array of easings
|
||||
Pass Keyframes can be replaced with a property-indexed keyframe with an array of easings that is too short
|
||||
Pass Keyframes can be replaced with a property-indexed keyframe with a single-element array of easings
|
||||
Pass Keyframes can be replaced with a property-indexed keyframe with an empty array of easings
|
||||
Pass Keyframes can be replaced with a property-indexed keyframe with an array of easings that is too long
|
||||
Pass Keyframes can be replaced with a property-indexed keyframe with a single composite operation
|
||||
Pass Keyframes can be replaced with a property-indexed keyframe with a composite array
|
||||
Pass Keyframes can be replaced with a property-indexed keyframe with a composite array that is too short
|
||||
Pass Keyframes can be replaced with a property-indexed keyframe with a composite array that is too long
|
||||
Pass Keyframes can be replaced with a property-indexed keyframe with a single-element composite array
|
||||
Pass Keyframes can be replaced with a one property one keyframe sequence
|
||||
Pass Keyframes can be replaced with a one property two keyframe sequence
|
||||
Pass Keyframes can be replaced with a two property two keyframe sequence
|
||||
Pass Keyframes can be replaced with a one shorthand property two keyframe sequence
|
||||
Pass Keyframes can be replaced with a two property (a shorthand and one of its component longhands) two keyframe sequence
|
||||
Pass Keyframes can be replaced with a two property keyframe sequence where one property is missing from the first keyframe
|
||||
Pass Keyframes can be replaced with a two property keyframe sequence where one property is missing from the last keyframe
|
||||
Pass Keyframes can be replaced with a one property two keyframe sequence that needs to stringify its values
|
||||
Pass Keyframes can be replaced with a keyframe sequence with a CSS variable reference
|
||||
Pass Keyframes can be replaced with a keyframe sequence with a CSS variable reference in a shorthand property
|
||||
Fail Keyframes can be replaced with a keyframe sequence with a CSS variable as its property
|
||||
Pass Keyframes can be replaced with a keyframe sequence with duplicate values for a given interior offset
|
||||
Pass Keyframes can be replaced with a keyframe sequence with duplicate values for offsets 0 and 1
|
||||
Pass Keyframes can be replaced with a two property four keyframe sequence
|
||||
Pass Keyframes can be replaced with a single keyframe sequence with omitted offset
|
||||
Fail Keyframes can be replaced with a single keyframe sequence with null offset
|
||||
Pass Keyframes can be replaced with a single keyframe sequence with string offset
|
||||
Fail Keyframes can be replaced with a single keyframe sequence with a single calc() offset
|
||||
Fail Keyframes can be replaced with a one property keyframe sequence with some omitted offsets
|
||||
Fail Keyframes can be replaced with a one property keyframe sequence with some null offsets
|
||||
Fail Keyframes can be replaced with a two property keyframe sequence with some omitted offsets
|
||||
Pass Keyframes can be replaced with a one property keyframe sequence with all omitted offsets
|
||||
Pass Keyframes can be replaced with a keyframe sequence with different easing values, but the same easing value for a given offset
|
||||
Pass Keyframes can be replaced with a keyframe sequence with different composite values, but the same composite value for a given offset
|
||||
Pass KeyframeEffect constructor throws with keyframes with an out-of-bounded positive offset
|
||||
Pass KeyframeEffect constructor throws with keyframes with an out-of-bounded negative offset
|
||||
Pass KeyframeEffect constructor throws with property-indexed keyframes not loosely sorted by offset
|
||||
Pass KeyframeEffect constructor throws with property-indexed keyframes not loosely sorted by offset even though not all offsets are specified
|
||||
Pass KeyframeEffect constructor throws with property-indexed keyframes with offsets out of range
|
||||
Pass KeyframeEffect constructor throws with keyframes not loosely sorted by offset
|
||||
Pass KeyframeEffect constructor throws with property-indexed keyframes with an invalid easing value
|
||||
Pass KeyframeEffect constructor throws with property-indexed keyframes with an invalid easing value as one of the array values
|
||||
Pass KeyframeEffect constructor throws with property-indexed keyframe with an invalid easing in the unused part of the array of easings
|
||||
Pass KeyframeEffect constructor throws with empty property-indexed keyframe with an invalid easing
|
||||
Pass KeyframeEffect constructor throws with empty property-indexed keyframe with an invalid easings array
|
||||
Pass KeyframeEffect constructor throws with a keyframe sequence with an invalid easing value
|
||||
Pass KeyframeEffect constructor throws with property-indexed keyframes with an invalid composite value
|
||||
Pass KeyframeEffect constructor throws with property-indexed keyframes with an invalid composite value as one of the array values
|
||||
Pass KeyframeEffect constructor throws with keyframes with an invalid composite value
|
||||
Fail Changes made via setKeyframes should be immediately visible in style
|
Loading…
Add table
Add a link
Reference in a new issue