<!DOCTYPE HTML>
<html>
 <head>
  <title>Forms</title>
  <script src="../../resources/testharness.js"></script>
  <script src="../../resources/testharnessreport.js"></script>
 </head>
 <body>
  <p>
    <h3>input_validity</h3>
  </p>
  
  <hr>

  <div id="log"></div>

  <form method="post"
      enctype="application/x-www-form-urlencoded"
      action="" 
      id="input_form">
    <p><input type='hidden' id='input_text'></p>
  </form>
  <script>

    var input = document.getElementById("input_text");

    if (typeof(input.validity) == "object") {
      test(function() {
        assert_equals(input.validity.valueMissing, false, "validity attribute is not correct.");
      });
    } else {
      test(function() {
        assert_unreached("validity attribute is not exist.");
      });
    }

  </script>

 </body>
</html>