<!doctype html>
<meta charset=utf-8>
<meta name="timeout" content="long">
<title>RTCPeerConnection Failed State</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../RTCPeerConnection-helper.js"></script>
<script>
'use strict';

// Test support for
// https://tools.ietf.org/html/rfc7741#section-6.1

const sdp = `v=0
o=- 0 3 IN IP4 127.0.0.1
s=-
t=0 0
a=fingerprint:sha-256 A7:24:72:CA:6E:02:55:39:BA:66:DF:6E:CC:4C:D8:B0:1A:BF:1A:56:65:7D:F4:03:AD:7E:77:43:2A:29:EC:93
m=video 9 UDP/TLS/RTP/SAVPF 100
c=IN IP4 0.0.0.0
a=rtcp-mux
a=sendonly
a=mid:video
a=rtpmap:100 VP8/90000
a=fmtp:100 max-fr=30;max-fs=3600
a=setup:actpass
a=ice-ufrag:ETEn
a=ice-pwd:OtSK0WpNtpUjkY4+86js7Z/l
`;

promise_test(async t => {
  const pc = new RTCPeerConnection();
  t.add_cleanup(() => pc.close());

  await pc.setRemoteDescription({type: 'offer', sdp});
  await pc.setLocalDescription();
  const receiver = pc.getReceivers()[0];
  const parameters = receiver.getParameters();
  const {sdpFmtpLine} = parameters.codecs[0];
  assert_true(!!sdpFmtpLine);
  assert_true(sdpFmtpLine.split(';').includes('max-fr=30'));
  assert_true(sdpFmtpLine.split(';').includes('max-fs=3600'));
}, 'setRemoteDescription parses max-fr and max-fs fmtp parameters');
</script>
