blob: aea63dc7243dad8be880439ac999658c6077c5b9 [file] [edit]
<!DOCTYPE html>
<html>
<head>
<title>
mediastreamaudiosourcenode.html
</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>
</head>
<body>
<script id="layout-test-code">
if (window.testRunner)
testRunner.setUserMediaPermission(true);
let audit = Audit.createTaskRunner();
audit.define(
{
label: 'test',
description: 'Basic tests for MediaStreamAudioSourceNode API'
},
async (task, should) => {
const stream = await navigator.mediaDevices.getUserMedia({audio: true});
gotStream(stream, should);
task.done();
});
audit.run();
function gotStream(stream, should) {
should(true, '{audio:true} generated stream').message('correctly', '');
let context = new AudioContext();
// Create an AudioNode from the stream.
let mediaStreamSource = context.createMediaStreamSource(stream);
// Check number of inputs and outputs.
should(
mediaStreamSource.numberOfInputs,
'mediaStreamSource.numberOfInputs')
.beEqualTo(0);
should(
mediaStreamSource.numberOfOutputs,
'mediaStreamSource.numberOfOutputs')
.beEqualTo(1);
// Verify the same object is returned
let element = mediaStreamSource.mediaStream;
should(
element instanceof MediaStream,
'mediaStreamSource.mediaStream instanceof MediaStream')
.beTrue();
should(
mediaStreamSource.mediaStream === element,
'mediaStreamSource.mediaStream is same object')
.beTrue();
// Try calling connect() method with illegal values.
should(
() => mediaStreamSource.connect(0, 0, 0),
'mediaStreamSource.connect(0, 0, 0)')
.throw();
should(
() => mediaStreamSource.connect(context.destination, 5, 0),
'mediaStreamSource.connect(context.destination, 5, 0)')
.throw();
should(
() => mediaStreamSource.connect(context.destination, 0, 5),
'mediaStreamSource.connect(context.destination, 0, 5)')
.throw();
// Try calling connect() with proper values.
should(
() => mediaStreamSource.connect(context.destination, 0, 0),
'mediaStreamSource.connect(context.destination, 0, 0)')
.notThrow();
}
</script>
</body>
</html>