formenctype to have empty string as default value.
authorrgf748@motorola.com <rgf748@motorola.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 6 Feb 2013 00:05:31 +0000 (00:05 +0000)
committerrgf748@motorola.com <rgf748@motorola.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 6 Feb 2013 00:05:31 +0000 (00:05 +0000)
https://bugs.webkit.org/show_bug.cgi?id=108969

Reviewed by Kent Tamura.

The spec says formEnctype should only have an invalid value default, not a missing value default.
Spec: http://www.w3.org/html/wg/drafts/html/master/forms.html#attr-fs-formenctype
      http://www.whatwg.org/specs/web-apps/current-work/#attr-fs-formenctype

Source/WebCore:

No new tests. Covered by existing test case fast/forms/submit-form-attributes.html

* html/HTMLFormControlElement.cpp: For the missing formEnctype attr return empty string.
(WebCore::HTMLFormControlElement::formEnctype):

LayoutTests:

* fast/forms/submit-form-attributes-expected.txt:
* fast/forms/submit-form-attributes.html: Modified test to behave as expected.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141947 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/fast/forms/submit-form-attributes-expected.txt
LayoutTests/fast/forms/submit-form-attributes.html
Source/WebCore/ChangeLog
Source/WebCore/html/HTMLFormControlElement.cpp

index 3b98b4bc2b981cca299e8ed8b47899a9816224a7..fde9c3efeb83507f10e129841721f318305c91a7 100644 (file)
@@ -1,3 +1,17 @@
+2013-02-05   Vineet Chaudhary  <rgf748@motorola.com>
+
+        formenctype to have empty string as default value.
+        https://bugs.webkit.org/show_bug.cgi?id=108969
+
+        Reviewed by Kent Tamura.
+
+        The spec says formEnctype should only have an invalid value default, not a missing value default.
+        Spec: http://www.w3.org/html/wg/drafts/html/master/forms.html#attr-fs-formenctype
+              http://www.whatwg.org/specs/web-apps/current-work/#attr-fs-formenctype
+
+        * fast/forms/submit-form-attributes-expected.txt:
+        * fast/forms/submit-form-attributes.html: Modified test to behave as expected.
+
 2013-02-05  Roger Fong  <roger_fong@apple.com>
 
         Unreviewed gardening. Win7 port doesn't run WebGL.
index 4c454ad6bd76a47019c2382555ff977d4a8e7b2c..502f2a002e9f011a7a09d78eea8105ff07b76004 100644 (file)
@@ -5,7 +5,7 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 Ordinary values for input:
 PASS input.formAction is ""
-PASS input.formEnctype is "application/x-www-form-urlencoded"
+PASS input.formEnctype is ""
 PASS input.formMethod is ""
 PASS input.formTarget is ""
 PASS input.formAction is "http://localhost/"
@@ -26,7 +26,7 @@ PASS input.formTarget is "http://example.com"
 PASS input.formTarget is "nta"
 
 Setting null for input:
-PASS input.formEnctype is "application/x-www-form-urlencoded"
+PASS input.formEnctype is ""
 PASS input.getAttribute("formEnctype") is null
 PASS input.formEnctype is "application/x-www-form-urlencoded"
 PASS input.formMethod is ""
@@ -60,7 +60,7 @@ PASS input.formTarget is "256"
 
 Ordinary values for button:
 PASS button.formAction is ""
-PASS button.formEnctype is "application/x-www-form-urlencoded"
+PASS button.formEnctype is ""
 PASS button.formMethod is ""
 PASS button.formTarget is ""
 PASS button.formAction is "http://localhost/"
@@ -81,7 +81,7 @@ PASS button.formTarget is "http://example.com"
 PASS button.formTarget is "nota"
 
 Setting null for button:
-PASS button.formEnctype is "application/x-www-form-urlencoded"
+PASS button.formEnctype is ""
 PASS button.getAttribute("formEnctype") is null
 PASS button.formEnctype is "application/x-www-form-urlencoded"
 PASS button.formMethod is ""
index 2fb82017999a92f02c77b366e32875f66afde9bf..9c6ec14ca4511e6d298e0ff4cbd3aec37a58205a 100644 (file)
@@ -13,195 +13,195 @@ var input = document.createElement('input');
 
 debug('Ordinary values for input:');
 input.type = "submit";
-shouldBe('input.formAction', '""');
-shouldBe('input.formEnctype', '"application/x-www-form-urlencoded"');
-shouldBeEqualToString("input.formMethod", "");
-shouldBe('input.formTarget', '""');
+shouldBeEqualToString('input.formAction', '');
+shouldBeEqualToString('input.formEnctype', '');
+shouldBeEqualToString('input.formMethod', '');
+shouldBeEqualToString('input.formTarget', '');
 
 input.setAttribute('formAction', 'http://localhost');
-shouldBe('input.formAction', '"http://localhost/"');
+shouldBeEqualToString('input.formAction', 'http://localhost/');
 input.setAttribute('formAction', 'http://localhost/');
-shouldBe('input.formAction', '"http://localhost/"');
+shouldBeEqualToString('input.formAction', 'http://localhost/');
 input.setAttribute('formEnctype', 'text/plain');
-shouldBe('input.formEnctype', '"text/plain"');
+shouldBeEqualToString('input.formEnctype', 'text/plain');
 input.setAttribute('formEnctype', 'na');
-shouldBe('input.formEnctype', '"application/x-www-form-urlencoded"');
+shouldBeEqualToString('input.formEnctype', 'application/x-www-form-urlencoded');
 input.setAttribute('formMethod', 'GET');
-shouldBe('input.formMethod', '"get"');
+shouldBeEqualToString('input.formMethod', 'get');
 input.setAttribute('formMethod', 'ni');
-shouldBe('input.formMethod', '"get"');
+shouldBeEqualToString('input.formMethod', 'get');
 input.setAttribute('formTarget', '_blank');
-shouldBe('input.formTarget', '"_blank"');
+shouldBeEqualToString('input.formTarget', '_blank');
 input.setAttribute('formTarget', 'nu');
-shouldBe('input.formTarget', '"nu"');
+shouldBeEqualToString('input.formTarget', 'nu');
 
 input.formAction = 'http://example.com';
-shouldBe('input.formAction', '"http://example.com/"');
+shouldBeEqualToString('input.formAction', 'http://example.com/');
 input.formAction = 'http://example.com/';
-shouldBe('input.formAction', '"http://example.com/"');
+shouldBeEqualToString('input.formAction', 'http://example.com/');
 input.formEnctype = 'text/plain';
-shouldBe('input.formEnctype', '"text/plain"');
+shouldBeEqualToString('input.formEnctype', 'text/plain');
 input.formEnctype = 'nota';
-shouldBe('input.formEnctype', '"application/x-www-form-urlencoded"');
+shouldBeEqualToString('input.formEnctype', 'application/x-www-form-urlencoded');
 input.formMethod = 'POST';
-shouldBe('input.formMethod', '"post"');
+shouldBeEqualToString('input.formMethod', 'post');
 input.formMethod = 'neta';
-shouldBe('input.formMethod', '"get"');
+shouldBeEqualToString('input.formMethod', 'get');
 input.formTarget = 'http://example.com';
-shouldBe('input.formTarget', '"http://example.com"');
+shouldBeEqualToString('input.formTarget', 'http://example.com');
 input.formTarget = 'nta';
-shouldBe('input.formTarget', '"nta"');
+shouldBeEqualToString('input.formTarget', 'nta');
 
 debug('');
 debug('Setting null for input:');
 input.formEnctype = null;
-shouldBe('input.formEnctype', '"application/x-www-form-urlencoded"');
+shouldBeEqualToString('input.formEnctype', '');
 shouldBe('input.getAttribute("formEnctype")', 'null');
 input.setAttribute('formEnctype', null);
-shouldBe('input.formEnctype', '"application/x-www-form-urlencoded"');
+shouldBeEqualToString('input.formEnctype', 'application/x-www-form-urlencoded');
 input.formMethod = null;
-shouldBeEqualToString("input.formMethod", "");
+shouldBeEqualToString('input.formMethod', '');
 shouldBe('input.getAttribute("formMethod")', 'null');
 input.setAttribute('formMethod', null);
-shouldBe('input.formMethod', '"get"');
+shouldBeEqualToString('input.formMethod', 'get');
 input.formTarget = null;
-shouldBe('input.formTarget', '""');
+shouldBeEqualToString('input.formTarget', '');
 shouldBe('input.getAttribute("formTarget")', 'null');
 input.setAttribute('formTarget', null);
-shouldBe('input.formTarget', '"null"');
+shouldBeEqualToString('input.formTarget', 'null');
 
 debug('');
 debug('Setting undefined for input:');
 input.formEnctype = undefined;
-shouldBe('input.formEnctype', '"application/x-www-form-urlencoded"');
-shouldBe('input.getAttribute("formEnctype")', '"undefined"');
+shouldBeEqualToString('input.formEnctype', 'application/x-www-form-urlencoded');
+shouldBeEqualToString('input.getAttribute("formEnctype")', 'undefined');
 input.setAttribute('formEnctype', undefined);
-shouldBe('input.formEnctype', '"application/x-www-form-urlencoded"');
+shouldBeEqualToString('input.formEnctype', 'application/x-www-form-urlencoded');
 input.formMethod = undefined;
-shouldBe('input.formMethod', '"get"');
-shouldBe('input.getAttribute("formMethod")', '"undefined"');
+shouldBeEqualToString('input.formMethod', 'get');
+shouldBeEqualToString('input.getAttribute("formMethod")', 'undefined');
 input.setAttribute('formMethod', undefined);
-shouldBe('input.formMethod', '"get"');
+shouldBeEqualToString('input.formMethod', 'get');
 input.formTarget = undefined;
-shouldBe('input.formTarget', '"undefined"');
-shouldBe('input.getAttribute("formTarget")', '"undefined"');
+shouldBeEqualToString('input.formTarget', 'undefined');
+shouldBeEqualToString('input.getAttribute("formTarget")', 'undefined');
 input.setAttribute('formTarget', undefined);
-shouldBe('input.formTarget', '"undefined"');
+shouldBeEqualToString('input.formTarget', 'undefined');
 
 debug('');
 debug('Setting non-string for input:');
 input.formEnctype = 256;
-shouldBe('input.formEnctype', '"application/x-www-form-urlencoded"');
-shouldBe('input.getAttribute("formEnctype")', '"256"');
+shouldBeEqualToString('input.formEnctype', 'application/x-www-form-urlencoded');
+shouldBeEqualToString('input.getAttribute("formEnctype")', '256');
 input.setAttribute('formEnctype', 256);
-shouldBe('input.formEnctype', '"application/x-www-form-urlencoded"');
+shouldBeEqualToString('input.formEnctype', 'application/x-www-form-urlencoded');
 input.formMethod = 256;
-shouldBe('input.formMethod', '"get"');
-shouldBe('input.getAttribute("formMethod")', '"256"');
+shouldBeEqualToString('input.formMethod', 'get');
+shouldBeEqualToString('input.getAttribute("formMethod")', '256');
 input.setAttribute('formMethod', 256);
-shouldBe('input.formMethod', '"get"');
+shouldBeEqualToString('input.formMethod', 'get');
 input.formTarget = 256;
-shouldBe('input.formTarget', '"256"');
-shouldBe('input.getAttribute("formTarget")', '"256"');
+shouldBeEqualToString('input.formTarget', '256');
+shouldBeEqualToString('input.getAttribute("formTarget")', '256');
 input.setAttribute('formTarget', 256);
-shouldBe('input.formTarget', '"256"');
+shouldBeEqualToString('input.formTarget', '256');
 
 var button = document.createElement('button');
 debug('');
 debug('Ordinary values for button:');
 button.type = "submit";
-shouldBe('button.formAction', '""');
-shouldBe('button.formEnctype', '"application/x-www-form-urlencoded"');
-shouldBeEqualToString("button.formMethod", "");
-shouldBe('button.formTarget', '""');
+shouldBeEqualToString('button.formAction', '');
+shouldBeEqualToString('button.formEnctype', '');
+shouldBeEqualToString('button.formMethod', '');
+shouldBeEqualToString('button.formTarget', '');
 
 button.setAttribute('formAction', 'http://localhost');
-shouldBe('button.formAction', '"http://localhost/"');
+shouldBeEqualToString('button.formAction', 'http://localhost/');
 button.setAttribute('formAction', 'http://localhost/');
-shouldBe('button.formAction', '"http://localhost/"');
+shouldBeEqualToString('button.formAction', 'http://localhost/');
 button.setAttribute('formEnctype', 'text/plain');
-shouldBe('button.formEnctype', '"text/plain"');
+shouldBeEqualToString('button.formEnctype', 'text/plain');
 button.setAttribute('formEnctype', 'na');
-shouldBe('button.formEnctype', '"application/x-www-form-urlencoded"');
+shouldBeEqualToString('button.formEnctype', 'application/x-www-form-urlencoded');
 button.setAttribute('formMethod', 'GET');
-shouldBe('button.formMethod', '"get"');
+shouldBeEqualToString('button.formMethod', 'get');
 button.setAttribute('formMethod', 'na');
-shouldBe('button.formMethod', '"get"');
+shouldBeEqualToString('button.formMethod', 'get');
 button.setAttribute('formTarget', '_blank');
-shouldBe('button.formTarget', '"_blank"');
+shouldBeEqualToString('button.formTarget', '_blank');
 button.setAttribute('formTarget', 'na');
-shouldBe('button.formTarget', '"na"');
+shouldBeEqualToString('button.formTarget', 'na');
 
 button.formAction = 'http://example.com';
-shouldBe('button.formAction', '"http://example.com/"');
+shouldBeEqualToString('button.formAction', 'http://example.com/');
 button.formAction = 'http://example.com/';
-shouldBe('button.formAction', '"http://example.com/"');
+shouldBeEqualToString('button.formAction', 'http://example.com/');
 button.formEnctype = 'text/plain';
-shouldBe('button.formEnctype', '"text/plain"');
+shouldBeEqualToString('button.formEnctype', 'text/plain');
 button.formEnctype = 'nota';
-shouldBe('button.formEnctype', '"application/x-www-form-urlencoded"');
+shouldBeEqualToString('button.formEnctype', 'application/x-www-form-urlencoded');
 button.formMethod = 'POST';
-shouldBe('button.formMethod', '"post"');
+shouldBeEqualToString('button.formMethod', 'post');
 button.formMethod = 'nota';
-shouldBe('button.formMethod', '"get"');
+shouldBeEqualToString('button.formMethod', 'get');
 button.formTarget = 'http://example.com';
-shouldBe('button.formTarget', '"http://example.com"');
+shouldBeEqualToString('button.formTarget', 'http://example.com');
 button.formTarget = 'nota';
-shouldBe('button.formTarget', '"nota"');
+shouldBeEqualToString('button.formTarget', 'nota');
 
 debug('');
 debug('Setting null for button:');
 button.formEnctype = null;
-shouldBe('button.formEnctype', '"application/x-www-form-urlencoded"');
+shouldBeEqualToString('button.formEnctype', '');
 shouldBe('button.getAttribute("formEnctype")', 'null');
 button.setAttribute('formEnctype', null);
-shouldBe('button.formEnctype', '"application/x-www-form-urlencoded"');
+shouldBeEqualToString('button.formEnctype', 'application/x-www-form-urlencoded');
 button.formMethod = null;
-shouldBeEqualToString("button.formMethod", "");
+shouldBeEqualToString('button.formMethod', '');
 shouldBe('button.getAttribute("formMethod")', 'null');
 button.setAttribute('formMethod', null);
-shouldBe('button.formMethod', '"get"');
+shouldBeEqualToString('button.formMethod', 'get');
 button.formTarget = null;
-shouldBe('button.formTarget', '""');
+shouldBeEqualToString('button.formTarget', '');
 shouldBe('button.getAttribute("formTarget")', 'null');
 button.setAttribute('formTarget', null);
-shouldBe('button.formTarget', '"null"');
+shouldBeEqualToString('button.formTarget', 'null');
 
 debug('');
 debug('Setting undefined for button:');
 button.formEnctype = undefined;
-shouldBe('button.formEnctype', '"application/x-www-form-urlencoded"');
-shouldBe('button.getAttribute("formEnctype")', '"undefined"');
+shouldBeEqualToString('button.formEnctype', 'application/x-www-form-urlencoded');
+shouldBeEqualToString('button.getAttribute("formEnctype")', 'undefined');
 button.setAttribute('formEnctype', undefined);
-shouldBe('button.formEnctype', '"application/x-www-form-urlencoded"');
+shouldBeEqualToString('button.formEnctype', 'application/x-www-form-urlencoded');
 button.formMethod = undefined;
-shouldBe('button.formMethod', '"get"');
-shouldBe('button.getAttribute("formMethod")', '"undefined"');
+shouldBeEqualToString('button.formMethod', 'get');
+shouldBeEqualToString('button.getAttribute("formMethod")', 'undefined');
 button.setAttribute('formMethod', undefined);
-shouldBe('button.formMethod', '"get"');
+shouldBeEqualToString('button.formMethod', 'get');
 button.formTarget = undefined;
-shouldBe('button.formTarget', '"undefined"');
-shouldBe('button.getAttribute("formTarget")', '"undefined"');
+shouldBeEqualToString('button.formTarget', 'undefined');
+shouldBeEqualToString('button.getAttribute("formTarget")', 'undefined');
 button.setAttribute('formTarget', undefined);
-shouldBe('button.formTarget', '"undefined"');
+shouldBeEqualToString('button.formTarget', 'undefined');
 
 debug('');
 debug('Setting non-string for button:');
 button.formEnctype = 256;
-shouldBe('button.formEnctype', '"application/x-www-form-urlencoded"');
-shouldBe('button.getAttribute("formEnctype")', '"256"');
+shouldBeEqualToString('button.formEnctype', 'application/x-www-form-urlencoded');
+shouldBeEqualToString('button.getAttribute("formEnctype")', '256');
 button.setAttribute('formEnctype', 512);
-shouldBe('button.formEnctype', '"application/x-www-form-urlencoded"');
+shouldBeEqualToString('button.formEnctype', 'application/x-www-form-urlencoded');
 button.formMethod = 128;
-shouldBe('button.formMethod', '"get"');
-shouldBe('button.getAttribute("formMethod")', '"128"');
+shouldBeEqualToString('button.formMethod', 'get');
+shouldBeEqualToString('button.getAttribute("formMethod")', '128');
 button.setAttribute('formMethod', 17);
-shouldBe('button.formMethod', '"get"');
+shouldBeEqualToString('button.formMethod', 'get');
 button.formTarget = 100;
-shouldBe('button.formTarget', '"100"');
-shouldBe('button.getAttribute("formTarget")', '"100"');
+shouldBeEqualToString('button.formTarget', '100');
+shouldBeEqualToString('button.getAttribute("formTarget")', '100');
 button.setAttribute('formTarget', 281);
-shouldBe('button.formTarget', '"281"');
+shouldBeEqualToString('button.formTarget', '281');
 </script>
 <script src="../../fast/js/resources/js-test-post.js"></script>
 </body>
index e57c5362914b6be619a9758d2f5460c78bfab386..52882936e488305afbf0adf7dd1a7bc39a01d77a 100644 (file)
@@ -1,3 +1,19 @@
+2013-02-05   Vineet Chaudhary  <rgf748@motorola.com>
+
+        formenctype to have empty string as default value.
+        https://bugs.webkit.org/show_bug.cgi?id=108969
+
+        Reviewed by Kent Tamura.
+
+        The spec says formEnctype should only have an invalid value default, not a missing value default.
+        Spec: http://www.w3.org/html/wg/drafts/html/master/forms.html#attr-fs-formenctype
+              http://www.whatwg.org/specs/web-apps/current-work/#attr-fs-formenctype
+
+        No new tests. Covered by existing test case fast/forms/submit-form-attributes.html
+
+        * html/HTMLFormControlElement.cpp: For the missing formEnctype attr return empty string.
+        (WebCore::HTMLFormControlElement::formEnctype):
+
 2013-02-04  Kentaro Hara  <haraken@chromium.org>
 
         [V8] Reduce usage of deprecatedString() and deprecatedInteger()
index 14b9fc224c6e36b7ca053b39381f8f26e8ad8ceb..be1ef4b521f07a02e6f3f714f1c30f725abc398b 100644 (file)
@@ -72,7 +72,10 @@ HTMLFormControlElement::~HTMLFormControlElement()
 
 String HTMLFormControlElement::formEnctype() const
 {
-    return FormSubmission::Attributes::parseEncodingType(fastGetAttribute(formenctypeAttr));
+    const AtomicString& formEnctypeAttr = fastGetAttribute(formenctypeAttr);
+    if (formEnctypeAttr.isNull())
+        return emptyString();
+    return FormSubmission::Attributes::parseEncodingType(formEnctypeAttr);
 }
 
 void HTMLFormControlElement::setFormEnctype(const String& value)