<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Testing local audio capture playback causes "playing" event to fire</title>
    <script src="../../resources/testharness.js"></script>
    <script src="../../resources/testharnessreport.js"></script>
</head>
<body>
    <audio id="audio" autoplay></audio>
    <script>
    if (window.testRunner)
        testRunner.setUserMediaPermission(true);

    var audio = document.getElementById('audio');

    promise_test((test) => {
        return navigator.mediaDevices.getUserMedia({audio: true}).then((stream) => {
            audio.srcObject = stream;
            var eventWatcher = new EventWatcher(test, audio, 'playing');
            return eventWatcher.wait_for('playing');
        });
    }, 'Local audio playback fires playing event');
    </script>
</body>
</html>
