mirror of
https://github.com/servo/servo.git
synced 2025-07-01 04:23:39 +01:00
58 lines
2.9 KiB
HTML
58 lines
2.9 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>Test that the HTMLMediaElement preload 'none' attribute value is ignored for MediaStream used as srcObject and MediaStream object URLs used as src.</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>
|
|
<p class="instructions">When prompted, accept to share your audio and video streams.</p>
|
|
<p class="instructions">This test checks that the HTMLMediaElement preload 'none' attribute value is ignored for MediaStream used as srcObject and MediaStream object URLs used as src.</p>
|
|
<div id=log></div>
|
|
|
|
<audio preload="none"></audio>
|
|
<video preload="none"></video>
|
|
|
|
<script>
|
|
function testPreloadNone(t, mediaElement, setSourceStreamFunc)
|
|
{
|
|
// The optional deferred load steps (for preload none) for MediaStream resources should be skipped.
|
|
mediaElement.addEventListener("suspend", t.unreached_func("'suspend' should not be fired."));
|
|
mediaElement.addEventListener("error", t.step_func(function() {
|
|
assert_unreached("'error' should not be fired, code=" + mediaElement.error.code);
|
|
}));
|
|
|
|
mediaElement.addEventListener("loadeddata", t.step_func(function()
|
|
{
|
|
assert_equals(mediaElement.networkState, mediaElement.NETWORK_LOADING);
|
|
t.done();
|
|
}));
|
|
|
|
setSourceStreamFunc();
|
|
assert_equals(mediaElement.networkState, mediaElement.NETWORK_NO_SOURCE); // Resource selection is active.
|
|
}
|
|
|
|
async_test(function(t)
|
|
{
|
|
var aud = document.querySelector("audio");
|
|
navigator.mediaDevices.getUserMedia({audio:true})
|
|
.then(t.step_func(function(stream)
|
|
{
|
|
testPreloadNone(t, aud, t.step_func(function() { aud.srcObject = stream; }));
|
|
}),
|
|
t.unreached_func("getUserMedia error callback was invoked."));
|
|
}, "Test that preload 'none' is ignored for MediaStream object URL used as srcObject for audio");
|
|
|
|
async_test(function(t)
|
|
{
|
|
var vid = document.querySelector("video");
|
|
navigator.mediaDevices.getUserMedia({video:true})
|
|
.then(t.step_func(function(stream)
|
|
{
|
|
testPreloadNone(t, vid, t.step_func(function() { vid.srcObject = stream; }));
|
|
}), t.unreached_func("getUserMedia error callback was invoked."));
|
|
}, "Test that preload 'none' is ignored for MediaStream used as srcObject for video");
|
|
</script>
|
|
</body>
|
|
</html>
|