blob: 953bfd6b2f686a3229f2710a2dad8b2395e451ea [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>
<fieldset name="set" id="fieldset-set"></fieldset>
<button name="set" id="button-set"></button>
<button name="set" id="button-button-set" type="button"></button>
<button name="set" id="button-reset-set" type="reset"></button>
<select name="set" id="select-set"></select>
<textarea name="set" id="textarea-set"></textarea>
<input name="set" id="input-set" />
<input name="set" id="input-submit-set" type="submit" />
<fieldset name="set-and-empty" id="fieldset-set-and-empty"></fieldset>
<button name="set-and-empty" id="button-set-and-empty"></button>
<button name="set-and-empty" id="button-button-set-and-empty" type="button"></button>
<button name="set-and-empty" id="button-reset-set-and-empty" type="reset"></button>
<select name="set-and-empty" id="select-set-and-empty"></select>
<textarea name="set-and-empty" id="textarea-set-and-empty"></textarea>
<input name="set-and-empty" id="input-set-and-empty" />
<input name="set-and-empty" id="input-submit-set-and-empty" type="submit" />
<fieldset name="no-changes" id="fieldset-no-changes"></fieldset>
<button name="no-changes" id="button-no-changes"></button>
<button name="no-changes" id="button-button-no-changes" type="button"></button>
<button name="no-changes" id="button-reset-no-changes" type="reset"></button>
<select name="no-changes" id="select-no-changes"></select>
<textarea name="no-changes" id="textarea-no-changes"></textarea>
<input name="no-changes" id="input-no-changes" />
<input name="no-changes" id="input-submit-no-changes" type="submit" />
<fieldset name="many-changes" id="fieldset-many-changes"></fieldset>
<button name="many-changes" id="button-many-changes"></button>
<button name="many-changes" id="button-button-many-changes" type="button"></button>
<button name="many-changes" id="button-reset-many-changes" type="reset"></button>
<select name="many-changes" id="select-many-changes"></select>
<textarea name="many-changes" id="textarea-many-changes"></textarea>
<input name="many-changes" id="input-many-changes" />
<input name="many-changes" id="input-submit-many-changes" type="submit" />
<script language="JavaScript" type="text/javascript">
function customErrorFor(id) {
return document.getElementById(id).validity.customError;
}
description("This test checks validity.customError.");
debug('Set some value for customError.');
v = document.getElementsByName("set");
for (i = 0; i < v.length; i++)
v[i].setCustomValidity("Custom validation message");
shouldBeFalse('customErrorFor("fieldset-set")');
shouldBeTrue('customErrorFor("button-set")');
shouldBeFalse('customErrorFor("button-button-set")');
shouldBeFalse('customErrorFor("button-reset-set")');
shouldBeTrue('customErrorFor("select-set")');
shouldBeTrue('customErrorFor("textarea-set")');
shouldBeTrue('customErrorFor("input-set")');
shouldBeTrue('customErrorFor("input-submit-set")');
debug('');
debug('Set some value for customError, and clear it.');
v = document.getElementsByName("set-and-empty");
for (i = 0; i < v.length; i++)
v[i].setCustomValidity("Custom validation message");
for (i = 0; i < v.length; i++)
v[i].setCustomValidity("");
shouldBeFalse('customErrorFor("fieldset-set-and-empty")');
shouldBeFalse('customErrorFor("button-set-and-empty")');
shouldBeFalse('customErrorFor("button-button-set-and-empty")');
shouldBeFalse('customErrorFor("button-reset-set-and-empty")');
shouldBeFalse('customErrorFor("select-set-and-empty")');
shouldBeFalse('customErrorFor("textarea-set-and-empty")');
shouldBeFalse('customErrorFor("input-set-and-empty")');
shouldBeFalse('customErrorFor("input-submit-set-and-empty")');
debug('');
debug('Not any changes for customError.');
shouldBeFalse('customErrorFor("fieldset-no-changes")');
shouldBeFalse('customErrorFor("button-no-changes")');
shouldBeFalse('customErrorFor("button-button-no-changes")');
shouldBeFalse('customErrorFor("button-reset-no-changes")');
shouldBeFalse('customErrorFor("select-no-changes")');
shouldBeFalse('customErrorFor("textarea-no-changes")');
shouldBeFalse('customErrorFor("input-no-changes")');
shouldBeFalse('customErrorFor("input-submit-no-changes")');
debug('');
debug('Many changes for customError:');
debug('Set some value, and set with no arguments.');
v = document.getElementsByName("many-changes");
for (i = 0; i < v.length; i++) {
v[i].setCustomValidity("Custom string");
try {
v[i].setCustomValidity();
testFailed("setCustomValidity() did not throw");
} catch(err) {
testPassed("setCustomValidity() threw " + err.message);
}
v[i].setCustomValidity(undefined);
}
shouldBeFalse('customErrorFor("fieldset-many-changes")');
shouldBeTrue('customErrorFor("button-many-changes")');
shouldBeFalse('customErrorFor("button-button-many-changes")');
shouldBeFalse('customErrorFor("button-reset-many-changes")');
shouldBeTrue('customErrorFor("select-many-changes")');
shouldBeTrue('customErrorFor("textarea-many-changes")');
shouldBeTrue('customErrorFor("input-many-changes")');
shouldBeTrue('customErrorFor("input-submit-many-changes")');
debug('Set with three arguments.');
for (i = 0; i < v.length; i++)
v[i].setCustomValidity("one", "two", "three");
shouldBeFalse('customErrorFor("fieldset-many-changes")');
shouldBeTrue('customErrorFor("button-many-changes")');
shouldBeFalse('customErrorFor("button-button-many-changes")');
shouldBeFalse('customErrorFor("button-reset-many-changes")');
shouldBeTrue('customErrorFor("select-many-changes")');
shouldBeTrue('customErrorFor("textarea-many-changes")');
shouldBeTrue('customErrorFor("input-many-changes")');
shouldBeTrue('customErrorFor("input-submit-many-changes")');
debug('Set null.');
for (i = 0; i < v.length; i++)
v[i].setCustomValidity(null);
shouldBeFalse('customErrorFor("fieldset-many-changes")');
shouldBeTrue('customErrorFor("button-many-changes")');
shouldBeFalse('customErrorFor("button-button-many-changes")');
shouldBeFalse('customErrorFor("button-reset-many-changes")');
shouldBeTrue('customErrorFor("select-many-changes")');
shouldBeTrue('customErrorFor("textarea-many-changes")');
shouldBeTrue('customErrorFor("input-many-changes")');
shouldBeTrue('customErrorFor("input-submit-many-changes")');
debug('Set some value, and set undefined.');
for (i = 0; i < v.length; i++) {
v[i].setCustomValidity("Custom string");
v[i].setCustomValidity(undefined);
}
shouldBeFalse('customErrorFor("fieldset-many-changes")');
shouldBeTrue('customErrorFor("button-many-changes")');
shouldBeFalse('customErrorFor("button-button-many-changes")');
shouldBeFalse('customErrorFor("button-reset-many-changes")');
shouldBeTrue('customErrorFor("select-many-changes")');
shouldBeTrue('customErrorFor("textarea-many-changes")');
shouldBeTrue('customErrorFor("input-many-changes")');
shouldBeTrue('customErrorFor("input-submit-many-changes")');
debug('');
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>