
FAIL addTransceiver() with undefined sendEncodings should have default encoding parameter with active set to true assert_equals: Expect dictionary.rtcp to be plain object expected "object" but got "undefined"
FAIL addTransceiver() with empty list sendEncodings should have default encoding parameter with active set to true assert_equals: Expect dictionary.rtcp to be plain object expected "object" but got "undefined"
FAIL sender.getParameters() should return sendEncodings set by addTransceiver() assert_equals: Expect dictionary.rtcp to be plain object expected "object" but got "undefined"
FAIL sender.setParameters() with mismatch number of encodings should reject with InvalidModificationError assert_equals: Expect dictionary.rtcp to be plain object expected "object" but got "undefined"
FAIL sender.setParameters() with encodings unset should reject with TypeError assert_equals: Expect dictionary.rtcp to be plain object expected "object" but got "undefined"
FAIL setParameters() with modified encoding.rid field should reject with InvalidModificationError assert_equals: Expect dictionary.rtcp to be plain object expected "object" but got "undefined"
FAIL setParameters() with encoding.scaleResolutionDownBy field set to less than 1.0 should reject with RangeError assert_equals: Expect dictionary.rtcp to be plain object expected "object" but got "undefined"
FAIL setParameters() with encoding.scaleResolutionDownBy field set to greater than 1.0 should succeed assert_equals: Expect dictionary.rtcp to be plain object expected "object" but got "undefined"
FAIL setParameters() with modified encoding.dtx should succeed with RTCRtpTransceiverInit assert_equals: Expect dictionary.rtcp to be plain object expected "object" but got "undefined"
FAIL setParameters() with modified encoding.dtx should succeed without RTCRtpTransceiverInit assert_equals: Expect dictionary.rtcp to be plain object expected "object" but got "undefined"
FAIL setParameters() with unset encoding.dtx should succeed with RTCRtpTransceiverInit assert_equals: Expect dictionary.rtcp to be plain object expected "object" but got "undefined"
FAIL setParameters() with unset encoding.dtx should succeed without RTCRtpTransceiverInit assert_equals: Expect dictionary.rtcp to be plain object expected "object" but got "undefined"
FAIL setParameters() with modified encoding.active should succeed with RTCRtpTransceiverInit assert_equals: Expect dictionary.rtcp to be plain object expected "object" but got "undefined"
FAIL setParameters() with modified encoding.active should succeed without RTCRtpTransceiverInit assert_equals: Expect dictionary.rtcp to be plain object expected "object" but got "undefined"
FAIL setParameters() with modified encoding.priority should succeed with RTCRtpTransceiverInit assert_equals: Expect dictionary.rtcp to be plain object expected "object" but got "undefined"
FAIL setParameters() with modified encoding.priority should succeed without RTCRtpTransceiverInit assert_equals: Expect dictionary.rtcp to be plain object expected "object" but got "undefined"
FAIL setParameters() with modified encoding.networkPriority should succeed with RTCRtpTransceiverInit assert_equals: Expect dictionary.rtcp to be plain object expected "object" but got "undefined"
FAIL setParameters() with modified encoding.networkPriority should succeed without RTCRtpTransceiverInit assert_equals: Expect dictionary.rtcp to be plain object expected "object" but got "undefined"
FAIL setParameters() with modified encoding.ptime should succeed with RTCRtpTransceiverInit assert_equals: Expect dictionary.rtcp to be plain object expected "object" but got "undefined"
FAIL setParameters() with modified encoding.ptime should succeed without RTCRtpTransceiverInit assert_equals: Expect dictionary.rtcp to be plain object expected "object" but got "undefined"
FAIL setParameters() with modified encoding.maxBitrate should succeed with RTCRtpTransceiverInit assert_equals: Expect dictionary.rtcp to be plain object expected "object" but got "undefined"
FAIL setParameters() with modified encoding.maxBitrate should succeed without RTCRtpTransceiverInit assert_equals: Expect dictionary.rtcp to be plain object expected "object" but got "undefined"
FAIL setParameters() with modified encoding.maxFramerate should succeed with RTCRtpTransceiverInit assert_equals: Expect dictionary.rtcp to be plain object expected "object" but got "undefined"
FAIL setParameters() with modified encoding.maxFramerate should succeed without RTCRtpTransceiverInit assert_equals: Expect dictionary.rtcp to be plain object expected "object" but got "undefined"

