-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add interface tests for TransitionEvent
These are modelled after the similar tests that exist for AnimationEvent in css/css-animations, except written using more modern WPT style. Bug: 695504 Change-Id: I63573cf48aba6821f5e22486ef18217d0f2828ee Reviewed-on: https://chromium-review.googlesource.com/1239457 Reviewed-by: Stephen McGruer <[email protected]> Reviewed-by: Xida Chen <[email protected]> Commit-Queue: Stephen McGruer <[email protected]> Cr-Commit-Position: refs/heads/master@{#593620}
- Loading branch information
1 parent
b9acbf4
commit b040cb2
Showing
1 changed file
with
229 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,229 @@ | ||
<!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(new 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(new 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(new 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(new 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(new 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(new 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(new 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> |