blob: ec815d4cb302cfb68db7976ba79bec1de762b7b7 [file] [log] [blame]
<!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>