| <!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> |