blob: 7cbafa2212a9f997aa38a30cdad90f46992f4b11 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
</head>
<body>
<p id="description"></p>
<div id="console"></div>
<script>
description("Test for validationMessage DOM property.");
var form = document.createElement("form");
document.body.appendChild(form);
// An input element with a pattern set and a mismatched value
var patternInput = document.createElement("input");
patternInput.name = "patternInput";
patternInput.pattern = "lorem ipsum";
patternInput.value = "lorem";
form.appendChild(patternInput);
debug("input patternMismatch: " + patternInput.validationMessage);
// A required input with an empty value
var requiredInput = document.createElement("input");
requiredInput.name = "requiredInput";
requiredInput.required = true;
form.appendChild(requiredInput);
debug("input valueMissing: " + requiredInput.validationMessage);
// A required textarea with an empty value
var requiredTextArea = document.createElement("textarea");
requiredTextArea.name = "requiredTextArea";
requiredTextArea.required = true;
form.appendChild(requiredTextArea);
debug("textarea valueMissing: " + requiredTextArea.validationMessage);
// A required select with an empty value
var requiredSelect = document.createElement("select");
requiredSelect.name = "requiredSelect";
requiredSelect.required = true;
form.appendChild(requiredSelect);
debug("select valueMissing: " + requiredSelect.validationMessage);
// A type=email input for the "type mismatch" flag
var emailInput = document.createElement("input");
emailInput.name = "emailInput";
emailInput.type = "email";
emailInput.value = "incorrectValue";
form.appendChild(emailInput);
debug("input typeMismatch: " + emailInput.validationMessage);
var numberInput = document.createElement("input");
numberInput.type = "number";
form.appendChild(numberInput);
numberInput.focus();
document.execCommand("InsertText", false, "abc");
debug("input badInput: " + numberInput.validationMessage);
var nonRequiredBadInputMessage = numberInput.validationMessage;
debug("badInput and valueMissing:");
numberInput.required = true;
shouldBe("numberInput.validationMessage", "nonRequiredBadInputMessage");
// A button can't be valited and, thus, has a blank validationMessage
var but = document.createElement("button");
but.name = "button";
form.appendChild(but);
shouldBe("but.validationMessage", "''");
// An input control with no name, so it can't be validated (willValidate = false)
var anoninput = document.createElement("input");
form.appendChild(anoninput);
shouldBe("anoninput.validationMessage", "''")
// Fieldsets can't be validated
var happyFieldset = document.createElement("fieldset");
happyFieldset.name = "fieldset";
form.appendChild(happyFieldset);
shouldBe("happyFieldset.validationMessage", "''");
// Select controls can't be validated too
var happySelect = document.createElement("select");
happySelect.name = "select";
form.appendChild(happySelect);
shouldBe("happySelect.validationMessage", "''");
// Output elements can't be validated
var happyOutput = document.createElement("output");
happySelect.name = "output";
form.appendChild(happyOutput);
shouldBe("happyOutput.validationMessage", "''");
// Object elements can't be validated
var happyObject = document.createElement("object");
happySelect.name = "object";
form.appendChild(happyObject);
shouldBe("happyObject.validationMessage", "''");
// Keygen controls can't be validated
var happyKeygen = document.createElement("keygen");
happySelect.name = "keygen";
form.appendChild(happyKeygen);
shouldBeUndefined("happyKeygen.validationMessage");
form.remove();
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>