blob: 13cee2a43ac06bfdf845357e3a4ba95c824d4a5f [file] [log] [blame]
<!DOCTYPE html>
<style type="text/css" media="screen">
#test {
position: absolute;
left: 0;
top: 100px;
height: 100px;
width: 100px;
background-color: blue;
animation-duration: 1s;
animation-timing-function: linear;
animation-name: anim;
animation-fill-mode: forwards;
}
</style>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script>
async_test(t => {
window.addEventListener("load", t.step_func_done(() => {
var testContainer = document.createElement("div");
document.body.appendChild(testContainer);
testContainer.innerHTML = '<div style="width:500px;height:500px"><div id="test">hello</div></div>';
e = document.getElementById('test');
var lastSheet = document.styleSheets[document.styleSheets.length - 1];
lastSheet.insertRule("@keyframes anim { from { left: 200px; } to { left: 300px;} }", lastSheet.cssRules.length);
var keyframeRule = lastSheet.cssRules[lastSheet.cssRules.length - 1];
assert_equals(keyframeRule.toString(), "[object CSSKeyframesRule]");
assert_equals(keyframeRule.type, 7);
assert_equals(keyframeRule.name, "anim");
assert_equals(keyframeRule.findRule('from').cssText, "0% { left: 200px; }");
assert_equals(keyframeRule.findRule('to').cssText, "100% { left: 300px; }");
keyframeRule.deleteRule("from");
assert_equals(keyframeRule.findRule('from'), null);
keyframeRule.appendRule("from { left: 200px; }");
assert_equals(keyframeRule.findRule('from').cssText, "0% { left: 200px; }");
assert_equals(keyframeRule.cssRules[0].toString(), "[object CSSKeyframeRule]");
assert_equals(keyframeRule.cssRules[0].cssText, "100% { left: 300px; }");
assert_equals(keyframeRule.cssRules[0].keyText, "100%");
assert_equals(keyframeRule.cssRules[0].style.cssText, "left: 300px;");
assert_equals(keyframeRule.cssRules[1].toString(), "[object CSSKeyframeRule]");
assert_equals(keyframeRule.cssRules[1].cssText, "0% { left: 200px; }");
assert_equals(keyframeRule.cssRules[1].keyText, "0%");
assert_equals(keyframeRule.cssRules[1].style.cssText, "left: 200px;");
try {
new CSSKeyframesRule().name;
} catch (e) {
assert_equals(e.message, "Illegal constructor");
}
document.body.removeChild(testContainer);
}));
}, "Test the CSSOM of @keyframes");
</script>