Tests MediaStreamTrack callbacks.

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




**** calling mediaDevices.getUserMedia() ****
PASS mediaDevices.getUserMedia succeeded.

**** setup video element ****
video.srcObject = mediaStream
Event 'loadedmetadata'
Event 'loadeddata'
Event 'canplay'

*** start playback ****
video.play()
Event 'canplaythrough'
Event 'play'
video.pause()

**** check video element ****
PASS video.videoWidth is mediaStream.getVideoTracks()[0].getSettings().width
PASS video.videoHeight is mediaStream.getVideoTracks()[0].getSettings().height

**** check video tracks ****
PASS video.videoTracks.length is 1
PASS video.videoTracks[0].id is mediaStream.getVideoTracks()[0].id
PASS video.videoTracks[0].language is ""
PASS video.videoTracks[0].kind is "main"

video.videoTracks[0] properties:
  configuration = [object VideoTrackConfiguration]
  id = <UUID>
  kind = main
  label = Mock video device 1
  language =
  selected = true

**** check audio tracks ****
PASS video.audioTracks.length is 1
PASS video.audioTracks[0].id is mediaStream.getAudioTracks()[0].id
PASS video.audioTracks[0].language is ""
PASS video.audioTracks[0].kind is "main"

video.audioTracks[0] properties:
  configuration = [object AudioTrackConfiguration]
  enabled = true
  id = <UUID>
  kind = main
  label = Mock audio device 1
  language =

PASS successfullyParsed is true

TEST COMPLETE

