| Check stepUp() and stepDown() behavior for number type. |
| |
| On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". |
| |
| Number type |
| Invalid value |
| PASS stepUp("", null, null) is "1" |
| PASS stepDown("", null, null) is "-1" |
| Non-number arguments |
| PASS stepUp("0", null, null, "0") is "0" |
| PASS stepDown("0", null, null, "0") is "0" |
| PASS stepUp("0", null, null, "foo") is "0" |
| PASS stepDown("0", null, null, "foo") is "0" |
| PASS stepUp("0", null, null, null) is "0" |
| PASS stepDown("0", null, null, null) is "0" |
| Normal cases |
| PASS stepUp("0", null, null) is "1" |
| PASS stepUp("1", null, null, 2) is "3" |
| PASS stepUp("3", null, null, -1) is "2" |
| PASS stepDown("2", null, null) is "1" |
| PASS stepDown("1", null, null, 2) is "-1" |
| PASS stepDown("-1", null, null, -1) is "0" |
| PASS stepDown("0", "1", null, 2147483648) is "2147483648" |
| Extra arguments |
| PASS input.value = "0"; input.min = null; input.step = null; input.stepUp(1, 2); input.value is "1" |
| PASS input.value = "1"; input.stepDown(1, 3); input.value is "0" |
| Invalid step value |
| PASS stepUp("0", "foo", null) is "1" |
| PASS stepUp("1", "0", null) is "2" |
| PASS stepUp("2", "-1", null) is "3" |
| Step=any |
| PASS stepUp("0", "any", null) threw exception InvalidStateError: Failed to execute 'stepUp' on 'HTMLInputElement': This form element does not have an allowed value step.. |
| PASS stepDown("0", "any", null) threw exception InvalidStateError: Failed to execute 'stepDown' on 'HTMLInputElement': This form element does not have an allowed value step.. |
| Step=any corner case |
| PASS stepUpExplicitBounds("0", "100", "any", "1.5", "1") threw exception InvalidStateError: Failed to execute 'stepUp' on 'HTMLInputElement': This form element does not have an allowed value step.. |
| PASS stepDownExplicitBounds("0", "100", "any", "1.5", "1") threw exception InvalidStateError: Failed to execute 'stepDown' on 'HTMLInputElement': This form element does not have an allowed value step.. |
| Overflow/underflow |
| PASS stepDown("1", "1", "0") is "0" |
| PASS stepDown("0", "1", "0") is "0" |
| PASS stepDown("1", "1", "0", 2) is "0" |
| PASS stepDown("1", "1.797693134862315e+308", "", 2) is "-1.797693134862315e+308" |
| PASS stepUp("-1", "1", "0") is "0" |
| PASS stepUp("0", "1", "0") is "0" |
| PASS stepUp("-1", "1", "0", 2) is "0" |
| PASS stepUp("1", "1.797693134862315e+308", "", 2) is "1.797693134862315e+308" |
| stepDown()/stepUp() for stepMismatch values |
| PASS stepUpExplicitBounds("0", "", "2", "1"); input.value is "2" |
| PASS stepUp("1", "2", "") is "2" |
| PASS input.stepDown(); input.value is "0" |
| PASS input.min = "0"; stepUp("9", "10", "", 9) is "90" |
| PASS stepDown("19", "10", "0") is "10" |
| PASS stepUp("89", "10", "99") is "90" |
| Huge value and small step |
| PASS input.min = ""; stepUp("1e+308", "1", "", 999999) is "1e+308" |
| PASS input.max = ""; stepDown("1e+308", "1", "", 999999) is "1e+308" |
| Fractional numbers |
| PASS input.min = ""; stepUp("0", "0.33333333333333333", "", 3) is "1" |
| PASS stepUp("1", "0.1", "", 10) is "2" |
| PASS input.stepUp(); input.stepUp(); input.stepUp(); input.stepUp(); input.stepUp(); input.stepUp(); input.stepUp(); input.stepUp(); input.stepUp(); input.stepUp(); input.value is "3" |
| PASS input.min = "0"; stepUp("0", "0.003921568627450980", "1", 255) is "1" |
| PASS for (var i = 0; i < 255; i++) { input.stepDown(); }; input.value is "0" |
| Rounding |
| PASS stepUp("5.005", "0.005", "", 2) is "5.015" |
| PASS stepUp("5.005", "0.005", "", 11) is "5.06" |
| PASS stepUp("5.005", "0.005", "", 12) is "5.065" |
| PASS stepUpExplicitBounds("4", "9", "0.005", "5.005", 2) is "5.015" |
| PASS stepUpExplicitBounds("4", "9", "0.005", "5.005", 11) is "5.06" |
| PASS stepUpExplicitBounds("4", "9", "0.005", "5.005", 12) is "5.065" |
| |
| |
| This test should not dispatch any |change| events. |
| PASS changeEventCounter is 0 |
| PASS successfullyParsed is true |
| |
| TEST COMPLETE |
| |