blob: 494b475c5a76b306dbdc04d587aeeee25d925a03 [file] [log] [blame]
<!doctype html>
<html>
<head>
<title>
Test AudioWorklet AudioParam Warning Messages
</title>
<script src="../../imported/w3c/web-platform-tests/resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../resources/audit-util.js"></script>
<script src="../resources/audit.js"></script>
<script src="../resources/worklet-test.js"></script>
</head>
<body>
<script id="layout-test-code">
let audit = Audit.createTaskRunner();
audit.define(
{
label: 'AudioWorklet AudioParam',
description: 'Generate warnings if outside nominal range'
},
(task, should) => {
// Any reasonable sample rate will work
let sampleRate = 16000;
let renderTime = 1;
let renderLength = renderTime * sampleRate;
let context =
new OfflineAudioContext(1, renderLength, sampleRate);
context.audioWorklet.addModule(NoiseGenWorkletUrl).then(() => {
let noiseGenerator =
new AudioWorkletNode(context, 'noise-generator');
noiseGenerator.connect(context.destination);
let param = noiseGenerator.parameters.get('amplitude');
// Set the value inside the nominal range; no warning should be
// generated.
param.value = .1;
// Set the value outside the nominal range to generate a
// warning.
param.value = 99;
// Set up automation outside the nominal range to generate a
// warning.
param.setValueAtTime(-1, renderTime / 4);
param.linearRampToValueAtTime(5, renderTime);
// Render; we don't care what the generated result is.
context.startRendering()
.then(() => {
should(true, 'Rendering succeeded').beTrue();
})
.then(() => task.done());
});
});
audit.run();
</script>
</body>
</html>