-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathduplicate-id-misc-matches.js
More file actions
77 lines (65 loc) · 2.93 KB
/
duplicate-id-misc-matches.js
File metadata and controls
77 lines (65 loc) · 2.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
describe('duplicate-id-misc matches', function () {
'use strict';
const fixture = document.getElementById('fixture');
const fixtureSetup = axe.testUtils.fixtureSetup;
let rule;
beforeEach(function () {
rule = axe.utils.getRule('duplicate-id');
});
afterEach(function () {
fixture.innerHTML = '';
});
it('is a function', function () {
assert.isFunction(rule.matches);
});
it('returns true if the ID is of an inactive non-referenced element', function () {
fixtureSetup('<div id="foo"></div>');
const vNode = axe.utils.querySelectorAll(axe._tree[0], 'div[id=foo]')[0];
assert.isTrue(rule.matches(vNode.actualNode, vNode));
});
it('returns true if the ID is of an inactive non-referenced element with a duplicate', function () {
fixtureSetup('<div id="foo"></div><span id="foo"></span>');
const vNode = axe.utils.querySelectorAll(axe._tree[0], 'span[id=foo]')[0];
assert.isTrue(rule.matches(vNode.actualNode, vNode));
});
it('returns false if the ID is of an active non-referenced element', function () {
fixtureSetup('<button id="foo"></button>');
const vNode = axe.utils.querySelectorAll(axe._tree[0], 'button[id=foo]')[0];
assert.isFalse(rule.matches(vNode.actualNode, vNode));
});
it('returns false if the ID is a duplicate of an active non-referenced element', function () {
fixtureSetup('<div id="foo"></div>' + '<button id="foo"></button>');
const vNode = axe.utils.querySelectorAll(axe._tree[0], 'div[id=foo]')[0];
assert.isFalse(rule.matches(vNode.actualNode, vNode));
});
it('returns false if the ID is of an inactive ARIA referenced element', function () {
fixtureSetup('<div id="foo"></div>' + '<div aria-labelledby="foo"></div>');
const vNode = axe.utils.querySelectorAll(axe._tree[0], 'div[id=foo]')[0];
assert.isFalse(rule.matches(vNode.actualNode, vNode));
});
it('returns false if the ID is a duplicate of an inactive ARIA referenced element', function () {
fixtureSetup(
'<div id="foo"></div>' +
'<div aria-labelledby="foo"></div>' +
'<span id="foo"></span>'
);
const vNode = axe.utils.querySelectorAll(axe._tree[0], 'span[id=foo]')[0];
assert.isFalse(rule.matches(vNode.actualNode, vNode));
});
it('returns false if the ID is of an active ARIA referenced element', function () {
fixtureSetup(
'<button id="foo"></button>' + '<div aria-labelledby="foo"></div>'
);
const vNode = axe.utils.querySelectorAll(axe._tree[0], 'button[id=foo]')[0];
assert.isFalse(rule.matches(vNode.actualNode, vNode));
});
it('returns false if the ID is a duplicate of of an active ARIA referenced element', function () {
fixtureSetup(
'<button id="foo"></button>' +
'<div aria-labelledby="foo"></div>' +
'<span id="foo"></span>'
);
const vNode = axe.utils.querySelectorAll(axe._tree[0], 'span[id=foo]')[0];
assert.isFalse(rule.matches(vNode.actualNode, vNode));
});
});