| <!DOCTYPE html> |
| <html> |
| |
| <head> |
| <title>Input Time</title> |
| <meta name=viewport content="width=device-width, maximum-scale=1.0, user-scalable=no" /> |
| <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>Input Time</h1> |
| <div style="display:none;"> |
| <input type="time "id="chkDefaultValue" /> |
| <input type="time" id="chkStep" /> |
| <input type="time" id="chkSetValueTest" /> |
| <input type="time" id="chkSupportAttribute" min="01:01:01.001" max="12:12:12.012" step="600" /> |
| </div> |
| <div id="log"> |
| </div> |
| |
| <script type="text/javascript"> |
| |
| /* check default value */ |
| test(function(){ assert_equals(document.getElementById("chkDefaultValue").value, ""); |
| }, "time element of default time value"); |
| test(function(){assert_equals(document.getElementById('chkStep').step, ""); |
| }, "step attribute on default value check"); |
| test(function(){assert_equals(document.getElementById('chkDefaultValue').max, ""); |
| }, "max attribute on default value check") |
| test(function(){assert_equals(document.getElementById('chkDefaultValue').max, ""); |
| }, "min attribute on default value check") |
| |
| /* simple attribute test*/ |
| test(function(){assert_equals(document.getElementById("chkSupportAttribute").type,"time");} |
| , "type attribute support on input element"); |
| test(function(){assert_equals(document.getElementById('chkSupportAttribute').min, "01:01:01.001")} |
| , "max attribute support on input element"); |
| test(function(){assert_equals(document.getElementById('chkSupportAttribute').max, "12:12:12.012")} |
| , "min attribute support on input element"); |
| test(function(){assert_equals(document.getElementById("chkSupportAttribute").step, "600")} |
| , "step attribute support on input element"); |
| |
| /* check step up and down */ |
| var _StepTest = document.getElementById("chkStep"); |
| test(function(){ assert_true(typeof(_StepTest.stepUp) ==="function" ) } , "stepUp function support on input Element"); |
| test(function(){ assert_true(typeof(_StepTest.stepDown) ==="function" ) } , "stepDown function support on input Element"); |
| |
| test(function(){ |
| _StepTest.value = "12:00"; |
| _StepTest.step = ""; |
| _StepTest.stepUp(); |
| assert_in_array( |
| _StepTest.value, |
| [ |
| "12:01", |
| "12:01:00", |
| "12:01:00.0", |
| "12:01:00.00", |
| "12:01:00.000"], |
| "a valid time string representing 1 minute after noon"); |
| } , "stepUp step value empty on default step value "); |
| |
| test(function(){ |
| _StepTest.value = "12:00"; |
| _StepTest.step = ""; |
| _StepTest.stepDown(); |
| assert_in_array( |
| _StepTest.value, |
| [ |
| "11:59", |
| "11:59:00", |
| "11:59:00.0", |
| "11:59:00.00", |
| "11:59:00.000"], |
| "a valid time string representing 1 minute before noon"); |
| }, "stepDown step value empty default step value"); |
| |
| test(function(){ |
| _StepTest.value = "12:00"; |
| _StepTest.step = "-600"; |
| _StepTest.stepUp(); |
| assert_in_array( |
| _StepTest.value, |
| [ |
| "12:01", |
| "12:01:00", |
| "12:01:00.0", |
| "12:01:00.00", |
| "12:01:00.000"], |
| "a valid time string representing 1 minute after noon"); |
| },"stepUp on step value minus"); |
| test(function(){ |
| _StepTest.value = "12:00"; |
| _StepTest.step = "-600"; |
| _StepTest.stepDown(); |
| assert_in_array( |
| _StepTest.value, |
| [ |
| "11:59", |
| "11:59:00", |
| "11:59:00.0", |
| "11:59:00.00", |
| "11:59:00.000"], |
| "a valid time string representing 1 minute before noon"); |
| },"stepDown on step value minus"); |
| |
| test(function(){ |
| _StepTest.value = "12:00"; |
| _StepTest.step = "0"; |
| _StepTest.stepUp(); |
| assert_in_array( |
| _StepTest.value, |
| [ |
| "12:01", |
| "12:01:00", |
| "12:01:00.0", |
| "12:01:00.00", |
| "12:01:00.000"], |
| "a valid time string representing 1 minute after noon"); |
| } , "stepUp on step value zero "); |
| test(function(){ |
| _StepTest.value = "12:00"; |
| _StepTest.step = "0"; |
| _StepTest.stepDown(); |
| assert_in_array( |
| _StepTest.value, |
| [ |
| "11:59", |
| "11:59:00", |
| "11:59:00.0", |
| "11:59:00.00", |
| "11:59:00.000"], |
| "a valid time string representing 1 minute before noon"); |
| } , "stepDown on step value zero "); |
| |
| test(function(){ |
| _StepTest.value = "00:00"; |
| _StepTest.step = "86399"; |
| _StepTest.stepUp(); |
| assert_in_array( |
| _StepTest.value, |
| [ |
| "23:59:59", |
| "23:59:59.0", |
| "23:59:59.00", |
| "23:59:59.000"], |
| "a valid time string representing 1 second before midnight"); |
| } , "stepUp on step value 24 hour"); |
| test(function(){ |
| _StepTest.value = "23:59:59"; |
| _StepTest.step = "86399"; |
| _StepTest.stepDown(); |
| assert_in_array( |
| _StepTest.value, |
| [ |
| "00:00", |
| "00:00:00", |
| "00:00:00.0", |
| "00:00:00.00", |
| "00:00:00.000"], |
| "a valid time string representing midnight"); |
| } , "stepDown on step value 24 hour "); |
| |
| test(function(){ |
| _StepTest.value = "12:00"; |
| _StepTest.step = "3600"; |
| _StepTest.stepUp(); |
| assert_in_array( |
| _StepTest.value, |
| [ |
| "13:00", |
| "13:00:00", |
| "13:00:00.0", |
| "13:00:00.00", |
| "13:00:00.000"], |
| "a valid time string representing 1pm"); |
| } , "stepUp on step value hour "); |
| test(function(){ |
| _StepTest.value = "12:00"; |
| _StepTest.step = "3600"; |
| _StepTest.stepDown(); |
| assert_in_array( |
| _StepTest.value, |
| [ |
| "11:00", |
| "11:00:00", |
| "11:00:00.0", |
| "11:00:00.00", |
| "11:00:00.000"], |
| "a valid time string representing 11am"); |
| } , "stepDown on step value hour "); |
| |
| test(function(){ |
| _StepTest.value = "12:00"; |
| _StepTest.step = "1"; |
| _StepTest.stepUp(); |
| assert_in_array( |
| _StepTest.value, |
| [ |
| "12:00:01", |
| "12:00:01.0", |
| "12:00:01.00", |
| "12:00:01.000"], |
| "a valid time string representing 1 second after noon"); |
| } , "stepUp on step value second "); |
| test(function(){ |
| _StepTest.value = "12:00"; |
| _StepTest.step = "1"; |
| _StepTest.stepDown(); |
| assert_in_array( |
| _StepTest.value, |
| [ |
| "11:59:59", |
| "11:59:59.0", |
| "11:59:59.00", |
| "11:59:59.000"], |
| "a valid time string representing 1 second before noon"); |
| } , "stepDown on step value second "); |
| |
| test(function(){ |
| _StepTest.value = "12:00"; |
| _StepTest.step = "0.001"; |
| _StepTest.stepUp(); |
| assert_equals(_StepTest.value, "12:00:00.001"); |
| } , "stepUp on step value with fractional seconds"); |
| test(function(){ |
| _StepTest.value = "12:00"; |
| _StepTest.step = "0.001"; |
| _StepTest.stepDown(); |
| assert_equals(_StepTest.value, "11:59:59.999"); |
| } , "stepDown on step value with fractional seconds"); |
| |
| test(function(){ |
| _StepTest.value = "13:00:00"; |
| _StepTest.step = "1"; |
| _StepTest.stepUp(2); |
| assert_in_array( |
| _StepTest.value, |
| [ |
| "13:00:02", |
| "13:00:02.0", |
| "13:00:02.00", |
| "13:00:02.000"], |
| "a valid time string representing 2 seconds after 1pm"); |
| }, "stepUp argument 2 times"); |
| test(function(){ |
| _StepTest.value = "13:00:00"; |
| _StepTest.step = "1"; |
| _StepTest.stepDown(2); |
| assert_in_array( |
| _StepTest.value, |
| [ |
| "12:59:58", |
| "12:59:58.0", |
| "12:59:58.00", |
| "12:59:58.000"], |
| "a valid time string representing 2 seconds before 1pm"); |
| }, "stepDown argument 2 times"); |
| |
| test(function(){ |
| _StepTest.max = "15:00"; |
| this.add_cleanup(function() { _StepTest.max = ""; }); |
| _StepTest.value = "15:00"; |
| _StepTest.stepUp(); |
| assert_in_array( |
| _StepTest.value, |
| [ |
| "15:00", |
| "15:00:00", |
| "15:00:00.0", |
| "15:00:00.00", |
| "15:00:00.000"], |
| "a valid time string representing 3pm"); |
| } , "stepUp stop because it exceeds the maximum value"); |
| test(function(){ |
| _StepTest.min = "13:00"; |
| this.add_cleanup(function() { _StepTest.min = ""; }); |
| _StepTest.value = "13:00"; |
| _StepTest.stepDown(); |
| assert_in_array( |
| _StepTest.value, |
| [ |
| "13:00", |
| "13:00:00", |
| "13:00:00.0", |
| "13:00:00.00", |
| "13:00:00.000"], |
| "a valid time string representing 1pm"); |
| } , "stepDown stop so lower than the minimum value"); |
| |
| test(function(){ |
| // Set min value to ensure that 15:01 - base is a multiple of 2 min (i.e., a |
| // valid value). |
| _StepTest.min = "14:01"; |
| _StepTest.max = "15:01"; |
| this.add_cleanup(function() { _StepTest.min = _StepTest.max = ""; }); |
| _StepTest.value = "15:00"; |
| _StepTest.step = "120"; |
| _StepTest.stepUp(); |
| assert_in_array( |
| _StepTest.value, |
| [ |
| "15:01", |
| "15:01:00", |
| "15:01:00.0", |
| "15:01:00.00", |
| "15:01:00.000"], |
| "a valid time string representing 1 minute after 3pm"); |
| } , "stop at border on stepUp"); |
| test(function(){ |
| _StepTest.min = "12:59"; |
| this.add_cleanup(function() { _StepTest.min = ""; }); |
| _StepTest.value = "13:00"; |
| _StepTest.step = "120"; |
| _StepTest.stepDown(); |
| assert_in_array( |
| _StepTest.value, |
| [ |
| "12:59", |
| "12:59:00", |
| "12:59:00.0", |
| "12:59:00.00", |
| "12:59:00.000"], |
| "a valid time string representing 1 minute before 2pm"); |
| } , "stop at border on stepDown"); |
| |
| test(function(){ |
| _StepTest.value = ""; |
| _StepTest.step = "60"; |
| _StepTest.stepUp(); |
| assert_in_array( |
| _StepTest.value, |
| [ |
| "00:01", |
| "00:01:00", |
| "00:01:00.0", |
| "00:01:00.00", |
| "00:01:00.000"], |
| "a valid time string representing 1 minute after midnight"); |
| } , " empty value of stepUp"); |
| |
| |
| /* set value test */ |
| test(function(){ |
| var _time = document.getElementById("chkSetValueTest"); |
| _time.value = "12:00:00.000"; |
| assert_equals(_time.value, "12:00:00.000"); |
| _time.value = "hh:mi:ss.sss"; |
| assert_equals(_time.value, ""); |
| }, "set value on not time format value"); |
| |
| |
| </script> |
| </body> |
| </html> |