<!doctype html>
<title>Historical Media Capture and Streams features</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script>
test(function() {
  assert_false("webkitMediaStream" in window);
}, "webkitMediaStream interface should not exist");

test(function() {
  assert_false("webkitGetUserMedia" in navigator);
}, "navigator.webkitGetUserMedia should not exist");

test(function() {
  assert_false("mozGetUserMedia" in navigator);
}, "navigator.mozGetUserMedia should not exist");

test(() => {
  const mediaStream = new MediaStream();
  assert_throws(new TypeError(), () => URL.createObjectURL(mediaStream));
}, "Passing MediaStream to URL.createObjectURL() should throw");

test(() => {
  const mediaStream = new MediaStream();
  assert_false("onactive" in mediaStream);
}, "MediaStream.onactive should not exist");

test(() => {
  const mediaStream = new MediaStream();
  assert_false("oninactive" in mediaStream);
}, "MediaStream.oninactive should not exist");
</script>
