
1. Test that errors fired while evaluating/loading <source> elements are fired at the <source> and not at the <video> element.
2. Verifiy that an 'error' event fired while processing/loading a <source> element does not set the media element's 'error' attribute.

EVENT(loadstart)
EVENT(error) from <source id='missing-src' src=''> OK
EXPECTED (video.error == 'null') OK

EVENT(error) from <source id='bogus-type' src='content/test.mp4'> OK
EXPECTED (video.error == 'null') OK

EVENT(error) from <source id='unsupported-media-query' src='content/test.mp4'> OK
EXPECTED (video.error == 'null') OK

EVENT(error) from <source id='missing-file' src='content/error2.mpeg'> OK
EXPECTED (video.error == 'null') OK

EVENT(error) from <source id='format-error' src='content/unsupported_track.mov'> OK
EXPECTED (video.error == 'null') OK

EVENT(durationchange)
EVENT(loadeddata)

EXPECTED (relativeURL(video.currentSrc) == 'content/test.mp4') OK
EXPECTED (video.error == 'null') OK

END OF TEST

