<!DOCTYPE html>
<html>
  <head>
    <title>Date and Time Inputs</title>
    <meta name=viewport content="width=device-width, maximum-scale=1.0, user-scalable=no" />
    <link rel="author" title="Fabrice Clari" href="mailto:f.clari@inno-group.com">
    <link rel="author" title="Dimitri Bocquet" href="mailto:Dimitri.Bocquet@mosquito-fp7.eu">
    <link rel="help" href="https://html.spec.whatwg.org/multipage/#the-input-element">
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
  </head>
  <body>

      <h1>Date and Time Inputs</h1>
      <div style="display: none">
        <input type="date" value="2011-12-01" min="2011-12-01" max="2011-12-31" step="5" />
        <input type="time" value= "12:00" min="11:30" max="14:00" step="600" />
        <input type="datetime-local" value="2011-12-01T12:00" min="2011-12-01T12:00" max="2011-12-31T22:00" step="7200" />
        <input type="month" value="2011-01" min="2011-01" max="2011-12" step="2" />
        <input type="week" value="2011-W40" min="2011-W20" max="2011-W50" step="2" />
    </div>

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

  <script type="text/javascript">
    test(function() {assert_equals(document.getElementsByTagName("input")[0].type, "date")}, "date type support on input element", {
      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-type" });
    test(function() {assert_equals(document.getElementsByTagName("input")[0].value, "2011-12-01")}, "[date] The value must be a valid global date and time string", {
      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-value" });
    test(function() {assert_equals(document.getElementsByTagName("input")[0].min, "2011-12-01")}, "[date] The min attribute must have a value that is a valid global date and time string", {
      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-min" });
    test(function() {assert_equals(document.getElementsByTagName("input")[0].max, "2011-12-31")}, "[date] The max attribute must have a value that is a valid global date and time string", {
      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-max" });
    test(function() {assert_equals(document.getElementsByTagName("input")[0].step, "5")}, "[date] The step attribute must be expressed in seconds", {
      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-step" });
    test(function() {assert_true(typeof(document.getElementsByTagName("input")[0].stepUp) == "function")}, "[date] stepUp method support on input 'date' element", {
      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-stepup" });
    test(function() {assert_true(typeof(document.getElementsByTagName("input")[0].stepDown) == "function")}, "[date] stepDown method support on input 'date' element", {
      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-stepdown" });

    test(function() {assert_equals(document.getElementsByTagName("input")[1].type, "time")}, "[time] time type support on input element", {
      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-type" });
    test(function() {assert_equals(document.getElementsByTagName("input")[1].value, "12:00")}, "[time] The value must be a valid global date and time string", {
      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-value" });
    test(function() {assert_equals(document.getElementsByTagName("input")[1].min, "11:30")}, "[time] The min attribute must have a value that is a valid global date and time string", {
      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-min" });
    test(function() {assert_equals(document.getElementsByTagName("input")[1].max, "14:00")}, "[time] The max attribute must have a value that is a valid global date and time string", {
      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-max" });
    test(function() {assert_equals(document.getElementsByTagName("input")[1].step, "600")}, "[time] The step attribute must be expressed in seconds", {
      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-step" });
    test(function() {assert_true(typeof(document.getElementsByTagName("input")[1].stepUp) == "function")}, "[time] stepUp method support on input 'time' element", {
      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-stepup" });
    test(function() {assert_true(typeof(document.getElementsByTagName("input")[1].stepDown) == "function")}, "[time] stepDown method support on input 'time' element", {
      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-stepdown" });

    test(function() {assert_equals(document.getElementsByTagName("input")[2].type, "datetime-local")}, "datetime-local type support on input element", {
      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-type" });
    test(function() {assert_equals(document.getElementsByTagName("input")[2].value, "2011-12-01T12:00")}, "[datetime-local] The must be a valid local date and time string", {
      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-value" });
    test(function() {assert_equals(document.getElementsByTagName("input")[2].min, "2011-12-01T12:00")}, "[datetime-local] The min attribute must have a value that is a valid local date and time string", {
      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-min" });
    test(function() {assert_equals(document.getElementsByTagName("input")[2].max, "2011-12-31T22:00")}, "[datetime-local] The max attribute must have a value that is a valid local date and time string", {
      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-max" });
    test(function() {assert_equals(document.getElementsByTagName("input")[2].step, "7200")}, "[datetime-local] The step attribute must be expressed in seconds", {
      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-step" });
    test(function() {assert_true(typeof(document.getElementsByTagName("input")[2].stepUp) == "function")}, "[datetime-local] stepUp method support on input 'datetime-local' element", {
      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-stepup" });
    test(function() {assert_true(typeof(document.getElementsByTagName("input")[2].stepDown) == "function")}, "[datetime-local] stepDown method support on input 'datetime-local' element", {
      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-stepdown" });

    test(function() {assert_equals(document.getElementsByTagName("input")[3].type, "month")}, "month type support on input element", {
      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-type" });
    test(function() {assert_equals(document.getElementsByTagName("input")[3].value, "2011-01")}, "[month] The value must be a value that is a valid global date and time string", {
      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-value" });
    test(function() {assert_equals(document.getElementsByTagName("input")[3].min, "2011-01")}, "[month] The min attribute must have a value that is a valid global date and time string", {
      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-min" });
    test(function() {assert_equals(document.getElementsByTagName("input")[3].max, "2011-12")}, "[month] The max attribute must have a value that is a valid global date and time string", {
      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-max" });
    test(function() {assert_equals(document.getElementsByTagName("input")[3].step, "2")}, "[month] The step attribute must be expressed in seconds", {
      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-step" });
    test(function() {assert_true(typeof(document.getElementsByTagName("input")[3].stepUp) == "function")}, "[month] stepUp method support on input 'month' element", {
      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-stepup" });
    test(function() {assert_true(typeof(document.getElementsByTagName("input")[3].stepDown) == "function")}, "[month] stepDown method support on input 'month' element", {
      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-stepdown" });

    test(function() {assert_equals(document.getElementsByTagName("input")[4].type, "week")}, "week type support on input element", {
      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-type" });
    test(function() {assert_equals(document.getElementsByTagName("input")[4].value, "2011-W40")}, "[week] The value must be a value that is a valid global date and time string", {
      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-value" });
    test(function() {assert_equals(document.getElementsByTagName("input")[4].min, "2011-W20")}, "[week] The min attribute must have a value that is a valid global date and time string", {
      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-min" });
    test(function() {assert_equals(document.getElementsByTagName("input")[4].max, "2011-W50")}, "[week] The max attribute must have a value that is a valid global date and time string", {
      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-max" });
    test(function() {assert_equals(document.getElementsByTagName("input")[4].step, "2")}, "[week] The step attribute must be expressed in seconds", {
      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-step" });
    test(function() {assert_true(typeof(document.getElementsByTagName("input")[4].stepUp) == "function")}, "[week] stepUp method support on input 'week' element", {
      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-stepup" });
    test(function() {assert_true(typeof(document.getElementsByTagName("input")[4].stepDown) == "function")}, "[week] stepDown method support on input 'week' element", {
      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-stepdown" });

  </script>

  </body>

</html>
