axe-core
Version:
Accessibility engine for automated Web UI testing
66 lines (51 loc) • 1.89 kB
JavaScript
describe('accesskeys', function () {
'use strict';
var fixture = document.getElementById('fixture');
var checkContext = axe.testUtils.MockCheckContext();
afterEach(function () {
fixture.innerHTML = '';
checkContext.reset();
});
it('should return true and record accesskey', function () {
fixture.innerHTML = '<div id="target" accesskey="A"></div>';
var node = fixture.querySelector('#target');
assert.isTrue(checks.accesskeys.evaluate.call(checkContext, node));
assert.equal(checkContext._data, node.getAttribute('accesskey'));
assert.lengthOf(checkContext._relatedNodes, 1);
assert.equal(checkContext._relatedNodes[0], node);
});
describe('after', function () {
it('should push duplicates onto relatedNodes', function () {
var results = [
{ data: 'A', relatedNodes: ['bob'] },
{ data: 'A', relatedNodes: ['fred'] }
];
var result = checks.accesskeys.after(results);
assert.lengthOf(result, 1);
assert.equal(result[0].data, 'A');
assert.lengthOf(result[0].relatedNodes, 1);
assert.equal(result[0].relatedNodes[0], 'fred');
});
it('should remove non-unique accesskeys and toggle result', function () {
var results = [
{ data: 'A', relatedNodes: ['bob'] },
{ data: 'A', relatedNodes: ['joe'] },
{ data: 'B', relatedNodes: ['fred'] }
];
var result = checks.accesskeys.after(results);
assert.lengthOf(result, 2);
assert.isTrue(result[0].result);
assert.isFalse(result[1].result);
});
it('should consider accesskeys with different cases as the same result', function () {
var result = checks.accesskeys.after([
{ data: 'A', relatedNodes: ['bob'] },
{ data: 'a', relatedNodes: ['fred'] }
]);
assert.lengthOf(result, 1);
assert.equal(result[0].data, 'A');
assert.lengthOf(result[0].relatedNodes, 1);
assert.equal(result[0].relatedNodes[0], 'fred');
});
});
});