| (function() { |
| test(function() { |
| var event = new AnimationEvent(""); |
| assert_true(event instanceof window.AnimationEvent); |
| }, "the event is an instance of AnimationEvent"); |
| |
| test(function() { |
| var event = new AnimationEvent(""); |
| assert_true(event instanceof window.Event); |
| }, "the event inherts from Event"); |
| |
| test(function() { |
| assert_throws_js(TypeError, function() { |
| new AnimationEvent(); |
| }, 'First argument is required, so was expecting a TypeError.'); |
| }, 'Missing type argument'); |
| |
| test(function() { |
| var event = new AnimationEvent("test"); |
| assert_equals(event.type, "test"); |
| }, "type argument is string"); |
| |
| test(function() { |
| var event = new AnimationEvent(null); |
| assert_equals(event.type, "null"); |
| }, "type argument is null"); |
| |
| test(function() { |
| var event = new AnimationEvent(undefined); |
| assert_equals(event.type, "undefined"); |
| }, "event type set to undefined"); |
| |
| test(function() { |
| var event = new AnimationEvent("test"); |
| assert_equals(event.animationName, ""); |
| }, "animationName has default value of empty string"); |
| |
| test(function() { |
| var event = new AnimationEvent("test"); |
| assert_equals(event.elapsedTime, 0.0); |
| }, "elapsedTime has default value of 0.0"); |
| |
| test(function() { |
| var event = new AnimationEvent("test"); |
| assert_readonly(event, "animationName", "readonly attribute value"); |
| }, "animationName is readonly"); |
| |
| test(function() { |
| var event = new AnimationEvent("test"); |
| assert_readonly(event, "elapsedTime", "readonly attribute value"); |
| }, "elapsedTime is readonly"); |
| |
| test(function() { |
| var event = new AnimationEvent("test", null); |
| assert_equals(event.animationName, ""); |
| assert_equals(event.elapsedTime, 0.0); |
| }, "animationEventInit argument is null"); |
| |
| test(function() { |
| var event = new AnimationEvent("test", undefined); |
| assert_equals(event.animationName, ""); |
| assert_equals(event.elapsedTime, 0.0); |
| }, "animationEventInit argument is undefined"); |
| |
| test(function() { |
| var event = new AnimationEvent("test", {}); |
| assert_equals(event.animationName, ""); |
| assert_equals(event.elapsedTime, 0.0); |
| }, "animationEventInit argument is empty dictionary"); |
| |
| test(function() { |
| var event = new AnimationEvent("test", {pseudoElement: "::testPseudo"}); |
| assert_equals(event.pseudoElement, "::testPseudo"); |
| }, "AnimationEvent.pseudoElement initialized from the dictionary"); |
| |
| test(function() { |
| var event = new AnimationEvent("test", {animationName: "sample"}); |
| assert_equals(event.animationName, "sample"); |
| }, "animationName set to 'sample'"); |
| |
| test(function() { |
| var event = new AnimationEvent("test", {animationName: undefined}); |
| assert_equals(event.animationName, ""); |
| }, "animationName set to undefined"); |
| |
| test(function() { |
| var event = new AnimationEvent("test", {animationName: null}); |
| assert_equals(event.animationName, "null"); |
| }, "animationName set to null"); |
| |
| test(function() { |
| var event = new AnimationEvent("test", {animationName: false}); |
| assert_equals(event.animationName, "false"); |
| }, "animationName set to false"); |
| |
| test(function() { |
| var event = new AnimationEvent("test", {animationName: true}); |
| assert_equals(event.animationName, "true"); |
| }, "animationName set to true"); |
| |
| test(function() { |
| var event = new AnimationEvent("test", {animationName: 0.5}); |
| assert_equals(event.animationName, "0.5"); |
| }, "animationName set to a number"); |
| |
| test(function() { |
| var event = new AnimationEvent("test", {animationName: []}); |
| assert_equals(event.animationName, ""); |
| }, "animationName set to []"); |
| |
| test(function() { |
| var event = new AnimationEvent("test", {animationName: [1, 2, 3]}); |
| assert_equals(event.animationName, "1,2,3"); |
| }, "animationName set to [1, 2, 3]"); |
| |
| test(function() { |
| var event = new AnimationEvent("test", {animationName: {sample: 0.5}}); |
| assert_equals(event.animationName, "[object Object]"); |
| }, "animationName set to an object"); |
| |
| test(function() { |
| var event = new AnimationEvent("test", |
| {animationName: {valueOf: function () { return 'sample'; }}}); |
| assert_equals(event.animationName, "[object Object]"); |
| }, "animationName set to an object with a valueOf function"); |
| |
| test(function() { |
| var event = new AnimationEvent("test", {elapsedTime: 0.5}); |
| assert_equals(event.elapsedTime, 0.5); |
| }, "elapsedTime set to 0.5"); |
| |
| test(function() { |
| var event = new AnimationEvent("test", {elapsedTime: -0.5}); |
| assert_equals(event.elapsedTime, -0.5); |
| }, "elapsedTime set to -0.5"); |
| |
| test(function() { |
| var event = new AnimationEvent("test", {elapsedTime: undefined}); |
| assert_equals(event.elapsedTime, 0); |
| }, "elapsedTime set to undefined"); |
| |
| test(function() { |
| var event = new AnimationEvent("test", {elapsedTime: null}); |
| assert_equals(event.elapsedTime, 0); |
| }, "elapsedTime set to null"); |
| |
| test(function() { |
| var event = new AnimationEvent("test", {elapsedTime: false}); |
| assert_equals(event.elapsedTime, 0); |
| }, "elapsedTime set to false"); |
| |
| test(function() { |
| var event = new AnimationEvent("test", {elapsedTime: true}); |
| assert_equals(event.elapsedTime, 1); |
| }, "elapsedTime set to true"); |
| |
| test(function() { |
| var event = new AnimationEvent("test", {elapsedTime: ""}); |
| assert_equals(event.elapsedTime, 0); |
| }, "elapsedTime set to ''"); |
| |
| test(function() { |
| var event = new AnimationEvent("test", {elapsedTime: []}); |
| assert_equals(event.elapsedTime, 0); |
| }, "elapsedTime set to []"); |
| |
| test(function() { |
| var event = new AnimationEvent("test", {elapsedTime: [0.5]}); |
| assert_equals(event.elapsedTime, 0.5); |
| }, "elapsedTime set to [0.5]"); |
| |
| test(function() { |
| var event = new AnimationEvent( |
| "test", {elapsedTime: { valueOf: function() { return 0.5; }}}); |
| assert_equals(event.elapsedTime, 0.5); |
| }, "elapsedTime set to an object with a valueOf function"); |
| |
| test(function() { |
| assert_throws_js(TypeError, function() { |
| new AnimationEvent("test", {elapsedTime: NaN}); |
| }, 'elapsedTime cannot be NaN so was expecting a TypeError'); |
| }, "elapsedTime cannot be set to NaN"); |
| |
| test(function() { |
| assert_throws_js(TypeError, function() { |
| new AnimationEvent("test", {elapsedTime: Infinity}); |
| }, 'elapsedTime cannot be Infinity so was expecting a TypeError'); |
| }, "elapsedTime cannot be set to Infinity"); |
| |
| test(function() { |
| assert_throws_js(TypeError, function() { |
| new AnimationEvent("test", {elapsedTime: -Infinity}); |
| }, 'elapsedTime cannot be -Infinity so was expecting a TypeError'); |
| }, "elapsedTime cannot be set to -Infinity"); |
| |
| test(function() { |
| assert_throws_js(TypeError, function() { |
| new AnimationEvent("test", {elapsedTime: "sample"}); |
| }, 'elapsedTime cannot be a string so was expecting a TypeError'); |
| }, "elapsedTime cannot be set to 'sample'"); |
| |
| test(function() { |
| assert_throws_js(TypeError, function() { |
| new AnimationEvent("test", {elapsedTime: [0.5, 1.0]}); |
| }, 'elapsedTime cannot be a multi-element array so was expecting a TypeError'); |
| }, "elapsedTime cannot be set to [0.5, 1.0]"); |
| |
| test(function() { |
| assert_throws_js(TypeError, function() { |
| new AnimationEvent("test", {elapsedTime: { sample: 0.5}}); |
| }, 'elapsedTime cannot be an object so was expecting a TypeError'); |
| }, "elapsedTime cannot be set to an object"); |
| |
| test(function() { |
| var eventInit = {animationName: "sample", elapsedTime: 0.5}; |
| var event = new AnimationEvent("test", eventInit); |
| assert_equals(event.animationName, "sample"); |
| assert_equals(event.elapsedTime, 0.5); |
| }, "AnimationEventInit properties set value"); |
| })(); |