Tests MediaStream assignment to MediaElement using 'srcObject' MediaElement attribute.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


PASS getUserMedia('allow', {audio:true}, gotStream) did not throw exception.
PASS stream.getAudioTracks().length is 1
PASS stream.getVideoTracks().length is 0
PASS audio.srcObject = stream; did not throw exception.
PASS streamObj = audio.srcObject; did not throw exception.
PASS streamObj is stream
PASS streamObj.getAudioTracks().length is 1
PASS streamObj.getVideoTracks().length is 0
PASS streamObj.id is stream.id
PASS stream assigned to media element.
PASS audio.srcObject = null; did not throw exception.
PASS streamObj = audio.srcObject; did not throw exception.
PASS streamObj is null
PASS successfullyParsed is true

TEST COMPLETE

