Files
tubestation/testing/web-platform/tests/webrtc/RTCRtpSender-getStats.https.html
Henrik Boström 3b976d09da Bug 1447986 [wpt PR 10142] - RTCRtpSender.getStats() in blink added behind flag., a=testonly
Automatic update from web-platform-testsRTCRtpSender.getStats() in blink added behind flag.

This exposes RTCRtpSender.getStats() in JavaScript (behind flag) which
implements the stats selection algorithm[1] for senders.

[1] https://w3c.github.io/webrtc-pc/#dfn-stats-selection-algorithm

Bug: 680172
Change-Id: I8117c87f475d1c78fa3301fc2d821f0c3a21281f
Reviewed-on: https://chromium-review.googlesource.com/975306
Commit-Queue: Henrik Boström <hbos@chromium.org>
Reviewed-by: Philip Jägenstedt <foolip@chromium.org>
Reviewed-by: Harald Alvestrand <hta@chromium.org>
Reviewed-by: Taylor Brandstetter <deadbeef@chromium.org>
Cr-Commit-Position: refs/heads/master@{#546493}

wpt-commits: 42f43956d49feb44ac03a0945a64066dd77e1f6c
wpt-pr: 10142
wpt-commits: 42f43956d49feb44ac03a0945a64066dd77e1f6c
wpt-pr: 10142
2018-04-15 08:36:47 +01:00

67 lines
2.5 KiB
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="RTCPeerConnection-helper.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:
// webrtc-pc 20171130
// webrtc-stats 20171122
// The following helper functions are called from RTCPeerConnection-helper.js:
// doSignalingHandshake
// The following helper function is called from RTCStats-helper.js
// validateStatsReport
// assert_stats_report_has_stats
/*
5.2. RTCRtpSender Interface
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(async () => {
const caller = new RTCPeerConnection();
const callee = new RTCPeerConnection();
const { sender } = caller.addTransceiver('audio');
await doSignalingHandshake(caller, callee);
const statsReport = await sender.getStats();
validateStatsReport(statsReport);
assert_stats_report_has_stats(statsReport, ['outbound-rtp']);
}, 'sender.getStats() via addTransceiver should return stats report containing outbound-rtp stats');
promise_test(async () => {
const caller = new RTCPeerConnection();
const callee = new RTCPeerConnection();
const stream = await navigator.mediaDevices.getUserMedia({audio:true});
const [track] = stream.getTracks();
const sender = caller.addTrack(track, stream);
await doSignalingHandshake(caller, callee);
const statsReport = await sender.getStats();
validateStatsReport(statsReport);
assert_stats_report_has_stats(statsReport, ['outbound-rtp']);
}, 'sender.getStats() via addTrack should return stats report containing outbound-rtp stats');
</script>