<!DOCTYPE html>
<html>
  <head>
    <title>Date & 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 & 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" value="2011-12-01T12:00Z" min="2011-12-01T12:00Z" max="2011-12-31T22:00Z" 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")}, "datetime 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:00Z")}, "[datetime] The 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")[2].min, "2011-12-01T12:00Z")}, "[datetime] 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")[2].max, "2011-12-31T22:00Z")}, "[datetime] 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")[2].step, "7200")}, "[datetime] 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] stepUp method support on input 'datetime' element", {
      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-stepup" });
    test(function() {assert_true(typeof(document.getElementsByTagName("input")[2].stepDown) == "function")}, "[datetime] stepDown method support on input 'datetime' 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>
