servo/tests/wpt/web-platform-tests/web-animations/interfaces/KeyframeEffect/idlharness.html

79 lines
2.6 KiB
HTML

<!doctype html>
<meta charset=utf-8>
<title>KeyframeEffect IDL</title>
<link rel="help" href="https://drafts.csswg.org/web-animations/#keyframeeffect">
<link rel="help"
href="https://drafts.csswg.org/web-animations/#keyframeeffectreadonly">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/WebIDLParser.js"></script>
<script src="/resources/idlharness.js"></script>
<div id="log"></div>
<script type="text/plain" id="AnimationEffect-IDL">
dictionary EffectTiming {
double delay = 0.0;
double endDelay = 0.0;
FillMode fill = "auto";
double iterationStart = 0.0;
unrestricted double iterations = 1.0;
(unrestricted double or DOMString) duration = "auto";
PlaybackDirection direction = "normal";
DOMString easing = "linear";
};
dictionary OptionalEffectTiming {
double delay;
double endDelay;
FillMode fill;
double iterationStart;
unrestricted double iterations;
(unrestricted double or DOMString) duration;
PlaybackDirection direction;
DOMString easing;
};
dictionary ComputedEffectTiming : EffectTiming {
unrestricted double endTime = 0.0;
unrestricted double activeDuration = 0.0;
double? localTime = null;
double? progress = null;
unrestricted double? currentIteration = null;
};
[Exposed=Window]
interface AnimationEffect {
EffectTiming getTiming();
ComputedEffectTiming getComputedTiming();
void updateTiming(optional OptionalEffectTiming timing);
};
</script>
<script>
'use strict';
promise_test(async () => {
const idlArray = new IdlArray();
idlArray.add_untested_idls(
document.getElementById('AnimationEffect-IDL').textContent
);
const text = await fetch('/interfaces/web-animations.idl').then(response =>
response.text(),
);
idlArray.add_idls(text, {
only: [
'IterationCompositeOperation',
'CompositeOperation',
'KeyframeEffectOptions',
'KeyframeEffect',
]
});
idlArray.add_untested_idls('interface CSSPseudoElement {};');
idlArray.add_untested_idls('interface Element {};');
idlArray.add_objects({
KeyframeEffect: ['new KeyframeEffect(null, null)'],
});
idlArray.test();
done();
}, 'KeyframeEffect interface.');
</script>