mirror of
https://github.com/servo/servo.git
synced 2025-10-04 02:29:12 +01:00
72 lines
3 KiB
HTML
72 lines
3 KiB
HTML
<!DOCTYPE html>
|
|
<!-- Copyright © 2016 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
|
|
<html>
|
|
<head>
|
|
<title>Various MediaSource HTMLMediaElement preload tests.</title>
|
|
<link rel="author" title="Matthew Wolenetz" href="mailto:wolenetz@chromium.org"/>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
</head>
|
|
<body>
|
|
<script>
|
|
function attachWithPreloadTest(preload)
|
|
{
|
|
async_test(function(test)
|
|
{
|
|
var video = document.createElement("video");
|
|
var mediaSource = new MediaSource();
|
|
var mediaSourceURL = URL.createObjectURL(mediaSource);
|
|
|
|
video.preload = preload;
|
|
document.body.appendChild(video);
|
|
test.add_cleanup(function() {
|
|
document.body.removeChild(video);
|
|
URL.revokeObjectURL(mediaSourceURL);
|
|
});
|
|
|
|
mediaSource.addEventListener("sourceopen", test.step_func_done());
|
|
video.src = mediaSourceURL;
|
|
}, "sourceopen occurs with element preload=" + preload);
|
|
}
|
|
|
|
attachWithPreloadTest("auto");
|
|
attachWithPreloadTest("metadata");
|
|
attachWithPreloadTest("none");
|
|
|
|
function errorWithPreloadTest(preload, bogusURLStyle)
|
|
{
|
|
async_test(function(test)
|
|
{
|
|
var mediaSource = new MediaSource();
|
|
var bogusURL = URL.createObjectURL(mediaSource);
|
|
|
|
if (bogusURLStyle == "corrupted") {
|
|
var goodURL = bogusURL;
|
|
test.add_cleanup(function() { URL.revokeObjectURL(goodURL); });
|
|
bogusURL += "0";
|
|
} else if (bogusURLStyle == "revoked") {
|
|
URL.revokeObjectURL(bogusURL);
|
|
} else {
|
|
assert_unreached("invalid case");
|
|
}
|
|
|
|
var video = document.createElement("video");
|
|
video.preload = preload;
|
|
document.body.appendChild(video);
|
|
test.add_cleanup(function() { document.body.removeChild(video); });
|
|
|
|
mediaSource.addEventListener("sourceopen", test.unreached_func("'sourceopen' should not be fired"));
|
|
|
|
video.onerror = test.step_func_done();
|
|
video.src = bogusURL;
|
|
}, "error occurs with bogus blob URL (" + bogusURLStyle + " MediaSource object URL) and element preload=" + preload);
|
|
}
|
|
|
|
errorWithPreloadTest("auto", "revoked");
|
|
errorWithPreloadTest("metadata", "revoked");
|
|
|
|
errorWithPreloadTest("auto", "corrupted");
|
|
errorWithPreloadTest("metadata", "corrupted");
|
|
</script>
|
|
</body>
|
|
</html>
|