<!doctype html>
<html>
<head>
<title>Distinct id for distinct mediastream tracks</title>
<link rel="author" title="Dominique Hazael-Massieux" href="mailto:dom@w3.org"/>
<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#widl-MediaStreamTrack-id">
</head>
<body>
<p class="instructions">When prompted, accept to share your audio and video stream.</p>
<h1 class="instructions">Description</h1>
<p class="instructions">This test checks that distinct mediastream tracks have distinct ids.</p>

<div id='log'></div>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script>
var t = async_test("Tests that distinct mediastream tracks have distinct ids ");
t.step(function () {
  navigator.mediaDevices.getUserMedia({video: true, audio: true})
    .then(t.step_func(gotStream), t.step_func(function(error) {t.assert_unreached("Access to audio and video stream is granted");}));
  function gotStream(stream) {
    assert_not_equals(stream.getVideoTracks()[0], stream.getAudioTracks()[0].id, "audio and video tracks have distinct ids");
    t.done();
  }
});
</script>
</body>
</html>
