RTCPeerConnection-createAnswer.html (1506B)
1 <!doctype html> 2 <meta charset=utf-8> 3 <title>RTCPeerConnection.prototype.createAnswer</title> 4 <script src="/resources/testharness.js"></script> 5 <script src="/resources/testharnessreport.js"></script> 6 <script src="RTCPeerConnection-helper.js"></script> 7 <script> 8 'use strict'; 9 10 promise_test(async t => { 11 const pc = new RTCPeerConnection(); 12 t.add_cleanup(() => pc.close()); 13 14 await promise_rejects_dom(t, 'InvalidStateError', pc.createAnswer()); 15 }, 'createAnswer() with null remoteDescription should reject with InvalidStateError'); 16 17 promise_test(async t => { 18 const pc = new RTCPeerConnection(); 19 t.add_cleanup(() => pc.close()); 20 21 const offer = await pc.createOffer(); 22 await pc.setRemoteDescription(offer); 23 const answer = await pc.createAnswer(); 24 assert_equals(typeof answer, 'object', 25 'Expect answer to be plain object (dictionary RTCSessionDescriptionInit)'); 26 assert_false(answer instanceof RTCSessionDescription, 27 'Expect answer to not be instance of RTCSessionDescription'); 28 }, 'createAnswer() returns RTCSessionDescriptionInit'); 29 30 promise_test(async t => { 31 const pc = new RTCPeerConnection(); 32 t.add_cleanup(() => pc.close()); 33 34 // generateDataChannelOffer() is defined in RTCPeerConnection-helper.js. 35 const offer = await generateDataChannelOffer(pc); 36 await pc.setRemoteDescription(offer); 37 pc.close(); 38 await promise_rejects_dom(t, 'InvalidStateError', pc.createAnswer()); 39 }, 'createAnswer() when connection is closed should reject with InvalidStateError'); 40 41 </script>