https://github.com/web-platform-tests/wpt
Raw File
Tip revision: 292f3687ff5172f5bf246347bc271510fc19ca5a authored by Emilio Cobos Álvarez on 11 April 2018, 18:35:20 UTC
Remove usage of setTimeout to appease lint.
Tip revision: 292f368
idlharness.https.html
<!DOCTYPE html>
<meta charset="utf-8">
<title>WebAudio IDL tests</title>
<link rel="help" href="https://webaudio.github.io/web-audio-api/"/>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/WebIDLParser.js"></script>
<script src="/resources/idlharness.js"></script>
<script>
'use strict';

promise_test(async t => {
  const [html, dom, uievents, mediacapture, webaudio] = await Promise.all([
    // Needed for EventTarget, HTMLMediaElement
    '/interfaces/html.idl',

    // Needed for Event, EventListener
    '/interfaces/dom.idl',

    // Needed for MouseEvent
    '/interfaces/uievents.idl',

    // Needed for MediaStream, MediaStreamTrack
    '/interfaces/mediacapture-main.idl',

    '/interfaces/web-audio-api.idl'
  ].map(url => fetch(url).then(response => response.text())));

  const idl_array = new IdlArray();

  // Dependencies of HTML
  idl_array.add_untested_idls('interface LinkStyle {};');
  idl_array.add_untested_idls('interface SVGElement {};');
  idl_array.add_untested_idls('interface WorkletGlobalScope {};');
  idl_array.add_untested_idls(html);
  idl_array.add_untested_idls(uievents, { only: [
    'MouseEvent',
    'MouseEventInit',
    'EventModifierInit',
    'UIEvent',
    'UIEventInit',
  ]});

  idl_array.add_untested_idls(dom);
  idl_array.add_untested_idls(mediacapture);
  idl_array.add_untested_idls('interface Worklet {};');

  idl_array.add_idls(webaudio);

  const sample_rate = 44100;
  const context = new AudioContext;
  const buffer = new AudioBuffer({length: 1, sampleRate: sample_rate});
  await context.audioWorklet.addModule(
    'the-audio-api/the-audioworklet-interface/processors/dummy-processor.js');
  const worklet_node = new AudioWorkletNode(context, 'dummy');

  idl_array.add_objects({
    BaseAudioContext: [],
    AudioContext: [context],
    OfflineAudioContext: [new OfflineAudioContext(1, 1, sample_rate)],
    OfflineAudioCompletionEvent: [
      new OfflineAudioCompletionEvent('', {renderedBuffer: buffer})],
    AudioBuffer: [buffer],
    AudioNode: [],
    AudioParam: [new AudioBufferSourceNode(context).playbackRate],
    AudioScheduledSourceNode: [],
    AnalyserNode: [new AnalyserNode(context)],
    AudioBufferSourceNode: [new AudioBufferSourceNode(context)],
    AudioDestinationNode: [context.destination],
    AudioListener: [context.listener],
    AudioProcessingEvent: [new AudioProcessingEvent('', {
      playbackTime: 0, inputBuffer: buffer, outputBuffer: buffer
    })],
    BiquadFilterNode: [new BiquadFilterNode(context)],
    ChannelMergerNode: [new ChannelMergerNode(context)],
    ChannelSplitterNode: [new ChannelSplitterNode(context)],
    ConstantSourceNode: [new ConstantSourceNode(context)],
    ConvolverNode: [new ConvolverNode(context)],
    DelayNode: [new DelayNode(context)],
    DynamicsCompressorNode: [new DynamicsCompressorNode(context)],
    GainNode: [new GainNode(context)],
    IIRFilterNode: [
      new IIRFilterNode(context, {feedforward: [1], feedback: [1]})],
    MediaElementAudioSourceNode: [
      new MediaElementAudioSourceNode(context, {mediaElement: new Audio})],
    MediaStreamAudioDestinationNode: [
      new MediaStreamAudioDestinationNode(context)],
    MediaStreamAudioSourceNode: [],
    MediaStreamTrackAudioSourceNode: [],
    OscillatorNode: [new OscillatorNode(context)],
    PannerNode: [new PannerNode(context)],
    PeriodicWave: [new PeriodicWave(context)],
    ScriptProcessorNode: [context.createScriptProcessor()],
    StereoPannerNode: [new StereoPannerNode(context)],
    WaveShaperNode: [new WaveShaperNode(context)],
    AudioWorklet: [context.audioWorklet],
    AudioWorkletGlobalScope: [],
    AudioParamMap: [worklet_node.parameters],
    AudioWorkletNode: [worklet_node],
    AudioWorkletProcessor: [],
  });
  idl_array.test();

}, 'Test driver');
</script>
back to top