mirror of
https://github.com/servo/servo.git
synced 2025-06-25 17:44:33 +01:00
229 lines
7.6 KiB
HTML
229 lines
7.6 KiB
HTML
<!DOCTYPE html>
|
|
<meta charset="utf-8">
|
|
<title>CSS Transitions Test: TransitionEvent interface</title>
|
|
<link rel="help" href="https://drafts.csswg.org/css-transitions-1/#interface-transitionevent">
|
|
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="transitionevent-interface.js"></script>
|
|
|
|
<script>
|
|
test(function() {
|
|
var event = new TransitionEvent("");
|
|
assert_true(event instanceof window.TransitionEvent);
|
|
}, "the event is an instance of TransitionEvent");
|
|
|
|
test(function() {
|
|
var event = new TransitionEvent("");
|
|
assert_true(event instanceof window.Event);
|
|
}, "the event inherts from Event");
|
|
|
|
test(function() {
|
|
assert_throws_js(TypeError, function() {
|
|
new TransitionEvent();
|
|
}, 'First argument is required, so was expecting a TypeError.');
|
|
}, 'Missing type argument');
|
|
|
|
test(function() {
|
|
var event = new TransitionEvent("test");
|
|
assert_equals(event.type, "test");
|
|
}, "type argument is string");
|
|
|
|
test(function() {
|
|
var event = new TransitionEvent(null);
|
|
assert_equals(event.type, "null");
|
|
}, "type argument is null");
|
|
|
|
test(function() {
|
|
var event = new TransitionEvent(undefined);
|
|
assert_equals(event.type, "undefined");
|
|
}, "event type set to undefined");
|
|
|
|
test(function() {
|
|
var event = new TransitionEvent("test");
|
|
assert_equals(event.propertyName, "");
|
|
}, "propertyName has default value of empty string");
|
|
|
|
test(function() {
|
|
var event = new TransitionEvent("test");
|
|
assert_equals(event.elapsedTime, 0.0);
|
|
}, "elapsedTime has default value of 0.0");
|
|
|
|
test(function() {
|
|
var event = new TransitionEvent("test");
|
|
assert_readonly(event, "propertyName", "readonly attribute value");
|
|
}, "propertyName is readonly");
|
|
|
|
test(function() {
|
|
var event = new TransitionEvent("test");
|
|
assert_readonly(event, "elapsedTime", "readonly attribute value");
|
|
}, "elapsedTime is readonly");
|
|
|
|
test(function() {
|
|
var event = new TransitionEvent("test", null);
|
|
assert_equals(event.propertyName, "");
|
|
assert_equals(event.elapsedTime, 0.0);
|
|
}, "animationEventInit argument is null");
|
|
|
|
test(function() {
|
|
var event = new TransitionEvent("test", undefined);
|
|
assert_equals(event.propertyName, "");
|
|
assert_equals(event.elapsedTime, 0.0);
|
|
}, "animationEventInit argument is undefined");
|
|
|
|
test(function() {
|
|
var event = new TransitionEvent("test", {});
|
|
assert_equals(event.propertyName, "");
|
|
assert_equals(event.elapsedTime, 0.0);
|
|
}, "animationEventInit argument is empty dictionary");
|
|
|
|
test(function() {
|
|
var event = new TransitionEvent("test", {pseudoElement: "::testPseudo"});
|
|
assert_equals(event.pseudoElement, "::testPseudo");
|
|
}, "TransitionEvent.pseudoElement initialized from the dictionary");
|
|
|
|
test(function() {
|
|
var event = new TransitionEvent("test", {propertyName: "sample"});
|
|
assert_equals(event.propertyName, "sample");
|
|
}, "propertyName set to 'sample'");
|
|
|
|
test(function() {
|
|
var event = new TransitionEvent("test", {propertyName: undefined});
|
|
assert_equals(event.propertyName, "");
|
|
}, "propertyName set to undefined");
|
|
|
|
test(function() {
|
|
var event = new TransitionEvent("test", {propertyName: null});
|
|
assert_equals(event.propertyName, "null");
|
|
}, "propertyName set to null");
|
|
|
|
test(function() {
|
|
var event = new TransitionEvent("test", {propertyName: false});
|
|
assert_equals(event.propertyName, "false");
|
|
}, "propertyName set to false");
|
|
|
|
test(function() {
|
|
var event = new TransitionEvent("test", {propertyName: true});
|
|
assert_equals(event.propertyName, "true");
|
|
}, "propertyName set to true");
|
|
|
|
test(function() {
|
|
var event = new TransitionEvent("test", {propertyName: 0.5});
|
|
assert_equals(event.propertyName, "0.5");
|
|
}, "propertyName set to a number");
|
|
|
|
test(function() {
|
|
var event = new TransitionEvent("test", {propertyName: []});
|
|
assert_equals(event.propertyName, "");
|
|
}, "propertyName set to []");
|
|
|
|
test(function() {
|
|
var event = new TransitionEvent("test", {propertyName: [1, 2, 3]});
|
|
assert_equals(event.propertyName, "1,2,3");
|
|
}, "propertyName set to [1, 2, 3]");
|
|
|
|
test(function() {
|
|
var event = new TransitionEvent("test", {propertyName: {sample: 0.5}});
|
|
assert_equals(event.propertyName, "[object Object]");
|
|
}, "propertyName set to an object");
|
|
|
|
test(function() {
|
|
var event = new TransitionEvent("test",
|
|
{propertyName: {valueOf: function () { return 'sample'; }}});
|
|
assert_equals(event.propertyName, "[object Object]");
|
|
}, "propertyName set to an object with a valueOf function");
|
|
|
|
test(function() {
|
|
var event = new TransitionEvent("test", {elapsedTime: 0.5});
|
|
assert_equals(event.elapsedTime, 0.5);
|
|
}, "elapsedTime set to 0.5");
|
|
|
|
test(function() {
|
|
var event = new TransitionEvent("test", {elapsedTime: -0.5});
|
|
assert_equals(event.elapsedTime, -0.5);
|
|
}, "elapsedTime set to -0.5");
|
|
|
|
test(function() {
|
|
var event = new TransitionEvent("test", {elapsedTime: undefined});
|
|
assert_equals(event.elapsedTime, 0);
|
|
}, "elapsedTime set to undefined");
|
|
|
|
test(function() {
|
|
var event = new TransitionEvent("test", {elapsedTime: null});
|
|
assert_equals(event.elapsedTime, 0);
|
|
}, "elapsedTime set to null");
|
|
|
|
test(function() {
|
|
var event = new TransitionEvent("test", {elapsedTime: false});
|
|
assert_equals(event.elapsedTime, 0);
|
|
}, "elapsedTime set to false");
|
|
|
|
test(function() {
|
|
var event = new TransitionEvent("test", {elapsedTime: true});
|
|
assert_equals(event.elapsedTime, 1);
|
|
}, "elapsedTime set to true");
|
|
|
|
test(function() {
|
|
var event = new TransitionEvent("test", {elapsedTime: ""});
|
|
assert_equals(event.elapsedTime, 0);
|
|
}, "elapsedTime set to ''");
|
|
|
|
test(function() {
|
|
var event = new TransitionEvent("test", {elapsedTime: []});
|
|
assert_equals(event.elapsedTime, 0);
|
|
}, "elapsedTime set to []");
|
|
|
|
test(function() {
|
|
var event = new TransitionEvent("test", {elapsedTime: [0.5]});
|
|
assert_equals(event.elapsedTime, 0.5);
|
|
}, "elapsedTime set to [0.5]");
|
|
|
|
test(function() {
|
|
var event = new TransitionEvent(
|
|
"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 TransitionEvent("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 TransitionEvent("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 TransitionEvent("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 TransitionEvent("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 TransitionEvent("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 TransitionEvent("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 = {propertyName: "sample", elapsedTime: 0.5};
|
|
var event = new TransitionEvent("test", eventInit);
|
|
assert_equals(event.propertyName, "sample");
|
|
assert_equals(event.elapsedTime, 0.5);
|
|
}, "TransitionEventInit properties set value");
|
|
</script>
|