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%' 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