<!DOCTYPE html>
<html>
    <head>
        <script src=../../media-resources/video-test.js></script>
        <script>
            if (window.testRunner) {
                testRunner.dumpAsText();
                testRunner.waitUntilDone();
            }

            function start() {
                if (window.internals)
                    internals.setUserPreferredAudioCharacteristic('public.accessibility.describes-video');
                video = document.getElementById('video');
                waitForEvent('canplaythrough', canplaythrough);
                video.src = '../resources/hls/audio-describes-video.m3u8';
            }

            function canplaythrough() {
                testExpected('video.audioTracks.length', 2);
                testExpected('video.audioTracks[0].enabled', false);
                testExpected('video.audioTracks[1].enabled', true);
                endTest();
            }
        </script>
    </head>
    <body onload="start()">
        <video id="video"></video>
    </body>
</html>
