<!DOCTYPE HTML>
<html>
<head>
  <title>Test whether we can disable the AudioContext interface</title>
  <script src="/tests/SimpleTest/SimpleTest.js"></script>
  <script type="text/javascript" src="webaudio.js"></script>
  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<pre id="test">
<script class="testbody" type="text/javascript">

const webaudio_interfaces = [
  "AudioContext",
  "OfflineAudioContext",
  "AudioContext",
  "OfflineAudioCompletionEvent",
  "AudioNode",
  "AudioDestinationNode",
  "AudioParam",
  "GainNode",
  "DelayNode",
  "AudioBuffer",
  "AudioBufferSourceNode",
  "MediaElementAudioSourceNode",
  "ScriptProcessorNode",
  "AudioProcessingEvent",
  "PannerNode",
  "AudioListener",
  "StereoPannerNode",
  "ConvolverNode",
  "AnalyserNode",
  "ChannelSplitterNode",
  "ChannelMergerNode",
  "DynamicsCompressorNode",
  "BiquadFilterNode",
  "IIRFilterNode",
  "WaveShaperNode",
  "OscillatorNode",
  "PeriodicWave",
  "MediaStreamAudioSourceNode",
  "MediaStreamAudioDestinationNode"
];

SimpleTest.waitForExplicitFinish();
addLoadEvent(function() {
  SpecialPowers.pushPrefEnv({"set": [["dom.webaudio.enabled", false]]}, function() {
      webaudio_interfaces.forEach((e) => ok(!window[e], e + " must be disabled when the Web Audio API is disabled"));
    SimpleTest.finish();
  });
});

</script>
</pre>
</body>
</html>
