d92f639960421b6eaf61c5ece00dba46d4c3073a
[framework/web/webkit-efl.git] / LayoutTests / fast / forms / range / ValidityState-stepMismatch-range.html
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <script src="../../js/resources/js-test-pre.js"></script>
5 </head>
6 <body>
7 <p id="description"></p>
8 <div id="console"></div>
9 <script>
10 description('Check stepMismatch results for type=range.');
11
12 var input = document.createElement('input');
13 document.body.appendChild(input);
14
15 function stepMismatchFor(value, step, min, disabled) {
16     input.min = min;
17     input.step = step;
18     input.value = value;
19     input.disabled = !!disabled;
20     return input.validity.stepMismatch;
21 }
22
23 input.type = 'range';
24 // All expected results should be 'false'.
25 debug('Empty values');
26 shouldBe('stepMismatchFor("", null, null)', 'false');
27 shouldBe('stepMismatchFor("", "1.0", "0.1")', 'false');
28 debug('Integers');
29 shouldBe('stepMismatchFor("1", "2", "0")', 'false');
30 shouldBe('stepMismatchFor("-3", "2", "-4")', 'false');
31 shouldBe('input.max = "5"; stepMismatchFor("5", "3", "0")', 'false');
32 shouldBe('input.value', '"3"'); // Different from type=number.
33 debug('Invalid step values');
34 input.max = '';
35 shouldBe('stepMismatchFor("-3", "-2", "-4")', 'false');
36 shouldBe('stepMismatchFor("-3", null, "-4")', 'false');
37 shouldBe('stepMismatchFor("-3", undefined, "-4")', 'false');
38 debug('Huge numbers and small step; uncomparable');
39 shouldBe('stepMismatchFor("3.40282347e+38", "3", "")', 'false');
40 shouldBe('stepMismatchFor("3.40282346e+38", "3", "")', 'false');
41 shouldBe('stepMismatchFor("3.40282345e+38", "3", "")', 'false');
42 debug('Huge numbers and huge step');
43 shouldBe('stepMismatchFor("3.20e+38", "0.20e+38", "")', 'false');
44 shouldBe('stepMismatchFor("3.20e+38", "0.22e+38", "")', 'false');
45 debug('Fractional numbers');
46 shouldBe('stepMismatchFor("0.9", "0.1", "")', 'false');
47 shouldBe('stepMismatchFor("0.9", "0.1000001", "")', 'false');
48 shouldBe('stepMismatchFor("0.9", "0.1000000000000001", "")', 'false');
49 shouldBe('stepMismatchFor("1.0", "0.3333333333333333", "")', 'false');
50 debug('Disabled');
51 shouldBe('stepMismatchFor("1", "2", "0", true)', 'false');
52 </script>
53 <script src="../../js/resources/js-test-post.js"></script>
54 </body>
55 </html>