<!DOCTYPE html>
<html manifest="resources/video.manifest">
<title>Test that "video" can be loaded from the application cache.</title>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="/media-resources/media-file.js"></script>
<video></video>
<script>
async_test(function(t) {
    applicationCache.onupdateready = t.unreached_func();
    applicationCache.onobsolete = t.unreached_func();
    applicationCache.onerror = t.unreached_func();
    applicationCache.oncached = t.step_func(test1);
    applicationCache.onnoupdate = t.step_func(test1);

    video = document.querySelector("video");

    function test1() {
        // Setting "src" to file specified in manifest. This file should load.
        video.ondurationchange = t.step_func(test2);
        video.onerror = t.unreached_func();
        video.src = "/media-resources/content/" + findMediaFile("video", "test");
    }

    function test2() {
        // Setting "src" to valid media file not in manifest. This file should fail to load.
        video.ondurationchange = t.unreached_func();
        video.onerror = t.step_func(test3);
        video.src = "/media-resources/content/" + findMediaFile("audio", "silence");
    }

    function test3() {
        // Setting "src" to non-media file that is in manifest. This file should fail to load.
        video.src = "/media-resources/media-file.js";
        video.onerror = t.step_func_done();
    }
});
</script>