blob: 9048c69b4c12d18a2f7aa1ee7463a8ec3be02241 [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('valueMissing tests for radio buttons');
var parent = document.createElement('div');
document.body.appendChild(parent);
debug('Without form element');
parent.innerHTML = '<input name=victim type=radio required>'
+ '<input name=victim type=radio>'
+ '<input name=victim type=radio>';
var inputs = document.getElementsByName('victim');
debug('No checked button:');
shouldBeTrue('inputs[0].validity.valueMissing');
shouldBeTrue('inputs[1].validity.valueMissing');
shouldBeTrue('inputs[2].validity.valueMissing');
debug('The second button has been checked:');
inputs[1].checked = true;
shouldBeFalse('inputs[0].validity.valueMissing');
shouldBeFalse('inputs[1].validity.valueMissing');
shouldBeFalse('inputs[2].validity.valueMissing');
debug('The first button has been checked:');
inputs[0].checked = true;
shouldBeFalse('inputs[0].validity.valueMissing');
shouldBeFalse('inputs[1].validity.valueMissing');
shouldBeFalse('inputs[2].validity.valueMissing');
debug('The third button has been checked:');
inputs[2].checked = true;
shouldBeFalse('inputs[0].validity.valueMissing');
shouldBeFalse('inputs[1].validity.valueMissing');
shouldBeFalse('inputs[2].validity.valueMissing');
debug('');
debug('With form element');
parent.innerHTML = '<form>'
+ '<input name=victim type=radio required>'
+ '<input name=victim type=radio>'
+ '<input name=victim type=radio>'
+ '</form>';
inputs = document.getElementsByName('victim');
debug('No checked button:');
shouldBeTrue('inputs[0].validity.valueMissing');
shouldBeTrue('inputs[1].validity.valueMissing');
shouldBeTrue('inputs[2].validity.valueMissing');
debug('The first button has been checked:');
inputs[0].checked = true;
shouldBeFalse('inputs[0].validity.valueMissing');
shouldBeFalse('inputs[1].validity.valueMissing');
shouldBeFalse('inputs[2].validity.valueMissing');
debug('The second button has been checked:');
inputs[1].checked = true;
shouldBeFalse('inputs[0].validity.valueMissing');
shouldBeFalse('inputs[1].validity.valueMissing');
shouldBeFalse('inputs[2].validity.valueMissing');
debug('The third button has been checked:');
inputs[2].checked = true;
shouldBeFalse('inputs[0].validity.valueMissing');
shouldBeFalse('inputs[1].validity.valueMissing');
shouldBeFalse('inputs[2].validity.valueMissing');
debug('');
debug('Not in a radio button group');
var requiredButton = document.createElement('input');
requiredButton.type = 'radio';
requiredButton.name = 'victim';
requiredButton.required = true;
shouldBeFalse('requiredButton.validity.valueMissing');
parent.innerHTML = '<input name=victim type=radio required><input name=victim type=radio>';
requiredButton = document.getElementsByName('victim')[0];
var button = document.getElementsByName('victim')[1];
shouldBeTrue('requiredButton.validity.valueMissing');
shouldBeTrue('button.validity.valueMissing');
parent.removeChild(button);
shouldBeFalse('button.validity.valueMissing');
parent.removeChild(requiredButton);
shouldBeFalse('requiredButton.validity.valueMissing');
</script>
<script src="../../../resources/js-test-post.js"></script>
</body>
</html>