blob: 7f5ff934fad7ccb47b742bd4cb8546e3a745b483 [file] [log] [blame]
<!doctype html>
<html>
<head>
<title>MediaRecorder peer connection</title>
<link rel="help"
href="https://w3c.github.io/mediacapture-record/MediaRecorder.html#dom-mediarecorder-mimeType">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="utils/peerconnection.js"></script>
</head>
<body>
<script>
[{name: "audio", kind: {audio: true, video: false}},
{name: "video", kind: {audio: false, video: true}},
{name: "audio/video", kind: {audio: true, video: true}}].forEach(args => {
promise_test(async t => {
const [localPc, remotePc, stream] = await startConnection(
t, args.kind.audio, args.kind.video);
const recorder = new MediaRecorder(stream);
// Set an arbitrary timeslice interval so the ondataavailable event
// handler gets invoked repeatedly. Without it, the test would
// deadlock as it's currently written.
recorder.start(100);
let combinedSize = 0;
const dataPromise = new Promise(r => recorder.ondataavailable = e => {
// Wait for an arbitrary amount of data to appear before we resolve.
combinedSize += e.data.size;
if (combinedSize > 4711) r();
});
await dataPromise;
recorder.stop();
}, "PeerConnection MediaRecorder records " + args.name +
" from PeerConnection without sinks");
});
</script>
</body>
</html>