<!DOCTYPE html>
<html>
  <head>
    <title>Hidden input element</title>
    <link rel="author" title="Kinuko Yasuda" href="mailto:kinuko@chromium.org">
    <link rel="help" href="https://html.spec.whatwg.org/multipage/#hidden-state-(type=hidden)">
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
  </head>

  <body>
    <h1>Hidden input element</h1>
    <div style="display: none">

    <input id="hidden" type="hidden" />
    <input id="hidden_with_value" type="hidden" value="foo" />

    </div>
    <div id="log"></div>
  <script type="text/javascript">

    test(
      function() {
        assert_equals(document.getElementById("hidden").value, "");
        assert_equals(document.getElementById("hidden_with_value").value, "foo");
      }, "Value returns the current value for hidden");

    test(
      function() {
        document.getElementById("hidden").value = "A";
        assert_equals(document.getElementById("hidden").value, "A");
        document.getElementById("hidden").value = "B";
        assert_equals(document.getElementById("hidden").value, "B");
      }, "Setting value changes the current value for hidden");

    test(
      function() {
        assert_equals(document.getElementById("hidden").files, null);
      }, "files attribute must return null for hidden");

    test(
      function() {
        assert_equals(document.getElementById("hidden").valueAsDate, null);
      }, "valueAsDate attribute must return null for hidden");

    test(
      function() {
        assert_equals(document.getElementById("hidden").valueAsNumber, NaN);
      }, "valueAsNumber attribute must return NaN for hidden");

    test(
      function() {
        assert_equals(document.getElementById("hidden").list, null);
      }, "list attribute must return null for hidden");

    test(
      function() {
        var el = document.getElementById("hidden");
        assert_throws_dom("InvalidStateError", function() { el.stepDown(); }, "");
      }, "stepDown does not apply for hidden");

    test(
      function() {
        var el = document.getElementById("hidden");
        assert_throws_dom("InvalidStateError", function() { el.stepUp(); }, "");
      }, "stepUp does not apply for hidden");

    test(function(){
      var el = document.getElementById("hidden");
      assert_false(el.willValidate);
    }, "input type=hidden is barred from constraint validation");
  </script>
  </body>
</html>
