Test adding and removing null and undefined tracks.

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



Calling addTrack with null and undefined parameters
PASS stream.addTrack(null); threw exception TypeError: Argument 1 ('track') to MediaStream.addTrack must be an instance of MediaStreamTrack.
PASS stream.addTrack(undefined); threw exception TypeError: Argument 1 ('track') to MediaStream.addTrack must be an instance of MediaStreamTrack.

Calling removeTrack with null and undefined parameters
PASS stream.removeTrack(null); threw exception TypeError: Argument 1 ('track') to MediaStream.removeTrack must be an instance of MediaStreamTrack.
PASS stream.removeTrack(undefined); threw exception TypeError: Argument 1 ('track') to MediaStream.removeTrack must be an instance of MediaStreamTrack.
PASS successfullyParsed is true

TEST COMPLETE

