| <!DOCTYPE html> |
| <meta charset=utf-8> |
| <title>Form input type=week</title> |
| <link rel="author" title="Denis Ah-Kang" href="mailto:denis@w3.org"> |
| <link rel=help href="https://html.spec.whatwg.org/multipage/#weeks"> |
| <link rel=help href="https://html.spec.whatwg.org/multipage/#week-state-(type=week)"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <div id="log"></div> |
| <script> |
| var weeks = [ |
| {value: "", expected: "", testname: "empty value"}, |
| {value: "2014-W52", expected: "2014-W52", testname: "Valid value: Value should be 2014-W52"}, |
| {value: "2014-W53", expected: "", testname: "2014 has 52 weeks: Value should be empty"}, |
| {value: "2015-W53", expected: "2015-W53", testname: "2015 has 53 weeks: Value should be 2015-W53"}, |
| {value: "2014", expected: "", testname: "Invalid value: year only"}, |
| {value: "2014W", expected: "", testname: "Invalid value: no week number"}, |
| {value: "2014W52", expected: "", testname: "Invalid value: no '-' (U+002D)"}, |
| {value: "-W52", expected: "", testname: "Invalid value: yearless week"}, |
| {value: "W52", expected: "", testname: "Invalid value: yearless week and no '-' (U+002D)"}, |
| {value: "2014-W03", attributes: { min: "2014-W02" }, expected: "2014-W03", testname: "Value >= min attribute"}, |
| {value: "2014-W01", attributes: { min: "2014-W02" }, expected: "2014-W02", testname: "Value < min attribute"}, |
| {value: "2014-W10", attributes: { max: "2014-W11" }, expected: "2014-W10", testname: "Value <= max attribute"}, |
| {value: "2014-W12", attributes: { max: "2014-W11" }, expected: "2014-W11", testname: "Value > max attribute"} |
| ]; |
| for (var i = 0; i < weeks.length; i++) { |
| var w = weeks[i]; |
| test(function() { |
| var input = document.createElement("input"); |
| input.type = "week"; |
| input.value = w.value; |
| for(var attr in w.attributes) { |
| input[attr] = w.attributes[attr]; |
| } |
| assert_equals(input.value, w.expected); |
| }, w.testname); |
| } |
| </script> |