<!DOCTYPE html>
<meta charset='utf-8'>
<title>HTML Media Capture Test: capture video with 'environment' facing mode to produce one video file</title>
<link rel='author' title='Intel' href='http://www.intel.com'>
<link rel='help' href='https://w3c.github.io/html-media-capture'>
<link rel='help' href='https://www.w3.org/TR/html5/forms.html#attr-input-accept'>
<meta name='flags' content='interact'>
<meta name="timeout" content="long">
<script src='/resources/testharness.js'></script>
<script src='/resources/testharnessreport.js'></script>

<p>Clear all camera/microphone permissions before running this test. If prompted for permission, please allow.</p>

<p>After hitting the button below, the camera must be launched with viewing the environment mode.</p>

<p>(Note: If the user agent is unable to support the preferred facing mode, it can fall back to the implementation-specific default facing mode.)</p>

<p>Capture a video and then confirm the capturing.</p>

<p>Note: All the actions need to be done in 60 seconds, otherwise it will get TIMEOUT.</p>

<input type='file' accept='video/*' capture='environment'>

<div id='log'></div>

<script>
  var input;

  setup(function() {
    input = document.querySelector('input[type=file]');
  }, {explicit_done: true});

  async_test(function(t) {
    input.onchange = t.step_func_done(function() {
      assert_equals(input.files.length, 1, 'Should capture one file');
      assert_regexp_match(input.files[0].type, /^video\//, 'The captured file should be type of video');
    });
    done();
  });
</script>

