forked from LadybirdBrowser/ladybird
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Tests/LibWeb: Import <input> valueAsNumber WPT test
This speculatively includes the changes for the not-yet merged wpt#50592 merge request.
- Loading branch information
1 parent
a706d0e
commit ea880ec
Showing
2 changed files
with
223 additions
and
0 deletions.
There are no files selected for viewing
66 changes: 66 additions & 0 deletions
66
...b/Text/expected/wpt-import/html/semantics/forms/the-input-element/input-valueasnumber.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
Harness status: OK | ||
|
||
Found 60 tests | ||
|
||
34 Pass | ||
26 Fail | ||
Pass valueAsNumber getter on type date (actual value: , expected valueAsNumber: NaN) | ||
Pass valueAsNumber getter on type date (actual value: 0000-12-10, expected valueAsNumber: NaN) | ||
Pass valueAsNumber getter on type date (actual value: 2019-00-12, expected valueAsNumber: NaN) | ||
Pass valueAsNumber getter on type date (actual value: 2019-12-00, expected valueAsNumber: NaN) | ||
Pass valueAsNumber getter on type date (actual value: 2019-13-10, expected valueAsNumber: NaN) | ||
Pass valueAsNumber getter on type date (actual value: 2019-02-29, expected valueAsNumber: NaN) | ||
Fail valueAsNumber getter on type date (actual value: 2019-12-10, expected valueAsNumber: 1575936000000) | ||
Fail valueAsNumber getter on type date (actual value: 2016-02-29, expected valueAsNumber: 1456704000000) | ||
Fail valueAsNumber setter on type date (actual valueAsNumber: 0, expected value: 1970-01-01) | ||
Fail valueAsNumber setter on type date (actual valueAsNumber: 1575936000000, expected value: 2019-12-10) | ||
Fail valueAsNumber setter on type date (actual valueAsNumber: 1456704000000, expected value: 2016-02-29) | ||
Pass valueAsNumber getter on type month (actual value: , expected valueAsNumber: NaN) | ||
Pass valueAsNumber getter on type month (actual value: 0000-12, expected valueAsNumber: NaN) | ||
Pass valueAsNumber getter on type month (actual value: 2019-00, expected valueAsNumber: NaN) | ||
Fail valueAsNumber getter on type month (actual value: 2019-12, expected valueAsNumber: 599) | ||
Fail valueAsNumber getter on type month (actual value: 1969-12, expected valueAsNumber: -1) | ||
Fail valueAsNumber setter on type month (actual valueAsNumber: 599, expected value: 2019-12) | ||
Fail valueAsNumber setter on type month (actual valueAsNumber: -1, expected value: 1969-12) | ||
Pass valueAsNumber getter on type week (actual value: , expected valueAsNumber: NaN) | ||
Pass valueAsNumber getter on type week (actual value: 0000-W50, expected valueAsNumber: NaN) | ||
Pass valueAsNumber getter on type week (actual value: 2019-W00, expected valueAsNumber: NaN) | ||
Pass valueAsNumber getter on type week (actual value: 2019-W60, expected valueAsNumber: NaN) | ||
Fail valueAsNumber getter on type week (actual value: 2019-W50, expected valueAsNumber: 1575849600000) | ||
Fail valueAsNumber getter on type week (actual value: 1969-W20, expected valueAsNumber: -20217600000) | ||
Fail valueAsNumber setter on type week (actual valueAsNumber: 0, expected value: 1970-W01) | ||
Fail valueAsNumber setter on type week (actual valueAsNumber: 1575849600000, expected value: 2019-W50) | ||
Fail valueAsNumber setter on type week (actual valueAsNumber: -20217600000, expected value: 1969-W20) | ||
Pass valueAsNumber getter on type time (actual value: , expected valueAsNumber: NaN) | ||
Pass valueAsNumber getter on type time (actual value: 24:00, expected valueAsNumber: NaN) | ||
Pass valueAsNumber getter on type time (actual value: 00:60, expected valueAsNumber: NaN) | ||
Fail valueAsNumber getter on type time (actual value: 00:00, expected valueAsNumber: 0) | ||
Fail valueAsNumber getter on type time (actual value: 12:00, expected valueAsNumber: 43200000) | ||
Fail valueAsNumber getter on type time (actual value: 23:59, expected valueAsNumber: 86340000) | ||
Fail valueAsNumber setter on type time (actual valueAsNumber: 0, expected value: 00:00) | ||
Fail valueAsNumber setter on type time (actual valueAsNumber: 43200000, expected value: 12:00) | ||
Fail valueAsNumber setter on type time (actual valueAsNumber: 86340000, expected value: 23:59) | ||
Pass valueAsNumber getter on type datetime-local (actual value: , expected valueAsNumber: NaN) | ||
Fail valueAsNumber getter on type datetime-local (actual value: 2019-12-10T00:00, expected valueAsNumber: 1575936000000) | ||
Fail valueAsNumber getter on type datetime-local (actual value: 2019-12-10T12:00, expected valueAsNumber: 1575979200000) | ||
Fail valueAsNumber setter on type datetime-local (actual valueAsNumber: 1575936000000, expected value: 2019-12-10T00:00) | ||
Fail valueAsNumber setter on type datetime-local (actual valueAsNumber: 1575979200000, expected value: 2019-12-10T12:00) | ||
Pass valueAsNumber getter on type number (actual value: , expected valueAsNumber: NaN) | ||
Pass valueAsNumber getter on type number (actual value: 123, expected valueAsNumber: 123) | ||
Pass valueAsNumber getter on type number (actual value: 123.456, expected valueAsNumber: 123.456) | ||
Pass valueAsNumber getter on type number (actual value: 1e3, expected valueAsNumber: 1000) | ||
Pass valueAsNumber getter on type number (actual value: 1e, expected valueAsNumber: NaN) | ||
Pass valueAsNumber getter on type number (actual value: -123, expected valueAsNumber: -123) | ||
Pass valueAsNumber setter on type number (actual valueAsNumber: 123, expected value: 123) | ||
Pass valueAsNumber setter on type number (actual valueAsNumber: 123.456, expected value: 123.456) | ||
Pass valueAsNumber setter on type number (actual valueAsNumber: 1000, expected value: 1000) | ||
Pass valueAsNumber setter on type number (actual valueAsNumber: -123, expected value: -123) | ||
Pass valueAsNumber getter on type range (actual value: , expected valueAsNumber: 50) | ||
Pass valueAsNumber getter on type range (actual value: 0, expected valueAsNumber: 0) | ||
Pass valueAsNumber getter on type range (actual value: 50, expected valueAsNumber: 50) | ||
Pass valueAsNumber getter on type range (actual value: 100, expected valueAsNumber: 100) | ||
Fail valueAsNumber getter on type range (actual value: -10, expected valueAsNumber: 0) | ||
Fail valueAsNumber getter on type range (actual value: 110, expected valueAsNumber: 100) | ||
Pass valueAsNumber setter on type range (actual valueAsNumber: 0, expected value: 0) | ||
Pass valueAsNumber setter on type range (actual valueAsNumber: 50, expected value: 50) | ||
Pass valueAsNumber setter on type range (actual valueAsNumber: 100, expected value: 100) |
157 changes: 157 additions & 0 deletions
157
...Web/Text/input/wpt-import/html/semantics/forms/the-input-element/input-valueasnumber.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,157 @@ | ||
<!DOCTYPE HTML> | ||
<meta charset="utf-8"> | ||
<html> | ||
<head> | ||
<title>HTMLInputElement valueAsNumber</title> | ||
<link rel="author" title="pmdartus" href="mailto:[email protected]"> | ||
<link rel=help href="https://html.spec.whatwg.org/#dom-input-valueasnumber"> | ||
|
||
<script src="../../../../resources/testharness.js"></script> | ||
<script src="../../../../resources/testharnessreport.js"></script> | ||
</head> | ||
<body> | ||
<h3>input_valueAsNumber</h3> | ||
<hr> | ||
<div id="log"></div> | ||
|
||
<input id="input_date" type="date" /> | ||
<input id="input_month" type="month" /> | ||
<input id="input_week" type="week" /> | ||
<input id="input_time" type="time" /> | ||
<input id="input_datetime-local" type="datetime-local" /> | ||
<input id="input_number" type="number" /> | ||
<input id="input_range" type="range" min="0" max="100" /> | ||
|
||
<script> | ||
"use strict"; | ||
|
||
function testValueAsNumberGetter(type, element, cases) { | ||
for (const [value, expectedValueAsNumber] of cases) { | ||
test( | ||
() => { | ||
element.value = value; | ||
assert_equals(element.valueAsNumber, expectedValueAsNumber); | ||
}, | ||
`valueAsNumber getter on type ${type} (actual value: ${value}, ` + | ||
`expected valueAsNumber: ${expectedValueAsNumber})` | ||
); | ||
} | ||
} | ||
|
||
function testValueAsNumberSetter(type, element, cases) { | ||
for (const [valueAsNumber, expectedValue] of cases) { | ||
test( | ||
() => { | ||
element.valueAsNumber = valueAsNumber; | ||
assert_equals(element.value, expectedValue); | ||
}, | ||
`valueAsNumber setter on type ${type} (actual valueAsNumber: ${valueAsNumber}, ` + | ||
`expected value: ${expectedValue})` | ||
); | ||
} | ||
} | ||
|
||
const dateInput = document.getElementById("input_date"); | ||
testValueAsNumberGetter("date", dateInput, [ | ||
["", NaN], | ||
["0000-12-10", NaN], | ||
["2019-00-12", NaN], | ||
["2019-12-00", NaN], | ||
["2019-13-10", NaN], | ||
["2019-02-29", NaN], | ||
["2019-12-10", 1575936000000], | ||
["2016-02-29", 1456704000000] // Leap year | ||
]); | ||
testValueAsNumberSetter("date", dateInput, [ | ||
[0, "1970-01-01"], | ||
[1575936000000, "2019-12-10"], | ||
[1456704000000, "2016-02-29"] // Leap year | ||
]); | ||
|
||
const monthInput = document.getElementById("input_month"); | ||
testValueAsNumberGetter("month", monthInput, [ | ||
["", NaN], | ||
["0000-12", NaN], | ||
["2019-00", NaN], | ||
["2019-12", 599], | ||
["1969-12", -1], | ||
]); | ||
testValueAsNumberSetter("month", monthInput, [ | ||
[599, "2019-12"], | ||
[-1, "1969-12"], | ||
]); | ||
|
||
const weekInput = document.getElementById("input_week"); | ||
testValueAsNumberGetter("week", weekInput, [ | ||
["", NaN], | ||
["0000-W50", NaN], | ||
["2019-W00", NaN], | ||
["2019-W60", NaN], | ||
["2019-W50", 1575849600000], | ||
["1969-W20", -20217600000], | ||
]); | ||
testValueAsNumberSetter("week", weekInput, [ | ||
[0, "1970-W01"], | ||
[1575849600000, "2019-W50"], | ||
[-20217600000, "1969-W20"], | ||
]); | ||
|
||
const timeInput = document.getElementById("input_time"); | ||
testValueAsNumberGetter("time", timeInput, [ | ||
["", NaN], | ||
["24:00", NaN], | ||
["00:60", NaN], | ||
["00:00", 0], | ||
["12:00", 12 * 3600 * 1000], | ||
["23:59", ((23 * 3600) + (59 * 60)) * 1000] | ||
]); | ||
testValueAsNumberSetter("time", timeInput, [ | ||
[0, "00:00"], | ||
[12 * 3600 * 1000, "12:00"], | ||
[((23 * 3600) + (59 * 60)) * 1000, "23:59"] | ||
]); | ||
|
||
const dateTimeLocalInput = document.getElementById("input_datetime-local"); | ||
testValueAsNumberGetter("datetime-local", dateTimeLocalInput, [ | ||
["", NaN], | ||
["2019-12-10T00:00", 1575936000000], | ||
["2019-12-10T12:00", 1575979200000] | ||
]); | ||
testValueAsNumberSetter("datetime-local", dateTimeLocalInput, [ | ||
[1575936000000, "2019-12-10T00:00"], | ||
[1575979200000, "2019-12-10T12:00"] | ||
]); | ||
|
||
const numberInput = document.getElementById("input_number"); | ||
testValueAsNumberGetter("number", numberInput, [ | ||
["", NaN], | ||
["123", 123], | ||
["123.456", 123.456], | ||
["1e3", 1000], | ||
["1e", NaN], | ||
["-123", -123] | ||
]); | ||
testValueAsNumberSetter("number", numberInput, [ | ||
[123, "123"], | ||
[123.456, "123.456"], | ||
[1e3, "1000"], | ||
[-123, "-123"] | ||
]); | ||
|
||
const rangeInput = document.getElementById("input_range"); | ||
testValueAsNumberGetter("range", rangeInput, [ | ||
["", 50], | ||
["0", 0], | ||
["50", 50], | ||
["100", 100], | ||
["-10", 0], // Realign to the min | ||
["110", 100] // Realign to the max | ||
]); | ||
testValueAsNumberSetter("range", rangeInput, [ | ||
[0, "0"], | ||
[50, "50"], | ||
[100, "100"] | ||
]); | ||
</script> | ||
</body> | ||
</html> |