https://github.com/web-platform-tests/wpt
Raw File
Tip revision: 9ee63dc2e8e8086b9e5e165b3ce09ac0580138d0 authored by Aryeh Gregor on 06 September 2017, 14:01:46 UTC
Rewrite document named property tests
Tip revision: 9ee63dc
RTCRtpSender-getStats.html
<!doctype html>
<meta charset=utf-8>
<title>RTCRtpSender.prototype.getStats</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="dictionary-helper.js"></script>
<script src="RTCStats-helper.js"></script>
<script>
  'use strict';

  // Test is based on the following editor draft:
  // https://w3c.github.io/webrtc-pc/archives/20170605/webrtc.html
  // https://w3c.github.io/webrtc-stats/archives/20170614/webrtc-stats.html

  // The following helper function is called from RTCStats-helper.js
  //   validateStatsReport
  //   assert_stats_report_has_stats

  /*
    5.2.  RTCRtpSender Interface
      interface RTCRtpSender {
         Promise<RTCStatsReport> getStats();
          ...
      };

      getStats
        1.  Let selector be the RTCRtpSender object on which the method was invoked.
        2.  Let p be a new promise, and run the following steps in parallel:
          1.  Gather the stats indicated by selector according to the stats selection
              algorithm.
          2.  Resolve p with the resulting RTCStatsReport object, containing the
              gathered stats.
        3.  Return p.

    8.5. The stats selection algorithm
      3.  If selector is an RTCRtpSender, gather stats for and add the following objects
          to result:
        - All RTCOutboundRTPStreamStats objects corresponding to selector.
        - All stats objects referenced directly or indirectly by the RTCOutboundRTPStreamStats
          objects added.
   */

  promise_test(() => {
    const pc = new RTCPeerConnection();
    const { sender } = pc.addTransceiver('audio');

    return sender.getStats()
    .then(statsReport => {
      validateStatsReport(statsReport);
      assert_stats_report_has_stats(statsReport, ['outbound-rtp']);
    });
  }, 'sender.getStats() should return stats report containing outbound-rtp stats');

</script>
back to top