blob: c4ed142a76d2f0bcdfee1583b5b6fce4b0e16d86 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<title></title>
<link rel="stylesheet" href="../../../../fast/forms/resources/live-pseudo-selectors.css">
<script src="../../../../resources/js-test-pre.js"></script>
</head>
<body>
<p id="description"></p>
<div id="console"></div>
<script>
description("This test performs a check that :valid/:invalid CSS psudo selectors are lively applied by HTMLSelectElement::setSelectedIndexByUser.");
// Setup for static elements.
var form = document.createElement('form');
document.body.appendChild(form);
function makeInvalid(id) {
var select = document.createElement('select');
select.name = 'foo';
select.required = true;
if (id != undefined)
select.id = id;
select.value = '';
form.appendChild(select);
return select;
}
function appendOption(value, select) {
var option = document.createElement('option');
option.value = value;
option.innerText = value;
select.add(option);
return option;
}
function backgroundOf(el) {
return document.defaultView.getComputedStyle(el, null).getPropertyValue('background-color');
}
var elBackground = 'backgroundOf(el)';
var invalidColor = 'rgb(255, 0, 0)';
var normalColor = 'rgb(255, 255, 255)';
var disabledColor = 'rgb(0, 0, 0)';
var readOnlyColor = 'rgb(0, 255, 0)'
var validColor = 'rgb(0, 0, 255)';
debug('Change the value of a menulist select by setSelectedIndexByUser:');
el = makeInvalid('menulist');
o1 = appendOption('', el);
o2 = appendOption('X', el);
objCController.setSelectElementSelectedIndexAllowingMultiple(el, 1, false);
shouldBe(elBackground, 'validColor');
objCController.setSelectElementSelectedIndexAllowingMultiple(el, 0, false);
shouldBe(elBackground, 'invalidColor');
debug('Change the value of a listbox select by setSelectedIndexByUser:');
el = makeInvalid('listbox');
el.multiple = true;
o1 = appendOption('', el);
o2 = appendOption('X', el);
o1.selected = false;
o2.selected = false;
shouldBe(elBackground, 'invalidColor');
objCController.setSelectElementSelectedIndexAllowingMultiple(el, 0, false);
shouldBe(elBackground, 'validColor');
</script>
<script src="../../../../resources/js-test-post.js"></script>
</body>
</html>