66 lines
2.8 KiB
HTML
66 lines
2.8 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<script src="../../http/tests/inspector/resources/protocol-test.js"></script>
|
|
<style>
|
|
@keyframes test {
|
|
to { opacity: 0; }
|
|
}
|
|
.test {
|
|
animation: test 1s linear;
|
|
}
|
|
</style>
|
|
<script>
|
|
function startCSSAnimation() {
|
|
let element = document.body.appendChild(document.createElement("div"));
|
|
element.className = "test";
|
|
}
|
|
|
|
function test()
|
|
{
|
|
let suite = ProtocolTest.createAsyncSuite("Animation.Tracking");
|
|
|
|
InspectorProtocol.sendCommand("DOM.getDocument");
|
|
|
|
suite.addTestCase({
|
|
name: "Animation.Tracking.StartAndStopTrackingWithEvent",
|
|
test(resolve, reject) {
|
|
InspectorProtocol.awaitEvent({event: "Animation.trackingStart"}).then((messageObject) => {
|
|
ProtocolTest.log("Animation.trackingStart");
|
|
ProtocolTest.expectEqual(typeof messageObject.params.timestamp, "number", "Should have a timestamp when starting.");
|
|
|
|
ProtocolTest.evaluateInPage("startCSSAnimation()");
|
|
});
|
|
|
|
InspectorProtocol.awaitEvent({event: "Animation.trackingUpdate"}).then((messageObject) => {
|
|
ProtocolTest.log("Animation.trackingUpdate");
|
|
ProtocolTest.expectEqual(typeof messageObject.params.timestamp, "number", "Should should have a timestamp number.");
|
|
ProtocolTest.expectEqual(typeof messageObject.params.event, "object", "Should have an event object.");
|
|
ProtocolTest.expectEqual(typeof messageObject.params.event.trackingAnimationId, "string", "Event should have an animation tracking ID.");
|
|
ProtocolTest.expectEqual(typeof messageObject.params.event.animationState, "string", "Event should have an animation state.");
|
|
ProtocolTest.expectEqual(typeof messageObject.params.event.nodeId, "number", "Event should have a node ID.");
|
|
ProtocolTest.expectEqual(messageObject.params.event.animationName, "test", "Event should have the related CSS animation's name.");
|
|
|
|
ProtocolTest.assert(typeof messageObject.params.event.transitionProperty === "undefined", "Event should not have a `transitionProperty` if it has an `animationName`.");
|
|
|
|
InspectorProtocol.sendCommand("Animation.stopTracking", {});
|
|
});
|
|
|
|
InspectorProtocol.awaitEvent({event: "Animation.trackingComplete"}).then((messageObject) => {
|
|
ProtocolTest.log("Animation.trackingComplete");
|
|
resolve();
|
|
});
|
|
|
|
InspectorProtocol.sendCommand("Animation.startTracking", {});
|
|
}
|
|
});
|
|
|
|
suite.runTestCasesAndFinish();
|
|
}
|
|
</script>
|
|
</head>
|
|
<body onload="runTest()">
|
|
<p>Tests that Animation.startTracking and Animation.stopTracking trigger Animation.trackingStart, Animation.trackingUpdate, and Animation.trackingComplete events with expected data.</p>
|
|
</body>
|
|
</html>
|