diff --git a/lib/checks/aria/aria-valid-attr-evaluate.js b/lib/checks/aria/aria-valid-attr-evaluate.js index e55fdfa855..0e6cba5726 100644 --- a/lib/checks/aria/aria-valid-attr-evaluate.js +++ b/lib/checks/aria/aria-valid-attr-evaluate.js @@ -2,7 +2,7 @@ import { validateAttr } from '../../commons/aria'; import { getNodeAttributes } from '../../core/utils'; function ariaValidAttrEvaluate(node, options) { - options = Array.isArray(options) ? options : []; + options = Array.isArray(options.value) ? options.value : []; var invalid = [], aria = /^aria-/; diff --git a/lib/checks/aria/aria-valid-attr-value-evaluate.js b/lib/checks/aria/aria-valid-attr-value-evaluate.js index 8c4652de9f..7eb3606b90 100644 --- a/lib/checks/aria/aria-valid-attr-value-evaluate.js +++ b/lib/checks/aria/aria-valid-attr-value-evaluate.js @@ -2,7 +2,7 @@ import { validateAttrValue } from '../../commons/aria'; import { getNodeAttributes } from '../../core/utils'; function ariaValidAttrValueEvaluate(node, options) { - options = Array.isArray(options) ? options : []; + options = Array.isArray(options.value) ? options.value : []; let needsReview = ''; let messageKey = ''; diff --git a/lib/checks/language/valid-lang-evaluate.js b/lib/checks/language/valid-lang-evaluate.js index f0bf969c74..fd2c7a1fd6 100644 --- a/lib/checks/language/valid-lang-evaluate.js +++ b/lib/checks/language/valid-lang-evaluate.js @@ -3,7 +3,7 @@ import { validLangs, getBaseLang } from '../../core/utils'; function validLangEvaluate(node, options) { var langs, invalid; - langs = (options ? options : validLangs()).map(getBaseLang); + langs = (options.value ? options.value : validLangs()).map(getBaseLang); invalid = ['lang', 'xml:lang'].reduce(function(invalid, langAttr) { var langVal = node.getAttribute(langAttr); diff --git a/lib/core/base/check.js b/lib/core/base/check.js index 6de157e14b..113eae2a75 100644 --- a/lib/core/base/check.js +++ b/lib/core/base/check.js @@ -14,6 +14,19 @@ export function createExecutionContext(spec) { return spec; } +/** + * Normalize check options to always be an object. + * @param {Object} options + * @return Object + */ +function normalizeOptions(options = {}) { + if (Array.isArray(options) || typeof options !== 'object') { + options = { value: options }; + } + + return options; +} + function Check(spec) { if (spec) { this.id = spec.id; @@ -65,15 +78,15 @@ Check.prototype.enabled = true; Check.prototype.run = function(node, options, context, resolve, reject) { 'use strict'; options = options || {}; - var enabled = options.hasOwnProperty('enabled') - ? options.enabled - : this.enabled, - checkOptions = options.options || this.options; + const enabled = options.hasOwnProperty('enabled') + ? options.enabled + : this.enabled; + const checkOptions = this.getOptions(options.options); if (enabled) { - var checkResult = new CheckResult(this); - var helper = checkHelper(checkResult, options, resolve, reject); - var result; + const checkResult = new CheckResult(this); + const helper = checkHelper(checkResult, options, resolve, reject); + let result; try { result = this.evaluate.call( @@ -118,7 +131,7 @@ Check.prototype.runSync = function(node, options, context) { return null; } - const checkOptions = options.options || this.options; + const checkOptions = this.getOptions(options.options); const checkResult = new CheckResult(this); const helper = checkHelper(checkResult, options); @@ -160,13 +173,21 @@ Check.prototype.runSync = function(node, options, context) { */ Check.prototype.configure = function(spec) { - ['options', 'enabled'] - .filter(prop => spec.hasOwnProperty(prop)) - .forEach(prop => (this[prop] = spec[prop])); + if (spec.hasOwnProperty('enabled')) { + this.enabled = spec.enabled; + } + + if (spec.hasOwnProperty('options')) { + this.options = normalizeOptions(spec.options); + } ['evaluate', 'after'] .filter(prop => spec.hasOwnProperty(prop)) .forEach(prop => (this[prop] = createExecutionContext(spec[prop]))); }; +Check.prototype.getOptions = function getOptions(options = {}) { + return Object.assign({}, this.options, normalizeOptions(options)); +}; + export default Check; diff --git a/test/checks/aria/allowed-attr.js b/test/checks/aria/allowed-attr.js index feabbf23bb..1af49c659c 100644 --- a/test/checks/aria/allowed-attr.js +++ b/test/checks/aria/allowed-attr.js @@ -18,7 +18,9 @@ describe('aria-allowed-attr', function() { fixture.appendChild(node); assert.isFalse( - checks['aria-allowed-attr'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('aria-allowed-attr') + .call(checkContext, node) ); assert.deepEqual(checkContext._data, ['aria-selected="true"']); }); @@ -32,7 +34,9 @@ describe('aria-allowed-attr', function() { fixture.appendChild(node); assert.isTrue( - checks['aria-allowed-attr'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('aria-allowed-attr') + .call(checkContext, node) ); }); @@ -45,7 +49,9 @@ describe('aria-allowed-attr', function() { fixture.appendChild(node); assert.isFalse( - checks['aria-allowed-attr'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('aria-allowed-attr') + .call(checkContext, node) ); assert.deepEqual(checkContext._data, ['aria-selected="true"']); }); @@ -59,7 +65,9 @@ describe('aria-allowed-attr', function() { fixture.appendChild(node); assert.isTrue( - checks['aria-allowed-attr'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('aria-allowed-attr') + .call(checkContext, node) ); assert.isNull(checkContext._data); }); @@ -73,7 +81,9 @@ describe('aria-allowed-attr', function() { fixture.appendChild(node); assert.isTrue( - checks['aria-allowed-attr'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('aria-allowed-attr') + .call(checkContext, node) ); assert.isNull(checkContext._data); }); @@ -88,7 +98,9 @@ describe('aria-allowed-attr', function() { fixture.appendChild(node); assert.isTrue( - checks['aria-allowed-attr'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('aria-allowed-attr') + .call(checkContext, node) ); assert.isNull(checkContext._data); }); @@ -108,9 +120,11 @@ describe('aria-allowed-attr', function() { '<div role="mccheddarton" id="target" aria-checked="true" aria-snuggles="true"></div>'; var target = fixture.children[0]; assert.isTrue( - checks['aria-allowed-attr'].evaluate.call(checkContext, target, { - mccheddarton: ['aria-checked', 'aria-snuggles'] - }) + axe.testUtils + .getCheckEvaluate('aria-allowed-attr') + .call(checkContext, target, { + mccheddarton: ['aria-checked', 'aria-snuggles'] + }) ); delete axe.commons.aria.lookupTable.role.mccheddarton; }); @@ -142,7 +156,9 @@ describe('aria-allowed-attr', function() { bagley: ['aria-snuggles2'] }; assert.isTrue( - checks['aria-allowed-attr'].evaluate.call(checkContext, target, options) + axe.testUtils + .getCheckEvaluate('aria-allowed-attr') + .call(checkContext, target, options) ); delete axe.commons.aria.lookupTable.role.mccheddarton; delete axe.commons.aria.lookupTable.role.bagley; diff --git a/test/checks/aria/aria-allowed-role.js b/test/checks/aria/aria-allowed-role.js index 00bda342d5..357a1cb143 100644 --- a/test/checks/aria/aria-allowed-role.js +++ b/test/checks/aria/aria-allowed-role.js @@ -18,11 +18,9 @@ describe('aria-allowed-role', function() { var options = { ignoredTags: ['article'] }; - var actual = checks['aria-allowed-role'].evaluate.call( - checkContext, - node, - options - ); + var actual = axe.testUtils + .getCheckEvaluate('aria-allowed-role') + .call(checkContext, node, options); var expected = true; assert.equal(actual, expected); assert.isNull(checkContext._data, null); @@ -36,11 +34,9 @@ describe('aria-allowed-role', function() { var options = { allowImplicit: false }; - var actual = checks['aria-allowed-role'].evaluate.call( - checkContext, - target, - options - ); + var actual = axe.testUtils + .getCheckEvaluate('aria-allowed-role') + .call(checkContext, target, options); var expected = false; assert.equal(actual, expected); assert.deepEqual(checkContext._data, ['row']); @@ -51,7 +47,9 @@ describe('aria-allowed-role', function() { fixture.appendChild(node); flatTreeSetup(fixture); assert.isTrue( - checks['aria-allowed-role'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('aria-allowed-role') + .call(checkContext, node) ); }); @@ -61,10 +59,9 @@ describe('aria-allowed-role', function() { 'role="presentation"></button>'; var target = fixture.querySelector('#target'); flatTreeSetup(fixture); - var actual = checks['aria-allowed-role'].evaluate.call( - checkContext, - target - ); + var actual = axe.testUtils + .getCheckEvaluate('aria-allowed-role') + .call(checkContext, target); assert.isUndefined(actual); }); @@ -76,10 +73,9 @@ describe('aria-allowed-role', function() { '</div>'; var target = fixture.querySelector('#target'); flatTreeSetup(fixture); - var actual = checks['aria-allowed-role'].evaluate.call( - checkContext, - target - ); + var actual = axe.testUtils + .getCheckEvaluate('aria-allowed-role') + .call(checkContext, target); assert.isUndefined(actual); }); @@ -90,7 +86,9 @@ describe('aria-allowed-role', function() { fixture.appendChild(node); flatTreeSetup(fixture); assert.isTrue( - checks['aria-allowed-role'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('aria-allowed-role') + .call(checkContext, node) ); }); @@ -100,12 +98,16 @@ describe('aria-allowed-role', function() { fixture.appendChild(node); flatTreeSetup(fixture); assert.isTrue( - checks['aria-allowed-role'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('aria-allowed-role') + .call(checkContext, node) ); assert.deepEqual(checkContext._data, null); node.setAttribute('role', 'none'); assert.isTrue( - checks['aria-allowed-role'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('aria-allowed-role') + .call(checkContext, node) ); assert.deepEqual(checkContext._data, null); }); @@ -117,12 +119,16 @@ describe('aria-allowed-role', function() { fixture.appendChild(node); flatTreeSetup(fixture); assert.isTrue( - checks['aria-allowed-role'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('aria-allowed-role') + .call(checkContext, node) ); assert.deepEqual(checkContext._data, null); node.setAttribute('role', 'none'); assert.isTrue( - checks['aria-allowed-role'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('aria-allowed-role') + .call(checkContext, node) ); assert.deepEqual(checkContext._data, null); }); @@ -134,12 +140,16 @@ describe('aria-allowed-role', function() { fixture.appendChild(node); flatTreeSetup(fixture); assert.isFalse( - checks['aria-allowed-role'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('aria-allowed-role') + .call(checkContext, node) ); assert.deepEqual(checkContext._data, ['presentation']); node.setAttribute('role', 'none'); assert.isFalse( - checks['aria-allowed-role'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('aria-allowed-role') + .call(checkContext, node) ); assert.deepEqual(checkContext._data, ['none']); }); @@ -150,7 +160,9 @@ describe('aria-allowed-role', function() { fixture.appendChild(node); flatTreeSetup(fixture); assert.isTrue( - checks['aria-allowed-role'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('aria-allowed-role') + .call(checkContext, node) ); assert.isNull(checkContext._data, null); }); @@ -162,7 +174,9 @@ describe('aria-allowed-role', function() { fixture.appendChild(node); flatTreeSetup(fixture); assert.isTrue( - checks['aria-allowed-role'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('aria-allowed-role') + .call(checkContext, node) ); }); @@ -173,7 +187,9 @@ describe('aria-allowed-role', function() { fixture.appendChild(node); flatTreeSetup(fixture); assert.isTrue( - checks['aria-allowed-role'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('aria-allowed-role') + .call(checkContext, node) ); }); @@ -184,7 +200,9 @@ describe('aria-allowed-role', function() { fixture.appendChild(node); flatTreeSetup(fixture); assert.isTrue( - checks['aria-allowed-role'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('aria-allowed-role') + .call(checkContext, node) ); }); @@ -195,7 +213,9 @@ describe('aria-allowed-role', function() { fixture.appendChild(node); flatTreeSetup(fixture); assert.isTrue( - checks['aria-allowed-role'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('aria-allowed-role') + .call(checkContext, node) ); }); @@ -206,7 +226,9 @@ describe('aria-allowed-role', function() { fixture.appendChild(node); flatTreeSetup(fixture); assert.isTrue( - checks['aria-allowed-role'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('aria-allowed-role') + .call(checkContext, node) ); }); @@ -217,7 +239,9 @@ describe('aria-allowed-role', function() { fixture.appendChild(node); flatTreeSetup(fixture); assert.isTrue( - checks['aria-allowed-role'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('aria-allowed-role') + .call(checkContext, node) ); }); @@ -228,7 +252,9 @@ describe('aria-allowed-role', function() { fixture.appendChild(node); flatTreeSetup(fixture); assert.isTrue( - checks['aria-allowed-role'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('aria-allowed-role') + .call(checkContext, node) ); }); @@ -239,7 +265,9 @@ describe('aria-allowed-role', function() { fixture.appendChild(node); flatTreeSetup(fixture); assert.isTrue( - checks['aria-allowed-role'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('aria-allowed-role') + .call(checkContext, node) ); }); @@ -250,7 +278,9 @@ describe('aria-allowed-role', function() { fixture.appendChild(node); flatTreeSetup(fixture); assert.isTrue( - checks['aria-allowed-role'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('aria-allowed-role') + .call(checkContext, node) ); }); @@ -261,7 +291,9 @@ describe('aria-allowed-role', function() { fixture.appendChild(node); flatTreeSetup(fixture); assert.isTrue( - checks['aria-allowed-role'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('aria-allowed-role') + .call(checkContext, node) ); }); @@ -271,7 +303,9 @@ describe('aria-allowed-role', function() { fixture.appendChild(node); flatTreeSetup(fixture); assert.isFalse( - checks['aria-allowed-role'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('aria-allowed-role') + .call(checkContext, node) ); assert.deepEqual(checkContext._data, ['link']); }); @@ -282,7 +316,9 @@ describe('aria-allowed-role', function() { fixture.appendChild(node); flatTreeSetup(fixture); assert.isTrue( - checks['aria-allowed-role'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('aria-allowed-role') + .call(checkContext, node) ); }); @@ -292,7 +328,9 @@ describe('aria-allowed-role', function() { fixture.appendChild(node); flatTreeSetup(fixture); assert.isTrue( - checks['aria-allowed-role'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('aria-allowed-role') + .call(checkContext, node) ); }); @@ -302,7 +340,9 @@ describe('aria-allowed-role', function() { node.href = ''; fixture.appendChild(node); flatTreeSetup(fixture); - var actual = checks['aria-allowed-role'].evaluate.call(checkContext, node); + var actual = axe.testUtils + .getCheckEvaluate('aria-allowed-role') + .call(checkContext, node); assert.isTrue(actual); }); @@ -313,7 +353,9 @@ describe('aria-allowed-role', function() { fixture.appendChild(node); flatTreeSetup(fixture); assert.isTrue( - checks['aria-allowed-role'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('aria-allowed-role') + .call(checkContext, node) ); }); @@ -324,7 +366,9 @@ describe('aria-allowed-role', function() { fixture.appendChild(node); flatTreeSetup(fixture); assert.isFalse( - checks['aria-allowed-role'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('aria-allowed-role') + .call(checkContext, node) ); }); @@ -334,7 +378,9 @@ describe('aria-allowed-role', function() { fixture.appendChild(node); flatTreeSetup(fixture); assert.isTrue( - checks['aria-allowed-role'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('aria-allowed-role') + .call(checkContext, node) ); assert.isNull(checkContext._data, null); }); @@ -344,7 +390,9 @@ describe('aria-allowed-role', function() { node.setAttribute('role', 'navigation'); fixture.appendChild(node); flatTreeSetup(fixture); - var actual = checks['aria-allowed-role'].evaluate.call(checkContext, node); + var actual = axe.testUtils + .getCheckEvaluate('aria-allowed-role') + .call(checkContext, node); assert.isTrue(actual); assert.isNull(checkContext._data, null); }); @@ -354,7 +402,9 @@ describe('aria-allowed-role', function() { var target = fixture.children[0]; flatTreeSetup(fixture); assert.isFalse( - checks['aria-allowed-role'].evaluate.call(checkContext, target) + axe.testUtils + .getCheckEvaluate('aria-allowed-role') + .call(checkContext, target) ); }); @@ -363,7 +413,9 @@ describe('aria-allowed-role', function() { var target = fixture.children[0]; flatTreeSetup(fixture); assert.isTrue( - checks['aria-allowed-role'].evaluate.call(checkContext, target) + axe.testUtils + .getCheckEvaluate('aria-allowed-role') + .call(checkContext, target) ); }); }); diff --git a/test/checks/aria/aria-hidden-body.js b/test/checks/aria/aria-hidden-body.js index d00b5fb457..acb91e8fb7 100644 --- a/test/checks/aria/aria-hidden-body.js +++ b/test/checks/aria/aria-hidden-body.js @@ -10,18 +10,28 @@ describe('aria-hidden', function() { }); it('should not be present on document.body', function() { - assert.isTrue(checks['aria-hidden-body'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils + .getCheckEvaluate('aria-hidden-body') + .call(checkContext, node) + ); }); it('fails appropriately if aria-hidden=true on document.body', function() { node.setAttribute('aria-hidden', 'true'); assert.isFalse( - checks['aria-hidden-body'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('aria-hidden-body') + .call(checkContext, node) ); }); it('passes if aria-hidden=false on document.body', function() { node.setAttribute('aria-hidden', 'false'); - assert.isTrue(checks['aria-hidden-body'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils + .getCheckEvaluate('aria-hidden-body') + .call(checkContext, node) + ); }); }); diff --git a/test/checks/aria/aria-roledescription.js b/test/checks/aria/aria-roledescription.js index de344bf8e2..96194594d3 100644 --- a/test/checks/aria/aria-roledescription.js +++ b/test/checks/aria/aria-roledescription.js @@ -12,13 +12,11 @@ describe('aria-roledescription', function() { it('returns true for elements with an implicit supported role', function() { fixture.innerHTML = '<button aria-roledescription="Awesome Button">Click</button>'; - var actual = checks['aria-roledescription'].evaluate.call( - checkContext, - fixture.firstChild, - { + var actual = axe.testUtils + .getCheckEvaluate('aria-roledescription') + .call(checkContext, fixture.firstChild, { supportedRoles: ['button'] - } - ); + }); assert.equal(actual, true); assert.isNull(checkContext._data, null); }); @@ -26,13 +24,11 @@ describe('aria-roledescription', function() { it('returns true for elements with an explicit supported role', function() { fixture.innerHTML = '<div role="radio" aria-roledescription="Awesome Radio">Click</div>'; - var actual = checks['aria-roledescription'].evaluate.call( - checkContext, - fixture.firstChild, - { + var actual = axe.testUtils + .getCheckEvaluate('aria-roledescription') + .call(checkContext, fixture.firstChild, { supportedRoles: ['radio'] - } - ); + }); assert.equal(actual, true); assert.isNull(checkContext._data, null); }); @@ -40,10 +36,9 @@ describe('aria-roledescription', function() { it('returns undefined for elements with an unsupported role', function() { fixture.innerHTML = '<div role="main" aria-roledescription="Awesome Main">The main element</div>'; - var actual = checks['aria-roledescription'].evaluate.call( - checkContext, - fixture.firstChild - ); + var actual = axe.testUtils + .getCheckEvaluate('aria-roledescription') + .call(checkContext, fixture.firstChild); assert.equal(actual, undefined); assert.isNull(checkContext._data, null); }); @@ -51,10 +46,9 @@ describe('aria-roledescription', function() { it('returns false for elements without role', function() { fixture.innerHTML = '<div aria-roledescription="Awesome Main">The main element</div>'; - var actual = checks['aria-roledescription'].evaluate.call( - checkContext, - fixture.firstChild - ); + var actual = axe.testUtils + .getCheckEvaluate('aria-roledescription') + .call(checkContext, fixture.firstChild); assert.equal(actual, false); assert.isNull(checkContext._data, null); }); @@ -62,10 +56,9 @@ describe('aria-roledescription', function() { it('returns false for elements with role=presentation', function() { fixture.innerHTML = '<div role="presentation" aria-roledescription="Awesome Main">The main element</div>'; - var actual = checks['aria-roledescription'].evaluate.call( - checkContext, - fixture.firstChild - ); + var actual = axe.testUtils + .getCheckEvaluate('aria-roledescription') + .call(checkContext, fixture.firstChild); assert.equal(actual, false); assert.isNull(checkContext._data, null); }); @@ -73,10 +66,9 @@ describe('aria-roledescription', function() { it('returns false for elements with role=none', function() { fixture.innerHTML = '<div role="none" aria-roledescription="Awesome Main">The main element</div>'; - var actual = checks['aria-roledescription'].evaluate.call( - checkContext, - fixture.firstChild - ); + var actual = axe.testUtils + .getCheckEvaluate('aria-roledescription') + .call(checkContext, fixture.firstChild); assert.equal(actual, false); assert.isNull(checkContext._data, null); }); diff --git a/test/checks/aria/errormessage.js b/test/checks/aria/errormessage.js index a0e5523845..e779064baa 100644 --- a/test/checks/aria/errormessage.js +++ b/test/checks/aria/errormessage.js @@ -25,7 +25,9 @@ describe('aria-errormessage', function() { var target = fixture.children[0]; target.setAttribute('aria-errormessage', 'plain'); assert.isFalse( - checks['aria-errormessage'].evaluate.call(checkContext, target) + axe.testUtils + .getCheckEvaluate('aria-errormessage') + .call(checkContext, target) ); }); @@ -36,7 +38,9 @@ describe('aria-errormessage', function() { var target = fixture.children[0]; target.setAttribute('aria-errormessage', 'alert'); assert.isTrue( - checks['aria-errormessage'].evaluate.call(checkContext, target) + axe.testUtils + .getCheckEvaluate('aria-errormessage') + .call(checkContext, target) ); }); @@ -47,7 +51,9 @@ describe('aria-errormessage', function() { var target = fixture.children[0]; target.setAttribute('aria-errormessage', 'live'); assert.isTrue( - checks['aria-errormessage'].evaluate.call(checkContext, target) + axe.testUtils + .getCheckEvaluate('aria-errormessage') + .call(checkContext, target) ); }); @@ -59,7 +65,9 @@ describe('aria-errormessage', function() { target.setAttribute('aria-errormessage', 'plain'); target.setAttribute('aria-describedby', 'plain'); assert.isTrue( - checks['aria-errormessage'].evaluate.call(checkContext, target) + axe.testUtils + .getCheckEvaluate('aria-errormessage') + .call(checkContext, target) ); }); @@ -69,7 +77,9 @@ describe('aria-errormessage', function() { fixture.innerHTML = testHTML; var target = fixture.children[0]; target.setAttribute('aria-errormessage', ' foo bar \tbaz '); - checks['aria-errormessage'].evaluate.call(checkContext, target); + axe.testUtils + .getCheckEvaluate('aria-errormessage') + .call(checkContext, target); assert.deepEqual(checkContext._data, ['foo', 'bar', 'baz']); }); @@ -79,10 +89,9 @@ describe('aria-errormessage', function() { ].allowEmpty = true; fixture.innerHTML = '<div aria-errormessage=" "></div>'; assert.isTrue( - checks['aria-errormessage'].evaluate.call( - checkContext, - fixture.children[0] - ) + axe.testUtils + .getCheckEvaluate('aria-errormessage') + .call(checkContext, fixture.children[0]) ); }); @@ -92,10 +101,9 @@ describe('aria-errormessage', function() { ].allowEmpty = false; fixture.innerHTML = '<div aria-errormessage=" "></div>'; assert.isFalse( - checks['aria-errormessage'].evaluate.call( - checkContext, - fixture.children[0] - ) + axe.testUtils + .getCheckEvaluate('aria-errormessage') + .call(checkContext, fixture.children[0]) ); }); @@ -107,7 +115,9 @@ describe('aria-errormessage', function() { '<div id="live" aria-live="assertive"></div>' ); assert.isFalse( - checks['aria-errormessage'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-errormessage') + .apply(checkContext, params) ); } ); @@ -121,7 +131,9 @@ describe('aria-errormessage', function() { '<div id="live" aria-live="assertive"></div>' ); assert.isTrue( - checks['aria-errormessage'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-errormessage') + .apply(checkContext, params) ); } ); diff --git a/test/checks/aria/has-widget-role.js b/test/checks/aria/has-widget-role.js index 415d252870..0a85337c04 100644 --- a/test/checks/aria/has-widget-role.js +++ b/test/checks/aria/has-widget-role.js @@ -13,14 +13,18 @@ describe('has-widget-role', function() { it('should return false for elements with no role', function() { node = document.createElement('div'); fixture.appendChild(node); - assert.isFalse(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return false for elements with nonsensical roles', function() { node = document.createElement('div'); node.setAttribute('role', 'buttonbuttonbutton'); fixture.appendChild(node); - assert.isFalse(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); // Widget roles @@ -28,133 +32,171 @@ describe('has-widget-role', function() { node = document.createElement('div'); node.setAttribute('role', 'button'); fixture.appendChild(node); - assert.isTrue(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return true for role=checkbox', function() { node = document.createElement('div'); node.setAttribute('role', 'checkbox'); fixture.appendChild(node); - assert.isTrue(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return true for role=gridcell', function() { node = document.createElement('div'); node.setAttribute('role', 'gridcell'); fixture.appendChild(node); - assert.isTrue(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return true for role=link', function() { node = document.createElement('div'); node.setAttribute('role', 'link'); fixture.appendChild(node); - assert.isTrue(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return true for role=menuitem', function() { node = document.createElement('div'); node.setAttribute('role', 'menuitem'); fixture.appendChild(node); - assert.isTrue(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return true for role=menuitemcheckbox', function() { node = document.createElement('div'); node.setAttribute('role', 'menuitemcheckbox'); fixture.appendChild(node); - assert.isTrue(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return true for role=menuitemradio', function() { node = document.createElement('div'); node.setAttribute('role', 'menuitemradio'); fixture.appendChild(node); - assert.isTrue(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return true for role=option', function() { node = document.createElement('div'); node.setAttribute('role', 'option'); fixture.appendChild(node); - assert.isTrue(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return true for role=progressbar', function() { node = document.createElement('div'); node.setAttribute('role', 'progressbar'); fixture.appendChild(node); - assert.isTrue(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return true for role=radio', function() { node = document.createElement('div'); node.setAttribute('role', 'radio'); fixture.appendChild(node); - assert.isTrue(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return true for role=scrollbar', function() { node = document.createElement('div'); node.setAttribute('role', 'scrollbar'); fixture.appendChild(node); - assert.isTrue(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return true for role=searchbox', function() { node = document.createElement('div'); node.setAttribute('role', 'searchbox'); fixture.appendChild(node); - assert.isTrue(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return true for role=slider', function() { node = document.createElement('div'); node.setAttribute('role', 'slider'); fixture.appendChild(node); - assert.isTrue(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return true for role=spinbutton', function() { node = document.createElement('div'); node.setAttribute('role', 'spinbutton'); fixture.appendChild(node); - assert.isTrue(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return true for role=switch', function() { node = document.createElement('div'); node.setAttribute('role', 'switch'); fixture.appendChild(node); - assert.isTrue(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return true for role=tab', function() { node = document.createElement('div'); node.setAttribute('role', 'tab'); fixture.appendChild(node); - assert.isTrue(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return true for role=tabpanel', function() { node = document.createElement('div'); node.setAttribute('role', 'tabpanel'); fixture.appendChild(node); - assert.isTrue(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return true for role=textbox', function() { node = document.createElement('div'); node.setAttribute('role', 'textbox'); fixture.appendChild(node); - assert.isTrue(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return true for role=treeitem', function() { node = document.createElement('div'); node.setAttribute('role', 'treeitem'); fixture.appendChild(node); - assert.isTrue(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); // Composite widget roles @@ -162,231 +204,297 @@ describe('has-widget-role', function() { node = document.createElement('div'); node.setAttribute('role', 'combobox'); fixture.appendChild(node); - assert.isTrue(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return true for role=grid', function() { node = document.createElement('div'); node.setAttribute('role', 'grid'); fixture.appendChild(node); - assert.isTrue(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return true for role=listbox', function() { node = document.createElement('div'); node.setAttribute('role', 'listbox'); fixture.appendChild(node); - assert.isTrue(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return true for role=menu', function() { node = document.createElement('div'); node.setAttribute('role', 'menu'); fixture.appendChild(node); - assert.isTrue(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return true for role=menubar', function() { node = document.createElement('div'); node.setAttribute('role', 'menubar'); fixture.appendChild(node); - assert.isTrue(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return true for role=radiogroup', function() { node = document.createElement('div'); node.setAttribute('role', 'radiogroup'); fixture.appendChild(node); - assert.isTrue(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return true for role=tablist', function() { node = document.createElement('div'); node.setAttribute('role', 'tablist'); fixture.appendChild(node); - assert.isTrue(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return true for role=tree', function() { node = document.createElement('div'); node.setAttribute('role', 'tree'); fixture.appendChild(node); - assert.isTrue(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return true for role=treegrid', function() { node = document.createElement('div'); node.setAttribute('role', 'treegrid'); fixture.appendChild(node); - assert.isTrue(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return false for role=application', function() { node = document.createElement('div'); node.setAttribute('role', 'application'); fixture.appendChild(node); - assert.isFalse(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return false for role=article', function() { node = document.createElement('div'); node.setAttribute('role', 'article'); fixture.appendChild(node); - assert.isFalse(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return false for role=cell', function() { node = document.createElement('div'); node.setAttribute('role', 'cell'); fixture.appendChild(node); - assert.isFalse(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return false for role=columnheader', function() { node = document.createElement('div'); node.setAttribute('role', 'columnheader'); fixture.appendChild(node); - assert.isFalse(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return false for role=definition', function() { node = document.createElement('div'); node.setAttribute('role', 'definition'); fixture.appendChild(node); - assert.isFalse(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return false for role=directory', function() { node = document.createElement('div'); node.setAttribute('role', 'directory'); fixture.appendChild(node); - assert.isFalse(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return false for role=document', function() { node = document.createElement('div'); node.setAttribute('role', 'document'); fixture.appendChild(node); - assert.isFalse(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return false for role=feed', function() { node = document.createElement('div'); node.setAttribute('role', 'feed'); fixture.appendChild(node); - assert.isFalse(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return false for role=figure', function() { node = document.createElement('div'); node.setAttribute('role', 'figure'); fixture.appendChild(node); - assert.isFalse(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return false for role=group', function() { node = document.createElement('div'); node.setAttribute('role', 'group'); fixture.appendChild(node); - assert.isFalse(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return false for role=heading', function() { node = document.createElement('div'); node.setAttribute('role', 'heading'); fixture.appendChild(node); - assert.isFalse(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return false for role=img', function() { node = document.createElement('div'); node.setAttribute('role', 'img'); fixture.appendChild(node); - assert.isFalse(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return false for role=list', function() { node = document.createElement('div'); node.setAttribute('role', 'list'); fixture.appendChild(node); - assert.isFalse(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return false for role=listitem', function() { node = document.createElement('div'); node.setAttribute('role', 'listitem'); fixture.appendChild(node); - assert.isFalse(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return false for role=math', function() { node = document.createElement('div'); node.setAttribute('role', 'math'); fixture.appendChild(node); - assert.isFalse(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return false for role=none', function() { node = document.createElement('div'); node.setAttribute('role', 'none'); fixture.appendChild(node); - assert.isFalse(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return false for role=note', function() { node = document.createElement('div'); node.setAttribute('role', 'note'); fixture.appendChild(node); - assert.isFalse(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return false for role=presentation', function() { node = document.createElement('div'); node.setAttribute('role', 'presentation'); fixture.appendChild(node); - assert.isFalse(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return false for role=row', function() { node = document.createElement('div'); node.setAttribute('role', 'row'); fixture.appendChild(node); - assert.isFalse(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return false for role=rowgroup', function() { node = document.createElement('div'); node.setAttribute('role', 'rowgroup'); fixture.appendChild(node); - assert.isFalse(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return false for role=rowheader', function() { node = document.createElement('div'); node.setAttribute('role', 'rowheader'); fixture.appendChild(node); - assert.isFalse(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return false for role=table', function() { node = document.createElement('div'); node.setAttribute('role', 'table'); fixture.appendChild(node); - assert.isFalse(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return false for role=term', function() { node = document.createElement('div'); node.setAttribute('role', 'term'); fixture.appendChild(node); - assert.isFalse(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return false for role=toolbar', function() { node = document.createElement('div'); node.setAttribute('role', 'toolbar'); fixture.appendChild(node); - assert.isFalse(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); // Landmark Roles @@ -394,55 +502,71 @@ describe('has-widget-role', function() { node = document.createElement('div'); node.setAttribute('role', 'banner'); fixture.appendChild(node); - assert.isFalse(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return false for role=complementary', function() { node = document.createElement('div'); node.setAttribute('role', 'complementary'); fixture.appendChild(node); - assert.isFalse(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return false for role=contentinfo', function() { node = document.createElement('div'); node.setAttribute('role', 'contentinfo'); fixture.appendChild(node); - assert.isFalse(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return false for role=form', function() { node = document.createElement('div'); node.setAttribute('role', 'form'); fixture.appendChild(node); - assert.isFalse(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return false for role=main', function() { node = document.createElement('div'); node.setAttribute('role', 'main'); fixture.appendChild(node); - assert.isFalse(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return false for role=navigation', function() { node = document.createElement('div'); node.setAttribute('role', 'navigation'); fixture.appendChild(node); - assert.isFalse(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return false for role=region', function() { node = document.createElement('div'); node.setAttribute('role', 'region'); fixture.appendChild(node); - assert.isFalse(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); it('should return false for role=search', function() { node = document.createElement('div'); node.setAttribute('role', 'search'); fixture.appendChild(node); - assert.isFalse(checks['has-widget-role'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('has-widget-role').call(checkContext, node) + ); }); }); diff --git a/test/checks/aria/required-attr.js b/test/checks/aria/required-attr.js index a83e171b25..0bba19cca6 100644 --- a/test/checks/aria/required-attr.js +++ b/test/checks/aria/required-attr.js @@ -15,12 +15,9 @@ describe('aria-required-attr', function() { var vNode = queryFixture('<div id="target" role="slider" tabindex="1">'); assert.isFalse( - checks['aria-required-attr'].evaluate.call( - checkContext, - vNode.actualNode, - options, - vNode - ) + axe.testUtils + .getCheckEvaluate('aria-required-attr') + .call(checkContext, vNode.actualNode, options, vNode) ); assert.deepEqual(checkContext._data, ['aria-valuenow']); }); @@ -29,12 +26,9 @@ describe('aria-required-attr', function() { var vNode = queryFixture('<div id="target">'); assert.isTrue( - checks['aria-required-attr'].evaluate.call( - checkContext, - vNode.actualNode, - options, - vNode - ) + axe.testUtils + .getCheckEvaluate('aria-required-attr') + .call(checkContext, vNode.actualNode, options, vNode) ); assert.isNull(checkContext._data); }); @@ -43,12 +37,9 @@ describe('aria-required-attr', function() { var vNode = queryFixture('<input id="target" type="range" role="slider">'); assert.isTrue( - checks['aria-required-attr'].evaluate.call( - checkContext, - vNode.actualNode, - options, - vNode - ) + axe.testUtils + .getCheckEvaluate('aria-required-attr') + .call(checkContext, vNode.actualNode, options, vNode) ); }); @@ -68,12 +59,9 @@ describe('aria-required-attr', function() { mccheddarton: ['aria-snuggles'] }; assert.isFalse( - checks['aria-required-attr'].evaluate.call( - checkContext, - vNode.actualNode, - options, - vNode - ) + axe.testUtils + .getCheckEvaluate('aria-required-attr') + .call(checkContext, vNode.actualNode, options, vNode) ); assert.deepEqual(checkContext._data, ['aria-snuggles', 'aria-valuemax']); delete axe.commons.aria.lookupTable.role.mccheddarton; diff --git a/test/checks/aria/required-children.js b/test/checks/aria/required-children.js index 44460ed8a0..f3aeff8ef7 100644 --- a/test/checks/aria/required-children.js +++ b/test/checks/aria/required-children.js @@ -18,7 +18,9 @@ describe('aria-required-children', function() { ); assert.isFalse( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); assert.deepEqual(checkContext._data, ['listitem']); }); @@ -37,7 +39,9 @@ describe('aria-required-children', function() { var params = [target, undefined, virtualTarget]; assert.isFalse( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); assert.deepEqual(checkContext._data, ['listitem']); } @@ -49,7 +53,9 @@ describe('aria-required-children', function() { ); assert.isFalse( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); assert.deepEqual(checkContext._data, ['rowgroup', 'row']); }); @@ -68,7 +74,9 @@ describe('aria-required-children', function() { var params = [target, undefined, virtualTarget]; assert.isFalse( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); assert.deepEqual(checkContext._data, ['rowgroup', 'row']); } @@ -79,7 +87,9 @@ describe('aria-required-children', function() { '<div role="combobox" id="target" aria-expanded="true"><p>Nothing here.</p></div>' ); assert.isFalse( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); assert.deepEqual(checkContext._data, ['listbox', 'textbox']); }); @@ -89,7 +99,9 @@ describe('aria-required-children', function() { '<div role="combobox" id="target" aria-expanded="true"><p role="listbox">Nothing here.</p></div>' ); assert.isFalse( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); assert.deepEqual(checkContext._data, ['textbox']); }); @@ -99,7 +111,9 @@ describe('aria-required-children', function() { '<div role="combobox" id="target"><p role="listbox">Nothing here.</p><p role="textbox">Textbox</p></div>' ); assert.isTrue( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); }); @@ -108,7 +122,9 @@ describe('aria-required-children', function() { '<div id="target" role="menu"><li role="none"></li><li role="menuitem">Item 1</li><div role="menuitemradio">Item 2</div><div role="menuitemcheckbox">Item 3</div></div>' ); assert.isTrue( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); }); @@ -117,7 +133,9 @@ describe('aria-required-children', function() { reviewEmpty: ['list'] }); assert.isUndefined( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); }); @@ -127,7 +145,9 @@ describe('aria-required-children', function() { { reviewEmpty: ['list'] } ); assert.isFalse( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); }); @@ -137,7 +157,9 @@ describe('aria-required-children', function() { { reviewEmpty: ['list'] } ); assert.isFalse( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); }); @@ -156,7 +178,9 @@ describe('aria-required-children', function() { var params = [target, undefined, virtualTarget]; assert.isTrue( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); } ); @@ -166,7 +190,9 @@ describe('aria-required-children', function() { '<input type="text" role="combobox" aria-owns="listbox" id="target"><p role="listbox" id="listbox">Nothing here.</p>' ); assert.isTrue( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); }); @@ -175,7 +201,9 @@ describe('aria-required-children', function() { '<input type="search" role="combobox" aria-owns="listbox1" id="target"><p role="listbox" id="listbox1">Nothing here.</p>' ); assert.isTrue( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); }); @@ -184,7 +212,9 @@ describe('aria-required-children', function() { '<input type="email" role="combobox" aria-owns="listbox" id="target"><p role="listbox" id="listbox">Nothing here.</p>' ); assert.isTrue( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); }); @@ -193,7 +223,9 @@ describe('aria-required-children', function() { '<input type="url" role="combobox" aria-owns="listbox" id="target"><p role="listbox" id="listbox">Nothing here.</p>' ); assert.isTrue( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); }); @@ -202,7 +234,9 @@ describe('aria-required-children', function() { '<input type="tel" role="combobox" aria-owns="listbox" id="target"><p role="listbox" id="listbox">Nothing here.</p>' ); assert.isTrue( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); }); @@ -211,7 +245,9 @@ describe('aria-required-children', function() { '<div role="combobox" id="target"><p role="textbox">Textbox</p></div>' ); assert.isTrue( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); }); @@ -220,7 +256,9 @@ describe('aria-required-children', function() { '<div role="combobox" aria-haspopup="grid" aria-expanded="true" id="target"><p role="textbox">Textbox</p><div role="grid"></div></div>' ); assert.isTrue( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); }); @@ -229,7 +267,9 @@ describe('aria-required-children', function() { '<div role="combobox" aria-haspopup="grid" aria-expanded="true" id="target"><p role="textbox">Textbox</p><div role="listbox"></div></div>' ); assert.isFalse( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); assert.deepEqual(checkContext._data, ['grid']); @@ -240,7 +280,9 @@ describe('aria-required-children', function() { '<div role="combobox" aria-haspopup="gRiD" aria-expanded="true" id="target"><p role="textbox">Textbox</p><div role="grid"></div></div>' ); assert.isTrue( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); }); @@ -249,7 +291,9 @@ describe('aria-required-children', function() { '<div role="combobox" aria-expanded="true" id="target"><p role="textbox">Textbox</p><div role="grid"></div></div>' ); assert.isFalse( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); assert.deepEqual(checkContext._data, ['listbox']); @@ -260,7 +304,9 @@ describe('aria-required-children', function() { '<div id="target" role="list"><span>Item 1</span></div>' ); assert.isFalse( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); assert.deepEqual(checkContext._data, ['listitem']); @@ -271,7 +317,9 @@ describe('aria-required-children', function() { '<div id="target" role="list"><div role="tabpanel"><div role="listitem">List item 1</div></div></div>' ); assert.isFalse( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); assert.deepEqual(checkContext._data, ['listitem']); @@ -282,7 +330,9 @@ describe('aria-required-children', function() { '<div role="grid"><div role="row" id="target"><span>Item 1</span></div></div>' ); assert.isFalse( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); assert.includeMembers(checkContext._data, ['cell']); @@ -293,7 +343,9 @@ describe('aria-required-children', function() { '<div role="grid" id="target" aria-owns="r"></div><div id="r"><div role="row">Nothing here.</div></div>' ); assert.isTrue( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); }); @@ -302,7 +354,9 @@ describe('aria-required-children', function() { '<div role="grid" id="target" aria-owns="nonexistent"></div>' ); assert.isFalse( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); }); @@ -311,7 +365,9 @@ describe('aria-required-children', function() { '<div role="grid" id="target" aria-owns="r"></div><p id="r" role="row">Nothing here.</p>' ); assert.isTrue( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); }); @@ -320,7 +376,9 @@ describe('aria-required-children', function() { '<div id="target" role="list" aria-owns="list"></div><div id="list"><div role="tabpanel"><div role="listitem"></div></div></div>' ); assert.isFalse( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); }); @@ -329,7 +387,9 @@ describe('aria-required-children', function() { '<ul id="target" role="tablist"><li role="tab">Tab 1</li><li role="tab">Tab 2</li></ul>' ); assert.isTrue( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); }); @@ -338,7 +398,9 @@ describe('aria-required-children', function() { '<table id="target" role="grid"><tr role="row"><td role="cell">Item 1</td></tr></table>' ); assert.isTrue( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); }); @@ -347,7 +409,9 @@ describe('aria-required-children', function() { '<div role="grid" id="target"><p role="row">Nothing here.</p></div>' ); assert.isTrue( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); }); @@ -356,7 +420,9 @@ describe('aria-required-children', function() { '<table id="target"><p role="row">Nothing here.</p></table>' ); assert.isTrue( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); }); @@ -365,7 +431,9 @@ describe('aria-required-children', function() { '<table role="grid" id="target"><tr><td>Nothing here.</td></tr></table>' ); assert.isTrue( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); }); @@ -374,7 +442,9 @@ describe('aria-required-children', function() { '<div role="list" id="target"><p role="listitem">Nothing here.</p></div>' ); assert.isTrue( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); }); @@ -383,7 +453,9 @@ describe('aria-required-children', function() { '<div role="list" id="target"><p>Just a regular ol p that contains a... <p role="listitem">Nothing here.</p></p></div>' ); assert.isTrue( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); }); @@ -392,7 +464,9 @@ describe('aria-required-children', function() { '<div role="listitem" id="target"><p>Nothing here.</p></div>' ); assert.isTrue( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); }); @@ -401,7 +475,9 @@ describe('aria-required-children', function() { '<div role="combobox" id="target"><input type="search"><p role="listbox">Textbox</p></div>' ); assert.isTrue( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); }); @@ -410,15 +486,21 @@ describe('aria-required-children', function() { '<div role="combobox" id="target"><input type="search" role="spinbutton"><p role="listbox">Textbox</p></div>' ); assert.isFalse( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); }); describe('options', function() { it('should return undefined instead of false when the role is in options.reviewEmpty', function() { - var params = checkSetup('<div role="grid" id="target"></div>'); + var params = checkSetup('<div role="grid" id="target"></div>', { + reviewEmpty: [] + }); assert.isFalse( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); // Options: @@ -426,29 +508,37 @@ describe('aria-required-children', function() { reviewEmpty: ['grid'] }; assert.isUndefined( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); }); it('should not throw when options is incorrect', function() { - var params = checkSetup('<div role="grid" id="target"></div>'); + var params = checkSetup('<div role="menu" id="target"></div>'); // Options: (incorrect) - params[1] = ['grid']; + params[1] = ['menu']; assert.isFalse( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); // Options: (incorrect) params[1] = null; assert.isFalse( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); // Options: (incorrect) - params[1] = 'grid'; + params[1] = 'menu'; assert.isFalse( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); }); @@ -460,7 +550,9 @@ describe('aria-required-children', function() { reviewEmpty: ['listbox'] }; assert.isUndefined( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); }); @@ -472,7 +564,9 @@ describe('aria-required-children', function() { reviewEmpty: ['listbox'] }; assert.isFalse( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); }); @@ -484,7 +578,9 @@ describe('aria-required-children', function() { reviewEmpty: ['listbox'] }; assert.isUndefined( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); }); @@ -496,7 +592,9 @@ describe('aria-required-children', function() { reviewEmpty: ['listbox'] }; assert.isUndefined( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); }); @@ -508,7 +606,9 @@ describe('aria-required-children', function() { reviewEmpty: ['listbox'] }; assert.isUndefined( - checks['aria-required-children'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-children') + .apply(checkContext, params) ); }); }); diff --git a/test/checks/aria/required-parent.js b/test/checks/aria/required-parent.js index 170094e6ee..e082aa8b1c 100644 --- a/test/checks/aria/required-parent.js +++ b/test/checks/aria/required-parent.js @@ -17,7 +17,9 @@ describe('aria-required-parent', function() { '<div><p role="listitem" id="target">Nothing here.</p></div>' ); assert.isFalse( - checks['aria-required-parent'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-parent') + .apply(checkContext, params) ); assert.deepEqual(checkContext._data, ['list']); }); @@ -38,7 +40,9 @@ describe('aria-required-parent', function() { var params = [shadowContent, undefined, virtualTarget]; assert.isFalse( - checks['aria-required-parent'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-parent') + .apply(checkContext, params) ); assert.deepEqual(checkContext._data, ['list']); } @@ -50,7 +54,9 @@ describe('aria-required-parent', function() { '<div id="parent"><p role="listitem" id="target">Nothing here.</p></div>'; var params = checkSetup(snippet); assert.isTrue( - checks['aria-required-parent'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-parent') + .apply(checkContext, params) ); }); @@ -60,7 +66,9 @@ describe('aria-required-parent', function() { '<div><p role="listitem" id="target">Nothing here.</p></div>' ); assert.isFalse( - checks['aria-required-parent'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-parent') + .apply(checkContext, params) ); assert.deepEqual(checkContext._data, ['list']); }); @@ -70,7 +78,9 @@ describe('aria-required-parent', function() { '<div role="list" aria-owns="target"></div><div><p role="listitem" id="target">Nothing here.</p></div>' ); assert.isTrue( - checks['aria-required-parent'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-parent') + .apply(checkContext, params) ); }); @@ -79,7 +89,9 @@ describe('aria-required-parent', function() { '<div role="grid"><p role="row" id="target">Nothing here.</p></div>' ); assert.isTrue( - checks['aria-required-parent'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-parent') + .apply(checkContext, params) ); }); @@ -88,7 +100,9 @@ describe('aria-required-parent', function() { '<div role="list"><p role="listitem" id="target">Nothing here.</p></div>' ); assert.isTrue( - checks['aria-required-parent'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-parent') + .apply(checkContext, params) ); }); @@ -108,7 +122,9 @@ describe('aria-required-parent', function() { var params = [shadowContent, undefined, virtualTarget]; assert.isTrue( - checks['aria-required-parent'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-parent') + .apply(checkContext, params) ); } ); @@ -130,7 +146,9 @@ describe('aria-required-parent', function() { var params = [shadowContent, undefined, virtualTarget]; assert.isFalse( - checks['aria-required-parent'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('aria-required-parent') + .apply(checkContext, params) ); } ); diff --git a/test/checks/aria/valid-attr-value.js b/test/checks/aria/valid-attr-value.js index c9f7a9fced..64d3b82994 100644 --- a/test/checks/aria/valid-attr-value.js +++ b/test/checks/aria/valid-attr-value.js @@ -19,7 +19,9 @@ describe('aria-valid-attr-value', function() { fixture.appendChild(node); assert.isTrue( - checks['aria-valid-attr-value'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('aria-valid-attr-value') + .call(checkContext, node) ); assert.isNull(checkContext._data); }); @@ -34,7 +36,9 @@ describe('aria-valid-attr-value', function() { fixture.appendChild(node); assert.isTrue( - checks['aria-valid-attr-value'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('aria-valid-attr-value') + .call(checkContext, node) ); assert.isNull(checkContext._data); }); @@ -56,7 +60,9 @@ describe('aria-valid-attr-value', function() { fixture.appendChild(testTgt2); assert.isTrue( - checks['aria-valid-attr-value'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('aria-valid-attr-value') + .call(checkContext, node) ); assert.isNull(checkContext._data); }); @@ -70,7 +76,9 @@ describe('aria-valid-attr-value', function() { fixture.appendChild(node); assert.isFalse( - checks['aria-valid-attr-value'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('aria-valid-attr-value') + .call(checkContext, node) ); assert.deepEqual(checkContext._data, ['aria-selected="0"']); }); @@ -83,10 +91,14 @@ describe('aria-valid-attr-value', function() { var passing1 = fixture.querySelector('button'); var passing2 = fixture.querySelector('div'); assert.isTrue( - checks['aria-valid-attr-value'].evaluate.call(checkContext, passing1) + axe.testUtils + .getCheckEvaluate('aria-valid-attr-value') + .call(checkContext, passing1) ); assert.isTrue( - checks['aria-valid-attr-value'].evaluate.call(checkContext, passing2) + axe.testUtils + .getCheckEvaluate('aria-valid-attr-value') + .call(checkContext, passing2) ); }); @@ -97,10 +109,14 @@ describe('aria-valid-attr-value', function() { var passing1 = fixture.querySelector('button'); var passing2 = fixture.querySelector('div'); assert.isTrue( - checks['aria-valid-attr-value'].evaluate.call(checkContext, passing1) + axe.testUtils + .getCheckEvaluate('aria-valid-attr-value') + .call(checkContext, passing1) ); assert.isTrue( - checks['aria-valid-attr-value'].evaluate.call(checkContext, passing2) + axe.testUtils + .getCheckEvaluate('aria-valid-attr-value') + .call(checkContext, passing2) ); }); @@ -110,7 +126,9 @@ describe('aria-valid-attr-value', function() { ); var passing1 = fixture.querySelector('button'); assert.isTrue( - checks['aria-valid-attr-value'].evaluate.call(checkContext, passing1) + axe.testUtils + .getCheckEvaluate('aria-valid-attr-value') + .call(checkContext, passing1) ); }); @@ -120,7 +138,9 @@ describe('aria-valid-attr-value', function() { ); var passing1 = fixture.querySelector('button'); assert.isTrue( - checks['aria-valid-attr-value'].evaluate.call(checkContext, passing1) + axe.testUtils + .getCheckEvaluate('aria-valid-attr-value') + .call(checkContext, passing1) ); }); @@ -130,7 +150,9 @@ describe('aria-valid-attr-value', function() { ); var failing1 = fixture.querySelector('button'); assert.isFalse( - checks['aria-valid-attr-value'].evaluate.call(checkContext, failing1) + axe.testUtils + .getCheckEvaluate('aria-valid-attr-value') + .call(checkContext, failing1) ); }); @@ -140,7 +162,9 @@ describe('aria-valid-attr-value', function() { ); var failing1 = fixture.querySelector('button'); assert.isFalse( - checks['aria-valid-attr-value'].evaluate.call(checkContext, failing1) + axe.testUtils + .getCheckEvaluate('aria-valid-attr-value') + .call(checkContext, failing1) ); }); @@ -148,7 +172,9 @@ describe('aria-valid-attr-value', function() { fixtureSetup('<button aria-controls="test">Button</button>'); var failing1 = fixture.querySelector('button'); assert.isFalse( - checks['aria-valid-attr-value'].evaluate.call(checkContext, failing1) + axe.testUtils + .getCheckEvaluate('aria-valid-attr-value') + .call(checkContext, failing1) ); }); @@ -158,7 +184,9 @@ describe('aria-valid-attr-value', function() { ); var passing1 = fixture.querySelector('button'); assert.isTrue( - checks['aria-valid-attr-value'].evaluate.call(checkContext, passing1) + axe.testUtils + .getCheckEvaluate('aria-valid-attr-value') + .call(checkContext, passing1) ); }); @@ -168,7 +196,9 @@ describe('aria-valid-attr-value', function() { ); var failing1 = fixture.querySelector('button'); assert.isFalse( - checks['aria-valid-attr-value'].evaluate.call(checkContext, failing1) + axe.testUtils + .getCheckEvaluate('aria-valid-attr-value') + .call(checkContext, failing1) ); }); @@ -176,7 +206,9 @@ describe('aria-valid-attr-value', function() { fixtureSetup('<button aria-owns="test">Button</button>'); var failing1 = fixture.querySelector('button'); assert.isFalse( - checks['aria-valid-attr-value'].evaluate.call(checkContext, failing1) + axe.testUtils + .getCheckEvaluate('aria-valid-attr-value') + .call(checkContext, failing1) ); }); @@ -184,7 +216,9 @@ describe('aria-valid-attr-value', function() { fixtureSetup('<button aria-describedby="test">Button</button>'); var undefined1 = fixture.querySelector('button'); assert.isUndefined( - checks['aria-valid-attr-value'].evaluate.call(checkContext, undefined1) + axe.testUtils + .getCheckEvaluate('aria-valid-attr-value') + .call(checkContext, undefined1) ); }); @@ -192,7 +226,9 @@ describe('aria-valid-attr-value', function() { fixtureSetup('<button aria-current="test">Button</button>'); var undefined1 = fixture.querySelector('button'); assert.isUndefined( - checks['aria-valid-attr-value'].evaluate.call(checkContext, undefined1) + axe.testUtils + .getCheckEvaluate('aria-valid-attr-value') + .call(checkContext, undefined1) ); }); @@ -202,10 +238,9 @@ describe('aria-valid-attr-value', function() { '<div id="target" aria-live="nope" aria-describedby="no exist k thx"></div>'; var target = fixture.querySelector('#target'); assert.isTrue( - checks['aria-valid-attr-value'].evaluate.call(checkContext, target, [ - 'aria-live', - 'aria-describedby' - ]) + axe.testUtils + .getCheckEvaluate('aria-valid-attr-value') + .call(checkContext, target, ['aria-live', 'aria-describedby']) ); }); }); diff --git a/test/checks/aria/valid-attr.js b/test/checks/aria/valid-attr.js index 715595098d..fe9910fa1b 100644 --- a/test/checks/aria/valid-attr.js +++ b/test/checks/aria/valid-attr.js @@ -17,7 +17,9 @@ describe('aria-valid-attr', function() { node.setAttribute('aria-dogs', 'true'); fixture.appendChild(node); - assert.isFalse(checks['aria-valid-attr'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('aria-valid-attr').call(checkContext, node) + ); assert.deepEqual(checkContext._data, ['aria-cats', 'aria-dogs']); }); @@ -28,7 +30,9 @@ describe('aria-valid-attr', function() { node.setAttribute('aria-selected', 'true'); fixture.appendChild(node); - assert.isTrue(checks['aria-valid-attr'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('aria-valid-attr').call(checkContext, node) + ); assert.isNull(checkContext._data); }); @@ -43,7 +47,9 @@ describe('aria-valid-attr', function() { node.setAttribute('aria-mccheddarton', 'true'); fixture.appendChild(node); - assert.isTrue(checks['aria-valid-attr'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('aria-valid-attr').call(checkContext, node) + ); assert.isNull(checkContext._data); }); @@ -53,10 +59,9 @@ describe('aria-valid-attr', function() { '<div id="target" aria-bats="cats" aria-puppies="2"></div>'; var target = fixture.children[0]; assert.isTrue( - checks['aria-valid-attr'].evaluate.call(checkContext, target, [ - 'aria-bats', - 'aria-puppies' - ]) + axe.testUtils + .getCheckEvaluate('aria-valid-attr') + .call(checkContext, target, ['aria-bats', 'aria-puppies']) ); }); }); diff --git a/test/checks/aria/valid-scrollable-semantics.js b/test/checks/aria/valid-scrollable-semantics.js index 763eff501b..6f9d551e82 100644 --- a/test/checks/aria/valid-scrollable-semantics.js +++ b/test/checks/aria/valid-scrollable-semantics.js @@ -14,7 +14,9 @@ describe('valid-scrollable-semantics', function() { node.setAttribute('role', '"banner'); fixture.appendChild(node); assert.isFalse( - checks['valid-scrollable-semantics'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('valid-scrollable-semantics') + .call(checkContext, node) ); }); @@ -23,7 +25,9 @@ describe('valid-scrollable-semantics', function() { node.setAttribute('role', 'search'); fixture.appendChild(node); assert.isFalse( - checks['valid-scrollable-semantics'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('valid-scrollable-semantics') + .call(checkContext, node) ); }); @@ -32,7 +36,9 @@ describe('valid-scrollable-semantics', function() { node.setAttribute('role', 'form'); fixture.appendChild(node); assert.isTrue( - checks['valid-scrollable-semantics'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('valid-scrollable-semantics') + .call(checkContext, node) ); }); @@ -41,7 +47,9 @@ describe('valid-scrollable-semantics', function() { node.setAttribute('role', 'navigation'); fixture.appendChild(node); assert.isTrue( - checks['valid-scrollable-semantics'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('valid-scrollable-semantics') + .call(checkContext, node) ); }); @@ -50,7 +58,9 @@ describe('valid-scrollable-semantics', function() { node.setAttribute('role', 'complementary'); fixture.appendChild(node); assert.isTrue( - checks['valid-scrollable-semantics'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('valid-scrollable-semantics') + .call(checkContext, node) ); }); @@ -59,7 +69,9 @@ describe('valid-scrollable-semantics', function() { node.setAttribute('role', 'contentinfo'); fixture.appendChild(node); assert.isTrue( - checks['valid-scrollable-semantics'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('valid-scrollable-semantics') + .call(checkContext, node) ); }); @@ -68,7 +80,9 @@ describe('valid-scrollable-semantics', function() { node.setAttribute('role', 'main'); fixture.appendChild(node); assert.isTrue( - checks['valid-scrollable-semantics'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('valid-scrollable-semantics') + .call(checkContext, node) ); }); @@ -77,7 +91,9 @@ describe('valid-scrollable-semantics', function() { node.setAttribute('role', 'region'); fixture.appendChild(node); assert.isTrue( - checks['valid-scrollable-semantics'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('valid-scrollable-semantics') + .call(checkContext, node) ); }); @@ -85,7 +101,9 @@ describe('valid-scrollable-semantics', function() { var node = document.createElement('nav'); fixture.appendChild(node); assert.isTrue( - checks['valid-scrollable-semantics'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('valid-scrollable-semantics') + .call(checkContext, node) ); }); @@ -93,7 +111,9 @@ describe('valid-scrollable-semantics', function() { var node = document.createElement('section'); fixture.appendChild(node); assert.isTrue( - checks['valid-scrollable-semantics'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('valid-scrollable-semantics') + .call(checkContext, node) ); }); @@ -101,7 +121,9 @@ describe('valid-scrollable-semantics', function() { var node = document.createElement('article'); fixture.appendChild(node); assert.isTrue( - checks['valid-scrollable-semantics'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('valid-scrollable-semantics') + .call(checkContext, node) ); }); @@ -109,7 +131,9 @@ describe('valid-scrollable-semantics', function() { var node = document.createElement('aside'); fixture.appendChild(node); assert.isTrue( - checks['valid-scrollable-semantics'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('valid-scrollable-semantics') + .call(checkContext, node) ); }); }); diff --git a/test/checks/color/color-contrast.js b/test/checks/color/color-contrast.js index d02ae80aa9..6ddff6fc3e 100644 --- a/test/checks/color/color-contrast.js +++ b/test/checks/color/color-contrast.js @@ -7,7 +7,7 @@ describe('color-contrast', function() { var shadowSupported = axe.testUtils.shadowSupport.v1; var shadowCheckSetup = axe.testUtils.shadowCheckSetup; var checkContext = axe.testUtils.MockCheckContext(); - var contrastEvaluate = checks['color-contrast'].evaluate; + var contrastEvaluate = axe.testUtils.getCheckEvaluate('color-contrast'); afterEach(function() { fixture.innerHTML = ''; diff --git a/test/checks/color/link-in-text-block.js b/test/checks/color/link-in-text-block.js index 78dddeb267..ce4f7e2baa 100644 --- a/test/checks/color/link-in-text-block.js +++ b/test/checks/color/link-in-text-block.js @@ -99,7 +99,9 @@ describe('link-in-text-block', function() { } ); assert.isTrue( - checks['link-in-text-block'].evaluate.call(checkContext, linkElm) + axe.testUtils + .getCheckEvaluate('link-in-text-block') + .call(checkContext, linkElm) ); }); @@ -122,7 +124,9 @@ describe('link-in-text-block', function() { var linkElm = document.getElementById('link'); assert.isTrue( - checks['link-in-text-block'].evaluate.call(checkContext, linkElm) + axe.testUtils + .getCheckEvaluate('link-in-text-block') + .call(checkContext, linkElm) ); }); @@ -139,7 +143,9 @@ describe('link-in-text-block', function() { axe.testUtils.flatTreeSetup(fixture); assert.isTrue( - checks['link-in-text-block'].evaluate.call(checkContext, linkElm) + axe.testUtils + .getCheckEvaluate('link-in-text-block') + .call(checkContext, linkElm) ); } ); @@ -158,7 +164,9 @@ describe('link-in-text-block', function() { var linkElm = div.querySelector('a'); assert.isTrue( - checks['link-in-text-block'].evaluate.call(checkContext, linkElm) + axe.testUtils + .getCheckEvaluate('link-in-text-block') + .call(checkContext, linkElm) ); } ); @@ -181,7 +189,9 @@ describe('link-in-text-block', function() { } ); assert.isUndefined( - checks['link-in-text-block'].evaluate.call(checkContext, linkElm) + axe.testUtils + .getCheckEvaluate('link-in-text-block') + .call(checkContext, linkElm) ); }); @@ -195,7 +205,9 @@ describe('link-in-text-block', function() { } ); assert.isFalse( - checks['link-in-text-block'].evaluate.call(checkContext, linkElm) + axe.testUtils + .getCheckEvaluate('link-in-text-block') + .call(checkContext, linkElm) ); }); @@ -211,7 +223,9 @@ describe('link-in-text-block', function() { } ); assert.isUndefined( - checks['link-in-text-block'].evaluate.call(checkContext, linkElm) + axe.testUtils + .getCheckEvaluate('link-in-text-block') + .call(checkContext, linkElm) ); assert.equal(checkContext._data.messageKey, 'bgContrast'); }); @@ -228,7 +242,9 @@ describe('link-in-text-block', function() { } ); assert.isFalse( - checks['link-in-text-block'].evaluate.call(checkContext, linkElm) + axe.testUtils + .getCheckEvaluate('link-in-text-block') + .call(checkContext, linkElm) ); }); @@ -245,7 +261,9 @@ describe('link-in-text-block', function() { } ); assert.isUndefined( - checks['link-in-text-block'].evaluate.call(checkContext, linkElm) + axe.testUtils + .getCheckEvaluate('link-in-text-block') + .call(checkContext, linkElm) ); assert.equal(checkContext._data.messageKey, 'bgImage'); }); @@ -264,7 +282,9 @@ describe('link-in-text-block', function() { } ); assert.isUndefined( - checks['link-in-text-block'].evaluate.call(checkContext, linkElm) + axe.testUtils + .getCheckEvaluate('link-in-text-block') + .call(checkContext, linkElm) ); assert.equal(checkContext._relatedNodes[0], linkElm.parentNode); }); diff --git a/test/checks/forms/autocomplete-appropriate.js b/test/checks/forms/autocomplete-appropriate.js index e2229ac7c6..42b0b3467c 100644 --- a/test/checks/forms/autocomplete-appropriate.js +++ b/test/checks/forms/autocomplete-appropriate.js @@ -4,7 +4,7 @@ describe('autocomplete-appropriate', function() { var fixture = document.getElementById('fixture'); var checkSetup = axe.testUtils.checkSetup; var checkContext = axe.testUtils.MockCheckContext(); - var evaluate = checks['autocomplete-appropriate'].evaluate; + var evaluate = axe.testUtils.getCheckEvaluate('autocomplete-appropriate'); beforeEach(function() { axe._tree = undefined; diff --git a/test/checks/forms/autocomplete-valid.js b/test/checks/forms/autocomplete-valid.js index c2ecdb6a28..f2a6028aef 100644 --- a/test/checks/forms/autocomplete-valid.js +++ b/test/checks/forms/autocomplete-valid.js @@ -4,7 +4,7 @@ describe('autocomplete-valid', function() { var fixture = document.getElementById('fixture'); var checkSetup = axe.testUtils.checkSetup; var checkContext = axe.testUtils.MockCheckContext(); - var evaluate = checks['autocomplete-valid'].evaluate; + var evaluate = axe.testUtils.getCheckEvaluate('autocomplete-valid'); afterEach(function() { fixture.innerHTML = ''; diff --git a/test/checks/keyboard/focusable-no-name.js b/test/checks/keyboard/focusable-no-name.js index d62d33d87a..2d32e8bddf 100644 --- a/test/checks/keyboard/focusable-no-name.js +++ b/test/checks/keyboard/focusable-no-name.js @@ -17,21 +17,27 @@ describe('focusable-no-name', function() { it('should pass if tabindex < 0', function() { var params = checkSetup('<a href="#" tabindex="-1" id="target"></a>'); assert.isFalse( - checks['focusable-no-name'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('focusable-no-name') + .apply(checkContext, params) ); }); it('should pass element is not natively focusable', function() { var params = checkSetup('<span role="link" href="#" id="target"></span>'); assert.isFalse( - checks['focusable-no-name'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('focusable-no-name') + .apply(checkContext, params) ); }); it('should fail if element is tabbable with no name - native', function() { var params = checkSetup('<a href="#" id="target"></a>'); assert.isTrue( - checks['focusable-no-name'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('focusable-no-name') + .apply(checkContext, params) ); }); @@ -40,14 +46,18 @@ describe('focusable-no-name', function() { '<span tabindex="0" role="link" id="target" href="#"></spam>' ); assert.isTrue( - checks['focusable-no-name'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('focusable-no-name') + .apply(checkContext, params) ); }); it('should pass if the element is tabbable but has an accessible name', function() { var params = checkSetup('<a href="#" title="Hello" id="target"></a>'); assert.isFalse( - checks['focusable-no-name'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('focusable-no-name') + .apply(checkContext, params) ); }); @@ -60,7 +70,9 @@ describe('focusable-no-name', function() { ); assert.isFalse( - checks['focusable-no-name'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('focusable-no-name') + .apply(checkContext, params) ); } ); diff --git a/test/checks/keyboard/page-has-elm.js b/test/checks/keyboard/page-has-elm.js index ee4deacdfe..cd1d476b82 100644 --- a/test/checks/keyboard/page-has-elm.js +++ b/test/checks/keyboard/page-has-elm.js @@ -14,23 +14,23 @@ describe('page-has-*', function() { }); describe('evaluate', function() { - var evaluate = checks['page-has-main'].evaluate; + var evaluate = axe.testUtils.getCheckEvaluate('page-has-main'); it('throws if there is no selector', function() { assert.throws(function() { var params = checkSetup('<div id="target">No role</div>', undefined); - evaluate.apply(checkContext, params); + checks['page-has-main'].evaluate.apply(checkContext, params); }); assert.throws(function() { var params = checkSetup('<div id="target">No role</div>', {}); - evaluate.apply(checkContext, params); + checks['page-has-main'].evaluate.apply(checkContext, params); }); assert.throws(function() { var badOptions = { selector: [] }; var params = checkSetup('<div id="target">No role</div>', badOptions); - evaluate.apply(checkContext, params); + checks['page-has-main'].evaluate.apply(checkContext, params); }); }); diff --git a/test/checks/label/duplicate-img-label.js b/test/checks/label/duplicate-img-label.js index fb2fc34ed7..d99097c747 100644 --- a/test/checks/label/duplicate-img-label.js +++ b/test/checks/label/duplicate-img-label.js @@ -14,7 +14,7 @@ describe('duplicate-img-label', function() { fixture.innerHTML = '<button><img id="target" alt="Plain text"></button>'; var node = fixture.querySelector('#target'); axe.testUtils.flatTreeSetup(fixture); - var result = checks['duplicate-img-label'].evaluate( + var result = axe.testUtils.getCheckEvaluate('duplicate-img-label')( node, undefined, axe.utils.getNodeFromTree(node) @@ -28,7 +28,7 @@ describe('duplicate-img-label', function() { var node = fixture.querySelector('#target'); axe.testUtils.flatTreeSetup(fixture); assert.isFalse( - checks['duplicate-img-label'].evaluate( + axe.testUtils.getCheckEvaluate('duplicate-img-label')( node, undefined, axe.utils.getNodeFromTree(node) @@ -42,7 +42,7 @@ describe('duplicate-img-label', function() { var node = fixture.querySelector('#target'); axe.testUtils.flatTreeSetup(fixture); assert.isFalse( - checks['duplicate-img-label'].evaluate( + axe.testUtils.getCheckEvaluate('duplicate-img-label')( node, undefined, axe.utils.getNodeFromTree(node) @@ -56,7 +56,7 @@ describe('duplicate-img-label', function() { var node = fixture.querySelector('#target'); axe.testUtils.flatTreeSetup(fixture); assert.isTrue( - checks['duplicate-img-label'].evaluate( + axe.testUtils.getCheckEvaluate('duplicate-img-label')( node, undefined, axe.utils.getNodeFromTree(node) @@ -70,7 +70,7 @@ describe('duplicate-img-label', function() { var node = fixture.querySelector('#target'); axe.testUtils.flatTreeSetup(fixture); assert.isTrue( - checks['duplicate-img-label'].evaluate( + axe.testUtils.getCheckEvaluate('duplicate-img-label')( node, undefined, axe.utils.getNodeFromTree(node) @@ -83,7 +83,7 @@ describe('duplicate-img-label', function() { var node = fixture.querySelector('#target'); axe.testUtils.flatTreeSetup(fixture); assert.isFalse( - checks['duplicate-img-label'].evaluate( + axe.testUtils.getCheckEvaluate('duplicate-img-label')( node, undefined, axe.utils.getNodeFromTree(node) @@ -97,7 +97,7 @@ describe('duplicate-img-label', function() { var node = fixture.querySelector('#target'); axe.testUtils.flatTreeSetup(fixture); assert.isFalse( - checks['duplicate-img-label'].evaluate( + axe.testUtils.getCheckEvaluate('duplicate-img-label')( node, undefined, axe.utils.getNodeFromTree(node) @@ -111,7 +111,7 @@ describe('duplicate-img-label', function() { var node = fixture.querySelector('#target'); axe.testUtils.flatTreeSetup(fixture); assert.isFalse( - checks['duplicate-img-label'].evaluate( + axe.testUtils.getCheckEvaluate('duplicate-img-label')( node, undefined, axe.utils.getNodeFromTree(node) @@ -131,7 +131,7 @@ describe('duplicate-img-label', function() { axe.testUtils.flatTreeSetup(fixture); var node = shadow.querySelector('#target'); assert.isTrue( - checks['duplicate-img-label'].evaluate( + axe.testUtils.getCheckEvaluate('duplicate-img-label')( node, undefined, axe.utils.getNodeFromTree(node) @@ -153,7 +153,7 @@ describe('duplicate-img-label', function() { axe.testUtils.flatTreeSetup(fixture); var node = button.querySelector('#target'); assert.isTrue( - checks['duplicate-img-label'].evaluate( + axe.testUtils.getCheckEvaluate('duplicate-img-label')( node, undefined, axe.utils.getNodeFromTree(node) @@ -173,7 +173,9 @@ describe('duplicate-img-label', function() { var checkArgs = checkSetup(button); assert.isFalse( - checks['duplicate-img-label'].evaluate.apply(null, checkArgs) + axe.testUtils + .getCheckEvaluate('duplicate-img-label') + .apply(null, checkArgs) ); } ); diff --git a/test/checks/label/explicit.js b/test/checks/label/explicit.js index 5ce06ac86f..bcef42a19b 100644 --- a/test/checks/label/explicit.js +++ b/test/checks/label/explicit.js @@ -12,7 +12,7 @@ describe('explicit-label', function() { it('should return false if an empty label is present', function() { fixtureSetup('<label for="target"></label><input type="text" id="target">'); var node = fixture.querySelector('#target'); - assert.isFalse(checks['explicit-label'].evaluate(node)); + assert.isFalse(axe.testUtils.getCheckEvaluate('explicit-label')(node)); }); it('should return true if a non-empty label is present', function() { @@ -20,7 +20,7 @@ describe('explicit-label', function() { '<label for="target">Text</label><input type="text" id="target">' ); var node = fixture.querySelector('#target'); - assert.isTrue(checks['explicit-label'].evaluate(node)); + assert.isTrue(axe.testUtils.getCheckEvaluate('explicit-label')(node)); }); it('should return true if an invisible non-empty label is present, to defer to hidden-explicit-label', function() { @@ -28,7 +28,7 @@ describe('explicit-label', function() { '<label for="target" style="display: none;">Text</label><input type="text" id="target">' ); var node = fixture.querySelector('#target'); - assert.isTrue(checks['explicit-label'].evaluate(node)); + assert.isTrue(axe.testUtils.getCheckEvaluate('explicit-label')(node)); }); it('should return false if a label is not present', function() { @@ -36,7 +36,7 @@ describe('explicit-label', function() { node.type = 'text'; fixtureSetup(node); - assert.isFalse(checks['explicit-label'].evaluate(node)); + assert.isFalse(axe.testUtils.getCheckEvaluate('explicit-label')(node)); }); (shadowSupport.v1 ? it : xit)( @@ -49,7 +49,7 @@ describe('explicit-label', function() { fixtureSetup(root); var node = shadow.querySelector('#target'); - assert.isTrue(checks['explicit-label'].evaluate(node)); + assert.isTrue(axe.testUtils.getCheckEvaluate('explicit-label')(node)); } ); @@ -64,7 +64,7 @@ describe('explicit-label', function() { fixtureSetup(root); var node = shadow.querySelector('#target'); - assert.isTrue(checks['explicit-label'].evaluate(node)); + assert.isTrue(axe.testUtils.getCheckEvaluate('explicit-label')(node)); } ); @@ -78,7 +78,7 @@ describe('explicit-label', function() { fixtureSetup(root); var node = shadow.querySelector('#target'); - assert.isFalse(checks['explicit-label'].evaluate(node)); + assert.isFalse(axe.testUtils.getCheckEvaluate('explicit-label')(node)); } ); @@ -93,7 +93,7 @@ describe('explicit-label', function() { fixtureSetup(root); var node = root.querySelector('#target'); - assert.isFalse(checks['explicit-label'].evaluate(node)); + assert.isFalse(axe.testUtils.getCheckEvaluate('explicit-label')(node)); } ); }); diff --git a/test/checks/label/help-same-as-label.js b/test/checks/label/help-same-as-label.js index 145383dab6..117c03dde1 100644 --- a/test/checks/label/help-same-as-label.js +++ b/test/checks/label/help-same-as-label.js @@ -17,7 +17,7 @@ describe('help-same-as-label', function() { fixture.appendChild(node); axe.testUtils.flatTreeSetup(fixture); assert.isTrue( - checks['help-same-as-label'].evaluate( + axe.testUtils.getCheckEvaluate('help-same-as-label')( node, undefined, axe.utils.getNodeFromTree(node) @@ -39,7 +39,7 @@ describe('help-same-as-label', function() { axe.testUtils.flatTreeSetup(fixture); assert.isTrue( - checks['help-same-as-label'].evaluate( + axe.testUtils.getCheckEvaluate('help-same-as-label')( node, undefined, axe.utils.getNodeFromTree(node) @@ -56,7 +56,7 @@ describe('help-same-as-label', function() { axe.testUtils.flatTreeSetup(fixture); assert.isFalse( - checks['help-same-as-label'].evaluate( + axe.testUtils.getCheckEvaluate('help-same-as-label')( node, undefined, axe.utils.getNodeFromTree(node) @@ -77,7 +77,7 @@ describe('help-same-as-label', function() { axe.testUtils.flatTreeSetup(fixture); assert.isFalse( - checks['help-same-as-label'].evaluate( + axe.testUtils.getCheckEvaluate('help-same-as-label')( node, undefined, axe.utils.getNodeFromTree(node) diff --git a/test/checks/label/implicit.js b/test/checks/label/implicit.js index e2100cd50e..5514600da6 100644 --- a/test/checks/label/implicit.js +++ b/test/checks/label/implicit.js @@ -13,7 +13,9 @@ describe('implicit-label', function() { fixtureSetup('<label><input type="text" id="target"></label>'); var node = fixture.querySelector('#target'); var virtualNode = axe.utils.getNodeFromTree(node); - assert.isFalse(checks['implicit-label'].evaluate(node, {}, virtualNode)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('implicit-label')(node, {}, virtualNode) + ); }); it('should return false if an invisible non-empty label is present', function() { @@ -22,14 +24,18 @@ describe('implicit-label', function() { ); var node = fixture.querySelector('#target'); var virtualNode = axe.utils.getNodeFromTree(node); - assert.isFalse(checks['implicit-label'].evaluate(node, {}, virtualNode)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('implicit-label')(node, {}, virtualNode) + ); }); it('should return true if a non-empty label is present', function() { fixtureSetup('<label>Text <input type="text" id="target"></label>'); var node = fixture.querySelector('#target'); var virtualNode = axe.utils.getNodeFromTree(node); - assert.isTrue(checks['implicit-label'].evaluate(node, {}, virtualNode)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('implicit-label')(node, {}, virtualNode) + ); }); it('should return false if a label is not present', function() { @@ -38,6 +44,8 @@ describe('implicit-label', function() { fixtureSetup(node); var virtualNode = axe.utils.getNodeFromTree(node); - assert.isFalse(checks['implicit-label'].evaluate(node, {}, virtualNode)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('implicit-label')(node, {}, virtualNode) + ); }); }); diff --git a/test/checks/label/multiple-label.js b/test/checks/label/multiple-label.js index 74903bcfe0..464b1a9fa5 100644 --- a/test/checks/label/multiple-label.js +++ b/test/checks/label/multiple-label.js @@ -17,7 +17,9 @@ describe('multiple-label', function() { var l1 = fixture.querySelector('#l1'); var l2 = fixture.querySelector('#l2'); assert.isUndefined( - checks['multiple-label'].evaluate.call(checkContext, target) + axe.testUtils + .getCheckEvaluate('multiple-label') + .call(checkContext, target) ); assert.deepEqual(checkContext._relatedNodes, [l1, l2]); }); @@ -28,7 +30,9 @@ describe('multiple-label', function() { var target = fixture.querySelector('#target'); var l1 = fixture.querySelector('#l1'); assert.isFalse( - checks['multiple-label'].evaluate.call(checkContext, target) + axe.testUtils + .getCheckEvaluate('multiple-label') + .call(checkContext, target) ); assert.deepEqual(checkContext._relatedNodes, [l1]); }); @@ -44,7 +48,9 @@ describe('multiple-label', function() { var l2 = fixture.querySelector('#l2'); var l3 = fixture.querySelector('#l3'); assert.isUndefined( - checks['multiple-label'].evaluate.call(checkContext, target) + axe.testUtils + .getCheckEvaluate('multiple-label') + .call(checkContext, target) ); assert.deepEqual(checkContext._relatedNodes, [l1, l2, l3]); }); @@ -55,7 +61,9 @@ describe('multiple-label', function() { var target = fixture.querySelector('#target'); var l1 = fixture.querySelector('#l1'); assert.isFalse( - checks['multiple-label'].evaluate.call(checkContext, target) + axe.testUtils + .getCheckEvaluate('multiple-label') + .call(checkContext, target) ); assert.deepEqual(checkContext._relatedNodes, [l1]); }); @@ -68,7 +76,9 @@ describe('multiple-label', function() { var target = fixture.querySelector('#test-input2'); var l1 = fixture.querySelector('#l1'); assert.isFalse( - checks['multiple-label'].evaluate.call(checkContext, target) + axe.testUtils + .getCheckEvaluate('multiple-label') + .call(checkContext, target) ); assert.deepEqual(checkContext._relatedNodes, [l1]); }); @@ -83,7 +93,9 @@ describe('multiple-label', function() { var l1 = fixture.querySelector('#l1'); var l3 = fixture.querySelector('#l3'); assert.isUndefined( - checks['multiple-label'].evaluate.call(checkContext, target) + axe.testUtils + .getCheckEvaluate('multiple-label') + .call(checkContext, target) ); assert.deepEqual(checkContext._relatedNodes, [l1, l3]); }); @@ -95,7 +107,9 @@ describe('multiple-label', function() { var l1 = fixture.querySelector('#l1'); var l2 = fixture.querySelector('#l2'); assert.isUndefined( - checks['multiple-label'].evaluate.call(checkContext, target) + axe.testUtils + .getCheckEvaluate('multiple-label') + .call(checkContext, target) ); assert.deepEqual(checkContext._relatedNodes, [l1, l2]); }); @@ -105,7 +119,9 @@ describe('multiple-label', function() { '<label for="target">Foo<input type="text" id="target"></label>'; var target = fixture.querySelector('#target'); assert.isFalse( - checks['multiple-label'].evaluate.call(checkContext, target) + axe.testUtils + .getCheckEvaluate('multiple-label') + .call(checkContext, target) ); }); @@ -119,7 +135,9 @@ describe('multiple-label', function() { fixture.innerHTML += '<label for="A">Sally</label>'; var target = fixture.querySelector('#A'); assert.isUndefined( - checks['multiple-label'].evaluate.call(checkContext, target) + axe.testUtils + .getCheckEvaluate('multiple-label') + .call(checkContext, target) ); }); @@ -133,7 +151,9 @@ describe('multiple-label', function() { fixture.innerHTML += '<label for="B" aria-hidden="true">Sally</label>'; var target = fixture.querySelector('#B'); assert.isUndefined( - checks['multiple-label'].evaluate.call(checkContext, target) + axe.testUtils + .getCheckEvaluate('multiple-label') + .call(checkContext, target) ); }); @@ -143,7 +163,9 @@ describe('multiple-label', function() { fixture.innerHTML += '<label for="D" id="E">Excuse</label>'; var target = fixture.querySelector('#D'); assert.isFalse( - checks['multiple-label'].evaluate.call(checkContext, target) + axe.testUtils + .getCheckEvaluate('multiple-label') + .call(checkContext, target) ); }); @@ -154,7 +176,9 @@ describe('multiple-label', function() { fixture.innerHTML += '<label for="F" id="H">Excuse</label>'; var target = fixture.querySelector('#F'); assert.isFalse( - checks['multiple-label'].evaluate.call(checkContext, target) + axe.testUtils + .getCheckEvaluate('multiple-label') + .call(checkContext, target) ); }); @@ -164,7 +188,9 @@ describe('multiple-label', function() { fixture.innerHTML += '<label for="I" >Excuse</label>'; var target = fixture.querySelector('#I'); assert.isFalse( - checks['multiple-label'].evaluate.call(checkContext, target) + axe.testUtils + .getCheckEvaluate('multiple-label') + .call(checkContext, target) ); }); @@ -179,7 +205,9 @@ describe('multiple-label', function() { fixture.innerHTML += '<label for="J" id="P">Sally</label>'; var target = fixture.querySelector('#J'); assert.isUndefined( - checks['multiple-label'].evaluate.call(checkContext, target) + axe.testUtils + .getCheckEvaluate('multiple-label') + .call(checkContext, target) ); }); @@ -189,7 +217,9 @@ describe('multiple-label', function() { fixture.innerHTML += '<label for="Q" >Excuse</label>'; var target = fixture.querySelector('#Q'); assert.isUndefined( - checks['multiple-label'].evaluate.call(checkContext, target) + axe.testUtils + .getCheckEvaluate('multiple-label') + .call(checkContext, target) ); }); @@ -203,10 +233,9 @@ describe('multiple-label', function() { '<input id="myinput" /><label for="myinput">normal</label>'; var shadowTarget = target.shadowRoot; assert.isFalse( - checks['multiple-label'].evaluate.call( - checkContext, - shadowTarget.firstElementChild - ) + axe.testUtils + .getCheckEvaluate('multiple-label') + .call(checkContext, shadowTarget.firstElementChild) ); } ); @@ -223,10 +252,9 @@ describe('multiple-label', function() { shadowRoot.innerHTML = innerHTML; var shadowTarget = target.shadowRoot; assert.isFalse( - checks['multiple-label'].evaluate.call( - checkContext, - shadowTarget.firstElementChild - ) + axe.testUtils + .getCheckEvaluate('multiple-label') + .call(checkContext, shadowTarget.firstElementChild) ); } ); @@ -243,10 +271,9 @@ describe('multiple-label', function() { shadowRoot.innerHTML = innerHTML; var shadowTarget = target.shadowRoot; assert.isUndefined( - checks['multiple-label'].evaluate.call( - checkContext, - shadowTarget.firstElementChild - ) + axe.testUtils + .getCheckEvaluate('multiple-label') + .call(checkContext, shadowTarget.firstElementChild) ); } ); diff --git a/test/checks/label/title-only.js b/test/checks/label/title-only.js index 0cd86e175d..f2cd766551 100644 --- a/test/checks/label/title-only.js +++ b/test/checks/label/title-only.js @@ -18,7 +18,7 @@ describe('title-only', function() { axe.testUtils.flatTreeSetup(fixture); assert.isTrue( - checks['title-only'].evaluate( + axe.testUtils.getCheckEvaluate('title-only')( node, undefined, axe.utils.getNodeFromTree(node) @@ -26,7 +26,7 @@ describe('title-only', function() { ); node.setAttribute('aria-label', 'woop'); assert.isFalse( - checks['title-only'].evaluate( + axe.testUtils.getCheckEvaluate('title-only')( node, undefined, axe.utils.getNodeFromTree(node) @@ -48,7 +48,7 @@ describe('title-only', function() { axe.testUtils.flatTreeSetup(fixture); assert.isTrue( - checks['title-only'].evaluate( + axe.testUtils.getCheckEvaluate('title-only')( node, undefined, axe.utils.getNodeFromTree(node) @@ -56,7 +56,7 @@ describe('title-only', function() { ); node.setAttribute('aria-label', 'woop'); assert.isFalse( - checks['title-only'].evaluate( + axe.testUtils.getCheckEvaluate('title-only')( node, undefined, axe.utils.getNodeFromTree(node) diff --git a/test/checks/landmarks/landmark-is-unique.js b/test/checks/landmarks/landmark-is-unique.js index 89b896a947..049615deee 100644 --- a/test/checks/landmarks/landmark-is-unique.js +++ b/test/checks/landmarks/landmark-is-unique.js @@ -25,12 +25,9 @@ describe('landmark-is-unique', function() { axe._tree = axe.utils.getFlattenedTree(fixture); var virtualNode = axe.utils.getNodeFromTree(axe._tree[0], node); assert.isTrue( - checks['landmark-is-unique'].evaluate.call( - checkContext, - node, - {}, - virtualNode - ) + axe.testUtils + .getCheckEvaluate('landmark-is-unique') + .call(checkContext, node, {}, virtualNode) ); assert.deepEqual(checkContext._data, expectedData); assert.deepEqual(checkContext._relatedNodes, [node]); @@ -46,12 +43,9 @@ describe('landmark-is-unique', function() { axe._tree = axe.utils.getFlattenedTree(fixture); var virtualNode = axe.utils.getNodeFromTree(axe._tree[0], node); assert.isTrue( - checks['landmark-is-unique'].evaluate.call( - checkContext, - node, - {}, - virtualNode - ) + axe.testUtils + .getCheckEvaluate('landmark-is-unique') + .call(checkContext, node, {}, virtualNode) ); assert.deepEqual(checkContext._data, expectedData); assert.deepEqual(checkContext._relatedNodes, [node]); diff --git a/test/checks/language/has-lang.js b/test/checks/language/has-lang.js index d37ca4a4f6..ef07a2a7d2 100644 --- a/test/checks/language/has-lang.js +++ b/test/checks/language/has-lang.js @@ -4,7 +4,7 @@ describe('has-lang', function() { var fixture = document.getElementById('fixture'); var checkContext = axe.testUtils.MockCheckContext(); var checkSetup = axe.testUtils.checkSetup; - var hasLangEvaluate = checks['has-lang'].evaluate; + var hasLangEvaluate = axe.testUtils.getCheckEvaluate('has-lang'); afterEach(function() { fixture.innerHTML = ''; diff --git a/test/checks/language/valid-lang.js b/test/checks/language/valid-lang.js index e69289cd17..705376920f 100644 --- a/test/checks/language/valid-lang.js +++ b/test/checks/language/valid-lang.js @@ -17,11 +17,9 @@ describe('valid-lang', function() { fixture.appendChild(node); assert.isFalse( - checks['valid-lang'].evaluate.call(checkContext, node, [ - 'blah', - 'blah', - 'woohoo' - ]) + axe.testUtils + .getCheckEvaluate('valid-lang') + .call(checkContext, node, ['blah', 'blah', 'woohoo']) ); }); @@ -31,11 +29,9 @@ describe('valid-lang', function() { fixture.appendChild(node); assert.isFalse( - checks['valid-lang'].evaluate.call(checkContext, node, [ - 'blah', - 'blah', - 'wOohoo' - ]) + axe.testUtils + .getCheckEvaluate('valid-lang') + .call(checkContext, node, ['blah', 'blah', 'wOohoo']) ); }); @@ -44,7 +40,11 @@ describe('valid-lang', function() { node.setAttribute('lang', 'en-FOO'); fixture.appendChild(node); - assert.isTrue(checks['valid-lang'].evaluate.call(checkContext, node, [])); + assert.isTrue( + axe.testUtils + .getCheckEvaluate('valid-lang') + .call(checkContext, node, []) + ); assert.deepEqual(checkContext._data, ['lang="en-FOO"']); }); @@ -53,7 +53,9 @@ describe('valid-lang', function() { node.setAttribute('lang', 'en-US'); fixture.appendChild(node); - assert.isFalse(checks['valid-lang'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('valid-lang').call(checkContext, node) + ); }); it('should return true if the language is badly formatted', function() { @@ -62,7 +64,9 @@ describe('valid-lang', function() { fixture.appendChild(node); assert.isTrue( - checks['valid-lang'].evaluate.call(checkContext, node, ['en']) + axe.testUtils + .getCheckEvaluate('valid-lang') + .call(checkContext, node, ['en']) ); assert.deepEqual(checkContext._data, ['lang="en_US"']); }); @@ -73,7 +77,9 @@ describe('valid-lang', function() { fixture.appendChild(node); assert.isFalse( - checks['valid-lang'].evaluate.call(checkContext, node, ['en']) + axe.testUtils + .getCheckEvaluate('valid-lang') + .call(checkContext, node, ['en']) ); }); }); @@ -85,11 +91,9 @@ describe('valid-lang', function() { fixture.appendChild(node); assert.isFalse( - checks['valid-lang'].evaluate.call(checkContext, node, [ - 'blah', - 'blah', - 'woohoo' - ]) + axe.testUtils + .getCheckEvaluate('valid-lang') + .call(checkContext, node, ['blah', 'blah', 'woohoo']) ); }); @@ -99,11 +103,9 @@ describe('valid-lang', function() { fixture.appendChild(node); assert.isFalse( - checks['valid-lang'].evaluate.call(checkContext, node, [ - 'blah', - 'blah', - 'wOohoo' - ]) + axe.testUtils + .getCheckEvaluate('valid-lang') + .call(checkContext, node, ['blah', 'blah', 'wOohoo']) ); }); @@ -112,7 +114,11 @@ describe('valid-lang', function() { node.setAttribute('xml:lang', 'en-FOO'); fixture.appendChild(node); - assert.isTrue(checks['valid-lang'].evaluate.call(checkContext, node, [])); + assert.isTrue( + axe.testUtils + .getCheckEvaluate('valid-lang') + .call(checkContext, node, []) + ); assert.deepEqual(checkContext._data, ['xml:lang="en-FOO"']); }); @@ -121,7 +127,9 @@ describe('valid-lang', function() { node.setAttribute('xml:lang', 'en-US'); fixture.appendChild(node); - assert.isFalse(checks['valid-lang'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('valid-lang').call(checkContext, node) + ); }); it('should return true if the language is badly formatted', function() { @@ -130,7 +138,9 @@ describe('valid-lang', function() { fixture.appendChild(node); assert.isTrue( - checks['valid-lang'].evaluate.call(checkContext, node, ['en']) + axe.testUtils + .getCheckEvaluate('valid-lang') + .call(checkContext, node, ['en']) ); assert.deepEqual(checkContext._data, ['xml:lang="en_US"']); }); @@ -141,7 +151,9 @@ describe('valid-lang', function() { fixture.appendChild(node); assert.isFalse( - checks['valid-lang'].evaluate.call(checkContext, node, ['en']) + axe.testUtils + .getCheckEvaluate('valid-lang') + .call(checkContext, node, ['en']) ); }); }); diff --git a/test/checks/language/xml-lang-mismatch.js b/test/checks/language/xml-lang-mismatch.js index 3e6b396f5d..4463c38250 100644 --- a/test/checks/language/xml-lang-mismatch.js +++ b/test/checks/language/xml-lang-mismatch.js @@ -23,7 +23,9 @@ describe('xml-lang-mismatch', function() { node.setAttribute('lang', 'en'); fixture.appendChild(node); assert.isFalse( - checks['xml-lang-mismatch'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('xml-lang-mismatch') + .call(checkContext, node) ); }); @@ -31,7 +33,9 @@ describe('xml-lang-mismatch', function() { node.setAttribute('xml:lang', 'fr-FR'); fixture.appendChild(node); assert.isFalse( - checks['xml-lang-mismatch'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('xml-lang-mismatch') + .call(checkContext, node) ); }); @@ -39,7 +43,9 @@ describe('xml-lang-mismatch', function() { node.setAttribute('lang', undefined); fixture.appendChild(node); assert.isFalse( - checks['xml-lang-mismatch'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('xml-lang-mismatch') + .call(checkContext, node) ); }); @@ -48,7 +54,9 @@ describe('xml-lang-mismatch', function() { node.setAttribute('xml:lang', 'en-GB'); fixture.appendChild(node); assert.isTrue( - checks['xml-lang-mismatch'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('xml-lang-mismatch') + .call(checkContext, node) ); }); @@ -57,7 +65,9 @@ describe('xml-lang-mismatch', function() { node.setAttribute('xml:lang', 'en-US'); fixture.appendChild(node); assert.isTrue( - checks['xml-lang-mismatch'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('xml-lang-mismatch') + .call(checkContext, node) ); }); @@ -65,7 +75,9 @@ describe('xml-lang-mismatch', function() { node.setAttribute('lang', 'en'); node.setAttribute('xml:lang', 'fr-FR'); fixture.appendChild(node); - var actual = checks['xml-lang-mismatch'].evaluate.call(checkContext, node); + var actual = axe.testUtils + .getCheckEvaluate('xml-lang-mismatch') + .call(checkContext, node); assert.isFalse(actual); }); }); diff --git a/test/checks/lists/only-dlitems.js b/test/checks/lists/only-dlitems.js index af5aaba532..b45c837f99 100644 --- a/test/checks/lists/only-dlitems.js +++ b/test/checks/lists/only-dlitems.js @@ -17,7 +17,9 @@ describe('only-dlitems', function() { var checkArgs = checkSetup('<dl id="target"></dl>'); assert.isFalse( - checks['only-dlitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-dlitems') + .apply(checkContext, checkArgs) ); }); @@ -25,7 +27,9 @@ describe('only-dlitems', function() { var checkArgs = checkSetup('<dl id="target"><p>Not a list</p></dl>'); assert.isTrue( - checks['only-dlitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-dlitems') + .apply(checkContext, checkArgs) ); assert.deepEqual(checkContext._relatedNodes, [fixture.querySelector('p')]); }); @@ -36,7 +40,9 @@ describe('only-dlitems', function() { ); assert.isTrue( - checks['only-dlitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-dlitems') + .apply(checkContext, checkArgs) ); }); @@ -46,7 +52,9 @@ describe('only-dlitems', function() { ); assert.isTrue( - checks['only-dlitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-dlitems') + .apply(checkContext, checkArgs) ); }); @@ -54,7 +62,9 @@ describe('only-dlitems', function() { var checkArgs = checkSetup('<dl id="target"><dd>A list</dd></dl>'); assert.isFalse( - checks['only-dlitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-dlitems') + .apply(checkContext, checkArgs) ); }); @@ -63,7 +73,9 @@ describe('only-dlitems', function() { '<dl id="target"><link rel="stylesheet" href="theme.css"><dt role="menuitem">A list</dt></dl>' ); assert.isTrue( - checks['only-dlitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-dlitems') + .apply(checkContext, checkArgs) ); }); @@ -71,7 +83,9 @@ describe('only-dlitems', function() { var checkArgs = checkSetup('<dl id="target"><dt>A list</dt></dl>'); assert.isFalse( - checks['only-dlitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-dlitems') + .apply(checkContext, checkArgs) ); }); @@ -81,7 +95,9 @@ describe('only-dlitems', function() { ); assert.isFalse( - checks['only-dlitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-dlitems') + .apply(checkContext, checkArgs) ); }); @@ -91,7 +107,9 @@ describe('only-dlitems', function() { ); assert.isFalse( - checks['only-dlitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-dlitems') + .apply(checkContext, checkArgs) ); }); @@ -101,7 +119,9 @@ describe('only-dlitems', function() { ); assert.isFalse( - checks['only-dlitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-dlitems') + .apply(checkContext, checkArgs) ); }); @@ -111,7 +131,9 @@ describe('only-dlitems', function() { ); assert.isTrue( - checks['only-dlitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-dlitems') + .apply(checkContext, checkArgs) ); assert.deepEqual(checkContext._relatedNodes, [fixture.querySelector('p')]); }); @@ -122,7 +144,9 @@ describe('only-dlitems', function() { ); assert.isTrue( - checks['only-dlitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-dlitems') + .apply(checkContext, checkArgs) ); assert.deepEqual(checkContext._relatedNodes, []); }); @@ -136,7 +160,9 @@ describe('only-dlitems', function() { ); assert.isFalse( - checks['only-dlitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-dlitems') + .apply(checkContext, checkArgs) ); } ); @@ -147,7 +173,9 @@ describe('only-dlitems', function() { ); assert.isFalse( - checks['only-dlitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-dlitems') + .apply(checkContext, checkArgs) ); }); @@ -157,7 +185,9 @@ describe('only-dlitems', function() { ); assert.isFalse( - checks['only-dlitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-dlitems') + .apply(checkContext, checkArgs) ); }); @@ -167,7 +197,9 @@ describe('only-dlitems', function() { ); assert.isFalse( - checks['only-dlitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-dlitems') + .apply(checkContext, checkArgs) ); }); @@ -177,7 +209,9 @@ describe('only-dlitems', function() { ); assert.isFalse( - checks['only-dlitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-dlitems') + .apply(checkContext, checkArgs) ); }); @@ -186,7 +220,9 @@ describe('only-dlitems', function() { '<dl id="target"><div><dt>An item</dt><dd>A list</dd></div></dl>' ); assert.isFalse( - checks['only-dlitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-dlitems') + .apply(checkContext, checkArgs) ); }); @@ -195,7 +231,9 @@ describe('only-dlitems', function() { '<dl id="target"><div role="listitem"><dt>An item</dt><dd>A list</dd></div></dl>' ); assert.isTrue( - checks['only-dlitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-dlitems') + .apply(checkContext, checkArgs) ); }); @@ -204,14 +242,18 @@ describe('only-dlitems', function() { '<dl id="target"><div><dt>An item</dt><dd>A list</dd><p>Not a list</p></div></dl>' ); assert.isTrue( - checks['only-dlitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-dlitems') + .apply(checkContext, checkArgs) ); }); it('should return false if there is an empty div', function() { var checkArgs = checkSetup('<dl id="target"><div></div></dl>'); assert.isFalse( - checks['only-dlitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-dlitems') + .apply(checkContext, checkArgs) ); }); @@ -220,14 +262,18 @@ describe('only-dlitems', function() { '<dl id="target"> <dt>An item</dt> <dd>A list</dd> <h1 style="display:none">heading</h1> </dl>' ); assert.isFalse( - checks['only-dlitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-dlitems') + .apply(checkContext, checkArgs) ); }); it('should return true if there is a div with text', function() { var checkArgs = checkSetup('<dl id="target"><div>text</div></dl>'); assert.isTrue( - checks['only-dlitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-dlitems') + .apply(checkContext, checkArgs) ); }); @@ -236,14 +282,18 @@ describe('only-dlitems', function() { '<dl id="target"> <dt>An item</dt> <dd>A list</dd> <h1 style="visibility:hidden">heading</h1> </dl>' ); assert.isFalse( - checks['only-dlitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-dlitems') + .apply(checkContext, checkArgs) ); }); it('should return true if there is a div with non-dd / dt elements', function() { var checkArgs = checkSetup('<dl id="target"><div> <p>text</p> </div></dl>'); assert.isTrue( - checks['only-dlitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-dlitems') + .apply(checkContext, checkArgs) ); }); @@ -252,7 +302,9 @@ describe('only-dlitems', function() { '<dl id="target"> <dt>An item</dt> <dd>A list</dd> <h1 aria-hidden="true">heading</h1> </dl>' ); assert.isFalse( - checks['only-dlitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-dlitems') + .apply(checkContext, checkArgs) ); }); @@ -261,7 +313,9 @@ describe('only-dlitems', function() { '<dl id="target"> <dt>An item</dt> <dd>A list</dd> <h1 aria-hidden="false">heading</h1> </dl>' ); assert.isTrue( - checks['only-dlitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-dlitems') + .apply(checkContext, checkArgs) ); }); @@ -275,7 +329,9 @@ describe('only-dlitems', function() { var checkArgs = checkSetup(node, 'dl'); assert.isFalse( - checks['only-dlitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-dlitems') + .apply(checkContext, checkArgs) ); } ); @@ -290,7 +346,9 @@ describe('only-dlitems', function() { var checkArgs = checkSetup(node, 'dl'); assert.isTrue( - checks['only-dlitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-dlitems') + .apply(checkContext, checkArgs) ); } ); diff --git a/test/checks/lists/only-listitems.js b/test/checks/lists/only-listitems.js index 6042122c3e..e20c829931 100644 --- a/test/checks/lists/only-listitems.js +++ b/test/checks/lists/only-listitems.js @@ -17,7 +17,9 @@ describe('only-listitems', function() { var checkArgs = checkSetup('<ol id="target"></ol>'); assert.isFalse( - checks['only-listitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-listitems') + .apply(checkContext, checkArgs) ); }); @@ -25,7 +27,9 @@ describe('only-listitems', function() { var checkArgs = checkSetup('<ol id="target"> </ol>'); assert.isFalse( - checks['only-listitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-listitems') + .apply(checkContext, checkArgs) ); }); @@ -33,7 +37,9 @@ describe('only-listitems', function() { var checkArgs = checkSetup('<ol id="target"><li>Item</li> </ol>'); assert.isFalse( - checks['only-listitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-listitems') + .apply(checkContext, checkArgs) ); }); @@ -43,7 +49,9 @@ describe('only-listitems', function() { ); assert.isFalse( - checks['only-listitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-listitems') + .apply(checkContext, checkArgs) ); }); @@ -53,7 +61,9 @@ describe('only-listitems', function() { ); assert.isFalse( - checks['only-listitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-listitems') + .apply(checkContext, checkArgs) ); }); @@ -63,7 +73,9 @@ describe('only-listitems', function() { ); assert.isFalse( - checks['only-listitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-listitems') + .apply(checkContext, checkArgs) ); }); @@ -71,7 +83,9 @@ describe('only-listitems', function() { var checkArgs = checkSetup('<ol id="target"><li>Item</li>Not an item</ol>'); assert.isTrue( - checks['only-listitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-listitems') + .apply(checkContext, checkArgs) ); }); @@ -79,7 +93,9 @@ describe('only-listitems', function() { var checkArgs = checkSetup('<ol id="target"><p>Not a list</p></ol>'); assert.isTrue( - checks['only-listitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-listitems') + .apply(checkContext, checkArgs) ); assert.deepEqual(checkContext._relatedNodes, [fixture.querySelector('p')]); }); @@ -88,7 +104,9 @@ describe('only-listitems', function() { var checkArgs = checkSetup('<ol id="target"><li>A <i>list</i></li></ol>'); assert.isFalse( - checks['only-listitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-listitems') + .apply(checkContext, checkArgs) ); }); @@ -96,7 +114,9 @@ describe('only-listitems', function() { var checkArgs = checkSetup('<ol id="target"><li>A list</li></ol>'); assert.isFalse( - checks['only-listitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-listitems') + .apply(checkContext, checkArgs) ); }); @@ -106,7 +126,9 @@ describe('only-listitems', function() { ); assert.isTrue( - checks['only-listitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-listitems') + .apply(checkContext, checkArgs) ); assert.deepEqual(checkContext._relatedNodes, [fixture.querySelector('p')]); }); @@ -117,7 +139,9 @@ describe('only-listitems', function() { ); assert.isFalse( - checks['only-listitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-listitems') + .apply(checkContext, checkArgs) ); }); @@ -126,7 +150,9 @@ describe('only-listitems', function() { '<ol id="target"><li id="fail1" role="menuitem">Not a list item</li><li id="fail2" role="menuitem">Not a list item</li></ol>' ); assert.isTrue( - checks['only-listitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-listitems') + .apply(checkContext, checkArgs) ); assert.deepEqual(checkContext._data, { messageKey: 'roleNotValid', @@ -144,7 +170,9 @@ describe('only-listitems', function() { ); assert.isTrue( - checks['only-listitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-listitems') + .apply(checkContext, checkArgs) ); }); @@ -157,7 +185,9 @@ describe('only-listitems', function() { ); assert.isFalse( - checks['only-listitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-listitems') + .apply(checkContext, checkArgs) ); } ); @@ -168,7 +198,9 @@ describe('only-listitems', function() { ); assert.isFalse( - checks['only-listitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-listitems') + .apply(checkContext, checkArgs) ); }); @@ -178,7 +210,9 @@ describe('only-listitems', function() { ); assert.isFalse( - checks['only-listitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-listitems') + .apply(checkContext, checkArgs) ); }); @@ -188,7 +222,9 @@ describe('only-listitems', function() { ); assert.isFalse( - checks['only-listitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-listitems') + .apply(checkContext, checkArgs) ); }); @@ -198,7 +234,9 @@ describe('only-listitems', function() { ); assert.isFalse( - checks['only-listitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-listitems') + .apply(checkContext, checkArgs) ); }); @@ -207,7 +245,9 @@ describe('only-listitems', function() { '<ul id="target"> <li>An item</li> <h1 style="display:none">heading</h1> </ul>' ); assert.isFalse( - checks['only-listitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-listitems') + .apply(checkContext, checkArgs) ); }); @@ -216,7 +256,9 @@ describe('only-listitems', function() { '<ul id="target"> <li>An item</li> <h1 style="visibility:hidden">heading</h1> </ul>' ); assert.isFalse( - checks['only-listitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-listitems') + .apply(checkContext, checkArgs) ); }); @@ -225,7 +267,9 @@ describe('only-listitems', function() { '<ul id="target"> <li>An item</li> <h1 aria-hidden="true">heading</h1> </ul>' ); assert.isFalse( - checks['only-listitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-listitems') + .apply(checkContext, checkArgs) ); }); @@ -234,7 +278,9 @@ describe('only-listitems', function() { '<ul id="target"> <li>An item</li> <h1 aria-hidden="false">heading</h1> </ul>' ); assert.isTrue( - checks['only-listitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-listitems') + .apply(checkContext, checkArgs) ); }); @@ -248,7 +294,9 @@ describe('only-listitems', function() { var checkArgs = checkSetup(node, 'ul'); assert.isFalse( - checks['only-listitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-listitems') + .apply(checkContext, checkArgs) ); } ); @@ -263,7 +311,9 @@ describe('only-listitems', function() { var checkArgs = checkSetup(node, 'ul'); assert.isTrue( - checks['only-listitems'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('only-listitems') + .apply(checkContext, checkArgs) ); } ); diff --git a/test/checks/lists/structured-dlitems.js b/test/checks/lists/structured-dlitems.js index 546d2905bb..c7ae96b7ec 100644 --- a/test/checks/lists/structured-dlitems.js +++ b/test/checks/lists/structured-dlitems.js @@ -12,19 +12,29 @@ describe('structured-dlitems', function() { it('should return false if the list has no contents', function() { var checkArgs = checkSetup('<dl id="target"></dl>'); assert.isFalse( - checks['structured-dlitems'].evaluate.apply(null, checkArgs) + axe.testUtils + .getCheckEvaluate('structured-dlitems') + .apply(null, checkArgs) ); }); it('should return true if the list has only a dd', function() { var checkArgs = checkSetup('<dl id="target"><dd>A list</dd></dl>'); - assert.isTrue(checks['structured-dlitems'].evaluate.apply(null, checkArgs)); + assert.isTrue( + axe.testUtils + .getCheckEvaluate('structured-dlitems') + .apply(null, checkArgs) + ); }); it('should return true if the list has only a dt', function() { var checkArgs = checkSetup('<dl id="target"><dt>A list</dt></dl>'); - assert.isTrue(checks['structured-dlitems'].evaluate.apply(null, checkArgs)); + assert.isTrue( + axe.testUtils + .getCheckEvaluate('structured-dlitems') + .apply(null, checkArgs) + ); }); it('should return true if the list has dt and dd in the incorrect order', function() { @@ -32,7 +42,11 @@ describe('structured-dlitems', function() { '<dl id="target"><dd>A list</dd><dt>An item</dt></dl>' ); - assert.isTrue(checks['structured-dlitems'].evaluate.apply(null, checkArgs)); + assert.isTrue( + axe.testUtils + .getCheckEvaluate('structured-dlitems') + .apply(null, checkArgs) + ); }); it('should return true if the list has dt and dd in the correct order as non-child descendants', function() { @@ -40,7 +54,11 @@ describe('structured-dlitems', function() { '<dl id="target"><dd><dl><dt>An item</dt><dd>A list</dd></dl></dd></dl>' ); - assert.isTrue(checks['structured-dlitems'].evaluate.apply(null, checkArgs)); + assert.isTrue( + axe.testUtils + .getCheckEvaluate('structured-dlitems') + .apply(null, checkArgs) + ); }); it('should return false if the list has dt and dd in the correct order', function() { @@ -49,7 +67,9 @@ describe('structured-dlitems', function() { ); assert.isFalse( - checks['structured-dlitems'].evaluate.apply(null, checkArgs) + axe.testUtils + .getCheckEvaluate('structured-dlitems') + .apply(null, checkArgs) ); }); @@ -59,7 +79,9 @@ describe('structured-dlitems', function() { ); assert.isFalse( - checks['structured-dlitems'].evaluate.apply(null, checkArgs) + axe.testUtils + .getCheckEvaluate('structured-dlitems') + .apply(null, checkArgs) ); }); @@ -73,7 +95,9 @@ describe('structured-dlitems', function() { var checkArgs = checkSetup(node, 'dl'); assert.isFalse( - checks['structured-dlitems'].evaluate.apply(null, checkArgs) + axe.testUtils + .getCheckEvaluate('structured-dlitems') + .apply(null, checkArgs) ); } ); @@ -88,7 +112,9 @@ describe('structured-dlitems', function() { var checkArgs = checkSetup(node, 'dl'); assert.isTrue( - checks['structured-dlitems'].evaluate.apply(null, checkArgs) + axe.testUtils + .getCheckEvaluate('structured-dlitems') + .apply(null, checkArgs) ); } ); diff --git a/test/checks/media/frame-tested.js b/test/checks/media/frame-tested.js index 46ddbfe435..cec7e85efa 100644 --- a/test/checks/media/frame-tested.js +++ b/test/checks/media/frame-tested.js @@ -2,7 +2,7 @@ describe('frame-tested', function() { 'use strict'; var checkContext, iframe; - var checkEvaluate = checks['frame-tested'].evaluate; + var checkEvaluate = axe.testUtils.getCheckEvaluate('frame-tested'); var fixture = document.querySelector('#fixture'); beforeEach(function() { diff --git a/test/checks/mobile/meta-viewport-scale.js b/test/checks/mobile/meta-viewport-scale.js index 4b2137716f..58911d08be 100644 --- a/test/checks/mobile/meta-viewport-scale.js +++ b/test/checks/mobile/meta-viewport-scale.js @@ -14,7 +14,9 @@ describe('meta-viewport', function() { '<meta name="viewport" content="foo=bar, cats=dogs, user-scalable=no">'; var node = fixture.querySelector('meta'); - assert.isFalse(checks['meta-viewport'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('meta-viewport').call(checkContext, node) + ); assert.deepEqual(checkContext._data, 'user-scalable=no'); }); @@ -23,7 +25,9 @@ describe('meta-viewport', function() { '<meta name="viewport" content="foo=bar, cats=dogs, user-scalable=no, more-stuff=ok">'; var node = fixture.querySelector('meta'); - assert.isFalse(checks['meta-viewport'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('meta-viewport').call(checkContext, node) + ); }); it('should return true on user-scalable=yes', function() { @@ -31,19 +35,23 @@ describe('meta-viewport', function() { '<meta name="viewport" content="foo=bar, cats=dogs, user-scalable=yes, more-stuff=ok">'; var node = fixture.querySelector('meta'); - assert.isTrue(checks['meta-viewport'].evaluate(node)); + assert.isTrue(axe.testUtils.getCheckEvaluate('meta-viewport')(node)); }); it('should return false on maximum-scale=yes (translates to 1)', function() { fixture.innerHTML = '<meta name="viewport" content="maximum-scale=yes">'; var node = fixture.querySelector('meta'); - assert.isFalse(checks['meta-viewport'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('meta-viewport').call(checkContext, node) + ); }); it('should return true on negative maximum scale (should be ignored)', function() { fixture.innerHTML = '<meta name="viewport" content="maximum-scale=-1">'; var node = fixture.querySelector('meta'); - assert.isTrue(checks['meta-viewport'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('meta-viewport').call(checkContext, node) + ); }); it('should return true if maximum-scale >= options.scaleMinimum', function() { @@ -52,16 +60,20 @@ describe('meta-viewport', function() { var node = fixture.querySelector('meta'); assert.isTrue( - checks['meta-viewport'].evaluate.call(checkContext, node, { - scaleMinimum: 2 - }) + axe.testUtils + .getCheckEvaluate('meta-viewport') + .call(checkContext, node, { + scaleMinimum: 2 + }) ); fixture.innerHTML = '<meta name="viewport" content="foo=bar, maximum-scale=3, cats=dogs">'; node = fixture.querySelector('meta'); - assert.isTrue(checks['meta-viewport'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('meta-viewport').call(checkContext, node) + ); }); it('should return false on maximum-scale < options.scaleMinimum', function() { @@ -70,9 +82,11 @@ describe('meta-viewport', function() { var node = fixture.querySelector('meta'); assert.isFalse( - checks['meta-viewport'].evaluate.call(checkContext, node, { - scaleMinimum: 2 - }) + axe.testUtils + .getCheckEvaluate('meta-viewport') + .call(checkContext, node, { + scaleMinimum: 2 + }) ); assert.deepEqual(checkContext._data, 'maximum-scale'); }); @@ -81,7 +95,9 @@ describe('meta-viewport', function() { fixture.innerHTML = '<meta name="viewport" content="foo=bar, cats=dogs">'; var node = fixture.querySelector('meta'); - assert.isTrue(checks['meta-viewport'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('meta-viewport').call(checkContext, node) + ); }); }); @@ -91,7 +107,9 @@ describe('meta-viewport', function() { '<meta name="viewport" content="foo=bar, cats=dogs, user-scalable=no">'; var node = fixture.querySelector('meta'); - assert.isFalse(checks['meta-viewport'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('meta-viewport').call(checkContext, node) + ); assert.deepEqual(checkContext._data, 'user-scalable=no'); }); @@ -100,7 +118,9 @@ describe('meta-viewport', function() { '<meta name="viewport" content="foo=bar, cats=dogs, user-scalable=no, more-stuff=ok">'; var node = fixture.querySelector('meta'); - assert.isFalse(checks['meta-viewport'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('meta-viewport').call(checkContext, node) + ); assert.deepEqual(checkContext._data, 'user-scalable=no'); }); @@ -109,7 +129,9 @@ describe('meta-viewport', function() { '<meta name="viewport" content="foo=bar, cats=dogs, user-scalable=yes, more-stuff=ok">'; var node = fixture.querySelector('meta'); - assert.isTrue(checks['meta-viewport'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('meta-viewport').call(checkContext, node) + ); }); it('should return true if maximum-scale >= options.scaleMinimum', function() { @@ -117,16 +139,20 @@ describe('meta-viewport', function() { '<meta name="viewport" content="foo=bar, maximum-scale=5, cats=dogs">'; var node = fixture.querySelector('meta'); - assert.isTrue(checks['meta-viewport'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('meta-viewport').call(checkContext, node) + ); fixture.innerHTML = '<meta name="viewport" content="foo=bar, maximum-scale=2, cats=dogs">'; node = fixture.querySelector('meta'); assert.isTrue( - checks['meta-viewport'].evaluate.call(checkContext, node, { - scaleMinimum: 2 - }) + axe.testUtils + .getCheckEvaluate('meta-viewport') + .call(checkContext, node, { + scaleMinimum: 2 + }) ); }); @@ -136,9 +162,11 @@ describe('meta-viewport', function() { var node = fixture.querySelector('meta'); assert.isFalse( - checks['meta-viewport'].evaluate.call(checkContext, node, { - scaleMinimum: 2 - }) + axe.testUtils + .getCheckEvaluate('meta-viewport') + .call(checkContext, node, { + scaleMinimum: 2 + }) ); }); @@ -146,7 +174,9 @@ describe('meta-viewport', function() { fixture.innerHTML = '<meta name="viewport" content="foo=bar, cats=dogs">'; var node = fixture.querySelector('meta'); - assert.isTrue(checks['meta-viewport'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('meta-viewport').call(checkContext, node) + ); }); }); }); diff --git a/test/checks/navigation/header-present.js b/test/checks/navigation/header-present.js index ecbfd4ecbc..8e534efa21 100644 --- a/test/checks/navigation/header-present.js +++ b/test/checks/navigation/header-present.js @@ -16,46 +16,62 @@ describe('header-present', function() { it('should return true if h1-h6 is found', function() { var params = checkSetup('<h1 id="target">Hi</h1>'); assert.isTrue( - checks['header-present'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('header-present') + .apply(checkContext, params) ); params = checkSetup('<h2 id="target">Hi</h2>'); assert.isTrue( - checks['header-present'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('header-present') + .apply(checkContext, params) ); params = checkSetup('<h3 id="target">Hi</h3>'); assert.isTrue( - checks['header-present'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('header-present') + .apply(checkContext, params) ); params = checkSetup('<h4 id="target">Hi</h4>'); assert.isTrue( - checks['header-present'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('header-present') + .apply(checkContext, params) ); params = checkSetup('<h5 id="target">Hi</h5>'); assert.isTrue( - checks['header-present'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('header-present') + .apply(checkContext, params) ); params = checkSetup('<h6 id="target">Hi</h6>'); assert.isTrue( - checks['header-present'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('header-present') + .apply(checkContext, params) ); }); it('should return true if role=heading is found', function() { var params = checkSetup('<div role="heading" id="target">Hi</div>'); assert.isTrue( - checks['header-present'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('header-present') + .apply(checkContext, params) ); }); it('should otherwise return false', function() { var params = checkSetup('<p id="target">Some stuff and stuff</p>'); assert.isFalse( - checks['header-present'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('header-present') + .apply(checkContext, params) ); }); @@ -64,7 +80,9 @@ describe('header-present', function() { function() { var params = shadowCheckSetup('<div id="target"><div>', '<h1></h1>'); assert.isTrue( - checks['header-present'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('header-present') + .apply(checkContext, params) ); } ); diff --git a/test/checks/navigation/heading-order.js b/test/checks/navigation/heading-order.js index cd89d61450..11db9b1979 100644 --- a/test/checks/navigation/heading-order.js +++ b/test/checks/navigation/heading-order.js @@ -14,28 +14,36 @@ describe('heading-order', function() { fixture.innerHTML = '<div role="aria-heading" aria-level="1" id="target">One</h1><h3>Three</h3>'; var node = fixture.querySelector('#target'); - assert.isTrue(checks['heading-order'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('heading-order').call(checkContext, node) + ); assert.equal(checkContext._data, 1); }); it('should store the header level as a number', function() { fixture.innerHTML = '<h1 id="target">One</h1><h3>Three</h3>'; var node = fixture.querySelector('#target'); - assert.isTrue(checks['heading-order'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('heading-order').call(checkContext, node) + ); assert.isNumber(checkContext._data); }); it('should store the correct header level for hn tags and return true', function() { fixture.innerHTML = '<h1 id="target">One</h1><h3>Three</h3>'; var node = fixture.querySelector('#target'); - assert.isTrue(checks['heading-order'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('heading-order').call(checkContext, node) + ); assert.equal(checkContext._data, 1); }); it('should return true and put nothing in data for non-headers', function() { fixture.innerHTML = '<div id="target">One</div><h3>Three</h3>'; var node = fixture.querySelector('#target'); - assert.isTrue(checks['heading-order'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('heading-order').call(checkContext, node) + ); assert.equal(checkContext._data, null); }); diff --git a/test/checks/navigation/internal-link-present.js b/test/checks/navigation/internal-link-present.js index 087b927dcb..07b6743fb8 100644 --- a/test/checks/navigation/internal-link-present.js +++ b/test/checks/navigation/internal-link-present.js @@ -16,28 +16,36 @@ describe('internal-link-present', function() { it('should return true when an internal link is found', function() { var params = checkSetup('<div id="target"><a href="#haha">hi</a></div>'); assert.isTrue( - checks['internal-link-present'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('internal-link-present') + .apply(checkContext, params) ); }); it('should return false when a hashbang URL was used', function() { var params = checkSetup('<div id="target"><a href="#!foo">hi</a></div>'); assert.isFalse( - checks['internal-link-present'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('internal-link-present') + .apply(checkContext, params) ); }); it('should return false when a hash route URL was used', function() { var params = checkSetup('<div id="target"><a href="#/home">hi</a></div>'); assert.isFalse( - checks['internal-link-present'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('internal-link-present') + .apply(checkContext, params) ); }); it('should return false when a hashbang + slash route URL was used', function() { var params = checkSetup('<div id="target"><a href="#!/home">hi</a></div>'); assert.isFalse( - checks['internal-link-present'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('internal-link-present') + .apply(checkContext, params) ); }); @@ -46,7 +54,9 @@ describe('internal-link-present', function() { '<div id="target"><a href="http://www.deque.com/#haha">hi</a></div>' ); assert.isFalse( - checks['internal-link-present'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('internal-link-present') + .apply(checkContext, params) ); }); @@ -58,7 +68,9 @@ describe('internal-link-present', function() { '<a href="#haha">hi</a>' ); assert.isTrue( - checks['internal-link-present'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('internal-link-present') + .apply(checkContext, params) ); } ); diff --git a/test/checks/navigation/meta-refresh.js b/test/checks/navigation/meta-refresh.js index 99c8311112..be2a03693c 100644 --- a/test/checks/navigation/meta-refresh.js +++ b/test/checks/navigation/meta-refresh.js @@ -11,7 +11,7 @@ describe('meta-refresh', function() { fixture.innerHTML = '<meta name="refresh" content="300">'; var node = fixture.querySelector('meta'); - assert.isFalse(checks['meta-refresh'].evaluate(node)); + assert.isFalse(axe.testUtils.getCheckEvaluate('meta-refresh')(node)); }); it('should return false if content value does not start with 0', function() { @@ -19,7 +19,7 @@ describe('meta-refresh', function() { '<meta name="refresh" content="300;URL=something.html">'; var node = fixture.querySelector('meta'); - assert.isFalse(checks['meta-refresh'].evaluate(node)); + assert.isFalse(axe.testUtils.getCheckEvaluate('meta-refresh')(node)); }); it('should return true if content value starts with 0', function() { @@ -27,21 +27,21 @@ describe('meta-refresh', function() { '<meta name="refresh" content="0;URL=something.html">'; var node = fixture.querySelector('meta'); - assert.isTrue(checks['meta-refresh'].evaluate(node)); + assert.isTrue(axe.testUtils.getCheckEvaluate('meta-refresh')(node)); }); it('should return true if content value is 0', function() { fixture.innerHTML = '<meta name="refresh" content="0">'; var node = fixture.querySelector('meta'); - assert.isTrue(checks['meta-refresh'].evaluate(node)); + assert.isTrue(axe.testUtils.getCheckEvaluate('meta-refresh')(node)); }); it('should return true if there is no content value', function() { fixture.innerHTML = '<meta name="refresh">'; var node = fixture.querySelector('meta'); - assert.isTrue(checks['meta-refresh'].evaluate(node)); + assert.isTrue(axe.testUtils.getCheckEvaluate('meta-refresh')(node)); }); }); }); diff --git a/test/checks/navigation/p-as-heading.js b/test/checks/navigation/p-as-heading.js index 3161b04c5f..02dcadb6a7 100644 --- a/test/checks/navigation/p-as-heading.js +++ b/test/checks/navigation/p-as-heading.js @@ -22,12 +22,16 @@ describe('p-as-heading', function() { '<p id="target">elm 1</p> <p>elm 2</p>', testOptions ); - assert.isTrue(checks['p-as-heading'].evaluate.apply(checkContext, params)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('p-as-heading').apply(checkContext, params) + ); }); it('returns true if there is no p element following it', function() { var params = checkSetup('<p id="target">lone elm</p>', testOptions); - assert.isTrue(checks['p-as-heading'].evaluate.apply(checkContext, params)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('p-as-heading').apply(checkContext, params) + ); }); it('returns false if the font-weight is heavier', function() { @@ -35,7 +39,9 @@ describe('p-as-heading', function() { '<p id="target" style="font-weight:bold">elm 1</p>' + '<p>elm 2</p>', testOptions ); - assert.isFalse(checks['p-as-heading'].evaluate.apply(checkContext, params)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('p-as-heading').apply(checkContext, params) + ); }); it('returns false if the font-size is bigger', function() { @@ -43,7 +49,9 @@ describe('p-as-heading', function() { '<p id="target" style="font-size:150%">elm 1</p> <p>elm 2</p>', testOptions ); - assert.isFalse(checks['p-as-heading'].evaluate.apply(checkContext, params)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('p-as-heading').apply(checkContext, params) + ); }); it('returns false if the fake heading is italic and the text is not', function() { @@ -51,7 +59,9 @@ describe('p-as-heading', function() { '<p id="target" style="font-style:italic">elm 1</p> <p>elm 2</p>', testOptions ); - assert.isFalse(checks['p-as-heading'].evaluate.apply(checkContext, params)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('p-as-heading').apply(checkContext, params) + ); }); it('returns true if both texts are bold, italic and larger', function() { @@ -60,7 +70,9 @@ describe('p-as-heading', function() { '<p style="font: italic bold 120% bold">elm 2</p>', testOptions ); - assert.isTrue(checks['p-as-heading'].evaluate.apply(checkContext, params)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('p-as-heading').apply(checkContext, params) + ); }); it('considers styles of elements inside the paragraph', function() { @@ -68,7 +80,9 @@ describe('p-as-heading', function() { '<p id="target"><b>elm 1</b></p> <p>elm 2</p>', testOptions ); - assert.isFalse(checks['p-as-heading'].evaluate.apply(checkContext, params)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('p-as-heading').apply(checkContext, params) + ); }); it('ignores empty child element for style', function() { @@ -76,7 +90,9 @@ describe('p-as-heading', function() { '<p id="target"><span> </span><b>elm 1</b></p> <p>elm 2</p>', testOptions ); - assert.isFalse(checks['p-as-heading'].evaluate.apply(checkContext, params)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('p-as-heading').apply(checkContext, params) + ); }); it('considers styles of elements that do not contain all the text', function() { @@ -84,7 +100,9 @@ describe('p-as-heading', function() { '<p id="target"><b>elm</b> 1</p> <p>elm 2</p>', testOptions ); - assert.isTrue(checks['p-as-heading'].evaluate.apply(checkContext, params)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('p-as-heading').apply(checkContext, params) + ); }); it('returns undefined instead of false if the element is inside a blockquote', function() { @@ -95,7 +113,7 @@ describe('p-as-heading', function() { testOptions ); assert.isUndefined( - checks['p-as-heading'].evaluate.apply(checkContext, params) + axe.testUtils.getCheckEvaluate('p-as-heading').apply(checkContext, params) ); }); @@ -106,7 +124,9 @@ describe('p-as-heading', function() { '</blockquote>', testOptions ); - assert.isTrue(checks['p-as-heading'].evaluate.apply(checkContext, params)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('p-as-heading').apply(checkContext, params) + ); }); it('returns undefined if a previous sibling has a similar font-weight', function() { @@ -117,7 +137,7 @@ describe('p-as-heading', function() { testOptions ); assert.isUndefined( - checks['p-as-heading'].evaluate.apply(checkContext, params) + axe.testUtils.getCheckEvaluate('p-as-heading').apply(checkContext, params) ); }); @@ -130,7 +150,9 @@ describe('p-as-heading', function() { options ); assert.isTrue( - checks['p-as-heading'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('p-as-heading') + .apply(checkContext, params) ); }); @@ -144,7 +166,9 @@ describe('p-as-heading', function() { options ); assert.isTrue( - checks['p-as-heading'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('p-as-heading') + .apply(checkContext, params) ); }); @@ -159,7 +183,9 @@ describe('p-as-heading', function() { options ); assert.isFalse( - checks['p-as-heading'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('p-as-heading') + .apply(checkContext, params) ); }); @@ -173,7 +199,9 @@ describe('p-as-heading', function() { options ); assert.isTrue( - checks['p-as-heading'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('p-as-heading') + .apply(checkContext, params) ); }); @@ -187,7 +215,9 @@ describe('p-as-heading', function() { options ); assert.isFalse( - checks['p-as-heading'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('p-as-heading') + .apply(checkContext, params) ); }); @@ -206,7 +236,9 @@ describe('p-as-heading', function() { options ); assert.isTrue( - checks['p-as-heading'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('p-as-heading') + .apply(checkContext, params) ); }); }); @@ -220,7 +252,9 @@ describe('p-as-heading', function() { testOptions ); assert.isUndefined( - checks['p-as-heading'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('p-as-heading') + .apply(checkContext, params) ); } ); @@ -234,7 +268,9 @@ describe('p-as-heading', function() { testOptions ); assert.isTrue( - checks['p-as-heading'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('p-as-heading') + .apply(checkContext, params) ); } ); diff --git a/test/checks/navigation/skip-link.js b/test/checks/navigation/skip-link.js index 1b9eac0a27..a3e687e36a 100644 --- a/test/checks/navigation/skip-link.js +++ b/test/checks/navigation/skip-link.js @@ -12,21 +12,21 @@ describe('skip-link', function() { '<a href="#target">Click Here</a><h1 id="target">Introduction</h1>'; axe._tree = axe.utils.getFlattenedTree(fixture); var node = fixture.querySelector('a'); - assert.isTrue(checks['skip-link'].evaluate(node)); + assert.isTrue(axe.testUtils.getCheckEvaluate('skip-link')(node)); }); it('should return true if the href points to an element with an name', function() { fixture.innerHTML = '<a href="#target">Click Here</a><a name="target"></a>'; axe._tree = axe.utils.getFlattenedTree(fixture); var node = fixture.querySelector('a'); - assert.isTrue(checks['skip-link'].evaluate(node)); + assert.isTrue(axe.testUtils.getCheckEvaluate('skip-link')(node)); }); it('should return false if the href points to a non-existent element', function() { fixture.innerHTML = '<a href="#spacecamp">Click Here</a><h1 id="mainheader">Introduction</h1>'; var node = fixture.querySelector('a'); - assert.isFalse(checks['skip-link'].evaluate(node)); + assert.isFalse(axe.testUtils.getCheckEvaluate('skip-link')(node)); }); it('should return undefined if the target has display:none', function() { @@ -34,7 +34,7 @@ describe('skip-link', function() { '<a href="#target">Click Here</a>' + '<h1 id="target" style="display:none">Introduction</h1>'; var node = fixture.querySelector('a'); - assert.isUndefined(checks['skip-link'].evaluate(node)); + assert.isUndefined(axe.testUtils.getCheckEvaluate('skip-link')(node)); }); it('should return undefined if the target has aria-hidden=true', function() { @@ -42,6 +42,6 @@ describe('skip-link', function() { '<a href="#target">Click Here</a>' + '<h1 id="target" aria-hidden="true">Introduction</h1>'; var node = fixture.querySelector('a'); - assert.isUndefined(checks['skip-link'].evaluate(node)); + assert.isUndefined(axe.testUtils.getCheckEvaluate('skip-link')(node)); }); }); diff --git a/test/checks/navigation/unique-frame-title.js b/test/checks/navigation/unique-frame-title.js index 0d2727f7fb..d406392885 100644 --- a/test/checks/navigation/unique-frame-title.js +++ b/test/checks/navigation/unique-frame-title.js @@ -9,7 +9,7 @@ describe('unique-frame-title', function() { it('should log title to data and return true', function() { assert.isTrue( - checks['unique-frame-title'].evaluate.call(checkContext, { + axe.testUtils.getCheckEvaluate('unique-frame-title').call(checkContext, { title: 'bananas' }) ); @@ -17,14 +17,14 @@ describe('unique-frame-title', function() { }); it('should convert text to lower case', function() { - checks['unique-frame-title'].evaluate.call(checkContext, { + axe.testUtils.getCheckEvaluate('unique-frame-title').call(checkContext, { title: '\t app\t \n \rle ' }); assert.equal(checkContext._data, 'app le'); }); it('should take out space differences', function() { - checks['unique-frame-title'].evaluate.call(checkContext, { + axe.testUtils.getCheckEvaluate('unique-frame-title').call(checkContext, { title: 'APPLE' }); assert.equal(checkContext._data, 'apple'); diff --git a/test/checks/parser/duplicate-id.js b/test/checks/parser/duplicate-id.js index 71b5216db8..dab33a38bc 100644 --- a/test/checks/parser/duplicate-id.js +++ b/test/checks/parser/duplicate-id.js @@ -14,7 +14,9 @@ describe('duplicate-id', function() { it('should return true if there is only one element with an ID', function() { fixture.innerHTML = '<div id="target"></div>'; var node = fixture.querySelector('#target'); - assert.isTrue(checks['duplicate-id'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('duplicate-id').call(checkContext, node) + ); assert.equal(checkContext._data, node.id); assert.deepEqual(checkContext._relatedNodes, []); }); @@ -22,7 +24,9 @@ describe('duplicate-id', function() { it('should return false if there are multiple elements with an ID', function() { fixture.innerHTML = '<div id="target"></div><div id="target"></div>'; var node = fixture.querySelector('#target'); - assert.isFalse(checks['duplicate-id'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('duplicate-id').call(checkContext, node) + ); assert.equal(checkContext._data, node.id); assert.deepEqual(checkContext._relatedNodes, [node.nextSibling]); }); @@ -43,7 +47,9 @@ describe('duplicate-id', function() { '<div data-testelm="1" id=""></div><div data-testelm="2" id=""></div>'; var node = fixture.querySelector('[data-testelm="1"]'); - assert.isTrue(checks['duplicate-id'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('duplicate-id').call(checkContext, node) + ); }); it('should allow overwrote ids', function() { @@ -53,7 +59,9 @@ describe('duplicate-id', function() { '</label></form>'; var node = fixture.querySelector('[data-testelm="1"]'); - assert.isTrue(checks['duplicate-id'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('duplicate-id').call(checkContext, node) + ); }); (shadowSupport.v1 ? it : xit)( @@ -66,7 +74,9 @@ describe('duplicate-id', function() { var node = shadow.querySelector('span'); fixture.appendChild(div); - assert.isFalse(checks['duplicate-id'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('duplicate-id').call(checkContext, node) + ); assert.lengthOf(checkContext._relatedNodes, 1); assert.deepEqual(checkContext._relatedNodes, [shadow.querySelector('p')]); } @@ -81,7 +91,9 @@ describe('duplicate-id', function() { shadow.innerHTML = '<span id="target"></span>'; fixture.appendChild(node); - assert.isTrue(checks['duplicate-id'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('duplicate-id').call(checkContext, node) + ); assert.lengthOf(checkContext._relatedNodes, 0); } ); @@ -96,7 +108,9 @@ describe('duplicate-id', function() { var node = shadow.querySelector('#target'); fixture.appendChild(div); - assert.isTrue(checks['duplicate-id'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('duplicate-id').call(checkContext, node) + ); assert.lengthOf(checkContext._relatedNodes, 0); } ); @@ -111,7 +125,9 @@ describe('duplicate-id', function() { shadow.innerHTML = '<span id="target"><slot></slot></span>'; fixture.appendChild(node); - assert.isFalse(checks['duplicate-id'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('duplicate-id').call(checkContext, node) + ); assert.lengthOf(checkContext._relatedNodes, 1); assert.deepEqual(checkContext._relatedNodes, [node.querySelector('p')]); } diff --git a/test/checks/shared/aria-label.js b/test/checks/shared/aria-label.js index 8c057a58e2..357be8d07a 100644 --- a/test/checks/shared/aria-label.js +++ b/test/checks/shared/aria-label.js @@ -10,23 +10,31 @@ describe('aria-label', function() { it('should return true if an aria-label is present', function() { var checkArgs = checkSetup('<div id="target" aria-label="woohoo"></div>'); - assert.isTrue(checks['aria-label'].evaluate.apply(null, checkArgs)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('aria-label').apply(null, checkArgs) + ); }); it('should return false if an aria-label is not present', function() { var checkArgs = checkSetup('<div id="target"></div>'); - assert.isFalse(checks['aria-label'].evaluate.apply(null, checkArgs)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('aria-label').apply(null, checkArgs) + ); }); it('should return false if an aria-label is present, but empty', function() { var checkArgs = checkSetup('<div id="target" aria-label=" "></div>'); - assert.isFalse(checks['aria-label'].evaluate.apply(null, checkArgs)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('aria-label').apply(null, checkArgs) + ); }); it('should collapse whitespace', function() { var checkArgs = checkSetup( '<div id="target" aria-label=" \t \n \r \t \t\r\n "></div>' ); - assert.isFalse(checks['aria-label'].evaluate.apply(null, checkArgs)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('aria-label').apply(null, checkArgs) + ); }); }); diff --git a/test/checks/shared/aria-labelledby.js b/test/checks/shared/aria-labelledby.js index 1148474e1e..ea0d411708 100644 --- a/test/checks/shared/aria-labelledby.js +++ b/test/checks/shared/aria-labelledby.js @@ -17,7 +17,7 @@ describe('aria-labelledby', function() { target.innerHTML = 'bananas'; fixtureSetup(target); - assert.isTrue(checks['aria-labelledby'].evaluate(node)); + assert.isTrue(axe.testUtils.getCheckEvaluate('aria-labelledby')(node)); }); it('should return true if only one element referenced by aria-labelledby has visible text', function() { @@ -29,14 +29,14 @@ describe('aria-labelledby', function() { target.innerHTML = 'bananas'; fixtureSetup(target); - assert.isTrue(checks['aria-labelledby'].evaluate(node)); + assert.isTrue(axe.testUtils.getCheckEvaluate('aria-labelledby')(node)); }); it('should return false if an aria-labelledby is not present', function() { var node = document.createElement('div'); fixtureSetup(node); - assert.isFalse(checks['aria-labelledby'].evaluate(node)); + assert.isFalse(axe.testUtils.getCheckEvaluate('aria-labelledby')(node)); }); it('should return true if an aria-labelledby is present that references hidden elements', function() { @@ -49,7 +49,7 @@ describe('aria-labelledby', function() { target.innerHTML = 'bananas'; fixtureSetup(target); - assert.isTrue(checks['aria-labelledby'].evaluate(node)); + assert.isTrue(axe.testUtils.getCheckEvaluate('aria-labelledby')(node)); }); it('should return false if an aria-labelledby is present, but references an element with only hidden content', function() { @@ -61,7 +61,7 @@ describe('aria-labelledby', function() { target.innerHTML = '<span style="display: none">bananas</span>'; fixtureSetup(target); - assert.isFalse(checks['aria-labelledby'].evaluate(node)); + assert.isFalse(axe.testUtils.getCheckEvaluate('aria-labelledby')(node)); }); it('should return true if an aria-labelledby is present that references elements with has aria-hidden=true', function() { @@ -74,7 +74,7 @@ describe('aria-labelledby', function() { target.innerHTML = 'bananas'; fixtureSetup(target); - assert.isTrue(checks['aria-labelledby'].evaluate(node)); + assert.isTrue(axe.testUtils.getCheckEvaluate('aria-labelledby')(node)); }); it('should return false if an aria-labelledby is present that references elements with has aria-hidden=true in the content', function() { @@ -86,6 +86,6 @@ describe('aria-labelledby', function() { target.innerHTML = '<span aria-hidden="true">bananas</span>'; fixtureSetup(target); - assert.isFalse(checks['aria-labelledby'].evaluate(node)); + assert.isFalse(axe.testUtils.getCheckEvaluate('aria-labelledby')(node)); }); }); diff --git a/test/checks/shared/button-has-visible-text.js b/test/checks/shared/button-has-visible-text.js index 2d09987f92..17a33e98ef 100644 --- a/test/checks/shared/button-has-visible-text.js +++ b/test/checks/shared/button-has-visible-text.js @@ -14,7 +14,9 @@ describe('button-has-visible-text', function() { var checkArgs = checkSetup('<button></button>', 'button'); assert.isFalse( - checks['button-has-visible-text'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('button-has-visible-text') + .apply(checkContext, checkArgs) ); }); @@ -22,7 +24,9 @@ describe('button-has-visible-text', function() { var checkArgs = checkSetup('<button>Name</button>', 'button'); assert.isTrue( - checks['button-has-visible-text'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('button-has-visible-text') + .apply(checkContext, checkArgs) ); assert.deepEqual(checkContext._data, 'Name'); }); @@ -34,7 +38,9 @@ describe('button-has-visible-text', function() { ); assert.isTrue( - checks['button-has-visible-text'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('button-has-visible-text') + .apply(checkContext, checkArgs) ); assert.deepEqual(checkContext._data, 'Text'); }); @@ -43,7 +49,9 @@ describe('button-has-visible-text', function() { var checkArgs = checkSetup('<div role="button"></div>', '[role=button]'); assert.isFalse( - checks['button-has-visible-text'].evaluate.apply(checkContext, checkArgs) + axe.testUtils + .getCheckEvaluate('button-has-visible-text') + .apply(checkContext, checkArgs) ); }); }); diff --git a/test/checks/shared/doc-has-title.js b/test/checks/shared/doc-has-title.js index cf2628dc4d..d79cff0369 100644 --- a/test/checks/shared/doc-has-title.js +++ b/test/checks/shared/doc-has-title.js @@ -10,14 +10,14 @@ describe('doc-has-title', function() { it('should return false if title is empty', function() { var orig = document.title; document.title = ''; - assert.isFalse(checks['doc-has-title'].evaluate(fixture)); + assert.isFalse(axe.testUtils.getCheckEvaluate('doc-has-title')(fixture)); document.title = orig; }); it('should return false if title contains only whitespace', function() { var orig = document.title; document.title = ' \t\r\n \n \r \n\t'; - assert.isFalse(checks['doc-has-title'].evaluate(fixture)); + assert.isFalse(axe.testUtils.getCheckEvaluate('doc-has-title')(fixture)); document.title = orig; }); @@ -25,7 +25,7 @@ describe('doc-has-title', function() { var orig = document.title; document.title = 'Bananas'; - assert.isTrue(checks['doc-has-title'].evaluate(fixture)); + assert.isTrue(axe.testUtils.getCheckEvaluate('doc-has-title')(fixture)); document.title = orig; }); }); diff --git a/test/checks/shared/has-alt.js b/test/checks/shared/has-alt.js index 28cb1ffa6a..4527ed1d32 100644 --- a/test/checks/shared/has-alt.js +++ b/test/checks/shared/has-alt.js @@ -10,21 +10,29 @@ describe('has-alt', function() { it('should return true if an alt is present', function() { var checkArgs = checkSetup('<img id="target" alt="woohoo" />'); - assert.isTrue(checks['has-alt'].evaluate.apply(null, checkArgs)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('has-alt').apply(null, checkArgs) + ); }); it('should return true if an empty alt is present', function() { var checkArgs = checkSetup('<img id="target" alt="" />'); - assert.isTrue(checks['has-alt'].evaluate.apply(null, checkArgs)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('has-alt').apply(null, checkArgs) + ); }); it('should return true if a null alt is present', function() { var checkArgs = checkSetup('<img id="target" alt />'); - assert.isTrue(checks['has-alt'].evaluate.apply(null, checkArgs)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('has-alt').apply(null, checkArgs) + ); }); it('should return false if an alt is not present', function() { var checkArgs = checkSetup('<img id="target" />'); - assert.isFalse(checks['has-alt'].evaluate.apply(null, checkArgs)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('has-alt').apply(null, checkArgs) + ); }); }); diff --git a/test/checks/shared/has-visible-text.js b/test/checks/shared/has-visible-text.js index 2baf330555..dcb2cfe649 100644 --- a/test/checks/shared/has-visible-text.js +++ b/test/checks/shared/has-visible-text.js @@ -15,7 +15,9 @@ describe('has-visible-text', function() { it('should return false if there is no visible text', function() { var params = checkSetup('<object id="target"></object>'); assert.isFalse( - checks['has-visible-text'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('has-visible-text') + .apply(checkContext, params) ); }); @@ -24,14 +26,18 @@ describe('has-visible-text', function() { '<object id="target"><span style="display:none">hello!</span></object>' ); assert.isFalse( - checks['has-visible-text'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('has-visible-text') + .apply(checkContext, params) ); }); it('should return true if there is visible text', function() { var params = checkSetup('<object id="target">hello!</object>'); assert.isTrue( - checks['has-visible-text'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('has-visible-text') + .apply(checkContext, params) ); }); }); diff --git a/test/checks/shared/is-on-screen.js b/test/checks/shared/is-on-screen.js index 16126f072d..6dcb0be70b 100644 --- a/test/checks/shared/is-on-screen.js +++ b/test/checks/shared/is-on-screen.js @@ -7,21 +7,21 @@ describe('is-on-screen', function() { fixture.innerHTML = '<div id="target">elm</div>'; var node = fixture.querySelector('#target'); - assert.isTrue(checks['is-on-screen'].evaluate(node)); + assert.isTrue(axe.testUtils.getCheckEvaluate('is-on-screen')(node)); }); it('should return true for aria-hidden=true elements', function() { fixture.innerHTML = '<div id="target" aria-hidden="true">elm</div>'; var node = fixture.querySelector('#target'); - assert.isTrue(checks['is-on-screen'].evaluate(node)); + assert.isTrue(axe.testUtils.getCheckEvaluate('is-on-screen')(node)); }); it('should return false for display:none elements', function() { fixture.innerHTML = '<div id="target" style="display:none">elm</div>'; var node = fixture.querySelector('#target'); - assert.isFalse(checks['is-on-screen'].evaluate(node)); + assert.isFalse(axe.testUtils.getCheckEvaluate('is-on-screen')(node)); }); it('should return false for off screen elements', function() { @@ -29,6 +29,6 @@ describe('is-on-screen', function() { '<div id="target" style="position:absolute; top:-10000px">elm</div>'; var node = fixture.querySelector('#target'); - assert.isFalse(checks['is-on-screen'].evaluate(node)); + assert.isFalse(axe.testUtils.getCheckEvaluate('is-on-screen')(node)); }); }); diff --git a/test/checks/shared/non-empty-alt.js b/test/checks/shared/non-empty-alt.js index 7c84d1fc6d..53a92b50bd 100644 --- a/test/checks/shared/non-empty-alt.js +++ b/test/checks/shared/non-empty-alt.js @@ -3,34 +3,29 @@ describe('non-empty-alt', function() { var fixture = document.getElementById('fixture'); var checkSetup = axe.testUtils.checkSetup; + var checkEvaluate = axe.testUtils.getCheckEvaluate('non-empty-alt'); afterEach(function() { fixture.innerHTML = ''; }); it('should return true if an alt is present', function() { - var params = checkSetup('<img id="target" alt="woohoo" />', { - attribute: 'alt' - }); - assert.isTrue(checks['non-empty-alt'].evaluate.apply(null, params)); + var params = checkSetup('<img id="target" alt="woohoo" />'); + assert.isTrue(checkEvaluate.apply(null, params)); }); it('should return false if an alt is not present', function() { - var params = checkSetup('<img id="target" />', { attribute: 'alt' }); - assert.isFalse(checks['non-empty-alt'].evaluate.apply(null, params)); + var params = checkSetup('<img id="target" />'); + assert.isFalse(checkEvaluate.apply(null, params)); }); it('should return false if an alt is present, but empty', function() { - var params = checkSetup('<img id="target" alt=" " />', { - attribute: 'alt' - }); - assert.isFalse(checks['non-empty-alt'].evaluate.apply(null, params)); + var params = checkSetup('<img id="target" alt=" " />'); + assert.isFalse(checkEvaluate.apply(null, params)); }); it('should collapse whitespace', function() { - var params = checkSetup('<img id="target" alt=" \t \n \r \t \t\r\n " />', { - attribute: 'alt' - }); - assert.isFalse(checks['non-empty-alt'].evaluate.apply(null, params)); + var params = checkSetup('<img id="target" alt=" \t \n \r \t \t\r\n " />'); + assert.isFalse(checkEvaluate.apply(null, params)); }); }); diff --git a/test/checks/shared/non-empty-if-present.js b/test/checks/shared/non-empty-if-present.js index 2304f85ef0..e7c97c6f87 100644 --- a/test/checks/shared/non-empty-if-present.js +++ b/test/checks/shared/non-empty-if-present.js @@ -22,7 +22,9 @@ describe('non-empty-if-present', function() { fixture.appendChild(node); assert.isFalse( - checks['non-empty-if-present'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('non-empty-if-present') + .call(checkContext, node) ); assert.equal(checkContext._data.messageKey, 'has-label'); }); @@ -35,7 +37,9 @@ describe('non-empty-if-present', function() { fixture.appendChild(node); assert.isTrue( - checks['non-empty-if-present'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('non-empty-if-present') + .call(checkContext, node) ); assert.isNull(checkContext._data); } @@ -48,7 +52,9 @@ describe('non-empty-if-present', function() { fixture.appendChild(node); assert.isFalse( - checks['non-empty-if-present'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('non-empty-if-present') + .call(checkContext, node) ); }); @@ -57,21 +63,27 @@ describe('non-empty-if-present', function() { node.setAttribute('type', 'text'); fixture.appendChild(node); assert.isFalse( - checks['non-empty-if-present'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('non-empty-if-present') + .call(checkContext, node) ); node = document.createElement('input'); node.setAttribute('type', 'button'); fixture.appendChild(node); assert.isFalse( - checks['non-empty-if-present'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('non-empty-if-present') + .call(checkContext, node) ); node = document.createElement('button'); node.setAttribute('type', 'submit'); fixture.appendChild(node); assert.isFalse( - checks['non-empty-if-present'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('non-empty-if-present') + .call(checkContext, node) ); }); }); diff --git a/test/checks/shared/non-empty-title.js b/test/checks/shared/non-empty-title.js index 7408911fb7..234429106d 100644 --- a/test/checks/shared/non-empty-title.js +++ b/test/checks/shared/non-empty-title.js @@ -3,39 +3,35 @@ describe('non-empty-title', function() { var fixture = document.getElementById('fixture'); var checkSetup = axe.testUtils.checkSetup; + var checkEvaluate = axe.testUtils.getCheckEvaluate('non-empty-title'); afterEach(function() { fixture.innerHTML = ''; }); it('should return true if a title is present', function() { - var params = checkSetup('<img id="target" title="woohoo" />', { - attribute: 'title' - }); + var params = checkSetup('<img id="target" title="woohoo" />'); - assert.isTrue(checks['non-empty-title'].evaluate.apply(null, params)); + assert.isTrue(checkEvaluate.apply(null, params)); }); it('should return false if a title is not present', function() { - var params = checkSetup('<img id="target" />', { attribute: 'title' }); + var params = checkSetup('<img id="target" />'); - assert.isFalse(checks['non-empty-title'].evaluate.apply(null, params)); + assert.isFalse(checkEvaluate.apply(null, params)); }); it('should return false if a title is present, but empty', function() { - var params = checkSetup('<img id="target" title=" " />', { - attribute: 'title' - }); + var params = checkSetup('<img id="target" title=" " />'); - assert.isFalse(checks['non-empty-title'].evaluate.apply(null, params)); + assert.isFalse(checkEvaluate.apply(null, params)); }); it('should collapse whitespace', function() { var params = checkSetup( - '<img id="target" title=" \t \n \r \t \t\r\n " />', - { attribute: 'title' } + '<img id="target" title=" \t \n \r \t \t\r\n " />' ); - assert.isFalse(checks['non-empty-title'].evaluate.apply(null, params)); + assert.isFalse(checkEvaluate.apply(null, params)); }); }); diff --git a/test/checks/shared/non-empty-value.js b/test/checks/shared/non-empty-value.js index 3357bd6521..15a8689fd6 100644 --- a/test/checks/shared/non-empty-value.js +++ b/test/checks/shared/non-empty-value.js @@ -3,39 +3,35 @@ describe('non-empty-value', function() { var fixture = document.getElementById('fixture'); var checkSetup = axe.testUtils.checkSetup; + var checkEvaluate = axe.testUtils.getCheckEvaluate('non-empty-value'); afterEach(function() { fixture.innerHTML = ''; }); it('should return true if an value is present', function() { - var params = checkSetup('<input id="target" value="woohoo" />', { - attribute: 'value' - }); + var params = checkSetup('<input id="target" value="woohoo" />'); - assert.isTrue(checks['non-empty-value'].evaluate.apply(null, params)); + assert.isTrue(checkEvaluate.apply(null, params)); }); it('should return false if an value is not present', function() { - var params = checkSetup('<input id="target" />', { attribute: 'value' }); + var params = checkSetup('<input id="target" />'); - assert.isFalse(checks['non-empty-value'].evaluate.apply(null, params)); + assert.isFalse(checkEvaluate.apply(null, params)); }); it('should return false if an value is present, but empty', function() { - var params = checkSetup('<input id="target" value=" " />', { - attribute: 'value' - }); + var params = checkSetup('<input id="target" value=" " />'); - assert.isFalse(checks['non-empty-value'].evaluate.apply(null, params)); + assert.isFalse(checkEvaluate.apply(null, params)); }); it('should collapse whitespace', function() { var params = checkSetup( - '<input id="target" value=" \t \n \r \t \t\r\n " />', - { attribute: 'value' } + '<input id="target" value=" \t \n \r \t \t\r\n " />' ); - assert.isFalse(checks['non-empty-value'].evaluate.apply(null, params)); + assert.isFalse(checkEvaluate.apply(null, params)); }); }); diff --git a/test/checks/shared/role-none.js b/test/checks/shared/role-none.js index ae8a801b16..3ef7b3ad42 100644 --- a/test/checks/shared/role-none.js +++ b/test/checks/shared/role-none.js @@ -11,20 +11,20 @@ describe('role-none', function() { fixture.innerHTML = '<div role="none"></div>'; var node = fixture.querySelector('div'); - assert.isTrue(checks['role-none'].evaluate(node)); + assert.isTrue(axe.testUtils.getCheckEvaluate('role-none')(node)); }); it('should return false when role !== none', function() { fixture.innerHTML = '<div role="cats"></div>'; var node = fixture.querySelector('div'); - assert.isFalse(checks['role-none'].evaluate(node)); + assert.isFalse(axe.testUtils.getCheckEvaluate('role-none')(node)); }); it('should return false when there is no role attribute', function() { fixture.innerHTML = '<div></div>'; var node = fixture.querySelector('div'); - assert.isFalse(checks['role-none'].evaluate(node)); + assert.isFalse(axe.testUtils.getCheckEvaluate('role-none')(node)); }); }); diff --git a/test/checks/shared/role-presentation.js b/test/checks/shared/role-presentation.js index 8ea115599a..cfb94086b0 100644 --- a/test/checks/shared/role-presentation.js +++ b/test/checks/shared/role-presentation.js @@ -11,20 +11,20 @@ describe('role-presentation', function() { fixture.innerHTML = '<div role="presentation"></div>'; var node = fixture.querySelector('div'); - assert.isTrue(checks['role-presentation'].evaluate(node)); + assert.isTrue(axe.testUtils.getCheckEvaluate('role-presentation')(node)); }); it('should return false when role !== presentation', function() { fixture.innerHTML = '<div role="cats"></div>'; var node = fixture.querySelector('div'); - assert.isFalse(checks['role-presentation'].evaluate(node)); + assert.isFalse(axe.testUtils.getCheckEvaluate('role-presentation')(node)); }); it('should return false when there is no role attribute', function() { fixture.innerHTML = '<div></div>'; var node = fixture.querySelector('div'); - assert.isFalse(checks['role-presentation'].evaluate(node)); + assert.isFalse(axe.testUtils.getCheckEvaluate('role-presentation')(node)); }); }); diff --git a/test/checks/tables/html5-scope.js b/test/checks/tables/html5-scope.js index a35c5c3b1d..5abc4a3d45 100644 --- a/test/checks/tables/html5-scope.js +++ b/test/checks/tables/html5-scope.js @@ -11,14 +11,14 @@ describe('html5-scope', function() { fixture.innerHTML = '<table><tr><th scope="col"></th></tr></table>'; var node = fixture.querySelector('th'); - assert.isTrue(checks['html5-scope'].evaluate(node)); + assert.isTrue(axe.testUtils.getCheckEvaluate('html5-scope')(node)); }); it('should return false on TDs', function() { fixture.innerHTML = '<table><tr><td scope="col"></td></tr></table>'; var node = fixture.querySelector('td'); - assert.isFalse(checks['html5-scope'].evaluate(node)); + assert.isFalse(axe.testUtils.getCheckEvaluate('html5-scope')(node)); }); it('should return true on non-HTML5 documents', function() { @@ -26,7 +26,7 @@ describe('html5-scope', function() { fixture.innerHTML = '<table><tr><th scope="col"></th></tr></table>'; var node = fixture.querySelector('th'); - assert.isTrue(checks['html5-scope'].evaluate(node)); + assert.isTrue(axe.testUtils.getCheckEvaluate('html5-scope')(node)); document.publicId = origPublicId; }); }); diff --git a/test/checks/tables/same-caption-summary.js b/test/checks/tables/same-caption-summary.js index d85e20fd4f..86366d0fff 100644 --- a/test/checks/tables/same-caption-summary.js +++ b/test/checks/tables/same-caption-summary.js @@ -20,7 +20,9 @@ describe('same-caption-summary', function() { ); assert.isFalse( - checks['same-caption-summary'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('same-caption-summary') + .apply(checkContext, params) ); }); @@ -30,7 +32,9 @@ describe('same-caption-summary', function() { ); assert.isFalse( - checks['same-caption-summary'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('same-caption-summary') + .apply(checkContext, params) ); }); @@ -40,7 +44,9 @@ describe('same-caption-summary', function() { ); assert.isFalse( - checks['same-caption-summary'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('same-caption-summary') + .apply(checkContext, params) ); }); @@ -50,7 +56,9 @@ describe('same-caption-summary', function() { ); assert.isTrue( - checks['same-caption-summary'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('same-caption-summary') + .apply(checkContext, params) ); }); @@ -68,7 +76,9 @@ describe('same-caption-summary', function() { ); assert.isTrue( - checks['same-caption-summary'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('same-caption-summary') + .apply(checkContext, params) ); }); @@ -88,7 +98,9 @@ describe('same-caption-summary', function() { ); assert.isTrue( - checks['same-caption-summary'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('same-caption-summary') + .apply(checkContext, params) ); } ); diff --git a/test/checks/tables/scope-value.js b/test/checks/tables/scope-value.js index 289b7a85f5..9964266f55 100644 --- a/test/checks/tables/scope-value.js +++ b/test/checks/tables/scope-value.js @@ -11,14 +11,14 @@ describe('scope-value', function() { fixture.innerHTML = '<table><tr><td scope="col"></td></tr></table>'; var node = fixture.querySelector('td'); - assert.isTrue(checks['scope-value'].evaluate(node)); + assert.isTrue(axe.testUtils.getCheckEvaluate('scope-value')(node)); }); it('should return true if scope is "row"', function() { fixture.innerHTML = '<table><tr><td scope="row"></td></tr></table>'; var node = fixture.querySelector('td'); - assert.isTrue(checks['scope-value'].evaluate(node)); + assert.isTrue(axe.testUtils.getCheckEvaluate('scope-value')(node)); }); it('should return false otherwise', function() { @@ -26,6 +26,6 @@ describe('scope-value', function() { '<table><tr><td scope="hahahahanothx"></td></tr></table>'; var node = fixture.querySelector('td'); - assert.isFalse(checks['scope-value'].evaluate(node)); + assert.isFalse(axe.testUtils.getCheckEvaluate('scope-value')(node)); }); }); diff --git a/test/checks/tables/td-has-header.js b/test/checks/tables/td-has-header.js index dc05bc53ee..43147c7f7c 100644 --- a/test/checks/tables/td-has-header.js +++ b/test/checks/tables/td-has-header.js @@ -39,7 +39,9 @@ describe('td-has-header', function() { '</table>'; axe.testUtils.flatTreeSetup(fixture); var node = fixture.querySelector('table'); - var result = checks['td-has-header'].evaluate.call(checkContext, node); + var result = axe.testUtils + .getCheckEvaluate('td-has-header') + .call(checkContext, node); assert.isFalse(result); assert.equal(checkContext._relatedNodes.length, 4); @@ -51,7 +53,9 @@ describe('td-has-header', function() { axe.testUtils.flatTreeSetup(fixture); var node = fixture.querySelector('table'); - assert.isTrue(checks['td-has-header'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('td-has-header').call(checkContext, node) + ); }); it('should return true each non-empty cell has a column header', function() { @@ -63,7 +67,9 @@ describe('td-has-header', function() { axe.testUtils.flatTreeSetup(fixture); var node = fixture.querySelector('table'); - assert.isTrue(checks['td-has-header'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('td-has-header').call(checkContext, node) + ); }); it('should return true each non-empty cell has aria-label', function() { @@ -75,7 +81,9 @@ describe('td-has-header', function() { axe.testUtils.flatTreeSetup(fixture); var node = fixture.querySelector('table'); - assert.isTrue(checks['td-has-header'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('td-has-header').call(checkContext, node) + ); }); it('should return true each non-empty cell has aria-labelledby', function() { @@ -88,7 +96,9 @@ describe('td-has-header', function() { axe.testUtils.flatTreeSetup(fixture); var node = fixture.querySelector('table'); - assert.isTrue(checks['td-has-header'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('td-has-header').call(checkContext, node) + ); }); it('should return true each non-empty cell has a headers attribute', function() { @@ -102,7 +112,9 @@ describe('td-has-header', function() { axe.testUtils.flatTreeSetup(fixture); var node = fixture.querySelector('table'); - assert.isTrue(checks['td-has-header'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('td-has-header').call(checkContext, node) + ); }); it('should return true there is at least one non-empty header', function() { @@ -114,7 +126,9 @@ describe('td-has-header', function() { axe.testUtils.flatTreeSetup(fixture); var node = fixture.querySelector('table'); - assert.isTrue(checks['td-has-header'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('td-has-header').call(checkContext, node) + ); }); it('should return true if the only data cells are empty', function() { @@ -123,7 +137,9 @@ describe('td-has-header', function() { axe.testUtils.flatTreeSetup(fixture); var node = fixture.querySelector('table'); - assert.isTrue(checks['td-has-header'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('td-has-header').call(checkContext, node) + ); }); it('should return false if a cell has no headers', function() { @@ -133,7 +149,9 @@ describe('td-has-header', function() { axe.testUtils.flatTreeSetup(fixture); var node = fixture.querySelector('table'); - assert.isFalse(checks['td-has-header'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('td-has-header').call(checkContext, node) + ); assert.deepEqual(checkContext._relatedNodes, [ node.rows[0].cells[0], node.rows[0].cells[1] @@ -150,7 +168,9 @@ describe('td-has-header', function() { axe.testUtils.flatTreeSetup(fixture); var node = fixture.querySelector('table'); - assert.isFalse(checks['td-has-header'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('td-has-header').call(checkContext, node) + ); assert.deepEqual(checkContext._relatedNodes, [ node.rows[0].cells[0], node.rows[1].cells[0], @@ -168,7 +188,9 @@ describe('td-has-header', function() { axe.testUtils.flatTreeSetup(fixture); var node = fixture.querySelector('table'); - assert.isTrue(checks['td-has-header'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('td-has-header').call(checkContext, node) + ); }); it('should return true if the headers element refers to non-existing elements', function() { @@ -180,7 +202,9 @@ describe('td-has-header', function() { axe.testUtils.flatTreeSetup(fixture); var node = fixture.querySelector('table'); - assert.isTrue(checks['td-has-header'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('td-has-header').call(checkContext, node) + ); }); it('should return false if all headers are empty', function() { @@ -192,7 +216,9 @@ describe('td-has-header', function() { axe.testUtils.flatTreeSetup(fixture); var node = fixture.querySelector('table'); - assert.isFalse(checks['td-has-header'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('td-has-header').call(checkContext, node) + ); }); (shadowSupport ? it : xit)('recognizes shadow tree content', function() { @@ -208,6 +234,8 @@ describe('td-has-header', function() { axe.testUtils.flatTreeSetup(fixture); var node = axe.utils.querySelectorAll(axe._tree, 'table')[0].actualNode; - assert.isTrue(checks['td-has-header'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('td-has-header').call(checkContext, node) + ); }); }); diff --git a/test/checks/tables/td-headers-attr.js b/test/checks/tables/td-headers-attr.js index d2a03f7f4b..b974deb583 100644 --- a/test/checks/tables/td-headers-attr.js +++ b/test/checks/tables/td-headers-attr.js @@ -17,7 +17,9 @@ describe('td-headers-attr', function() { '</table>'; var node = fixture.querySelector('table'); - assert.isTrue(checks['td-headers-attr'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('td-headers-attr').call(checkContext, node) + ); }); it('returns true if a valid header is present', function() { @@ -28,7 +30,9 @@ describe('td-headers-attr', function() { '</table>'; var node = fixture.querySelector('table'); - assert.isTrue(checks['td-headers-attr'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('td-headers-attr').call(checkContext, node) + ); }); it('returns true if multiple valid headers are present', function() { @@ -39,7 +43,9 @@ describe('td-headers-attr', function() { '</table>'; var node = fixture.querySelector('table'); - assert.isTrue(checks['td-headers-attr'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('td-headers-attr').call(checkContext, node) + ); }); it('returns true with an empty header', function() { @@ -50,7 +56,9 @@ describe('td-headers-attr', function() { '</table>'; var node = fixture.querySelector('table'); - assert.isTrue(checks['td-headers-attr'].evaluate.call(checkContext, node)); + assert.isTrue( + axe.testUtils.getCheckEvaluate('td-headers-attr').call(checkContext, node) + ); }); it('returns undefined if headers is empty', function() { @@ -62,7 +70,7 @@ describe('td-headers-attr', function() { var node = fixture.querySelector('table'); assert.isUndefined( - checks['td-headers-attr'].evaluate.call(checkContext, node) + axe.testUtils.getCheckEvaluate('td-headers-attr').call(checkContext, node) ); }); @@ -75,7 +83,9 @@ describe('td-headers-attr', function() { ' <tr> <td headers="h1">goodbye</td> </tr>' + '</table>'; node = fixture.querySelector('table'); - assert.isFalse(checks['td-headers-attr'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('td-headers-attr').call(checkContext, node) + ); fixture.innerHTML = '<span id="hi">hello</span>' + @@ -84,7 +94,9 @@ describe('td-headers-attr', function() { ' <tr> <td headers="h1">goodbye</td> </tr>' + '</table>'; node = fixture.querySelector('table'); - assert.isFalse(checks['td-headers-attr'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('td-headers-attr').call(checkContext, node) + ); fixture.innerHTML = '<table id="hi">' + @@ -92,7 +104,9 @@ describe('td-headers-attr', function() { ' <tr> <td headers="h1">goodbye</td> </tr>' + '</table>'; node = fixture.querySelector('table'); - assert.isFalse(checks['td-headers-attr'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('td-headers-attr').call(checkContext, node) + ); }); it('returns false if the header refers to the same cell', function() { @@ -103,6 +117,8 @@ describe('td-headers-attr', function() { '</table>'; var node = fixture.querySelector('table'); - assert.isFalse(checks['td-headers-attr'].evaluate.call(checkContext, node)); + assert.isFalse( + axe.testUtils.getCheckEvaluate('td-headers-attr').call(checkContext, node) + ); }); }); diff --git a/test/checks/tables/th-has-data-cells.js b/test/checks/tables/th-has-data-cells.js index 847c9ab1e8..b5debb8609 100644 --- a/test/checks/tables/th-has-data-cells.js +++ b/test/checks/tables/th-has-data-cells.js @@ -20,7 +20,9 @@ describe('th-has-data-cells', function() { axe.testUtils.flatTreeSetup(fixture); var node = fixture.querySelector('table'); assert.isTrue( - checks['th-has-data-cells'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('th-has-data-cells') + .call(checkContext, node) ); }); @@ -34,7 +36,9 @@ describe('th-has-data-cells', function() { axe.testUtils.flatTreeSetup(fixture); var node = fixture.querySelector('table'); assert.isTrue( - checks['th-has-data-cells'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('th-has-data-cells') + .call(checkContext, node) ); }); @@ -48,7 +52,9 @@ describe('th-has-data-cells', function() { axe.testUtils.flatTreeSetup(fixture); var node = fixture.querySelector('table'); assert.isTrue( - checks['th-has-data-cells'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('th-has-data-cells') + .call(checkContext, node) ); }); @@ -62,7 +68,9 @@ describe('th-has-data-cells', function() { axe.testUtils.flatTreeSetup(fixture); var node = fixture.querySelector('table'); assert.isTrue( - checks['th-has-data-cells'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('th-has-data-cells') + .call(checkContext, node) ); }); @@ -75,7 +83,9 @@ describe('th-has-data-cells', function() { axe.testUtils.flatTreeSetup(fixture); var node = fixture.querySelector('table'); assert.isTrue( - checks['th-has-data-cells'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('th-has-data-cells') + .call(checkContext, node) ); }); @@ -94,7 +104,9 @@ describe('th-has-data-cells', function() { axe.testUtils.flatTreeSetup(fixture); var node = fixture.querySelector('table'); assert.isTrue( - checks['th-has-data-cells'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('th-has-data-cells') + .call(checkContext, node) ); }); @@ -108,7 +120,9 @@ describe('th-has-data-cells', function() { axe.testUtils.flatTreeSetup(fixture); var node = fixture.querySelector('table'); assert.isUndefined( - checks['th-has-data-cells'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('th-has-data-cells') + .call(checkContext, node) ); }); @@ -122,7 +136,9 @@ describe('th-has-data-cells', function() { axe.testUtils.flatTreeSetup(fixture); var node = fixture.querySelector('table'); assert.isTrue( - checks['th-has-data-cells'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('th-has-data-cells') + .call(checkContext, node) ); }); @@ -135,7 +151,9 @@ describe('th-has-data-cells', function() { axe.testUtils.flatTreeSetup(fixture); var node = fixture.querySelector('table'); assert.isUndefined( - checks['th-has-data-cells'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('th-has-data-cells') + .call(checkContext, node) ); }); @@ -155,7 +173,9 @@ describe('th-has-data-cells', function() { axe.testUtils.flatTreeSetup(fixture); var node = fixture.querySelector('table'); assert.isUndefined( - checks['th-has-data-cells'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('th-has-data-cells') + .call(checkContext, node) ); }); @@ -173,7 +193,9 @@ describe('th-has-data-cells', function() { axe.testUtils.flatTreeSetup(fixture); var node = axe.utils.querySelectorAll(axe._tree, 'table')[0].actualNode; assert.isTrue( - checks['th-has-data-cells'].evaluate.call(checkContext, node) + axe.testUtils + .getCheckEvaluate('th-has-data-cells') + .call(checkContext, node) ); }); }); diff --git a/test/checks/visibility/hidden-content.js b/test/checks/visibility/hidden-content.js index 95c356aa3e..5b417fd965 100644 --- a/test/checks/visibility/hidden-content.js +++ b/test/checks/visibility/hidden-content.js @@ -18,7 +18,9 @@ describe('hidden content', function() { '<div id="target" style="display: none;"><p>Some paragraph text.</p></div>' ); assert.isUndefined( - checks['hidden-content'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('hidden-content') + .apply(checkContext, params) ); }); @@ -27,7 +29,9 @@ describe('hidden content', function() { '<div id="target" style="visibility: hidden;"><p>Some paragraph text.</p></div>' ); assert.isUndefined( - checks['hidden-content'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('hidden-content') + .apply(checkContext, params) ); }); @@ -36,7 +40,9 @@ describe('hidden content', function() { '<div style="visibility: hidden;"><p id="target" style="visibility: hidden;">Some paragraph text.</p></div>' ); assert.isTrue( - checks['hidden-content'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('hidden-content') + .apply(checkContext, params) ); }); @@ -45,7 +51,9 @@ describe('hidden content', function() { '<span id="target" class="icon" aria-hidden="true"></span>' ); assert.isTrue( - checks['hidden-content'].evaluate.apply(checkContext, params) + axe.testUtils + .getCheckEvaluate('hidden-content') + .apply(checkContext, params) ); }); @@ -54,7 +62,11 @@ describe('hidden content', function() { axe.testUtils.flatTreeSetup(document.documentElement); var virtualNode = axe.utils.getNodeFromTree(node); assert.isTrue( - checks['hidden-content'].evaluate(node, undefined, virtualNode) + axe.testUtils.getCheckEvaluate('hidden-content')( + node, + undefined, + virtualNode + ) ); }); @@ -70,19 +82,31 @@ describe('hidden content', function() { var shadow = document.querySelector('#shadow'); var virtualShadow = axe.utils.getNodeFromTree(shadow); assert.isTrue( - checks['hidden-content'].evaluate(shadow, undefined, virtualShadow) + axe.testUtils.getCheckEvaluate('hidden-content')( + shadow, + undefined, + virtualShadow + ) ); var target = shadowRoot.querySelector('#target'); var virtualTarget = axe.utils.getNodeFromTree(target); assert.isUndefined( - checks['hidden-content'].evaluate(target, undefined, virtualTarget) + axe.testUtils.getCheckEvaluate('hidden-content')( + target, + undefined, + virtualTarget + ) ); var content = document.querySelector('#content'); var virtualContent = axe.utils.getNodeFromTree(content); assert.isTrue( - checks['hidden-content'].evaluate(content, undefined, virtualContent) + axe.testUtils.getCheckEvaluate('hidden-content')( + content, + undefined, + virtualContent + ) ); }); }); diff --git a/test/core/base/audit.js b/test/core/base/audit.js index 4803bc640d..19ed2e66de 100644 --- a/test/core/base/audit.js +++ b/test/core/base/audit.js @@ -377,10 +377,10 @@ describe('Audit', function() { assert.equal(audit.checks.target, undefined); audit.addCheck({ id: 'target', - options: 'jane' + options: { value: 'jane' } }); assert.ok(audit.checks.target); - assert.equal(audit.checks.target.options, 'jane'); + assert.deepEqual(audit.checks.target.options, { value: 'jane' }); audit.resetRulesAndChecks(); assert.equal(audit.checks.target, undefined); }); @@ -402,10 +402,10 @@ describe('Audit', function() { assert.equal(audit.checks.target, undefined); audit.addCheck({ id: 'target', - options: 'jane' + options: { value: 'jane' } }); assert.ok(audit.checks.target); - assert.equal(audit.checks.target.options, 'jane'); + assert.deepEqual(audit.checks.target.options, { value: 'jane' }); }); it('should configure the metadata, if passed', function() { var audit = new Audit(); @@ -423,18 +423,18 @@ describe('Audit', function() { audit.addCheck({ id: 'target', evaluate: myTest, - options: 'jane' + options: { value: 'jane' } }); - assert.equal(audit.checks.target.options, 'jane'); + assert.deepEqual(audit.checks.target.options, { value: 'jane' }); audit.addCheck({ id: 'target', - options: 'fred' + options: { value: 'fred' } }); assert.equal(audit.checks.target.evaluate, myTest); - assert.equal(audit.checks.target.options, 'fred'); + assert.deepEqual(audit.checks.target.options, { value: 'fred' }); }); it('should not turn messages into a function', function() { var audit = new Audit(); diff --git a/test/core/base/check.js b/test/core/base/check.js index 75cb5aa92c..2a9dd744cc 100644 --- a/test/core/base/check.js +++ b/test/core/base/check.js @@ -38,8 +38,8 @@ describe('Check', function() { var check = new Check({ options: ['foo'] }); - check.configure({ options: 'fong' }); - assert.equal('fong', check.test()); + check.configure({ options: { value: 'fong' } }); + assert.deepEqual({ value: 'fong' }, check.test()); delete Check.prototype.test; }); it('should override evaluate', function() { @@ -170,6 +170,15 @@ describe('Check', function() { }).run(fixture, { options: expected }, {}, noop); }); + it('should normalize non-object options', function(done) { + new Check({ + evaluate: function(node, options) { + assert.deepEqual(options, { value: 'foo' }); + done(); + } + }).run(fixture, { options: 'foo' }, {}, noop); + }); + it('should pass the context through to check evaluate call', function(done) { var configured = { cssom: 'yay', @@ -323,6 +332,15 @@ describe('Check', function() { }).runSync(fixture, { options: expected }, {}); }); + it('should normalize non-object options', function(done) { + new Check({ + evaluate: function(node, options) { + assert.deepEqual(options, { value: 'foo' }); + done(); + } + }).run(fixture, { options: 'foo' }, {}, noop); + }); + it('should pass the context through to check evaluate call', function() { var configured = { cssom: 'yay', @@ -413,6 +431,36 @@ describe('Check', function() { } }); }); + + describe('getOptions', function() { + var check; + beforeEach(function() { + check = new Check({ + options: { + foo: 'bar' + } + }); + }); + + it('should return default check options', function() { + assert.deepEqual(check.getOptions(), { foo: 'bar' }); + }); + + it('should merge options with Check defaults', function() { + var options = check.getOptions({ hello: 'world' }); + assert.deepEqual(options, { foo: 'bar', hello: 'world' }); + }); + + it('should override defaults', function() { + var options = check.getOptions({ foo: 'world' }); + assert.deepEqual(options, { foo: 'world' }); + }); + + it('should normalize passed in options', function() { + var options = check.getOptions('world'); + assert.deepEqual(options, { foo: 'bar', value: 'world' }); + }); + }); }); describe('spec object', function() { @@ -455,7 +503,7 @@ describe('Check', function() { describe('.options', function() { it('should be set', function() { var spec = { - options: ['monkeys', 'bananas'] + options: { value: ['monkeys', 'bananas'] } }; assert.equal(new Check(spec).options, spec.options); }); @@ -464,6 +512,13 @@ describe('Check', function() { var spec = {}; assert.equal(new Check(spec).options, spec.options); }); + + it('should normalize non-object options', function() { + var spec = { + options: 'foo' + }; + assert.deepEqual(new Check(spec).options, { value: 'foo' }); + }); }); describe('.evaluate', function() { diff --git a/test/core/public/configure.js b/test/core/public/configure.js index c375aca01a..7e7ecbf1c9 100644 --- a/test/core/public/configure.js +++ b/test/core/public/configure.js @@ -146,7 +146,7 @@ describe('axe.configure', function() { checks: [ { id: 'bob', - options: true, + options: { value: true }, metadata: { joe: 'joe' } @@ -156,7 +156,7 @@ describe('axe.configure', function() { // assert.instanceOf(axe._audit.checks.bob, Check); assert.equal(axe._audit.checks.bob.id, 'bob'); - assert.isTrue(axe._audit.checks.bob.options); + assert.isTrue(axe._audit.checks.bob.options.value); assert.equal(axe._audit.data.checks.bob.joe, 'joe'); }); @@ -170,7 +170,7 @@ describe('axe.configure', function() { checks: [ { id: 'bob', - options: false + options: { value: false } } ] }); @@ -178,7 +178,7 @@ describe('axe.configure', function() { checks: [ { id: 'bob', - options: true, + options: { value: true }, metadata: { joe: 'joe' } @@ -188,7 +188,7 @@ describe('axe.configure', function() { // assert.instanceOf(axe._audit.checks.bob, Check); assert.equal(axe._audit.checks.bob.id, 'bob'); - assert.isTrue(axe._audit.checks.bob.options); + assert.isTrue(axe._audit.checks.bob.options.value); assert.equal(axe._audit.data.checks.bob.joe, 'joe'); }); diff --git a/test/testutils.js b/test/testutils.js index 76900897e2..f5776c4d08 100644 --- a/test/testutils.js +++ b/test/testutils.js @@ -1,4 +1,4 @@ -/* global axe */ +/* global axe, checks */ // Let the user know they need to disable their axe/attest extension before running the tests. if (window.__AXE_EXTENSION__) { @@ -370,6 +370,19 @@ testUtils.queryFixture = function queryFixture(html, query) { return axe.utils.querySelectorAll(axe._tree, query || '#target')[0]; }; +/** + * Return the checks evaluate method and apply default options + * @param {String} checkId - ID of the check + * @return Function + */ +testUtils.getCheckEvaluate = function getCheckEvaluate(checkId) { + var check = checks[checkId]; + return function evaluateWrapper(node, options, virtualNode, context) { + var opts = check.getOptions(options); + return check.evaluate.call(this, node, opts, virtualNode, context); + }; +}; + /** * Test function for detecting IE11 user agent string *