<!DOCTYPE html>
<html>
    <head>
        <script>var requirePixelDump = true;</script>
        <script src=../media-file.js></script>
        <script src=../video-test.js></script>
        <script src=../media-controls.js></script>

        <style>

        .obscurer {
            width: 500px;
            height: 500px;
            position: absolute;
            background-color: white;
        }
        </style>
        <script>
        function seeked()
        {
            endTest();
        }

        function loaded()
        {
            consoleWrite("Test that text stroke is applied correctly.");
            findMediaElement();
            video.src = findMediaFile('video', '../content/test');
            waitForEvent('seeked', seeked);
            waitForEvent('canplaythrough', function() { video.currentTime = .5; });
        }

        setCaptionDisplayMode('Automatic');
        </script>
    </head>
    <body onload="loaded()">
        <video style="position: absolute; left: 0px; top: 0px;" controls >
            <track src="captions-webvtt/left-align.vtt" kind="captions" default>
        </video>
        <div class="obscurer" style="left: 100px; top: 0px;"></div>
    </body>
</html>
