<!DOCTYPE html>

<html>
<head>
<script src="../resources/js-test-pre.js"></script>
<script src="resources/audio-testing.js"></script>
</head>

<body>
<div id="description"></div>
<div id="console"></div>

<script>
description("Basic tests for MediaStreamAudioDestinationNode API.");

var context = 0;

function runTest() {
    if (window.testRunner) {
        testRunner.dumpAsText();
    }

    context = new webkitAudioContext();

    var mediaStreamDestination = context.createMediaStreamDestination();

    // Check number of inputs and outputs.
    if (mediaStreamDestination.numberOfInputs == 1)
        testPassed("Destination AudioNode has one input.");
    else
        testFailed("Destination AudioNode should have one input.");

    // FIXME: We should have no outputs, but since we're implemented using AudioBasicInspectorNode
    // we have one.
    // if (mediaStreamDestination.numberOfOutputs == 0)
    //     testPassed("Destination AudioNode has no outputs.");
    // else
    //     testFailed("Destination AudioNode should not have outputs.");

    // FIXME: add a test where we create a PeerConnection and call addStream(mediaStreamDestination.stream).
    
    finishJSTest();
}

runTest();
window.successfullyParsed = true;

</script>

<script src="../resources/js-test-post.js"></script>
</body>
</html>
