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

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

  const stream = await getNoiseStream({audio:true});
  const [track] = stream.getTracks();
  caller.addTrack(track, stream);
  exchangeIceCandidates(caller, callee);
  await exchangeOfferAnswer(caller, callee);
  await listenToIceConnected(caller);

  const report = await caller.getStats();
  let succeededPairFound = false;
  report.forEach(stats => {
    if (stats.type == 'candidate-pair' && stats.state == 'succeeded')
      succeededPairFound = true;
  });
  assert_true(succeededPairFound, 'A succeeded candidate-pair should exist');
}, 'On ICE connected, getStats() contains a connected candidate-pair');

</script>
