blob: 55ce7c3a4be1f8f317854579199c01746693a884 [file] [log] [blame]
<!DOCTYPE html>
<body>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<div id="sample"></div>
<script>
// See also external/wpt/html/semantics/forms/constraints/form-validation-checkValidity.html.
function checkValidityFor(html) {
var sample = document.getElementById('sample');
sample.innerHTML = html;
return sample.firstChild.checkValidity();
}
test(() => {
assert_true(checkValidityFor('<fieldset></fieldset>'));
}, 'checkValidity() for FIELDSET should return true.');
test(() => {
assert_true(checkValidityFor('<fieldset><input required></fieldset>'));
}, 'checkValidity() for FIELDSET with an invalid INPUT should return true.');
test(() => {
assert_true(checkValidityFor('<button>lorem ipsum</button>'));
}, 'checkValidity() for BUTTON should return true.');
test(() => {
assert_true(checkValidityFor('<output></output>'));
}, 'checkValidity() for OUTPUT should return true.');
test(() => {
assert_true(checkValidityFor('<object></object>'));
}, 'checkValidity() for OBJECT should return true.');
test(() => {
assert_true(checkValidityFor('<select required>' +
' <option>empty</option>' +
' <option>another</option>' +
'</select>'));
}, 'checkValidity() for SELECT without a placeholder OPTION should return true.');
test(() => {
assert_false(checkValidityFor('<select required>' +
' <option value="" selected />' +
' <option value="X">X</option>' +
'</select>'));
}, 'checkValidity() for SELECT with a placeholder OPTION should return false.');
test(() => {
assert_true(checkValidityFor('<select required>' +
' <option value="X">X</option>' +
' <option value="" selected />' +
'</select>'));
}, 'checkValidity() for SELECT with a selected empty second OPTION should return true.');
test(() => {
assert_true(checkValidityFor('<form method="get">' +
'<fieldset name="victim"></fieldset>' +
'<input name="victim" type="text" value="lorem ipsum"/>' +
'<button name="victim">lorem ipsum</button>' +
'<select name="victim"></select>' +
'<textarea name="victim"></textarea>' +
'</form>'));
}, 'checkValidity() for FORM with valid controls should return true.');
test(() => {
assert_false(checkValidityFor('<form method="get">' +
'<fieldset name="victim"></fieldset>' +
'<input name="victim" type="text" value="invalid" pattern="something"/>' +
'<button name="victim">lorem ipsum</button>' +
'<select name="victim"></select>' +
'<textarea name="victim"></textarea>' +
'</form>'));
}, 'checkValidity() for FORM with an invalid control should return false.');
</script>
</body>