animationevent-interface.js (7749B)
1 (function() { 2 test(function() { 3 var event = new AnimationEvent(""); 4 assert_true(event instanceof window.AnimationEvent); 5 }, "the event is an instance of AnimationEvent"); 6 7 test(function() { 8 var event = new AnimationEvent(""); 9 assert_true(event instanceof window.Event); 10 }, "the event inherts from Event"); 11 12 test(function() { 13 assert_throws_js(TypeError, function() { 14 new AnimationEvent(); 15 }, 'First argument is required, so was expecting a TypeError.'); 16 }, 'Missing type argument'); 17 18 test(function() { 19 var event = new AnimationEvent("test"); 20 assert_equals(event.type, "test"); 21 }, "type argument is string"); 22 23 test(function() { 24 var event = new AnimationEvent(null); 25 assert_equals(event.type, "null"); 26 }, "type argument is null"); 27 28 test(function() { 29 var event = new AnimationEvent(undefined); 30 assert_equals(event.type, "undefined"); 31 }, "event type set to undefined"); 32 33 test(function() { 34 var event = new AnimationEvent("test"); 35 assert_equals(event.animationName, ""); 36 }, "animationName has default value of empty string"); 37 38 test(function() { 39 var event = new AnimationEvent("test"); 40 assert_equals(event.elapsedTime, 0.0); 41 }, "elapsedTime has default value of 0.0"); 42 43 test(function() { 44 var event = new AnimationEvent("test"); 45 assert_readonly(event, "animationName", "readonly attribute value"); 46 }, "animationName is readonly"); 47 48 test(function() { 49 var event = new AnimationEvent("test"); 50 assert_readonly(event, "elapsedTime", "readonly attribute value"); 51 }, "elapsedTime is readonly"); 52 53 test(function() { 54 var event = new AnimationEvent("test", null); 55 assert_equals(event.animationName, ""); 56 assert_equals(event.elapsedTime, 0.0); 57 }, "animationEventInit argument is null"); 58 59 test(function() { 60 var event = new AnimationEvent("test", undefined); 61 assert_equals(event.animationName, ""); 62 assert_equals(event.elapsedTime, 0.0); 63 }, "animationEventInit argument is undefined"); 64 65 test(function() { 66 var event = new AnimationEvent("test", {}); 67 assert_equals(event.animationName, ""); 68 assert_equals(event.elapsedTime, 0.0); 69 }, "animationEventInit argument is empty dictionary"); 70 71 test(function() { 72 var event = new AnimationEvent("test", {pseudoElement: "::testPseudo"}); 73 assert_equals(event.pseudoElement, "::testPseudo"); 74 }, "AnimationEvent.pseudoElement initialized from the dictionary"); 75 76 test(function() { 77 var event = new AnimationEvent("test", {animationName: "sample"}); 78 assert_equals(event.animationName, "sample"); 79 }, "animationName set to 'sample'"); 80 81 test(function() { 82 var event = new AnimationEvent("test", {animationName: undefined}); 83 assert_equals(event.animationName, ""); 84 }, "animationName set to undefined"); 85 86 test(function() { 87 var event = new AnimationEvent("test", {animationName: null}); 88 assert_equals(event.animationName, "null"); 89 }, "animationName set to null"); 90 91 test(function() { 92 var event = new AnimationEvent("test", {animationName: false}); 93 assert_equals(event.animationName, "false"); 94 }, "animationName set to false"); 95 96 test(function() { 97 var event = new AnimationEvent("test", {animationName: true}); 98 assert_equals(event.animationName, "true"); 99 }, "animationName set to true"); 100 101 test(function() { 102 var event = new AnimationEvent("test", {animationName: 0.5}); 103 assert_equals(event.animationName, "0.5"); 104 }, "animationName set to a number"); 105 106 test(function() { 107 var event = new AnimationEvent("test", {animationName: []}); 108 assert_equals(event.animationName, ""); 109 }, "animationName set to []"); 110 111 test(function() { 112 var event = new AnimationEvent("test", {animationName: [1, 2, 3]}); 113 assert_equals(event.animationName, "1,2,3"); 114 }, "animationName set to [1, 2, 3]"); 115 116 test(function() { 117 var event = new AnimationEvent("test", {animationName: {sample: 0.5}}); 118 assert_equals(event.animationName, "[object Object]"); 119 }, "animationName set to an object"); 120 121 test(function() { 122 var event = new AnimationEvent("test", 123 {animationName: {valueOf: function () { return 'sample'; }}}); 124 assert_equals(event.animationName, "[object Object]"); 125 }, "animationName set to an object with a valueOf function"); 126 127 test(function() { 128 var event = new AnimationEvent("test", {elapsedTime: 0.5}); 129 assert_equals(event.elapsedTime, 0.5); 130 }, "elapsedTime set to 0.5"); 131 132 test(function() { 133 var event = new AnimationEvent("test", {elapsedTime: -0.5}); 134 assert_equals(event.elapsedTime, -0.5); 135 }, "elapsedTime set to -0.5"); 136 137 test(function() { 138 var event = new AnimationEvent("test", {elapsedTime: undefined}); 139 assert_equals(event.elapsedTime, 0); 140 }, "elapsedTime set to undefined"); 141 142 test(function() { 143 var event = new AnimationEvent("test", {elapsedTime: null}); 144 assert_equals(event.elapsedTime, 0); 145 }, "elapsedTime set to null"); 146 147 test(function() { 148 var event = new AnimationEvent("test", {elapsedTime: false}); 149 assert_equals(event.elapsedTime, 0); 150 }, "elapsedTime set to false"); 151 152 test(function() { 153 var event = new AnimationEvent("test", {elapsedTime: true}); 154 assert_equals(event.elapsedTime, 1); 155 }, "elapsedTime set to true"); 156 157 test(function() { 158 var event = new AnimationEvent("test", {elapsedTime: ""}); 159 assert_equals(event.elapsedTime, 0); 160 }, "elapsedTime set to ''"); 161 162 test(function() { 163 var event = new AnimationEvent("test", {elapsedTime: []}); 164 assert_equals(event.elapsedTime, 0); 165 }, "elapsedTime set to []"); 166 167 test(function() { 168 var event = new AnimationEvent("test", {elapsedTime: [0.5]}); 169 assert_equals(event.elapsedTime, 0.5); 170 }, "elapsedTime set to [0.5]"); 171 172 test(function() { 173 var event = new AnimationEvent( 174 "test", {elapsedTime: { valueOf: function() { return 0.5; }}}); 175 assert_equals(event.elapsedTime, 0.5); 176 }, "elapsedTime set to an object with a valueOf function"); 177 178 test(function() { 179 assert_throws_js(TypeError, function() { 180 new AnimationEvent("test", {elapsedTime: NaN}); 181 }, 'elapsedTime cannot be NaN so was expecting a TypeError'); 182 }, "elapsedTime cannot be set to NaN"); 183 184 test(function() { 185 assert_throws_js(TypeError, function() { 186 new AnimationEvent("test", {elapsedTime: Infinity}); 187 }, 'elapsedTime cannot be Infinity so was expecting a TypeError'); 188 }, "elapsedTime cannot be set to Infinity"); 189 190 test(function() { 191 assert_throws_js(TypeError, function() { 192 new AnimationEvent("test", {elapsedTime: -Infinity}); 193 }, 'elapsedTime cannot be -Infinity so was expecting a TypeError'); 194 }, "elapsedTime cannot be set to -Infinity"); 195 196 test(function() { 197 assert_throws_js(TypeError, function() { 198 new AnimationEvent("test", {elapsedTime: "sample"}); 199 }, 'elapsedTime cannot be a string so was expecting a TypeError'); 200 }, "elapsedTime cannot be set to 'sample'"); 201 202 test(function() { 203 assert_throws_js(TypeError, function() { 204 new AnimationEvent("test", {elapsedTime: [0.5, 1.0]}); 205 }, 'elapsedTime cannot be a multi-element array so was expecting a TypeError'); 206 }, "elapsedTime cannot be set to [0.5, 1.0]"); 207 208 test(function() { 209 assert_throws_js(TypeError, function() { 210 new AnimationEvent("test", {elapsedTime: { sample: 0.5}}); 211 }, 'elapsedTime cannot be an object so was expecting a TypeError'); 212 }, "elapsedTime cannot be set to an object"); 213 214 test(function() { 215 var eventInit = {animationName: "sample", elapsedTime: 0.5}; 216 var event = new AnimationEvent("test", eventInit); 217 assert_equals(event.animationName, "sample"); 218 assert_equals(event.elapsedTime, 0.5); 219 }, "AnimationEventInit properties set value"); 220 })();