blob: 38468e47c3f657925109cb8766ebc2d03f1831a9 [file] [log] [blame]
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