blob: 9a9d1b93d2ba13b61763b99ff0a2acfe430ba1c5 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Unit tests for bot.dom.isEnabled</title>
<link rel="stylesheet" href="/filez/_main/third_party/js/qunit/qunit.css">
<script src="/filez/_main/third_party/js/qunit/qunit.js"></script>
<script src="/filez/_main/third_party/js/qunit/qunit_test_runner.js"></script>
<script src="test_bootstrap.js"></script>
<script type="text/javascript">
goog.require('bot.dom');
goog.require('bot.userAgent');
goog.require('goog.dom');
goog.require('goog.userAgent');
goog.require('goog.userAgent.product');
</script>
<script type="text/javascript">
function assertDisabled(assert, id) {
var element = goog.dom.$(id);
assert.ok(element !== null && element !== undefined, 'no such element: ' + id);
assert.notOk(bot.dom.isEnabled(element), id + ' should be disabled');
}
function assertEnabled(assert, id) {
var element = goog.dom.$(id);
assert.ok(element !== null && element !== undefined, 'no such element: ' + id);
assert.ok(bot.dom.isEnabled(element), id + ' should be enabled');
}
QUnit.test('elements that do not support the disabled attribute are always enabled', function(assert) {
assert.ok(bot.dom.isEnabled(document.body), 'Body should be enabled');
assert.ok(bot.dom.isEnabled(document.forms[0]), 'Form should be enabled');
});
QUnit.test('should be enabled if does not have disabled attribute', function(assert) {
assertEnabled(assert, 'enabled-button-a');
});
QUnit.test('should be disabled if it has the disabled attribute', function(assert) {
assertDisabled(assert, 'disabled-button-b');
assertDisabled(assert, 'disabled-button-c');
assertDisabled(assert, 'disabled-button-d');
assertDisabled(assert, 'disabled-button-e');
});
QUnit.test('disabled should be an inherited attribute', function(assert) {
assertEnabled(assert, 'enabled-select');
assertEnabled(assert, 'enabled-option');
assertDisabled(assert, 'disabled-optgroup');
assertDisabled(assert, 'inherits-disabled');
assertDisabled(assert, 'disabled-select');
assertDisabled(assert, 'inherits-disabled-2');
});
QUnit.test('disabled should inherit from fieldset unless in legend', function(assert) {
assertEnabled(assert, 'enabled-legend-button');
if ((goog.userAgent.GECKO && !bot.userAgent.isEngineVersion(2)) ||
(goog.userAgent.WEBKIT && !bot.userAgent.isEngineVersion(535)) ||
(goog.userAgent.product.ANDROID && !bot.userAgent.isProductVersion(5))) {
assertEnabled(assert, 'disabled-legend-button');
assertEnabled(assert, 'disabled-fieldset-button');
} else {
assertDisabled(assert, 'disabled-legend-button');
assertDisabled(assert, 'disabled-fieldset-button');
}
});
QUnit.test('enabled should respond to disabled property', function(assert) {
var element = goog.dom.$('enabled-button-a');
element.disabled = true;
assertDisabled(assert, 'enabled-button-a');
element.disabled = false;
assertEnabled(assert, 'enabled-button-a');
});
</script>
</head>
<body>
<div id="qunit"></div>
<div id="qunit-fixture"></div>
<form>
<button id="enabled-button-a" value="Enabled A"></button>
<button id="disabled-button-b" value="Enabled B" disabled></button>
<button id="disabled-button-c" value="Enabled C" disabled="disabled">
</button>
<button id="disabled-button-d" value="Enabled D" disabled="true">
</button>
<button id="disabled-button-e" value="Enabled E" disabled="false">
</button>
<select id="enabled-select">
<option id="enabled-option">foo</option>
<optgroup id="disabled-optgroup" disabled>
<option id="inherits-disabled">bar</option>
</optgroup>
</select>
<select id="disabled-select" disabled>
<optgroup>
<option id="inherits-disabled-2">baz</option>
</optgroup>
</select>
<fieldset id="disabled-fieldset" disabled="disabled">
<legend>
<button id="enabled-legend-button">Enabled Legend Button</button>
</legend>
<legend>
<button id="disabled-legend-button">Disabled Legend Button</button>
</legend>
<button id="disabled-fieldset-button">Disabled Fieldset Button</button>
</fieldset>
</form>
</body>
</html>