<html>
<head>
<link rel="stylesheet" href="../fast/js/resources/js-test-style.css">
<script src="../fast/js/resources/js-test-pre.js"></script>
</head>
<body>
<p id="description"></p>
<div id="console"></div>
<script>

description("Test dynamic creation of WebKitAnimationEvent.");

if (document.createEvent)
    testPassed("document.createEvent exists");
else
    testFailed("document.createEvent missing");

debug("");
debug("Test creation of WebKitAnimationEvent");

var ev = document.createEvent("WebKitAnimationEvent");

shouldBe("typeof(ev)", "'object'");
shouldBe("ev.animationName", "''");
shouldBe("ev.elapsedTime", "0.0");

debug("");
debug("Create a MouseEvent and make sure it doesn't have the WebKitAnimationEnd event properties");

ev = document.createEvent("MouseEvent");

shouldBe("typeof(ev)", "'object'");
shouldBe("ev.animationName", "undefined");
shouldBe("ev.elapsedTime", "undefined");

debug("");
successfullyParsed = true;

</script>
<script src="../fast/js/resources/js-test-post.js"></script>
</body>
</html>
