| Index: third_party/WebKit/LayoutTests/imported/web-platform-tests/web-animations/animation-timeline/document-timeline.html
|
| diff --git a/third_party/WebKit/LayoutTests/imported/web-platform-tests/web-animations/animation-timeline/document-timeline.html b/third_party/WebKit/LayoutTests/imported/web-platform-tests/web-animations/animation-timeline/document-timeline.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..3f57329d3784bdbd4a4293b494d2d5d2c018605a
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/imported/web-platform-tests/web-animations/animation-timeline/document-timeline.html
|
| @@ -0,0 +1,89 @@
|
| +<!doctype html>
|
| +<meta charset=utf-8>
|
| +<title>Web Animations API: DocumentTimeline tests</title>
|
| +<script src="../../../../resources/testharness.js"></script>
|
| +<script src="../../../../resources/testharnessreport.js"></script>
|
| +<div id="log"></div>
|
| +<iframe src="data:text/html;charset=utf-8," width="10" height="10" id="iframe"></iframe>
|
| +<script>
|
| +'use strict';
|
| +
|
| +test(function() {
|
| + assert_equals(document.timeline, document.timeline,
|
| + 'document.timeline returns the same object every time');
|
| + var iframe = document.getElementById('iframe');
|
| + assert_not_equals(document.timeline, iframe.contentDocument.timeline,
|
| + 'document.timeline returns a different object for each document');
|
| + assert_not_equals(iframe.contentDocument.timeline, null,
|
| + 'document.timeline on an iframe is not null');
|
| +},
|
| +'document.timeline identity tests',
|
| +{
|
| + help: 'http://dev.w3.org/fxtf/web-animations/#the-document-timeline',
|
| + assert: [ 'Each document has a timeline called the document timeline' ],
|
| + author: 'Brian Birtles'
|
| +});
|
| +
|
| +async_test(function(t) {
|
| + assert_true(document.timeline.currentTime > 0,
|
| + 'document.timeline.currentTime is positive');
|
| + // document.timeline.currentTime should be set even before document
|
| + // load fires. We expect this code to be run before document load and hence
|
| + // the above assertion is sufficient.
|
| + // If the following assertion fails, this test needs to be redesigned.
|
| + assert_true(document.readyState !== 'complete',
|
| + 'Test is running prior to document load');
|
| +
|
| + // Test that the document timeline's current time is measured from
|
| + // navigationStart.
|
| + //
|
| + // We can't just compare document.timeline.currentTime to
|
| + // window.performance.now() because currentTime is only updated on a sample
|
| + // so we use requestAnimationFrame instead.
|
| + window.requestAnimationFrame(t.step_func(function(rafTime) {
|
| + assert_equals(document.timeline.currentTime, rafTime,
|
| + 'document.timeline.currentTime matches' +
|
| + ' requestAnimationFrame time');
|
| + t.done();
|
| + }));
|
| +},
|
| +'document.timeline.currentTime value tests',
|
| +{
|
| + help: [
|
| + 'http://dev.w3.org/fxtf/web-animations/#the-global-clock',
|
| + 'http://dev.w3.org/fxtf/web-animations/#the-document-timeline'
|
| + ],
|
| + assert: [
|
| + 'The global clock is a source of monotonically increasing time values',
|
| + 'The time values of the document timeline are calculated as a fixed' +
|
| + ' offset from the global clock',
|
| + 'the zero time corresponds to the navigationStart moment',
|
| + 'the time value of each document timeline must be equal to the time ' +
|
| + 'passed to animation frame request callbacks for that browsing context'
|
| + ],
|
| + author: 'Brian Birtles'
|
| +});
|
| +
|
| +async_test(function(t) {
|
| + var valueAtStart = document.timeline.currentTime;
|
| + var timeAtStart = window.performance.now();
|
| + while (window.performance.now() - timeAtStart < 100) {
|
| + // Wait 100ms
|
| + }
|
| + assert_equals(document.timeline.currentTime, valueAtStart,
|
| + 'document.timeline.currentTime does not change within a script block');
|
| + window.requestAnimationFrame(t.step_func(function() {
|
| + assert_true(document.timeline.currentTime > valueAtStart,
|
| + 'document.timeline.currentTime increases between script blocks');
|
| + t.done();
|
| + }));
|
| +},
|
| +'document.timeline.currentTime liveness tests',
|
| +{
|
| + help: 'http://dev.w3.org/fxtf/web-animations/#script-execution-and-live-updates-to-the-model',
|
| + assert: [ 'The value returned by the currentTime attribute of a' +
|
| + ' document timeline will not change within a script block' ],
|
| + author: 'Brian Birtles'
|
| +});
|
| +
|
| +</script>
|
|
|