Title: [98342] trunk
Revision
98342
Author
commit-qu...@webkit.org
Date
2011-10-25 07:04:45 -0700 (Tue, 25 Oct 2011)

Log Message

Double number step=.5 should be considered valid in <input type="number" step=".5">
https://bugs.webkit.org/show_bug.cgi?id=70320

Patch by Sachin Puranik <sachin.pura...@motorola.com> on 2011-10-25
Reviewed by Kent Tamura.

Source/WebCore:

Test: fast/forms/input-step-as-double.html

* html/parser/HTMLParserIdioms.cpp:
(WebCore::parseToDoubleForNumberType): Changed the function to consider
step as valid even if it starts with "."

LayoutTests:

* fast/forms/ValidityState-typeMismatch-number-expected.txt: Change in result of layout test.
* fast/forms/input-step-as-double-expected.txt: Added, expected output for new test case.
* fast/forms/input-step-as-double.html: Added, testcase to make sure that all ports
consider .5 as a valid double value for step attribute of input element.
* fast/forms/input-valueasnumber-number-expected.txt: Change in result of layout test.
* fast/forms/range/input-valueasnumber-range-expected.txt: Change in result of layout test.
* fast/forms/range/input-valueasnumber-range.html: Consider .2 as valid real number now.
* fast/forms/script-tests/ValidityState-typeMismatch-number.js: Consider
.2 as valid real number now.
* fast/forms/script-tests/input-valueasnumber-number.js: Consider .2 as valid real number now.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (98341 => 98342)


--- trunk/LayoutTests/ChangeLog	2011-10-25 13:57:54 UTC (rev 98341)
+++ trunk/LayoutTests/ChangeLog	2011-10-25 14:04:45 UTC (rev 98342)
@@ -1,3 +1,21 @@
+2011-10-25  Sachin Puranik  <sachin.pura...@motorola.com>
+
+        Double number step=.5 should be considered valid in <input type="number" step=".5">
+        https://bugs.webkit.org/show_bug.cgi?id=70320
+
+        Reviewed by Kent Tamura.
+
+        * fast/forms/ValidityState-typeMismatch-number-expected.txt: Change in result of layout test.
+        * fast/forms/input-step-as-double-expected.txt: Added, expected output for new test case.
+        * fast/forms/input-step-as-double.html: Added, testcase to make sure that all ports 
+        consider .5 as a valid double value for step attribute of input element.
+        * fast/forms/input-valueasnumber-number-expected.txt: Change in result of layout test.
+        * fast/forms/range/input-valueasnumber-range-expected.txt: Change in result of layout test.
+        * fast/forms/range/input-valueasnumber-range.html: Consider .2 as valid real number now.
+        * fast/forms/script-tests/ValidityState-typeMismatch-number.js: Consider
+        .2 as valid real number now.
+        * fast/forms/script-tests/input-valueasnumber-number.js: Consider .2 as valid real number now.
+
 2011-10-25  Vsevolod Vlasov  <vse...@chromium.org>
 
         Web Inspector: Resources panel: display the current search match index in the toolbar.

Modified: trunk/LayoutTests/fast/forms/ValidityState-typeMismatch-number-expected.txt (98341 => 98342)


--- trunk/LayoutTests/fast/forms/ValidityState-typeMismatch-number-expected.txt	2011-10-25 13:57:54 UTC (rev 98341)
+++ trunk/LayoutTests/fast/forms/ValidityState-typeMismatch-number-expected.txt	2011-10-25 14:04:45 UTC (rev 98342)
@@ -6,6 +6,8 @@
 PASS "0" is a valid number.
 PASS "10" is a valid number.
 PASS "01" is a valid number.
+PASS "0.2" is a valid number.
+PASS ".2" is a valid number.
 PASS "-0" is a valid number.
 PASS "-1.2" is a valid number.
 PASS "1.2E10" is a valid number.
@@ -19,7 +21,6 @@
 PASS " 10" was sanitized to "".
 PASS "10 " was sanitized to "".
 PASS "1,2" was sanitized to "".
-PASS ".2" was sanitized to "".
 PASS "1E" was sanitized to "".
 PASS "NaN" was sanitized to "".
 PASS "nan" was sanitized to "".

Added: trunk/LayoutTests/fast/forms/input-step-as-double-expected.txt (0 => 98342)


--- trunk/LayoutTests/fast/forms/input-step-as-double-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/forms/input-step-as-double-expected.txt	2011-10-25 14:04:45 UTC (rev 98342)
@@ -0,0 +1,10 @@
+Test for a capturing spec change to consider .2 as valid real number for step
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS numberInput.value is "0.5"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Added: trunk/LayoutTests/fast/forms/input-step-as-double.html (0 => 98342)


--- trunk/LayoutTests/fast/forms/input-step-as-double.html	                        (rev 0)
+++ trunk/LayoutTests/fast/forms/input-step-as-double.html	2011-10-25 14:04:45 UTC (rev 98342)
@@ -0,0 +1,32 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<script src=""
+</head>
+<body>
+<script>
+description('Test for a capturing spec change to consider .2 as valid real number for step');
+
+var parent = document.createElement('div');
+document.body.appendChild(parent);
+parent.innerHTML = '<input type=number id=number value=0 step=".5">';
+var numberInput = document.getElementById('number');
+
+if (window.eventSender) {
+    // Move the cursor on the upper button of the input field.
+    eventSender.mouseMoveTo(numberInput.offsetLeft + numberInput.offsetWidth - 10, numberInput.offsetTop + numberInput.offsetHeight / 4);
+
+    eventSender.mouseDown();
+    eventSender.mouseUp();
+    shouldBe('numberInput.value', '"0.5"');
+
+    parent.innerHTML = '';
+} else {
+    document.getElementById('console').innerHTML = '<p>No eventSender. <p>Manual test instruction: Click the upper button of the input field.  Confirm that the input field value is 0.5';
+}
+
+var successfullyParsed = true;
+</script>
+<script src=""
+</body>
+</html>

Modified: trunk/LayoutTests/fast/forms/input-valueasnumber-number-expected.txt (98341 => 98342)


--- trunk/LayoutTests/fast/forms/input-valueasnumber-number-expected.txt	2011-10-25 13:57:54 UTC (rev 98341)
+++ trunk/LayoutTests/fast/forms/input-valueasnumber-number-expected.txt	2011-10-25 14:04:45 UTC (rev 98342)
@@ -4,6 +4,8 @@
 
 
 PASS valueAsNumberFor("0") is 0
+PASS valueAsNumberFor("0.2") is 0.2
+PASS valueAsNumberFor(".2") is 0.2
 PASS valueAsNumberFor("10") is 10
 PASS valueAsNumberFor("01") is 1
 PASS valueAsNumberFor("-0") is 0
@@ -20,7 +22,7 @@
 PASS isNaN(valueAsNumberFor("+1")) is true
 PASS isNaN(valueAsNumberFor(" 10")) is true
 PASS isNaN(valueAsNumberFor("10 ")) is true
-PASS isNaN(valueAsNumberFor(".2")) is true
+PASS isNaN(valueAsNumberFor(".")) is true
 PASS isNaN(valueAsNumberFor("1E")) is true
 PASS isNaN(valueAsNumberFor("NaN")) is true
 PASS isNaN(valueAsNumberFor("nan")) is true

Modified: trunk/LayoutTests/fast/forms/range/input-valueasnumber-range-expected.txt (98341 => 98342)


--- trunk/LayoutTests/fast/forms/range/input-valueasnumber-range-expected.txt	2011-10-25 13:57:54 UTC (rev 98341)
+++ trunk/LayoutTests/fast/forms/range/input-valueasnumber-range-expected.txt	2011-10-25 14:04:45 UTC (rev 98342)
@@ -8,6 +8,8 @@
 PASS valueAsNumberFor("01") is 1
 PASS valueAsNumberFor("-0") is 0
 PASS valueAsNumberFor("-1.2") is 0
+PASS valueAsNumberFor("0.2") is 0
+PASS valueAsNumberFor(".2") is 0
 PASS valueAsNumberFor("1.2E10") is 100
 PASS valueAsNumberFor("1.2E-10") is 0
 PASS valueAsNumberFor("1.2E+10") is 100
@@ -20,7 +22,6 @@
 PASS valueAsNumberFor("+1") is 50
 PASS valueAsNumberFor(" 10") is 50
 PASS valueAsNumberFor("10 ") is 50
-PASS valueAsNumberFor(".2") is 50
 PASS valueAsNumberFor("1E") is 50
 PASS valueAsNumberFor("NaN") is 50
 PASS valueAsNumberFor("nan") is 50

Modified: trunk/LayoutTests/fast/forms/range/input-valueasnumber-range.html (98341 => 98342)


--- trunk/LayoutTests/fast/forms/range/input-valueasnumber-range.html	2011-10-25 13:57:54 UTC (rev 98341)
+++ trunk/LayoutTests/fast/forms/range/input-valueasnumber-range.html	2011-10-25 14:04:45 UTC (rev 98342)
@@ -32,6 +32,8 @@
 shouldBe('valueAsNumberFor("01")', '1');
 shouldBe('valueAsNumberFor("-0")', '0');
 shouldBe('valueAsNumberFor("-1.2")', '0');
+shouldBe('valueAsNumberFor("0.2")', '0');
+shouldBe('valueAsNumberFor(".2")', '0');
 shouldBe('valueAsNumberFor("1.2E10")', '100');
 shouldBe('valueAsNumberFor("1.2E-10")', '0');
 shouldBe('valueAsNumberFor("1.2E+10")', '100');
@@ -45,7 +47,6 @@
 shouldBe('valueAsNumberFor("+1")', '50');
 shouldBe('valueAsNumberFor(" 10")', '50');
 shouldBe('valueAsNumberFor("10 ")', '50');
-shouldBe('valueAsNumberFor(".2")', '50');
 shouldBe('valueAsNumberFor("1E")', '50');
 shouldBe('valueAsNumberFor("NaN")', '50');
 shouldBe('valueAsNumberFor("nan")', '50');

Modified: trunk/LayoutTests/fast/forms/script-tests/ValidityState-typeMismatch-number.js (98341 => 98342)


--- trunk/LayoutTests/fast/forms/script-tests/ValidityState-typeMismatch-number.js	2011-10-25 13:57:54 UTC (rev 98341)
+++ trunk/LayoutTests/fast/forms/script-tests/ValidityState-typeMismatch-number.js	2011-10-25 14:04:45 UTC (rev 98342)
@@ -31,6 +31,8 @@
 check('0');
 check('10');
 check('01');
+check('0.2');
+check('.2');
 check('-0');
 check('-1.2');
 check('1.2E10');
@@ -47,7 +49,6 @@
 checkSanitization(' 10', '');
 checkSanitization('10 ', '');
 checkSanitization('1,2', '');
-checkSanitization('.2', '');
 checkSanitization('1E', '');
 checkSanitization('NaN', '');
 checkSanitization('nan', '');

Modified: trunk/LayoutTests/fast/forms/script-tests/input-valueasnumber-number.js (98341 => 98342)


--- trunk/LayoutTests/fast/forms/script-tests/input-valueasnumber-number.js	2011-10-25 13:57:54 UTC (rev 98341)
+++ trunk/LayoutTests/fast/forms/script-tests/input-valueasnumber-number.js	2011-10-25 14:04:45 UTC (rev 98342)
@@ -14,6 +14,8 @@
 }
 
 shouldBe('valueAsNumberFor("0")', '0');
+shouldBe('valueAsNumberFor("0.2")', '0.2');
+shouldBe('valueAsNumberFor(".2")', '0.2');
 shouldBe('valueAsNumberFor("10")', '10');
 shouldBe('valueAsNumberFor("01")', '1');
 shouldBe('valueAsNumberFor("-0")', '0'); // "-0" is 0 in HTML5.
@@ -31,7 +33,7 @@
 shouldBeTrue('isNaN(valueAsNumberFor("+1"))');
 shouldBeTrue('isNaN(valueAsNumberFor(" 10"))');
 shouldBeTrue('isNaN(valueAsNumberFor("10 "))');
-shouldBeTrue('isNaN(valueAsNumberFor(".2"))');
+shouldBeTrue('isNaN(valueAsNumberFor("."))');
 shouldBeTrue('isNaN(valueAsNumberFor("1E"))');
 shouldBeTrue('isNaN(valueAsNumberFor("NaN"))');
 shouldBeTrue('isNaN(valueAsNumberFor("nan"))');

Modified: trunk/Source/WebCore/ChangeLog (98341 => 98342)


--- trunk/Source/WebCore/ChangeLog	2011-10-25 13:57:54 UTC (rev 98341)
+++ trunk/Source/WebCore/ChangeLog	2011-10-25 14:04:45 UTC (rev 98342)
@@ -1,3 +1,16 @@
+2011-10-25  Sachin Puranik  <sachin.pura...@motorola.com>
+
+        Double number step=.5 should be considered valid in <input type="number" step=".5">
+        https://bugs.webkit.org/show_bug.cgi?id=70320
+
+        Reviewed by Kent Tamura.
+
+        Test: fast/forms/input-step-as-double.html
+
+        * html/parser/HTMLParserIdioms.cpp:
+        (WebCore::parseToDoubleForNumberType): Changed the function to consider
+        step as valid even if it starts with "."
+
 2011-10-25  Alexander Pavlov  <apav...@chromium.org>
 
         Web Inspector: [Chromium] Audits panel context menu for links not working properly

Modified: trunk/Source/WebCore/html/parser/HTMLParserIdioms.cpp (98341 => 98342)


--- trunk/Source/WebCore/html/parser/HTMLParserIdioms.cpp	2011-10-25 13:57:54 UTC (rev 98341)
+++ trunk/Source/WebCore/html/parser/HTMLParserIdioms.cpp	2011-10-25 14:04:45 UTC (rev 98342)
@@ -68,11 +68,11 @@
 
 bool parseToDoubleForNumberType(const String& string, double* result)
 {
-    // See HTML5 2.4.4.3 `Real numbers.'
+    // See HTML5 2.5.4.3 `Real numbers.'
 
     // String::toDouble() accepts leading + and whitespace characters, which are not valid here.
     UChar firstCharacter = string[0];
-    if (firstCharacter != '-' && !isASCIIDigit(firstCharacter))
+    if (firstCharacter != '-' && firstCharacter != '.' && !isASCIIDigit(firstCharacter))
         return false;
 
     bool valid = false;
@@ -85,7 +85,7 @@
         return false;
 
     // Numbers are considered finite IEEE 754 single-precision floating point values.
-    // See HTML5 2.4.4.3 `Real numbers.'
+    // See HTML5 2.5.4.3 `Real numbers.'
     if (-std::numeric_limits<float>::max() > value || value > std::numeric_limits<float>::max())
         return false;
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to