| <!doctype html> | |
| <meta charset=utf-8> | |
| <title>RTCPeerconnection SDP parse tests</title> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <script src="../RTCPeerConnection-helper.js"></script> | |
| <script> | |
| 'use strict'; | |
| function removeSdpLines(description, toRemove) { | |
| const edited = description.sdp.split('\n').filter(function(line) { | |
| return (!line.startsWith(toRemove)); | |
| }).join('\n'); | |
| return {type: description.type, sdp: edited}; | |
| } | |
| promise_test(async t => { | |
| const caller = new RTCPeerConnection(); | |
| const callee = new RTCPeerConnection(); | |
| t.add_cleanup(() => caller.close()); | |
| t.add_cleanup(() => callee.close()); | |
| caller.addTrack(trackFactories.audio()); | |
| const offer = await caller.createOffer(); | |
| await caller.setLocalDescription(offer); | |
| let remote_offer = removeSdpLines(offer, 'a=mid:'); | |
| remote_offer = removeSdpLines(remote_offer, 'a=group:'); | |
| await callee.setRemoteDescription(remote_offer); | |
| const answer = await callee.createAnswer(); | |
| await caller.setRemoteDescription(answer); | |
| }, 'Offer description with no mid is accepted'); | |
| promise_test(async t => { | |
| const caller = new RTCPeerConnection(); | |
| const callee = new RTCPeerConnection(); | |
| t.add_cleanup(() => caller.close()); | |
| t.add_cleanup(() => callee.close()); | |
| caller.addTrack(trackFactories.audio()); | |
| const offer = await caller.createOffer(); | |
| await caller.setLocalDescription(offer); | |
| await callee.setRemoteDescription(offer); | |
| const answer = await callee.createAnswer(); | |
| let remote_answer = removeSdpLines(answer, 'a=mid:'); | |
| remote_answer = removeSdpLines(remote_answer, 'a=group:'); | |
| await caller.setRemoteDescription(remote_answer); | |
| }, 'Answer description with no mid is accepted'); | |
| </script> |