<!DOCTYPE html>
<title>Test that no usable "source" element leaves the media element with networkState == NETWORK_NO_SOURCE.</title>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<video>
<source src="test.mp4" type="audio/x-chicken-face"></source>
<source src="test.ogv" type="video/x-higglety-pigglety"></source>
<source src="doesnotexist.mp4"></source>
</video>
<script>
async_test(function(t) {
var errorCount = 0;
var video = document.querySelector("video");
var sourceList = document.querySelectorAll("source");
for (var source of sourceList) {
source.onerror = t.step_func(function(event) {
errorCount++;
if (errorCount < 3) {
// Because the error event is fired asynchronously the network state
// can be either NETWORK_LOADING or NETWORK_NO_SOURCE, depending on
// whether or not any pending "source" element is available.
assert_greater_than(video.networkState, HTMLMediaElement.NETWORK_IDLE);
} else {
assert_equals(video.networkState, HTMLMediaElement.NETWORK_NO_SOURCE);
t.done();
}
});
}
});
</script>