Add support for reportValidity() on form and form control elements
authorcdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 15 Oct 2016 21:31:59 +0000 (21:31 +0000)
committercdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 15 Oct 2016 21:31:59 +0000 (21:31 +0000)
https://bugs.webkit.org/show_bug.cgi?id=163479

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

* web-platform-tests/html/dom/interfaces-expected.txt:
* web-platform-tests/html/semantics/forms/constraints/form-validation-reportValidity-expected.txt:
* web-platform-tests/html/semantics/forms/constraints/form-validation-validate-expected.txt:

Source/WebCore:

Add support for reportValidity() on form and form control elements:
- https://html.spec.whatwg.org/#dom-form-reportvalidity
- https://html.spec.whatwg.org/#dom-cva-reportvalidity

Firefox and Chrome already support this.

Demo: https://googlechrome.github.io/samples/report-validity/

No new tests, rebaselined existing tests.

* html/HTMLButtonElement.idl:
* html/HTMLFieldSetElement.idl:
* html/HTMLFormElement.idl:
* html/HTMLInputElement.idl:
* html/HTMLKeygenElement.idl:
* html/HTMLObjectElement.idl:
* html/HTMLOutputElement.idl:
* html/HTMLSelectElement.idl:
* html/HTMLTextAreaElement.idl:
Add reportValidity() operation.

* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::checkValidity):

(WebCore::HTMLFormControlElement::reportValidity):
Add implementation for reportValidity() for form control elements.
First, it calls checkValidity() and returns early if there is no
constraint violation. if the JS canceled the 'invalid' event
fired by checkValidity(), then return early as well, as per the
specification. If the element is focusable, we scroll to it,
focus it and show the validation message. Otherwise, we log a
error message to the console. The last part of the behavior
matches what we already did in HTMLFormElement::validateInteractively()
and complies with the behavior in the specification.

(WebCore::HTMLFormControlElement::focusAndShowValidationMessage):
Add utility function to scroll to the form control element, focus
it and show its validation message. This code was moved from
HTMLFormElement::validateInteractively() so that it could be reused
in HTMLFormControlElement::reportValidity().

* html/HTMLFormControlElement.h:
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::validateInteractively):
Move the early abort checks to the existing call site (prepareForSubmission)
so that we can reuse this method for reportValidity().

(WebCore::HTMLFormElement::prepareForSubmission):
Only call validateInteractively() if we really should validate. Those checks
used to be in validateInteractively() but I moved them here so we could more
easily reuse validateInteractively().

(WebCore::HTMLFormElement::checkValidity):
(WebCore::HTMLFormElement::checkInvalidControlsAndCollectUnhandled):
Update Vector type to be a Vector of HTMLFormControlElement given that we
only add HTMLFormControlElement objects to it and that it results it simpler
code.

(WebCore::HTMLFormElement::reportValidity):
Add implementation for reportValidity() for form elements. The
implementation calls our already existing validateInteractively()
method, as per the specification.

* html/HTMLFormElement.h:

* html/HTMLObjectElement.h:
reportValidity() returns true unconditionally for object elements,
similarly to checkValidity().

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

21 files changed:
LayoutTests/imported/w3c/ChangeLog
LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-reportValidity-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validate-expected.txt
LayoutTests/platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-reportValidity-expected.txt
LayoutTests/platform/ios-simulator/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-reportValidity-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/html/HTMLButtonElement.idl
Source/WebCore/html/HTMLFieldSetElement.idl
Source/WebCore/html/HTMLFormControlElement.cpp
Source/WebCore/html/HTMLFormControlElement.h
Source/WebCore/html/HTMLFormElement.cpp
Source/WebCore/html/HTMLFormElement.h
Source/WebCore/html/HTMLFormElement.idl
Source/WebCore/html/HTMLInputElement.idl
Source/WebCore/html/HTMLKeygenElement.idl
Source/WebCore/html/HTMLObjectElement.h
Source/WebCore/html/HTMLObjectElement.idl
Source/WebCore/html/HTMLOutputElement.idl
Source/WebCore/html/HTMLSelectElement.idl
Source/WebCore/html/HTMLTextAreaElement.idl

index 20620fe..98d6cc5 100644 (file)
@@ -1,5 +1,18 @@
 2016-10-15  Chris Dumez  <cdumez@apple.com>
 
+        Add support for reportValidity() on form and form control elements
+        https://bugs.webkit.org/show_bug.cgi?id=163479
+
+        Reviewed by Darin Adler.
+
+        Rebaseline several W3C tests now that more checks are passing.
+
+        * web-platform-tests/html/dom/interfaces-expected.txt:
+        * web-platform-tests/html/semantics/forms/constraints/form-validation-reportValidity-expected.txt:
+        * web-platform-tests/html/semantics/forms/constraints/form-validation-validate-expected.txt:
+
+2016-10-15  Chris Dumez  <cdumez@apple.com>
+
         Setting HTMLMediaElement.volume to NaN or Inf should throw a TypeError
         https://bugs.webkit.org/show_bug.cgi?id=163472
 
index e6f1e12..d08f7d1 100644 (file)
@@ -1726,7 +1726,7 @@ PASS HTMLObjectElement interface: attribute willValidate
 PASS HTMLObjectElement interface: attribute validity 
 PASS HTMLObjectElement interface: attribute validationMessage 
 PASS HTMLObjectElement interface: operation checkValidity() 
-FAIL HTMLObjectElement interface: operation reportValidity() assert_own_property: interface prototype object missing non-static operation expected property "reportValidity" missing
+PASS HTMLObjectElement interface: operation reportValidity() 
 PASS HTMLObjectElement interface: operation setCustomValidity(DOMString) 
 PASS HTMLObjectElement interface: attribute align 
 PASS HTMLObjectElement interface: attribute archive 
@@ -2547,7 +2547,7 @@ PASS HTMLFormElement interface: attribute length
 PASS HTMLFormElement interface: operation submit() 
 PASS HTMLFormElement interface: operation reset() 
 PASS HTMLFormElement interface: operation checkValidity() 
-FAIL HTMLFormElement interface: operation reportValidity() assert_own_property: interface prototype object missing non-static operation expected property "reportValidity" missing
+PASS HTMLFormElement interface: operation reportValidity() 
 PASS HTMLFormElement must be primary interface of document.createElement("form") 
 PASS Stringification of document.createElement("form") 
 PASS HTMLFormElement interface: document.createElement("form") must inherit property "acceptCharset" with the proper type (0) 
@@ -2564,7 +2564,7 @@ PASS HTMLFormElement interface: document.createElement("form") must inherit prop
 PASS HTMLFormElement interface: document.createElement("form") must inherit property "submit" with the proper type (13) 
 PASS HTMLFormElement interface: document.createElement("form") must inherit property "reset" with the proper type (14) 
 PASS HTMLFormElement interface: document.createElement("form") must inherit property "checkValidity" with the proper type (15) 
-FAIL HTMLFormElement interface: document.createElement("form") must inherit property "reportValidity" with the proper type (16) assert_inherits: property "reportValidity" not found in prototype chain
+PASS HTMLFormElement interface: document.createElement("form") must inherit property "reportValidity" with the proper type (16) 
 PASS HTMLLabelElement interface: existence and properties of interface object 
 PASS HTMLLabelElement interface object length 
 PASS HTMLLabelElement interface object name 
@@ -2629,7 +2629,7 @@ PASS HTMLInputElement interface: attribute willValidate
 PASS HTMLInputElement interface: attribute validity 
 PASS HTMLInputElement interface: attribute validationMessage 
 PASS HTMLInputElement interface: operation checkValidity() 
-FAIL HTMLInputElement interface: operation reportValidity() assert_own_property: interface prototype object missing non-static operation expected property "reportValidity" missing
+PASS HTMLInputElement interface: operation reportValidity() 
 PASS HTMLInputElement interface: operation setCustomValidity(DOMString) 
 PASS HTMLInputElement interface: attribute labels 
 PASS HTMLInputElement interface: operation select() 
@@ -2689,7 +2689,7 @@ PASS HTMLInputElement interface: document.createElement("input") must inherit pr
 PASS HTMLInputElement interface: document.createElement("input") must inherit property "validity" with the proper type (41) 
 PASS HTMLInputElement interface: document.createElement("input") must inherit property "validationMessage" with the proper type (42) 
 PASS HTMLInputElement interface: document.createElement("input") must inherit property "checkValidity" with the proper type (43) 
-FAIL HTMLInputElement interface: document.createElement("input") must inherit property "reportValidity" with the proper type (44) assert_inherits: property "reportValidity" not found in prototype chain
+PASS HTMLInputElement interface: document.createElement("input") must inherit property "reportValidity" with the proper type (44) 
 PASS HTMLInputElement interface: document.createElement("input") must inherit property "setCustomValidity" with the proper type (45) 
 PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on document.createElement("input") with too few arguments must throw TypeError 
 PASS HTMLInputElement interface: document.createElement("input") must inherit property "labels" with the proper type (46) 
@@ -2753,7 +2753,7 @@ PASS HTMLInputElement interface: createInput("text") must inherit property "will
 PASS HTMLInputElement interface: createInput("text") must inherit property "validity" with the proper type (41) 
 PASS HTMLInputElement interface: createInput("text") must inherit property "validationMessage" with the proper type (42) 
 PASS HTMLInputElement interface: createInput("text") must inherit property "checkValidity" with the proper type (43) 
-FAIL HTMLInputElement interface: createInput("text") must inherit property "reportValidity" with the proper type (44) assert_inherits: property "reportValidity" not found in prototype chain
+PASS HTMLInputElement interface: createInput("text") must inherit property "reportValidity" with the proper type (44) 
 PASS HTMLInputElement interface: createInput("text") must inherit property "setCustomValidity" with the proper type (45) 
 PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("text") with too few arguments must throw TypeError 
 PASS HTMLInputElement interface: createInput("text") must inherit property "labels" with the proper type (46) 
@@ -2817,7 +2817,7 @@ PASS HTMLInputElement interface: createInput("hidden") must inherit property "wi
 PASS HTMLInputElement interface: createInput("hidden") must inherit property "validity" with the proper type (41) 
 PASS HTMLInputElement interface: createInput("hidden") must inherit property "validationMessage" with the proper type (42) 
 PASS HTMLInputElement interface: createInput("hidden") must inherit property "checkValidity" with the proper type (43) 
-FAIL HTMLInputElement interface: createInput("hidden") must inherit property "reportValidity" with the proper type (44) assert_inherits: property "reportValidity" not found in prototype chain
+PASS HTMLInputElement interface: createInput("hidden") must inherit property "reportValidity" with the proper type (44) 
 PASS HTMLInputElement interface: createInput("hidden") must inherit property "setCustomValidity" with the proper type (45) 
 PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("hidden") with too few arguments must throw TypeError 
 PASS HTMLInputElement interface: createInput("hidden") must inherit property "labels" with the proper type (46) 
@@ -2881,7 +2881,7 @@ PASS HTMLInputElement interface: createInput("search") must inherit property "wi
 PASS HTMLInputElement interface: createInput("search") must inherit property "validity" with the proper type (41) 
 PASS HTMLInputElement interface: createInput("search") must inherit property "validationMessage" with the proper type (42) 
 PASS HTMLInputElement interface: createInput("search") must inherit property "checkValidity" with the proper type (43) 
-FAIL HTMLInputElement interface: createInput("search") must inherit property "reportValidity" with the proper type (44) assert_inherits: property "reportValidity" not found in prototype chain
+PASS HTMLInputElement interface: createInput("search") must inherit property "reportValidity" with the proper type (44) 
 PASS HTMLInputElement interface: createInput("search") must inherit property "setCustomValidity" with the proper type (45) 
 PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("search") with too few arguments must throw TypeError 
 PASS HTMLInputElement interface: createInput("search") must inherit property "labels" with the proper type (46) 
@@ -2945,7 +2945,7 @@ PASS HTMLInputElement interface: createInput("tel") must inherit property "willV
 PASS HTMLInputElement interface: createInput("tel") must inherit property "validity" with the proper type (41) 
 PASS HTMLInputElement interface: createInput("tel") must inherit property "validationMessage" with the proper type (42) 
 PASS HTMLInputElement interface: createInput("tel") must inherit property "checkValidity" with the proper type (43) 
-FAIL HTMLInputElement interface: createInput("tel") must inherit property "reportValidity" with the proper type (44) assert_inherits: property "reportValidity" not found in prototype chain
+PASS HTMLInputElement interface: createInput("tel") must inherit property "reportValidity" with the proper type (44) 
 PASS HTMLInputElement interface: createInput("tel") must inherit property "setCustomValidity" with the proper type (45) 
 PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("tel") with too few arguments must throw TypeError 
 PASS HTMLInputElement interface: createInput("tel") must inherit property "labels" with the proper type (46) 
@@ -3009,7 +3009,7 @@ PASS HTMLInputElement interface: createInput("url") must inherit property "willV
 PASS HTMLInputElement interface: createInput("url") must inherit property "validity" with the proper type (41) 
 PASS HTMLInputElement interface: createInput("url") must inherit property "validationMessage" with the proper type (42) 
 PASS HTMLInputElement interface: createInput("url") must inherit property "checkValidity" with the proper type (43) 
-FAIL HTMLInputElement interface: createInput("url") must inherit property "reportValidity" with the proper type (44) assert_inherits: property "reportValidity" not found in prototype chain
+PASS HTMLInputElement interface: createInput("url") must inherit property "reportValidity" with the proper type (44) 
 PASS HTMLInputElement interface: createInput("url") must inherit property "setCustomValidity" with the proper type (45) 
 PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("url") with too few arguments must throw TypeError 
 PASS HTMLInputElement interface: createInput("url") must inherit property "labels" with the proper type (46) 
@@ -3073,7 +3073,7 @@ PASS HTMLInputElement interface: createInput("email") must inherit property "wil
 PASS HTMLInputElement interface: createInput("email") must inherit property "validity" with the proper type (41) 
 PASS HTMLInputElement interface: createInput("email") must inherit property "validationMessage" with the proper type (42) 
 PASS HTMLInputElement interface: createInput("email") must inherit property "checkValidity" with the proper type (43) 
-FAIL HTMLInputElement interface: createInput("email") must inherit property "reportValidity" with the proper type (44) assert_inherits: property "reportValidity" not found in prototype chain
+PASS HTMLInputElement interface: createInput("email") must inherit property "reportValidity" with the proper type (44) 
 PASS HTMLInputElement interface: createInput("email") must inherit property "setCustomValidity" with the proper type (45) 
 PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("email") with too few arguments must throw TypeError 
 PASS HTMLInputElement interface: createInput("email") must inherit property "labels" with the proper type (46) 
@@ -3137,7 +3137,7 @@ PASS HTMLInputElement interface: createInput("password") must inherit property "
 PASS HTMLInputElement interface: createInput("password") must inherit property "validity" with the proper type (41) 
 PASS HTMLInputElement interface: createInput("password") must inherit property "validationMessage" with the proper type (42) 
 PASS HTMLInputElement interface: createInput("password") must inherit property "checkValidity" with the proper type (43) 
-FAIL HTMLInputElement interface: createInput("password") must inherit property "reportValidity" with the proper type (44) assert_inherits: property "reportValidity" not found in prototype chain
+PASS HTMLInputElement interface: createInput("password") must inherit property "reportValidity" with the proper type (44) 
 PASS HTMLInputElement interface: createInput("password") must inherit property "setCustomValidity" with the proper type (45) 
 PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("password") with too few arguments must throw TypeError 
 PASS HTMLInputElement interface: createInput("password") must inherit property "labels" with the proper type (46) 
@@ -3201,7 +3201,7 @@ PASS HTMLInputElement interface: createInput("date") must inherit property "will
 PASS HTMLInputElement interface: createInput("date") must inherit property "validity" with the proper type (41) 
 PASS HTMLInputElement interface: createInput("date") must inherit property "validationMessage" with the proper type (42) 
 PASS HTMLInputElement interface: createInput("date") must inherit property "checkValidity" with the proper type (43) 
-FAIL HTMLInputElement interface: createInput("date") must inherit property "reportValidity" with the proper type (44) assert_inherits: property "reportValidity" not found in prototype chain
+PASS HTMLInputElement interface: createInput("date") must inherit property "reportValidity" with the proper type (44) 
 PASS HTMLInputElement interface: createInput("date") must inherit property "setCustomValidity" with the proper type (45) 
 PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("date") with too few arguments must throw TypeError 
 PASS HTMLInputElement interface: createInput("date") must inherit property "labels" with the proper type (46) 
@@ -3265,7 +3265,7 @@ PASS HTMLInputElement interface: createInput("month") must inherit property "wil
 PASS HTMLInputElement interface: createInput("month") must inherit property "validity" with the proper type (41) 
 PASS HTMLInputElement interface: createInput("month") must inherit property "validationMessage" with the proper type (42) 
 PASS HTMLInputElement interface: createInput("month") must inherit property "checkValidity" with the proper type (43) 
-FAIL HTMLInputElement interface: createInput("month") must inherit property "reportValidity" with the proper type (44) assert_inherits: property "reportValidity" not found in prototype chain
+PASS HTMLInputElement interface: createInput("month") must inherit property "reportValidity" with the proper type (44) 
 PASS HTMLInputElement interface: createInput("month") must inherit property "setCustomValidity" with the proper type (45) 
 PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("month") with too few arguments must throw TypeError 
 PASS HTMLInputElement interface: createInput("month") must inherit property "labels" with the proper type (46) 
@@ -3329,7 +3329,7 @@ PASS HTMLInputElement interface: createInput("week") must inherit property "will
 PASS HTMLInputElement interface: createInput("week") must inherit property "validity" with the proper type (41) 
 PASS HTMLInputElement interface: createInput("week") must inherit property "validationMessage" with the proper type (42) 
 PASS HTMLInputElement interface: createInput("week") must inherit property "checkValidity" with the proper type (43) 
-FAIL HTMLInputElement interface: createInput("week") must inherit property "reportValidity" with the proper type (44) assert_inherits: property "reportValidity" not found in prototype chain
+PASS HTMLInputElement interface: createInput("week") must inherit property "reportValidity" with the proper type (44) 
 PASS HTMLInputElement interface: createInput("week") must inherit property "setCustomValidity" with the proper type (45) 
 PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("week") with too few arguments must throw TypeError 
 PASS HTMLInputElement interface: createInput("week") must inherit property "labels" with the proper type (46) 
@@ -3393,7 +3393,7 @@ PASS HTMLInputElement interface: createInput("time") must inherit property "will
 PASS HTMLInputElement interface: createInput("time") must inherit property "validity" with the proper type (41) 
 PASS HTMLInputElement interface: createInput("time") must inherit property "validationMessage" with the proper type (42) 
 PASS HTMLInputElement interface: createInput("time") must inherit property "checkValidity" with the proper type (43) 
-FAIL HTMLInputElement interface: createInput("time") must inherit property "reportValidity" with the proper type (44) assert_inherits: property "reportValidity" not found in prototype chain
+PASS HTMLInputElement interface: createInput("time") must inherit property "reportValidity" with the proper type (44) 
 PASS HTMLInputElement interface: createInput("time") must inherit property "setCustomValidity" with the proper type (45) 
 PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("time") with too few arguments must throw TypeError 
 PASS HTMLInputElement interface: createInput("time") must inherit property "labels" with the proper type (46) 
@@ -3457,7 +3457,7 @@ PASS HTMLInputElement interface: createInput("datetime-local") must inherit prop
 PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "validity" with the proper type (41) 
 PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "validationMessage" with the proper type (42) 
 PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "checkValidity" with the proper type (43) 
-FAIL HTMLInputElement interface: createInput("datetime-local") must inherit property "reportValidity" with the proper type (44) assert_inherits: property "reportValidity" not found in prototype chain
+PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "reportValidity" with the proper type (44) 
 PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "setCustomValidity" with the proper type (45) 
 PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("datetime-local") with too few arguments must throw TypeError 
 PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "labels" with the proper type (46) 
@@ -3521,7 +3521,7 @@ PASS HTMLInputElement interface: createInput("number") must inherit property "wi
 PASS HTMLInputElement interface: createInput("number") must inherit property "validity" with the proper type (41) 
 PASS HTMLInputElement interface: createInput("number") must inherit property "validationMessage" with the proper type (42) 
 PASS HTMLInputElement interface: createInput("number") must inherit property "checkValidity" with the proper type (43) 
-FAIL HTMLInputElement interface: createInput("number") must inherit property "reportValidity" with the proper type (44) assert_inherits: property "reportValidity" not found in prototype chain
+PASS HTMLInputElement interface: createInput("number") must inherit property "reportValidity" with the proper type (44) 
 PASS HTMLInputElement interface: createInput("number") must inherit property "setCustomValidity" with the proper type (45) 
 PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("number") with too few arguments must throw TypeError 
 PASS HTMLInputElement interface: createInput("number") must inherit property "labels" with the proper type (46) 
@@ -3585,7 +3585,7 @@ PASS HTMLInputElement interface: createInput("range") must inherit property "wil
 PASS HTMLInputElement interface: createInput("range") must inherit property "validity" with the proper type (41) 
 PASS HTMLInputElement interface: createInput("range") must inherit property "validationMessage" with the proper type (42) 
 PASS HTMLInputElement interface: createInput("range") must inherit property "checkValidity" with the proper type (43) 
-FAIL HTMLInputElement interface: createInput("range") must inherit property "reportValidity" with the proper type (44) assert_inherits: property "reportValidity" not found in prototype chain
+PASS HTMLInputElement interface: createInput("range") must inherit property "reportValidity" with the proper type (44) 
 PASS HTMLInputElement interface: createInput("range") must inherit property "setCustomValidity" with the proper type (45) 
 PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("range") with too few arguments must throw TypeError 
 PASS HTMLInputElement interface: createInput("range") must inherit property "labels" with the proper type (46) 
@@ -3649,7 +3649,7 @@ PASS HTMLInputElement interface: createInput("color") must inherit property "wil
 PASS HTMLInputElement interface: createInput("color") must inherit property "validity" with the proper type (41) 
 PASS HTMLInputElement interface: createInput("color") must inherit property "validationMessage" with the proper type (42) 
 PASS HTMLInputElement interface: createInput("color") must inherit property "checkValidity" with the proper type (43) 
-FAIL HTMLInputElement interface: createInput("color") must inherit property "reportValidity" with the proper type (44) assert_inherits: property "reportValidity" not found in prototype chain
+PASS HTMLInputElement interface: createInput("color") must inherit property "reportValidity" with the proper type (44) 
 PASS HTMLInputElement interface: createInput("color") must inherit property "setCustomValidity" with the proper type (45) 
 PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("color") with too few arguments must throw TypeError 
 PASS HTMLInputElement interface: createInput("color") must inherit property "labels" with the proper type (46) 
@@ -3713,7 +3713,7 @@ PASS HTMLInputElement interface: createInput("checkbox") must inherit property "
 PASS HTMLInputElement interface: createInput("checkbox") must inherit property "validity" with the proper type (41) 
 PASS HTMLInputElement interface: createInput("checkbox") must inherit property "validationMessage" with the proper type (42) 
 PASS HTMLInputElement interface: createInput("checkbox") must inherit property "checkValidity" with the proper type (43) 
-FAIL HTMLInputElement interface: createInput("checkbox") must inherit property "reportValidity" with the proper type (44) assert_inherits: property "reportValidity" not found in prototype chain
+PASS HTMLInputElement interface: createInput("checkbox") must inherit property "reportValidity" with the proper type (44) 
 PASS HTMLInputElement interface: createInput("checkbox") must inherit property "setCustomValidity" with the proper type (45) 
 PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("checkbox") with too few arguments must throw TypeError 
 PASS HTMLInputElement interface: createInput("checkbox") must inherit property "labels" with the proper type (46) 
@@ -3777,7 +3777,7 @@ PASS HTMLInputElement interface: createInput("radio") must inherit property "wil
 PASS HTMLInputElement interface: createInput("radio") must inherit property "validity" with the proper type (41) 
 PASS HTMLInputElement interface: createInput("radio") must inherit property "validationMessage" with the proper type (42) 
 PASS HTMLInputElement interface: createInput("radio") must inherit property "checkValidity" with the proper type (43) 
-FAIL HTMLInputElement interface: createInput("radio") must inherit property "reportValidity" with the proper type (44) assert_inherits: property "reportValidity" not found in prototype chain
+PASS HTMLInputElement interface: createInput("radio") must inherit property "reportValidity" with the proper type (44) 
 PASS HTMLInputElement interface: createInput("radio") must inherit property "setCustomValidity" with the proper type (45) 
 PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("radio") with too few arguments must throw TypeError 
 PASS HTMLInputElement interface: createInput("radio") must inherit property "labels" with the proper type (46) 
@@ -3841,7 +3841,7 @@ PASS HTMLInputElement interface: createInput("file") must inherit property "will
 PASS HTMLInputElement interface: createInput("file") must inherit property "validity" with the proper type (41) 
 PASS HTMLInputElement interface: createInput("file") must inherit property "validationMessage" with the proper type (42) 
 PASS HTMLInputElement interface: createInput("file") must inherit property "checkValidity" with the proper type (43) 
-FAIL HTMLInputElement interface: createInput("file") must inherit property "reportValidity" with the proper type (44) assert_inherits: property "reportValidity" not found in prototype chain
+PASS HTMLInputElement interface: createInput("file") must inherit property "reportValidity" with the proper type (44) 
 PASS HTMLInputElement interface: createInput("file") must inherit property "setCustomValidity" with the proper type (45) 
 PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("file") with too few arguments must throw TypeError 
 PASS HTMLInputElement interface: createInput("file") must inherit property "labels" with the proper type (46) 
@@ -3905,7 +3905,7 @@ PASS HTMLInputElement interface: createInput("submit") must inherit property "wi
 PASS HTMLInputElement interface: createInput("submit") must inherit property "validity" with the proper type (41) 
 PASS HTMLInputElement interface: createInput("submit") must inherit property "validationMessage" with the proper type (42) 
 PASS HTMLInputElement interface: createInput("submit") must inherit property "checkValidity" with the proper type (43) 
-FAIL HTMLInputElement interface: createInput("submit") must inherit property "reportValidity" with the proper type (44) assert_inherits: property "reportValidity" not found in prototype chain
+PASS HTMLInputElement interface: createInput("submit") must inherit property "reportValidity" with the proper type (44) 
 PASS HTMLInputElement interface: createInput("submit") must inherit property "setCustomValidity" with the proper type (45) 
 PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("submit") with too few arguments must throw TypeError 
 PASS HTMLInputElement interface: createInput("submit") must inherit property "labels" with the proper type (46) 
@@ -3969,7 +3969,7 @@ PASS HTMLInputElement interface: createInput("image") must inherit property "wil
 PASS HTMLInputElement interface: createInput("image") must inherit property "validity" with the proper type (41) 
 PASS HTMLInputElement interface: createInput("image") must inherit property "validationMessage" with the proper type (42) 
 PASS HTMLInputElement interface: createInput("image") must inherit property "checkValidity" with the proper type (43) 
-FAIL HTMLInputElement interface: createInput("image") must inherit property "reportValidity" with the proper type (44) assert_inherits: property "reportValidity" not found in prototype chain
+PASS HTMLInputElement interface: createInput("image") must inherit property "reportValidity" with the proper type (44) 
 PASS HTMLInputElement interface: createInput("image") must inherit property "setCustomValidity" with the proper type (45) 
 PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("image") with too few arguments must throw TypeError 
 PASS HTMLInputElement interface: createInput("image") must inherit property "labels" with the proper type (46) 
@@ -4033,7 +4033,7 @@ PASS HTMLInputElement interface: createInput("reset") must inherit property "wil
 PASS HTMLInputElement interface: createInput("reset") must inherit property "validity" with the proper type (41) 
 PASS HTMLInputElement interface: createInput("reset") must inherit property "validationMessage" with the proper type (42) 
 PASS HTMLInputElement interface: createInput("reset") must inherit property "checkValidity" with the proper type (43) 
-FAIL HTMLInputElement interface: createInput("reset") must inherit property "reportValidity" with the proper type (44) assert_inherits: property "reportValidity" not found in prototype chain
+PASS HTMLInputElement interface: createInput("reset") must inherit property "reportValidity" with the proper type (44) 
 PASS HTMLInputElement interface: createInput("reset") must inherit property "setCustomValidity" with the proper type (45) 
 PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("reset") with too few arguments must throw TypeError 
 PASS HTMLInputElement interface: createInput("reset") must inherit property "labels" with the proper type (46) 
@@ -4097,7 +4097,7 @@ PASS HTMLInputElement interface: createInput("button") must inherit property "wi
 PASS HTMLInputElement interface: createInput("button") must inherit property "validity" with the proper type (41) 
 PASS HTMLInputElement interface: createInput("button") must inherit property "validationMessage" with the proper type (42) 
 PASS HTMLInputElement interface: createInput("button") must inherit property "checkValidity" with the proper type (43) 
-FAIL HTMLInputElement interface: createInput("button") must inherit property "reportValidity" with the proper type (44) assert_inherits: property "reportValidity" not found in prototype chain
+PASS HTMLInputElement interface: createInput("button") must inherit property "reportValidity" with the proper type (44) 
 PASS HTMLInputElement interface: createInput("button") must inherit property "setCustomValidity" with the proper type (45) 
 PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("button") with too few arguments must throw TypeError 
 PASS HTMLInputElement interface: createInput("button") must inherit property "labels" with the proper type (46) 
@@ -4134,7 +4134,7 @@ PASS HTMLButtonElement interface: attribute willValidate
 PASS HTMLButtonElement interface: attribute validity 
 PASS HTMLButtonElement interface: attribute validationMessage 
 PASS HTMLButtonElement interface: operation checkValidity() 
-FAIL HTMLButtonElement interface: operation reportValidity() assert_own_property: interface prototype object missing non-static operation expected property "reportValidity" missing
+PASS HTMLButtonElement interface: operation reportValidity() 
 PASS HTMLButtonElement interface: operation setCustomValidity(DOMString) 
 PASS HTMLButtonElement interface: attribute labels 
 PASS HTMLButtonElement must be primary interface of document.createElement("button") 
@@ -4155,7 +4155,7 @@ PASS HTMLButtonElement interface: document.createElement("button") must inherit
 PASS HTMLButtonElement interface: document.createElement("button") must inherit property "validity" with the proper type (13) 
 PASS HTMLButtonElement interface: document.createElement("button") must inherit property "validationMessage" with the proper type (14) 
 PASS HTMLButtonElement interface: document.createElement("button") must inherit property "checkValidity" with the proper type (15) 
-FAIL HTMLButtonElement interface: document.createElement("button") must inherit property "reportValidity" with the proper type (16) assert_inherits: property "reportValidity" not found in prototype chain
+PASS HTMLButtonElement interface: document.createElement("button") must inherit property "reportValidity" with the proper type (16) 
 PASS HTMLButtonElement interface: document.createElement("button") must inherit property "setCustomValidity" with the proper type (17) 
 PASS HTMLButtonElement interface: calling setCustomValidity(DOMString) on document.createElement("button") with too few arguments must throw TypeError 
 PASS HTMLButtonElement interface: document.createElement("button") must inherit property "labels" with the proper type (18) 
@@ -4187,7 +4187,7 @@ PASS HTMLSelectElement interface: attribute willValidate
 PASS HTMLSelectElement interface: attribute validity 
 PASS HTMLSelectElement interface: attribute validationMessage 
 PASS HTMLSelectElement interface: operation checkValidity() 
-FAIL HTMLSelectElement interface: operation reportValidity() assert_own_property: interface prototype object missing non-static operation expected property "reportValidity" missing
+PASS HTMLSelectElement interface: operation reportValidity() 
 PASS HTMLSelectElement interface: operation setCustomValidity(DOMString) 
 PASS HTMLSelectElement interface: attribute labels 
 PASS HTMLSelectElement must be primary interface of document.createElement("select") 
@@ -4219,7 +4219,7 @@ PASS HTMLSelectElement interface: document.createElement("select") must inherit
 PASS HTMLSelectElement interface: document.createElement("select") must inherit property "validity" with the proper type (21) 
 PASS HTMLSelectElement interface: document.createElement("select") must inherit property "validationMessage" with the proper type (22) 
 PASS HTMLSelectElement interface: document.createElement("select") must inherit property "checkValidity" with the proper type (23) 
-FAIL HTMLSelectElement interface: document.createElement("select") must inherit property "reportValidity" with the proper type (24) assert_inherits: property "reportValidity" not found in prototype chain
+PASS HTMLSelectElement interface: document.createElement("select") must inherit property "reportValidity" with the proper type (24) 
 PASS HTMLSelectElement interface: document.createElement("select") must inherit property "setCustomValidity" with the proper type (25) 
 PASS HTMLSelectElement interface: calling setCustomValidity(DOMString) on document.createElement("select") with too few arguments must throw TypeError 
 PASS HTMLSelectElement interface: document.createElement("select") must inherit property "labels" with the proper type (26) 
@@ -4304,7 +4304,7 @@ PASS HTMLTextAreaElement interface: attribute willValidate
 PASS HTMLTextAreaElement interface: attribute validity 
 PASS HTMLTextAreaElement interface: attribute validationMessage 
 PASS HTMLTextAreaElement interface: operation checkValidity() 
-FAIL HTMLTextAreaElement interface: operation reportValidity() assert_own_property: interface prototype object missing non-static operation expected property "reportValidity" missing
+PASS HTMLTextAreaElement interface: operation reportValidity() 
 PASS HTMLTextAreaElement interface: operation setCustomValidity(DOMString) 
 PASS HTMLTextAreaElement interface: attribute labels 
 PASS HTMLTextAreaElement interface: operation select() 
@@ -4339,7 +4339,7 @@ PASS HTMLTextAreaElement interface: document.createElement("textarea") must inhe
 PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "validity" with the proper type (20) 
 PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "validationMessage" with the proper type (21) 
 PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "checkValidity" with the proper type (22) 
-FAIL HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "reportValidity" with the proper type (23) assert_inherits: property "reportValidity" not found in prototype chain
+PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "reportValidity" with the proper type (23) 
 PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "setCustomValidity" with the proper type (24) 
 PASS HTMLTextAreaElement interface: calling setCustomValidity(DOMString) on document.createElement("textarea") with too few arguments must throw TypeError 
 PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "labels" with the proper type (25) 
@@ -4371,7 +4371,7 @@ PASS HTMLKeygenElement interface: attribute willValidate
 PASS HTMLKeygenElement interface: attribute validity 
 PASS HTMLKeygenElement interface: attribute validationMessage 
 PASS HTMLKeygenElement interface: operation checkValidity() 
-FAIL HTMLKeygenElement interface: operation reportValidity() assert_own_property: interface prototype object missing non-static operation expected property "reportValidity" missing
+PASS HTMLKeygenElement interface: operation reportValidity() 
 PASS HTMLKeygenElement interface: operation setCustomValidity(DOMString) 
 PASS HTMLKeygenElement interface: attribute labels 
 PASS HTMLKeygenElement must be primary interface of document.createElement("keygen") 
@@ -4387,7 +4387,7 @@ PASS HTMLKeygenElement interface: document.createElement("keygen") must inherit
 PASS HTMLKeygenElement interface: document.createElement("keygen") must inherit property "validity" with the proper type (8) 
 PASS HTMLKeygenElement interface: document.createElement("keygen") must inherit property "validationMessage" with the proper type (9) 
 PASS HTMLKeygenElement interface: document.createElement("keygen") must inherit property "checkValidity" with the proper type (10) 
-FAIL HTMLKeygenElement interface: document.createElement("keygen") must inherit property "reportValidity" with the proper type (11) assert_inherits: property "reportValidity" not found in prototype chain
+PASS HTMLKeygenElement interface: document.createElement("keygen") must inherit property "reportValidity" with the proper type (11) 
 PASS HTMLKeygenElement interface: document.createElement("keygen") must inherit property "setCustomValidity" with the proper type (12) 
 PASS HTMLKeygenElement interface: calling setCustomValidity(DOMString) on document.createElement("keygen") with too few arguments must throw TypeError 
 PASS HTMLKeygenElement interface: document.createElement("keygen") must inherit property "labels" with the proper type (13) 
@@ -4406,7 +4406,7 @@ PASS HTMLOutputElement interface: attribute willValidate
 PASS HTMLOutputElement interface: attribute validity 
 PASS HTMLOutputElement interface: attribute validationMessage 
 PASS HTMLOutputElement interface: operation checkValidity() 
-FAIL HTMLOutputElement interface: operation reportValidity() assert_own_property: interface prototype object missing non-static operation expected property "reportValidity" missing
+PASS HTMLOutputElement interface: operation reportValidity() 
 PASS HTMLOutputElement interface: operation setCustomValidity(DOMString) 
 PASS HTMLOutputElement interface: attribute labels 
 PASS HTMLOutputElement must be primary interface of document.createElement("output") 
@@ -4421,7 +4421,7 @@ PASS HTMLOutputElement interface: document.createElement("output") must inherit
 PASS HTMLOutputElement interface: document.createElement("output") must inherit property "validity" with the proper type (7) 
 PASS HTMLOutputElement interface: document.createElement("output") must inherit property "validationMessage" with the proper type (8) 
 PASS HTMLOutputElement interface: document.createElement("output") must inherit property "checkValidity" with the proper type (9) 
-FAIL HTMLOutputElement interface: document.createElement("output") must inherit property "reportValidity" with the proper type (10) assert_inherits: property "reportValidity" not found in prototype chain
+PASS HTMLOutputElement interface: document.createElement("output") must inherit property "reportValidity" with the proper type (10) 
 PASS HTMLOutputElement interface: document.createElement("output") must inherit property "setCustomValidity" with the proper type (11) 
 PASS HTMLOutputElement interface: calling setCustomValidity(DOMString) on document.createElement("output") with too few arguments must throw TypeError 
 PASS HTMLOutputElement interface: document.createElement("output") must inherit property "labels" with the proper type (12) 
@@ -4475,7 +4475,7 @@ PASS HTMLFieldSetElement interface: attribute willValidate
 PASS HTMLFieldSetElement interface: attribute validity 
 PASS HTMLFieldSetElement interface: attribute validationMessage 
 PASS HTMLFieldSetElement interface: operation checkValidity() 
-FAIL HTMLFieldSetElement interface: operation reportValidity() assert_own_property: interface prototype object missing non-static operation expected property "reportValidity" missing
+PASS HTMLFieldSetElement interface: operation reportValidity() 
 PASS HTMLFieldSetElement interface: operation setCustomValidity(DOMString) 
 PASS HTMLLegendElement interface: existence and properties of interface object 
 PASS HTMLLegendElement interface object length 
index b9f23f5..02f7324 100644 (file)
@@ -1,87 +1,87 @@
 
-FAIL [INPUT in TEXT status] no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEXT status] no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEXT status] not suffering from being too long assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEXT status] not suffering from being too long (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEXT status] suffering from a pattern mismatch assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEXT status] suffering from a pattern mismatch (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEXT status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEXT status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in SEARCH status] no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in SEARCH status] no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in SEARCH status] not suffering from being too long assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in SEARCH status] not suffering from being too long (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in SEARCH status] suffering from a pattern mismatch assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in SEARCH status] suffering from a pattern mismatch (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in SEARCH status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in SEARCH status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEL status] no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEL status] no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEL status] not suffering from being too long assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEL status] not suffering from being too long (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEL status] suffering from a pattern mismatch assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEL status] suffering from a pattern mismatch (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEL status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEL status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in PASSWORD status] no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in PASSWORD status] no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in PASSWORD status] not suffering from being too long assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in PASSWORD status] not suffering from being too long (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in PASSWORD status] suffering from a pattern mismatch assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in PASSWORD status] suffering from a pattern mismatch (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in PASSWORD status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in PASSWORD status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in URL status] no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in URL status] no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in URL status] not suffering from being too long assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in URL status] not suffering from being too long (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in URL status] suffering from a pattern mismatch assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in URL status] suffering from a pattern mismatch (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in URL status] suffering from a type mismatch assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in URL status] suffering from a type mismatch (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in URL status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in URL status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in EMAIL status] no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in EMAIL status] no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in EMAIL status] not suffering from being too long assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in EMAIL status] not suffering from being too long (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in EMAIL status] suffering from a pattern mismatch assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in EMAIL status] suffering from a pattern mismatch (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in EMAIL status] suffering from a type mismatch assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in EMAIL status] suffering from a type mismatch (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in EMAIL status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in EMAIL status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
+PASS [INPUT in TEXT status] no constraint 
+PASS [INPUT in TEXT status] no constraint (in a form) 
+PASS [INPUT in TEXT status] not suffering from being too long 
+PASS [INPUT in TEXT status] not suffering from being too long (in a form) 
+PASS [INPUT in TEXT status] suffering from a pattern mismatch 
+PASS [INPUT in TEXT status] suffering from a pattern mismatch (in a form) 
+PASS [INPUT in TEXT status] suffering from being missing 
+PASS [INPUT in TEXT status] suffering from being missing (in a form) 
+PASS [INPUT in SEARCH status] no constraint 
+PASS [INPUT in SEARCH status] no constraint (in a form) 
+PASS [INPUT in SEARCH status] not suffering from being too long 
+PASS [INPUT in SEARCH status] not suffering from being too long (in a form) 
+PASS [INPUT in SEARCH status] suffering from a pattern mismatch 
+PASS [INPUT in SEARCH status] suffering from a pattern mismatch (in a form) 
+PASS [INPUT in SEARCH status] suffering from being missing 
+PASS [INPUT in SEARCH status] suffering from being missing (in a form) 
+PASS [INPUT in TEL status] no constraint 
+PASS [INPUT in TEL status] no constraint (in a form) 
+PASS [INPUT in TEL status] not suffering from being too long 
+PASS [INPUT in TEL status] not suffering from being too long (in a form) 
+PASS [INPUT in TEL status] suffering from a pattern mismatch 
+PASS [INPUT in TEL status] suffering from a pattern mismatch (in a form) 
+PASS [INPUT in TEL status] suffering from being missing 
+PASS [INPUT in TEL status] suffering from being missing (in a form) 
+PASS [INPUT in PASSWORD status] no constraint 
+PASS [INPUT in PASSWORD status] no constraint (in a form) 
+PASS [INPUT in PASSWORD status] not suffering from being too long 
+PASS [INPUT in PASSWORD status] not suffering from being too long (in a form) 
+PASS [INPUT in PASSWORD status] suffering from a pattern mismatch 
+PASS [INPUT in PASSWORD status] suffering from a pattern mismatch (in a form) 
+PASS [INPUT in PASSWORD status] suffering from being missing 
+PASS [INPUT in PASSWORD status] suffering from being missing (in a form) 
+PASS [INPUT in URL status] no constraint 
+PASS [INPUT in URL status] no constraint (in a form) 
+PASS [INPUT in URL status] not suffering from being too long 
+PASS [INPUT in URL status] not suffering from being too long (in a form) 
+PASS [INPUT in URL status] suffering from a pattern mismatch 
+PASS [INPUT in URL status] suffering from a pattern mismatch (in a form) 
+PASS [INPUT in URL status] suffering from a type mismatch 
+PASS [INPUT in URL status] suffering from a type mismatch (in a form) 
+PASS [INPUT in URL status] suffering from being missing 
+PASS [INPUT in URL status] suffering from being missing (in a form) 
+PASS [INPUT in EMAIL status] no constraint 
+PASS [INPUT in EMAIL status] no constraint (in a form) 
+PASS [INPUT in EMAIL status] not suffering from being too long 
+PASS [INPUT in EMAIL status] not suffering from being too long (in a form) 
+PASS [INPUT in EMAIL status] suffering from a pattern mismatch 
+PASS [INPUT in EMAIL status] suffering from a pattern mismatch (in a form) 
+PASS [INPUT in EMAIL status] suffering from a type mismatch 
+PASS [INPUT in EMAIL status] suffering from a type mismatch (in a form) 
+PASS [INPUT in EMAIL status] suffering from being missing 
+PASS [INPUT in EMAIL status] suffering from being missing (in a form) 
 FAIL [INPUT in DATETIME-LOCAL status] The datetime-local type must be supported. assert_equals: The datetime-local type should be supported. expected "datetime-local" but got "text"
 FAIL [INPUT in DATE status] The date type must be supported. assert_equals: The date type should be supported. expected "date" but got "text"
 FAIL [INPUT in MONTH status] The month type must be supported. assert_equals: The month type should be supported. expected "month" but got "text"
 FAIL [INPUT in WEEK status] The week type must be supported. assert_equals: The week type should be supported. expected "week" but got "text"
 FAIL [INPUT in TIME status] The time type must be supported. assert_equals: The time type should be supported. expected "time" but got "text"
-FAIL [INPUT in NUMBER status] suffering from an overflow assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in NUMBER status] suffering from an overflow (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in NUMBER status] suffering from an underflow assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in NUMBER status] suffering from an underflow (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in NUMBER status] suffering from a step mismatch assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in NUMBER status] suffering from a step mismatch (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in NUMBER status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in NUMBER status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in CHECKBOX status] no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in CHECKBOX status] no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in CHECKBOX status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in CHECKBOX status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in RADIO status] no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in RADIO status] no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in RADIO status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in RADIO status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in FILE status] no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in FILE status] no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in FILE status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in FILE status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [select]  no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [select]  no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [select]  suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [select]  suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [textarea]  no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [textarea]  no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [textarea]  suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [textarea]  suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
+PASS [INPUT in NUMBER status] suffering from an overflow 
+PASS [INPUT in NUMBER status] suffering from an overflow (in a form) 
+PASS [INPUT in NUMBER status] suffering from an underflow 
+PASS [INPUT in NUMBER status] suffering from an underflow (in a form) 
+PASS [INPUT in NUMBER status] suffering from a step mismatch 
+PASS [INPUT in NUMBER status] suffering from a step mismatch (in a form) 
+PASS [INPUT in NUMBER status] suffering from being missing 
+PASS [INPUT in NUMBER status] suffering from being missing (in a form) 
+PASS [INPUT in CHECKBOX status] no constraint 
+PASS [INPUT in CHECKBOX status] no constraint (in a form) 
+PASS [INPUT in CHECKBOX status] suffering from being missing 
+PASS [INPUT in CHECKBOX status] suffering from being missing (in a form) 
+PASS [INPUT in RADIO status] no constraint 
+PASS [INPUT in RADIO status] no constraint (in a form) 
+PASS [INPUT in RADIO status] suffering from being missing 
+PASS [INPUT in RADIO status] suffering from being missing (in a form) 
+PASS [INPUT in FILE status] no constraint 
+PASS [INPUT in FILE status] no constraint (in a form) 
+PASS [INPUT in FILE status] suffering from being missing 
+PASS [INPUT in FILE status] suffering from being missing (in a form) 
+PASS [select]  no constraint 
+PASS [select]  no constraint (in a form) 
+PASS [select]  suffering from being missing 
+PASS [select]  suffering from being missing (in a form) 
+PASS [textarea]  no constraint 
+PASS [textarea]  no constraint (in a form) 
+PASS [textarea]  suffering from being missing 
+PASS [textarea]  suffering from being missing (in a form) 
 
index 85271da..f5e2c04 100644 (file)
@@ -1,10 +1,14 @@
+CONSOLE MESSAGE: line 79: An invalid form control with name='' is not focusable.
+CONSOLE MESSAGE: line 79: An invalid form control with name='' is not focusable.
+CONSOLE MESSAGE: line 108: An invalid form control with name='' is not focusable.
+CONSOLE MESSAGE: line 114: An invalid form control with name='' is not focusable.
 
 PASS If there is any invalid submittable element whose form owner is the form, the form.checkValidity must be false 
-FAIL If there is any invalid submittable element whose form owner is the form, the form.reportValidity must be false assert_true: The reportValidity method is not supported expected true got false
+PASS If there is any invalid submittable element whose form owner is the form, the form.reportValidity must be false 
 PASS If all of the submittable elements whose form owner is the form are valid, the form.checkValidity must be true 
-FAIL If all of the submittable elements whose form owner is the form are valid, the form.reportValidity must be true assert_true: The reportValidity method is not supported. expected true got false
+PASS If all of the submittable elements whose form owner is the form are valid, the form.reportValidity must be true 
 PASS Check the checkValidity method of the form element when it has a fieldset child 
-FAIL Check the reportValidity method of the form element when it has a fieldset child assert_true: The reportValidity method is not supported. expected true got false
-FAIL The invalid event must be fired at the invalid controls assert_equals: The invalid event will be fired if the checkValidity or reportValidity method are called. expected 4 but got 2
+PASS Check the reportValidity method of the form element when it has a fieldset child 
+PASS The invalid event must be fired at the invalid controls 
 PASS The invalid event must not be fired at the invalid controls 
 
index 4ed11c3..3ba6c45 100644 (file)
 
-FAIL [INPUT in TEXT status] no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEXT status] no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEXT status] not suffering from being too long assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEXT status] not suffering from being too long (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEXT status] suffering from a pattern mismatch assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEXT status] suffering from a pattern mismatch (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEXT status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEXT status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in SEARCH status] no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in SEARCH status] no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in SEARCH status] not suffering from being too long assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in SEARCH status] not suffering from being too long (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in SEARCH status] suffering from a pattern mismatch assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in SEARCH status] suffering from a pattern mismatch (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in SEARCH status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in SEARCH status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEL status] no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEL status] no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEL status] not suffering from being too long assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEL status] not suffering from being too long (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEL status] suffering from a pattern mismatch assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEL status] suffering from a pattern mismatch (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEL status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEL status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in PASSWORD status] no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in PASSWORD status] no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in PASSWORD status] not suffering from being too long assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in PASSWORD status] not suffering from being too long (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in PASSWORD status] suffering from a pattern mismatch assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in PASSWORD status] suffering from a pattern mismatch (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in PASSWORD status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in PASSWORD status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in URL status] no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in URL status] no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in URL status] not suffering from being too long assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in URL status] not suffering from being too long (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in URL status] suffering from a pattern mismatch assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in URL status] suffering from a pattern mismatch (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in URL status] suffering from a type mismatch assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in URL status] suffering from a type mismatch (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in URL status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in URL status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in EMAIL status] no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in EMAIL status] no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in EMAIL status] not suffering from being too long assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in EMAIL status] not suffering from being too long (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in EMAIL status] suffering from a pattern mismatch assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in EMAIL status] suffering from a pattern mismatch (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in EMAIL status] suffering from a type mismatch assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in EMAIL status] suffering from a type mismatch (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in EMAIL status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in EMAIL status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in DATETIME-LOCAL status] no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in DATETIME-LOCAL status] no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in DATETIME-LOCAL status] suffering from an overflow assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in DATETIME-LOCAL status] suffering from an overflow (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in DATETIME-LOCAL status] suffering from an underflow assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in DATETIME-LOCAL status] suffering from an underflow (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in DATETIME-LOCAL status] suffering from a step mismatch assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in DATETIME-LOCAL status] suffering from a step mismatch (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in DATETIME-LOCAL status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in DATETIME-LOCAL status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in DATE status] no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in DATE status] no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in DATE status] suffering from an overflow assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in DATE status] suffering from an overflow (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in DATE status] suffering from an underflow assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in DATE status] suffering from an underflow (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in DATE status] suffering from a step mismatch assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in DATE status] suffering from a step mismatch (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in DATE status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in DATE status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in MONTH status] no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in MONTH status] no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in MONTH status] suffering from an overflow assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in MONTH status] suffering from an overflow (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in MONTH status] suffering from an underflow assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in MONTH status] suffering from an underflow (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in MONTH status] suffering from a step mismatch assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in MONTH status] suffering from a step mismatch (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in MONTH status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in MONTH status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in WEEK status] no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in WEEK status] no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in WEEK status] suffering from an overflow assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in WEEK status] suffering from an overflow (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in WEEK status] suffering from an underflow assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in WEEK status] suffering from an underflow (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in WEEK status] suffering from a step mismatch assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in WEEK status] suffering from a step mismatch (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in WEEK status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in WEEK status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TIME status] no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TIME status] no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TIME status] suffering from an overflow assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TIME status] suffering from an overflow (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TIME status] suffering from an underflow assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TIME status] suffering from an underflow (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TIME status] suffering from a step mismatch assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TIME status] suffering from a step mismatch (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TIME status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TIME status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in NUMBER status] suffering from an overflow assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in NUMBER status] suffering from an overflow (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in NUMBER status] suffering from an underflow assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in NUMBER status] suffering from an underflow (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in NUMBER status] suffering from a step mismatch assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in NUMBER status] suffering from a step mismatch (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in NUMBER status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in NUMBER status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in CHECKBOX status] no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in CHECKBOX status] no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in CHECKBOX status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in CHECKBOX status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in RADIO status] no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in RADIO status] no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in RADIO status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in RADIO status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in FILE status] no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in FILE status] no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in FILE status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in FILE status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [select]  no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [select]  no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [select]  suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [select]  suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [textarea]  no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [textarea]  no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [textarea]  suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [textarea]  suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
+PASS [INPUT in TEXT status] no constraint 
+PASS [INPUT in TEXT status] no constraint (in a form) 
+PASS [INPUT in TEXT status] not suffering from being too long 
+PASS [INPUT in TEXT status] not suffering from being too long (in a form) 
+PASS [INPUT in TEXT status] suffering from a pattern mismatch 
+PASS [INPUT in TEXT status] suffering from a pattern mismatch (in a form) 
+PASS [INPUT in TEXT status] suffering from being missing 
+PASS [INPUT in TEXT status] suffering from being missing (in a form) 
+PASS [INPUT in SEARCH status] no constraint 
+PASS [INPUT in SEARCH status] no constraint (in a form) 
+PASS [INPUT in SEARCH status] not suffering from being too long 
+PASS [INPUT in SEARCH status] not suffering from being too long (in a form) 
+PASS [INPUT in SEARCH status] suffering from a pattern mismatch 
+PASS [INPUT in SEARCH status] suffering from a pattern mismatch (in a form) 
+PASS [INPUT in SEARCH status] suffering from being missing 
+PASS [INPUT in SEARCH status] suffering from being missing (in a form) 
+PASS [INPUT in TEL status] no constraint 
+PASS [INPUT in TEL status] no constraint (in a form) 
+PASS [INPUT in TEL status] not suffering from being too long 
+PASS [INPUT in TEL status] not suffering from being too long (in a form) 
+PASS [INPUT in TEL status] suffering from a pattern mismatch 
+PASS [INPUT in TEL status] suffering from a pattern mismatch (in a form) 
+PASS [INPUT in TEL status] suffering from being missing 
+PASS [INPUT in TEL status] suffering from being missing (in a form) 
+PASS [INPUT in PASSWORD status] no constraint 
+PASS [INPUT in PASSWORD status] no constraint (in a form) 
+PASS [INPUT in PASSWORD status] not suffering from being too long 
+PASS [INPUT in PASSWORD status] not suffering from being too long (in a form) 
+PASS [INPUT in PASSWORD status] suffering from a pattern mismatch 
+PASS [INPUT in PASSWORD status] suffering from a pattern mismatch (in a form) 
+PASS [INPUT in PASSWORD status] suffering from being missing 
+PASS [INPUT in PASSWORD status] suffering from being missing (in a form) 
+PASS [INPUT in URL status] no constraint 
+PASS [INPUT in URL status] no constraint (in a form) 
+PASS [INPUT in URL status] not suffering from being too long 
+PASS [INPUT in URL status] not suffering from being too long (in a form) 
+PASS [INPUT in URL status] suffering from a pattern mismatch 
+PASS [INPUT in URL status] suffering from a pattern mismatch (in a form) 
+PASS [INPUT in URL status] suffering from a type mismatch 
+PASS [INPUT in URL status] suffering from a type mismatch (in a form) 
+PASS [INPUT in URL status] suffering from being missing 
+PASS [INPUT in URL status] suffering from being missing (in a form) 
+PASS [INPUT in EMAIL status] no constraint 
+PASS [INPUT in EMAIL status] no constraint (in a form) 
+PASS [INPUT in EMAIL status] not suffering from being too long 
+PASS [INPUT in EMAIL status] not suffering from being too long (in a form) 
+PASS [INPUT in EMAIL status] suffering from a pattern mismatch 
+PASS [INPUT in EMAIL status] suffering from a pattern mismatch (in a form) 
+PASS [INPUT in EMAIL status] suffering from a type mismatch 
+PASS [INPUT in EMAIL status] suffering from a type mismatch (in a form) 
+PASS [INPUT in EMAIL status] suffering from being missing 
+PASS [INPUT in EMAIL status] suffering from being missing (in a form) 
+PASS [INPUT in DATETIME-LOCAL status] no constraint 
+PASS [INPUT in DATETIME-LOCAL status] no constraint (in a form) 
+PASS [INPUT in DATETIME-LOCAL status] suffering from an overflow 
+PASS [INPUT in DATETIME-LOCAL status] suffering from an overflow (in a form) 
+PASS [INPUT in DATETIME-LOCAL status] suffering from an underflow 
+PASS [INPUT in DATETIME-LOCAL status] suffering from an underflow (in a form) 
+PASS [INPUT in DATETIME-LOCAL status] suffering from a step mismatch 
+PASS [INPUT in DATETIME-LOCAL status] suffering from a step mismatch (in a form) 
+PASS [INPUT in DATETIME-LOCAL status] suffering from being missing 
+PASS [INPUT in DATETIME-LOCAL status] suffering from being missing (in a form) 
+PASS [INPUT in DATE status] no constraint 
+PASS [INPUT in DATE status] no constraint (in a form) 
+PASS [INPUT in DATE status] suffering from an overflow 
+PASS [INPUT in DATE status] suffering from an overflow (in a form) 
+PASS [INPUT in DATE status] suffering from an underflow 
+PASS [INPUT in DATE status] suffering from an underflow (in a form) 
+PASS [INPUT in DATE status] suffering from a step mismatch 
+PASS [INPUT in DATE status] suffering from a step mismatch (in a form) 
+PASS [INPUT in DATE status] suffering from being missing 
+PASS [INPUT in DATE status] suffering from being missing (in a form) 
+PASS [INPUT in MONTH status] no constraint 
+PASS [INPUT in MONTH status] no constraint (in a form) 
+PASS [INPUT in MONTH status] suffering from an overflow 
+PASS [INPUT in MONTH status] suffering from an overflow (in a form) 
+PASS [INPUT in MONTH status] suffering from an underflow 
+PASS [INPUT in MONTH status] suffering from an underflow (in a form) 
+PASS [INPUT in MONTH status] suffering from a step mismatch 
+PASS [INPUT in MONTH status] suffering from a step mismatch (in a form) 
+PASS [INPUT in MONTH status] suffering from being missing 
+PASS [INPUT in MONTH status] suffering from being missing (in a form) 
+PASS [INPUT in WEEK status] no constraint 
+PASS [INPUT in WEEK status] no constraint (in a form) 
+PASS [INPUT in WEEK status] suffering from an overflow 
+PASS [INPUT in WEEK status] suffering from an overflow (in a form) 
+PASS [INPUT in WEEK status] suffering from an underflow 
+PASS [INPUT in WEEK status] suffering from an underflow (in a form) 
+PASS [INPUT in WEEK status] suffering from a step mismatch 
+PASS [INPUT in WEEK status] suffering from a step mismatch (in a form) 
+PASS [INPUT in WEEK status] suffering from being missing 
+PASS [INPUT in WEEK status] suffering from being missing (in a form) 
+PASS [INPUT in TIME status] no constraint 
+PASS [INPUT in TIME status] no constraint (in a form) 
+PASS [INPUT in TIME status] suffering from an overflow 
+PASS [INPUT in TIME status] suffering from an overflow (in a form) 
+PASS [INPUT in TIME status] suffering from an underflow 
+PASS [INPUT in TIME status] suffering from an underflow (in a form) 
+PASS [INPUT in TIME status] suffering from a step mismatch 
+PASS [INPUT in TIME status] suffering from a step mismatch (in a form) 
+PASS [INPUT in TIME status] suffering from being missing 
+PASS [INPUT in TIME status] suffering from being missing (in a form) 
+PASS [INPUT in NUMBER status] suffering from an overflow 
+PASS [INPUT in NUMBER status] suffering from an overflow (in a form) 
+PASS [INPUT in NUMBER status] suffering from an underflow 
+PASS [INPUT in NUMBER status] suffering from an underflow (in a form) 
+PASS [INPUT in NUMBER status] suffering from a step mismatch 
+PASS [INPUT in NUMBER status] suffering from a step mismatch (in a form) 
+PASS [INPUT in NUMBER status] suffering from being missing 
+PASS [INPUT in NUMBER status] suffering from being missing (in a form) 
+PASS [INPUT in CHECKBOX status] no constraint 
+PASS [INPUT in CHECKBOX status] no constraint (in a form) 
+PASS [INPUT in CHECKBOX status] suffering from being missing 
+PASS [INPUT in CHECKBOX status] suffering from being missing (in a form) 
+PASS [INPUT in RADIO status] no constraint 
+PASS [INPUT in RADIO status] no constraint (in a form) 
+PASS [INPUT in RADIO status] suffering from being missing 
+PASS [INPUT in RADIO status] suffering from being missing (in a form) 
+PASS [INPUT in FILE status] no constraint 
+PASS [INPUT in FILE status] no constraint (in a form) 
+PASS [INPUT in FILE status] suffering from being missing 
+PASS [INPUT in FILE status] suffering from being missing (in a form) 
+PASS [select]  no constraint 
+PASS [select]  no constraint (in a form) 
+PASS [select]  suffering from being missing 
+PASS [select]  suffering from being missing (in a form) 
+PASS [textarea]  no constraint 
+PASS [textarea]  no constraint (in a form) 
+PASS [textarea]  suffering from being missing 
+PASS [textarea]  suffering from being missing (in a form) 
 
index 9647daa..3ba6c45 100644 (file)
 
-FAIL [INPUT in TEXT status] no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEXT status] no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEXT status] suffering from being too long assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEXT status] suffering from being too long (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEXT status] suffering from a pattern mismatch assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEXT status] suffering from a pattern mismatch (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEXT status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEXT status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in SEARCH status] no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in SEARCH status] no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in SEARCH status] suffering from being too long assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in SEARCH status] suffering from being too long (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in SEARCH status] suffering from a pattern mismatch assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in SEARCH status] suffering from a pattern mismatch (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in SEARCH status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in SEARCH status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEL status] no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEL status] no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEL status] suffering from being too long assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEL status] suffering from being too long (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEL status] suffering from a pattern mismatch assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEL status] suffering from a pattern mismatch (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEL status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TEL status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in PASSWORD status] no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in PASSWORD status] no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in PASSWORD status] suffering from being too long assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in PASSWORD status] suffering from being too long (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in PASSWORD status] suffering from a pattern mismatch assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in PASSWORD status] suffering from a pattern mismatch (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in PASSWORD status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in PASSWORD status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in URL status] no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in URL status] no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in URL status] suffering from being too long assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in URL status] suffering from being too long (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in URL status] suffering from a pattern mismatch assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in URL status] suffering from a pattern mismatch (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in URL status] suffering from a type mismatch assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in URL status] suffering from a type mismatch (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in URL status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in URL status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in EMAIL status] no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in EMAIL status] no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in EMAIL status] suffering from being too long assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in EMAIL status] suffering from being too long (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in EMAIL status] suffering from a pattern mismatch assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in EMAIL status] suffering from a pattern mismatch (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in EMAIL status] suffering from a type mismatch assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in EMAIL status] suffering from a type mismatch (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in EMAIL status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in EMAIL status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in DATETIME status] The datetime type must be supported. assert_equals: The datetime type should be supported. expected "datetime" but got "text"
-FAIL [INPUT in DATE status] no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in DATE status] no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in DATE status] suffering from an overflow assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in DATE status] suffering from an overflow (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in DATE status] suffering from an underflow assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in DATE status] suffering from an underflow (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in DATE status] suffering from a step mismatch assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in DATE status] suffering from a step mismatch (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in DATE status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in DATE status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in MONTH status] no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in MONTH status] no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in MONTH status] suffering from an overflow assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in MONTH status] suffering from an overflow (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in MONTH status] suffering from an underflow assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in MONTH status] suffering from an underflow (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in MONTH status] suffering from a step mismatch assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in MONTH status] suffering from a step mismatch (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in MONTH status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in MONTH status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in WEEK status] no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in WEEK status] no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in WEEK status] suffering from an overflow assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in WEEK status] suffering from an overflow (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in WEEK status] suffering from an underflow assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in WEEK status] suffering from an underflow (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in WEEK status] suffering from a step mismatch assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in WEEK status] suffering from a step mismatch (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in WEEK status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in WEEK status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TIME status] no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TIME status] no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TIME status] suffering from an overflow assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TIME status] suffering from an overflow (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TIME status] suffering from an underflow assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TIME status] suffering from an underflow (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TIME status] suffering from a step mismatch assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TIME status] suffering from a step mismatch (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TIME status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in TIME status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in NUMBER status] suffering from an overflow assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in NUMBER status] suffering from an overflow (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in NUMBER status] suffering from an underflow assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in NUMBER status] suffering from an underflow (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in NUMBER status] suffering from a step mismatch assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in NUMBER status] suffering from a step mismatch (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in NUMBER status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in NUMBER status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in CHECKBOX status] no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in CHECKBOX status] no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in CHECKBOX status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in CHECKBOX status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in RADIO status] no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in RADIO status] no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in RADIO status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in RADIO status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in FILE status] no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in FILE status] no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in FILE status] suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [INPUT in FILE status] suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [select]  no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [select]  no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [select]  suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [select]  suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [textarea]  no constraint assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [textarea]  no constraint (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [textarea]  suffering from being missing assert_true: The reportValidity method doesn't exist. expected true got false
-FAIL [textarea]  suffering from being missing (in a form) assert_true: The reportValidity method doesn't exist. expected true got false
+PASS [INPUT in TEXT status] no constraint 
+PASS [INPUT in TEXT status] no constraint (in a form) 
+PASS [INPUT in TEXT status] not suffering from being too long 
+PASS [INPUT in TEXT status] not suffering from being too long (in a form) 
+PASS [INPUT in TEXT status] suffering from a pattern mismatch 
+PASS [INPUT in TEXT status] suffering from a pattern mismatch (in a form) 
+PASS [INPUT in TEXT status] suffering from being missing 
+PASS [INPUT in TEXT status] suffering from being missing (in a form) 
+PASS [INPUT in SEARCH status] no constraint 
+PASS [INPUT in SEARCH status] no constraint (in a form) 
+PASS [INPUT in SEARCH status] not suffering from being too long 
+PASS [INPUT in SEARCH status] not suffering from being too long (in a form) 
+PASS [INPUT in SEARCH status] suffering from a pattern mismatch 
+PASS [INPUT in SEARCH status] suffering from a pattern mismatch (in a form) 
+PASS [INPUT in SEARCH status] suffering from being missing 
+PASS [INPUT in SEARCH status] suffering from being missing (in a form) 
+PASS [INPUT in TEL status] no constraint 
+PASS [INPUT in TEL status] no constraint (in a form) 
+PASS [INPUT in TEL status] not suffering from being too long 
+PASS [INPUT in TEL status] not suffering from being too long (in a form) 
+PASS [INPUT in TEL status] suffering from a pattern mismatch 
+PASS [INPUT in TEL status] suffering from a pattern mismatch (in a form) 
+PASS [INPUT in TEL status] suffering from being missing 
+PASS [INPUT in TEL status] suffering from being missing (in a form) 
+PASS [INPUT in PASSWORD status] no constraint 
+PASS [INPUT in PASSWORD status] no constraint (in a form) 
+PASS [INPUT in PASSWORD status] not suffering from being too long 
+PASS [INPUT in PASSWORD status] not suffering from being too long (in a form) 
+PASS [INPUT in PASSWORD status] suffering from a pattern mismatch 
+PASS [INPUT in PASSWORD status] suffering from a pattern mismatch (in a form) 
+PASS [INPUT in PASSWORD status] suffering from being missing 
+PASS [INPUT in PASSWORD status] suffering from being missing (in a form) 
+PASS [INPUT in URL status] no constraint 
+PASS [INPUT in URL status] no constraint (in a form) 
+PASS [INPUT in URL status] not suffering from being too long 
+PASS [INPUT in URL status] not suffering from being too long (in a form) 
+PASS [INPUT in URL status] suffering from a pattern mismatch 
+PASS [INPUT in URL status] suffering from a pattern mismatch (in a form) 
+PASS [INPUT in URL status] suffering from a type mismatch 
+PASS [INPUT in URL status] suffering from a type mismatch (in a form) 
+PASS [INPUT in URL status] suffering from being missing 
+PASS [INPUT in URL status] suffering from being missing (in a form) 
+PASS [INPUT in EMAIL status] no constraint 
+PASS [INPUT in EMAIL status] no constraint (in a form) 
+PASS [INPUT in EMAIL status] not suffering from being too long 
+PASS [INPUT in EMAIL status] not suffering from being too long (in a form) 
+PASS [INPUT in EMAIL status] suffering from a pattern mismatch 
+PASS [INPUT in EMAIL status] suffering from a pattern mismatch (in a form) 
+PASS [INPUT in EMAIL status] suffering from a type mismatch 
+PASS [INPUT in EMAIL status] suffering from a type mismatch (in a form) 
+PASS [INPUT in EMAIL status] suffering from being missing 
+PASS [INPUT in EMAIL status] suffering from being missing (in a form) 
+PASS [INPUT in DATETIME-LOCAL status] no constraint 
+PASS [INPUT in DATETIME-LOCAL status] no constraint (in a form) 
+PASS [INPUT in DATETIME-LOCAL status] suffering from an overflow 
+PASS [INPUT in DATETIME-LOCAL status] suffering from an overflow (in a form) 
+PASS [INPUT in DATETIME-LOCAL status] suffering from an underflow 
+PASS [INPUT in DATETIME-LOCAL status] suffering from an underflow (in a form) 
+PASS [INPUT in DATETIME-LOCAL status] suffering from a step mismatch 
+PASS [INPUT in DATETIME-LOCAL status] suffering from a step mismatch (in a form) 
+PASS [INPUT in DATETIME-LOCAL status] suffering from being missing 
+PASS [INPUT in DATETIME-LOCAL status] suffering from being missing (in a form) 
+PASS [INPUT in DATE status] no constraint 
+PASS [INPUT in DATE status] no constraint (in a form) 
+PASS [INPUT in DATE status] suffering from an overflow 
+PASS [INPUT in DATE status] suffering from an overflow (in a form) 
+PASS [INPUT in DATE status] suffering from an underflow 
+PASS [INPUT in DATE status] suffering from an underflow (in a form) 
+PASS [INPUT in DATE status] suffering from a step mismatch 
+PASS [INPUT in DATE status] suffering from a step mismatch (in a form) 
+PASS [INPUT in DATE status] suffering from being missing 
+PASS [INPUT in DATE status] suffering from being missing (in a form) 
+PASS [INPUT in MONTH status] no constraint 
+PASS [INPUT in MONTH status] no constraint (in a form) 
+PASS [INPUT in MONTH status] suffering from an overflow 
+PASS [INPUT in MONTH status] suffering from an overflow (in a form) 
+PASS [INPUT in MONTH status] suffering from an underflow 
+PASS [INPUT in MONTH status] suffering from an underflow (in a form) 
+PASS [INPUT in MONTH status] suffering from a step mismatch 
+PASS [INPUT in MONTH status] suffering from a step mismatch (in a form) 
+PASS [INPUT in MONTH status] suffering from being missing 
+PASS [INPUT in MONTH status] suffering from being missing (in a form) 
+PASS [INPUT in WEEK status] no constraint 
+PASS [INPUT in WEEK status] no constraint (in a form) 
+PASS [INPUT in WEEK status] suffering from an overflow 
+PASS [INPUT in WEEK status] suffering from an overflow (in a form) 
+PASS [INPUT in WEEK status] suffering from an underflow 
+PASS [INPUT in WEEK status] suffering from an underflow (in a form) 
+PASS [INPUT in WEEK status] suffering from a step mismatch 
+PASS [INPUT in WEEK status] suffering from a step mismatch (in a form) 
+PASS [INPUT in WEEK status] suffering from being missing 
+PASS [INPUT in WEEK status] suffering from being missing (in a form) 
+PASS [INPUT in TIME status] no constraint 
+PASS [INPUT in TIME status] no constraint (in a form) 
+PASS [INPUT in TIME status] suffering from an overflow 
+PASS [INPUT in TIME status] suffering from an overflow (in a form) 
+PASS [INPUT in TIME status] suffering from an underflow 
+PASS [INPUT in TIME status] suffering from an underflow (in a form) 
+PASS [INPUT in TIME status] suffering from a step mismatch 
+PASS [INPUT in TIME status] suffering from a step mismatch (in a form) 
+PASS [INPUT in TIME status] suffering from being missing 
+PASS [INPUT in TIME status] suffering from being missing (in a form) 
+PASS [INPUT in NUMBER status] suffering from an overflow 
+PASS [INPUT in NUMBER status] suffering from an overflow (in a form) 
+PASS [INPUT in NUMBER status] suffering from an underflow 
+PASS [INPUT in NUMBER status] suffering from an underflow (in a form) 
+PASS [INPUT in NUMBER status] suffering from a step mismatch 
+PASS [INPUT in NUMBER status] suffering from a step mismatch (in a form) 
+PASS [INPUT in NUMBER status] suffering from being missing 
+PASS [INPUT in NUMBER status] suffering from being missing (in a form) 
+PASS [INPUT in CHECKBOX status] no constraint 
+PASS [INPUT in CHECKBOX status] no constraint (in a form) 
+PASS [INPUT in CHECKBOX status] suffering from being missing 
+PASS [INPUT in CHECKBOX status] suffering from being missing (in a form) 
+PASS [INPUT in RADIO status] no constraint 
+PASS [INPUT in RADIO status] no constraint (in a form) 
+PASS [INPUT in RADIO status] suffering from being missing 
+PASS [INPUT in RADIO status] suffering from being missing (in a form) 
+PASS [INPUT in FILE status] no constraint 
+PASS [INPUT in FILE status] no constraint (in a form) 
+PASS [INPUT in FILE status] suffering from being missing 
+PASS [INPUT in FILE status] suffering from being missing (in a form) 
+PASS [select]  no constraint 
+PASS [select]  no constraint (in a form) 
+PASS [select]  suffering from being missing 
+PASS [select]  suffering from being missing (in a form) 
+PASS [textarea]  no constraint 
+PASS [textarea]  no constraint (in a form) 
+PASS [textarea]  suffering from being missing 
+PASS [textarea]  suffering from being missing (in a form) 
 
index c9340f1..52f4c5b 100644 (file)
@@ -1,3 +1,79 @@
+2016-10-15  Chris Dumez  <cdumez@apple.com>
+
+        Add support for reportValidity() on form and form control elements
+        https://bugs.webkit.org/show_bug.cgi?id=163479
+
+        Reviewed by Darin Adler.
+
+        Add support for reportValidity() on form and form control elements:
+        - https://html.spec.whatwg.org/#dom-form-reportvalidity
+        - https://html.spec.whatwg.org/#dom-cva-reportvalidity
+
+        Firefox and Chrome already support this.
+
+        Demo: https://googlechrome.github.io/samples/report-validity/
+
+        No new tests, rebaselined existing tests.
+
+        * html/HTMLButtonElement.idl:
+        * html/HTMLFieldSetElement.idl:
+        * html/HTMLFormElement.idl:
+        * html/HTMLInputElement.idl:
+        * html/HTMLKeygenElement.idl:
+        * html/HTMLObjectElement.idl:
+        * html/HTMLOutputElement.idl:
+        * html/HTMLSelectElement.idl:
+        * html/HTMLTextAreaElement.idl:
+        Add reportValidity() operation.
+
+        * html/HTMLFormControlElement.cpp:
+        (WebCore::HTMLFormControlElement::checkValidity):
+
+        (WebCore::HTMLFormControlElement::reportValidity):
+        Add implementation for reportValidity() for form control elements.
+        First, it calls checkValidity() and returns early if there is no
+        constraint violation. if the JS canceled the 'invalid' event
+        fired by checkValidity(), then return early as well, as per the
+        specification. If the element is focusable, we scroll to it,
+        focus it and show the validation message. Otherwise, we log a
+        error message to the console. The last part of the behavior
+        matches what we already did in HTMLFormElement::validateInteractively()
+        and complies with the behavior in the specification.
+
+        (WebCore::HTMLFormControlElement::focusAndShowValidationMessage):
+        Add utility function to scroll to the form control element, focus
+        it and show its validation message. This code was moved from
+        HTMLFormElement::validateInteractively() so that it could be reused
+        in HTMLFormControlElement::reportValidity().
+
+        * html/HTMLFormControlElement.h:
+        * html/HTMLFormElement.cpp:
+        (WebCore::HTMLFormElement::validateInteractively):
+        Move the early abort checks to the existing call site (prepareForSubmission)
+        so that we can reuse this method for reportValidity().
+
+        (WebCore::HTMLFormElement::prepareForSubmission):
+        Only call validateInteractively() if we really should validate. Those checks
+        used to be in validateInteractively() but I moved them here so we could more
+        easily reuse validateInteractively().
+
+        (WebCore::HTMLFormElement::checkValidity):
+        (WebCore::HTMLFormElement::checkInvalidControlsAndCollectUnhandled):
+        Update Vector type to be a Vector of HTMLFormControlElement given that we
+        only add HTMLFormControlElement objects to it and that it results it simpler
+        code.
+
+        (WebCore::HTMLFormElement::reportValidity):
+        Add implementation for reportValidity() for form elements. The
+        implementation calls our already existing validateInteractively()
+        method, as per the specification.
+
+        * html/HTMLFormElement.h:
+
+        * html/HTMLObjectElement.h:
+        reportValidity() returns true unconditionally for object elements,
+        similarly to checkValidity().
+
 2016-10-15  Simon Fraser  <simon.fraser@apple.com>
 
         Sort the project file.
index 7e86ca4..9f1a0e8 100644 (file)
@@ -37,6 +37,7 @@ interface HTMLButtonElement : HTMLElement {
     readonly attribute ValidityState validity;
     readonly attribute DOMString validationMessage;
     boolean checkValidity();
+    boolean reportValidity();
     void setCustomValidity(DOMString? error);
 
     readonly attribute NodeList labels;
index 6d653b8..3c2f43b 100644 (file)
@@ -30,5 +30,6 @@ interface HTMLFieldSetElement : HTMLElement {
     readonly attribute ValidityState   validity;
     readonly attribute DOMString       validationMessage;
     boolean  checkValidity();
+    boolean reportValidity();
     void     setCustomValidity(DOMString? error);
 };
index d563a1a..f8072df 100644 (file)
@@ -476,7 +476,7 @@ void HTMLFormControlElement::hideVisibleValidationMessage()
         m_validationMessage->requestToHideMessage();
 }
 
-bool HTMLFormControlElement::checkValidity(Vector<RefPtr<FormAssociatedElement>>* unhandledInvalidControls)
+bool HTMLFormControlElement::checkValidity(Vector<RefPtr<HTMLFormControlElement>>* unhandledInvalidControls)
 {
     if (!willValidate() || isValidFormControlElement())
         return true;
@@ -489,6 +489,39 @@ bool HTMLFormControlElement::checkValidity(Vector<RefPtr<FormAssociatedElement>>
     return false;
 }
 
+bool HTMLFormControlElement::reportValidity()
+{
+    Vector<RefPtr<HTMLFormControlElement>> elements;
+    if (checkValidity(&elements))
+        return true;
+
+    if (elements.isEmpty())
+        return false;
+
+    // Needs to update layout now because we'd like to call isFocusable(), which
+    // has !renderer()->needsLayout() assertion.
+    document().updateLayoutIgnorePendingStylesheets();
+
+    if (inDocument() && isFocusable()) {
+        focusAndShowValidationMessage();
+        return false;
+    }
+
+    if (document().frame()) {
+        String message = makeString("An invalid form control with name='", name(), "' is not focusable.");
+        document().addConsoleMessage(MessageSource::Rendering, MessageLevel::Error, message);
+    }
+
+    return false;
+}
+
+void HTMLFormControlElement::focusAndShowValidationMessage()
+{
+    scrollIntoViewIfNeeded(false);
+    focus();
+    updateVisibleValidationMessage();
+}
+
 inline bool HTMLFormControlElement::isValidFormControlElement() const
 {
     // If the following assertion fails, updateValidity() is not called
index 891a576..3bb6916 100644 (file)
@@ -103,7 +103,9 @@ public:
     WEBCORE_EXPORT bool willValidate() const final;
     void updateVisibleValidationMessage();
     void hideVisibleValidationMessage();
-    WEBCORE_EXPORT bool checkValidity(Vector<RefPtr<FormAssociatedElement>>* unhandledInvalidControls = nullptr);
+    WEBCORE_EXPORT bool checkValidity(Vector<RefPtr<HTMLFormControlElement>>* unhandledInvalidControls = nullptr);
+    bool reportValidity();
+    void focusAndShowValidationMessage();
     // This must be called when a validation constraint or control value is changed.
     void updateValidity();
     void setCustomValidity(const String&) override;
index 12a84fe..8dbd37f 100644 (file)
@@ -214,21 +214,14 @@ static inline HTMLFormControlElement* submitElementFromEvent(const Event& event)
     return nullptr;
 }
 
-bool HTMLFormElement::validateInteractively(Event& event)
+bool HTMLFormElement::validateInteractively()
 {
-    if (!document().page() || !document().page()->settings().interactiveFormValidationEnabled() || noValidate())
-        return true;
-
-    HTMLFormControlElement* submitElement = submitElementFromEvent(event);
-    if (submitElement && submitElement->formNoValidate())
-        return true;
-
     for (auto& associatedElement : m_associatedElements) {
         if (is<HTMLFormControlElement>(*associatedElement))
             downcast<HTMLFormControlElement>(*associatedElement).hideVisibleValidationMessage();
     }
 
-    Vector<RefPtr<FormAssociatedElement>> unhandledInvalidControls;
+    Vector<RefPtr<HTMLFormControlElement>> unhandledInvalidControls;
     if (!checkInvalidControlsAndCollectUnhandled(unhandledInvalidControls))
         return true;
     // Because the form has invalid controls, we abort the form submission and
@@ -242,12 +235,8 @@ bool HTMLFormElement::validateInteractively(Event& event)
 
     // Focus on the first focusable control and show a validation message.
     for (auto& control : unhandledInvalidControls) {
-        HTMLElement& element = control->asHTMLElement();
-        if (element.inDocument() && element.isFocusable()) {
-            element.scrollIntoViewIfNeeded(false);
-            element.focus();
-            if (is<HTMLFormControlElement>(element))
-                downcast<HTMLFormControlElement>(element).updateVisibleValidationMessage();
+        if (control->inDocument() && control->isFocusable()) {
+            control->focusAndShowValidationMessage();
             break;
         }
     }
@@ -255,11 +244,9 @@ bool HTMLFormElement::validateInteractively(Event& event)
     // Warn about all of unfocusable controls.
     if (document().frame()) {
         for (auto& control : unhandledInvalidControls) {
-            HTMLElement& element = control->asHTMLElement();
-            if (element.inDocument() && element.isFocusable())
+            if (control->inDocument() && control->isFocusable())
                 continue;
-            String message("An invalid form control with name='%name' is not focusable.");
-            message.replace("%name", control->name());
+            String message = makeString("An invalid form control with name='", control->name(), "' is not focusable.");
             document().addConsoleMessage(MessageSource::Rendering, MessageLevel::Error, message);
         }
     }
@@ -276,8 +263,14 @@ void HTMLFormElement::prepareForSubmission(Event& event)
     m_isSubmittingOrPreparingForSubmission = true;
     m_shouldSubmit = false;
 
+    bool shouldValidate = document().page() && document().page()->settings().interactiveFormValidationEnabled() && !noValidate();
+
+    HTMLFormControlElement* submitElement = submitElementFromEvent(event);
+    if (submitElement && submitElement->formNoValidate())
+        shouldValidate = false;
+
     // Interactive validation must be done before dispatching the submit event.
-    if (!validateInteractively(event)) {
+    if (shouldValidate && !validateInteractively()) {
         m_isSubmittingOrPreparingForSubmission = false;
         return;
     }
@@ -752,11 +745,11 @@ void HTMLFormElement::resetDefaultButton()
 
 bool HTMLFormElement::checkValidity()
 {
-    Vector<RefPtr<FormAssociatedElement>> controls;
+    Vector<RefPtr<HTMLFormControlElement>> controls;
     return !checkInvalidControlsAndCollectUnhandled(controls);
 }
 
-bool HTMLFormElement::checkInvalidControlsAndCollectUnhandled(Vector<RefPtr<FormAssociatedElement>>& unhandledInvalidControls)
+bool HTMLFormElement::checkInvalidControlsAndCollectUnhandled(Vector<RefPtr<HTMLFormControlElement>>& unhandledInvalidControls)
 {
     Ref<HTMLFormElement> protectedThis(*this);
     // Copy m_associatedElements because event handlers called from
@@ -776,6 +769,11 @@ bool HTMLFormElement::checkInvalidControlsAndCollectUnhandled(Vector<RefPtr<Form
     return hasInvalidControls;
 }
 
+bool HTMLFormElement::reportValidity()
+{
+    return validateInteractively();
+}
+
 #ifndef NDEBUG
 void HTMLFormElement::assertItemCanBeInPastNamesMap(FormNamedItem* item) const
 {
index 89e04a2..65c5cff 100644 (file)
@@ -115,6 +115,7 @@ public:
     void resetDefaultButton();
 
     WEBCORE_EXPORT bool checkValidity();
+    bool reportValidity();
 
 #if ENABLE(REQUEST_AUTOCOMPLETE)
     enum class AutocompleteResult {
@@ -161,13 +162,12 @@ private:
     unsigned formElementIndexWithFormAttribute(Element*, unsigned rangeStart, unsigned rangeEnd);
     unsigned formElementIndex(FormAssociatedElement*);
 
-    // Returns true if the submission should proceed.
-    bool validateInteractively(Event&);
+    bool validateInteractively();
 
     // Validates each of the controls, and stores controls of which 'invalid'
     // event was not canceled to the specified vector. Returns true if there
     // are any invalid controls in this form.
-    bool checkInvalidControlsAndCollectUnhandled(Vector<RefPtr<FormAssociatedElement>>&);
+    bool checkInvalidControlsAndCollectUnhandled(Vector<RefPtr<HTMLFormControlElement>>&);
 
     HTMLElement* elementFromPastNamesMap(const AtomicString&) const;
     void addToPastNamesMap(FormNamedItem*, const AtomicString& pastName);
index 9f3b686..a22ef8f 100644 (file)
@@ -47,6 +47,7 @@
     [ImplementedAs=submitFromJavaScript] void submit();
     void reset();
     boolean checkValidity();
+    boolean reportValidity();
 
     [Conditional=REQUEST_AUTOCOMPLETE] void requestAutocomplete();
 };
index 8eae321..682cb61 100644 (file)
@@ -71,6 +71,7 @@
     readonly attribute ValidityState validity;
     readonly attribute DOMString validationMessage;
     boolean checkValidity();
+    boolean reportValidity();
     void setCustomValidity(DOMString? error);
 
     readonly attribute NodeList labels;
index 5e9b9e8..768f1d5 100644 (file)
@@ -42,6 +42,7 @@ interface HTMLKeygenElement : HTMLElement {
     readonly attribute ValidityState validity;
     readonly attribute DOMString validationMessage;
     boolean checkValidity();
+    boolean reportValidity();
     void setCustomValidity(DOMString? error);
 
     readonly attribute NodeList labels;
index 9fc2bd0..d114436 100644 (file)
@@ -47,6 +47,8 @@ public:
     // Implementation of constraint validation API.
     // Note that the object elements are always barred from constraint validation.
     static bool checkValidity() { return true; }
+    static bool reportValidity() { return true; }
+
     void setCustomValidity(const String&) final { }
     String validationMessage() const final { return String(); }
 
index c58e558..db75ed9 100644 (file)
@@ -44,6 +44,7 @@
     readonly attribute ValidityState validity;
     readonly attribute DOMString validationMessage;
     boolean checkValidity();
+    boolean reportValidity();
     void setCustomValidity(DOMString? error);
 
     // Introduced in DOM Level 2:
index e314b9f..72a66f0 100644 (file)
@@ -36,6 +36,7 @@ interface HTMLOutputElement : HTMLElement {
     readonly attribute ValidityState validity;
     readonly attribute DOMString validationMessage;
     boolean checkValidity();
+    boolean reportValidity();
     void setCustomValidity(DOMString? error);
 
     readonly attribute NodeList labels;
index 29c60cb..67e566b 100644 (file)
@@ -59,6 +59,7 @@
     readonly attribute ValidityState validity;
     readonly attribute DOMString validationMessage;
     boolean checkValidity();
+    boolean reportValidity();
     void setCustomValidity(DOMString? error); // FIXME: Argument should not be nullable.
 
     readonly attribute NodeList labels;
index ddd211a..33e963d 100644 (file)
@@ -43,6 +43,7 @@ interface HTMLTextAreaElement : HTMLElement {
     readonly attribute ValidityState validity;
     readonly attribute DOMString validationMessage;
     boolean checkValidity();
+    boolean reportValidity();
     void setCustomValidity(DOMString? error);
 
     readonly attribute NodeList labels;