
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

