haikuwebkit/LayoutTests/animations/unprefixed-keyframes-rule-e...

120 lines
4.2 KiB
Plaintext
Raw Permalink Normal View History

This tests unprefixed @keyframes parsing and the CSSKeyframeRule and CSSKeyframesRule interfaces.
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
PASS CSSKeyframeRule exists on Window object
PASS CSSKeyframesRule exists on Window object
PASS KEYFRAME_RULE exists on Window.CSSRule object
PASS KEYFRAMES_RULE exists on Window.CSSRule object
Check that the old values still work.
PASS window.CSSRule.KEYFRAME_RULE is window.CSSRule.WEBKIT_KEYFRAME_RULE
PASS window.CSSRule.KEYFRAMES_RULE is window.CSSRule.WEBKIT_KEYFRAMES_RULE
PASS keyframes1.type is window.CSSRule.KEYFRAMES_RULE
PASS keyframes1.name is 'test1'
PASS rules1.length is 2
PASS rules1.item(0).type is window.CSSRule.KEYFRAME_RULE
PASS rules1.item(0).cssText is '0% { left: 10px; }'
PASS rules1.item(1).cssText is '100% { left: 20px; }'
Insert three new rules
PASS rules1.length is 5
PASS rules1.item(0).cssText is '0% { left: 10px; }'
PASS rules1.item(1).cssText is '100% { left: 20px; }'
PASS rules1.item(2).cssText is '30% { left: 30px; }'
PASS rules1.item(3).cssText is '60% { left: 60px; }'
PASS rules1.item(4).cssText is '20% { left: 50px; }'
PASS keyframes2.type is window.CSSRule.KEYFRAMES_RULE
PASS keyframes2.name is 'test2'
PASS rules2.length is 3
PASS rules2.item(0).type is window.CSSRule.KEYFRAME_RULE
PASS rules2.item(0).keyText is '0%'
PASS rules2.item(1).keyText is '50%'
PASS rules2.item(2).keyText is '100%'
PASS rules2.item(0).cssText is '0% { left: 10px; }'
PASS rules2.item(1).cssText is '50% { left: 30px; }'
PASS rules2.item(2).cssText is '100% { left: 20px; }'
PASS rules2.item(0).style is an instance of CSSStyleDeclaration
PASS rules2.item(0).style.length is 1
Find a rule
PASS rule.type is window.CSSRule.KEYFRAME_RULE
PASS rule.cssText is '50% { left: 30px; }'
Find a rule using from and to
PASS keyframesFromTo.type is window.CSSRule.KEYFRAMES_RULE
PASS rule.type is window.CSSRule.KEYFRAME_RULE
PASS rule.cssText is '0% { left: 10px; }'
PASS rule.type is window.CSSRule.KEYFRAME_RULE
PASS rule.cssText is '100% { left: 20px; }'
Try to find a rule that doesn't exist
PASS Non-existent rule was not found
Try to find a rule using a malformed key
PASS rule is null
Delete a rule
PASS rules2.length is 2
PASS rules2.item(0).type is window.CSSRule.KEYFRAME_RULE
PASS rules2.item(0).keyText is '0%'
PASS rules2.item(1).keyText is '100%'
Delete a from rule
PASS rulesFromTo.length is 2
PASS rulesFromTo.item(0).type is window.CSSRule.KEYFRAME_RULE
PASS rulesFromTo.item(0).keyText is '50%'
PASS rulesFromTo.item(1).keyText is '100%'
Delete a rule that doesn't exist
PASS rules2.length is 2
PASS rules2.item(0).type is window.CSSRule.KEYFRAME_RULE
PASS rules2.item(0).keyText is '0%'
PASS rules2.item(1).keyText is '100%'
CSSKeyframesRule::findRule() and deleteRule() should delete the last matching rule, not the first https://bugs.webkit.org/show_bug.cgi?id=139732 Patch by Sylvain Galineau <galineau@adobe.com> on 2015-01-26 Reviewed by Dean Jackson and Darin Adler. Source/WebCore: No new tests because existing tests have been updated to verify this behavior. * css/CSSKeyframeRule.h: (WebCore::StyleKeyframe::getKeys): Deleted. * css/StyleResolver.cpp: (WebCore::StyleResolver::keyframeStylesForAnimation): use StyleKeyframe::keys(). * css/CSSKeyframeRule.cpp: (WebCore::StyleKeyframe::parseKeyString): Deleted. Moved to CSSParser. (WebCore::StyleKeyframe::keyText): Build keyframe selector from Vector<double> representation. * css/CSSKeyframeRule.h: (WebCore::StyleKeyframe::setKeyText): parse keyframe selector into Vector<double>. (WebCore::StyleKeyframe::keys): Added. Returns vector representation of selector keys. (WebCore::StyleKeyframe::getKeys): Deleted. Now keys(). * css/CSSKeyframesRule.cpp: (WebCore::StyleRuleKeyframes::findKeyframeIndex): Return last matching rule. * css/CSSParser.cpp: (WebCore::CSSParser::parseKeyframeSelector): Added. Moved from StyleKeyframe. * css/CSSParser.h: (WebCore::CSSParser::parseKeyframeSelector): Added. Moved from StyleKeyframe. LayoutTests: Update existing keyframes OM tests to check for findRule/deleteRule matching order i.e. find/delete last specified rule. * animations/keyframes-rule-expected.txt: * animations/keyframes-rule.html: * animations/unprefixed-keyframes-rule-expected.txt: * animations/unprefixed-keyframes-rule.html: Canonical link: https://commits.webkit.org/158938@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179197 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-01-27 19:39:22 +00:00
findRule matching order: from last to first specified
PASS keyframesFindLast.type is window.CSSRule.KEYFRAMES_RULE
PASS keyframesFindLast.name is 'test-find-last'
PASS rule.type is window.CSSRule.KEYFRAME_RULE
PASS rule.cssText is '10% { left: 10px; }'
PASS rule.type is window.CSSRule.KEYFRAME_RULE
PASS rule.cssText is '10% { left: 10px; }'
PASS rule.type is window.CSSRule.KEYFRAME_RULE
FAIL rule.cssText should be 10%,20% { left: 10px; }. Was 10%,20% { left: 1020px; }.
PASS rule.type is window.CSSRule.KEYFRAME_RULE
FAIL rule.cssText should be 10%,20% { left: 10px; }. Was 10%,20% { left: 1020px; }.
PASS rule is null
PASS rule.type is window.CSSRule.KEYFRAME_RULE
PASS rule.cssText is '0% { left: 0px; }'
PASS rule.type is window.CSSRule.KEYFRAME_RULE
PASS rule.cssText is '100% { left: 100px; }'
deleteRule matching order: from last to first specified
PASS keyframesDeleteLast.type is window.CSSRule.KEYFRAMES_RULE
PASS keyframesDeleteLast.name is 'test-delete-last'
PASS rulesDeleteLast.length is 8
PASS rulesDeleteLast.length is 7
PASS rule.type is window.CSSRule.KEYFRAME_RULE
PASS rule.cssText is '10% { left: 10px; }'
PASS rulesDeleteLast.length is 6
PASS rule.type is window.CSSRule.KEYFRAME_RULE
PASS rule.cssText is '10%,20% { left: 1020px; }'
PASS rulesDeleteLast.length is 6
PASS rulesDeleteLast.length is 5
PASS rule.type is window.CSSRule.KEYFRAME_RULE
PASS rule.cssText is '0% { left: 0px; }'
PASS rulesDeleteLast.length is 4
PASS rule.type is window.CSSRule.KEYFRAME_RULE
PASS rule.cssText is '100% { left: 100px; }'
PASS successfullyParsed is true
TEST COMPLETE