summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/css/css-animations/animationevent-interface.js
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/css/css-animations/animationevent-interface.js')
-rw-r--r--testing/web-platform/tests/css/css-animations/animationevent-interface.js220
1 files changed, 220 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/css-animations/animationevent-interface.js b/testing/web-platform/tests/css/css-animations/animationevent-interface.js
new file mode 100644
index 0000000000..fcb7ceba20
--- /dev/null
+++ b/testing/web-platform/tests/css/css-animations/animationevent-interface.js
@@ -0,0 +1,220 @@
+(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");
+})();