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

  <hr>

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

  <form method="post"
      enctype="application/x-www-form-urlencoded"
      action=""
      id="input_form">
    <p><button id='button_id'>button</button></p>
  </form>
  <script>

    var button = document.getElementById("button_id");

    try
    {
      var ret = button.checkValidity();

      test(function() {
        assert_equals(ret, true, "calling of checkValidity method is failed.");
      });
    }
    catch (e) {
      test(function() {
        assert_unreached("autofocus attribute is not exist.");
      });
    }

  </script>

 </body>
</html>
