1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
<!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>
|