<!DOCTYPE html>
<meta charset='utf-8'>
<title>HTML Media Capture Test: capture image with implementation-specific default facing mode(invalid value default) to produce one image 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 permissions before running this test. If prompted for permission, please allow.</p>

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

<p>Capture an image 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='image/*' capture='invalid'>

<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, /^image\//, 'The captured file should be type of image');
    });
    done();
  });
</script>

