-
Notifications
You must be signed in to change notification settings - Fork 766
/
invalidrole.js
143 lines (132 loc) · 3.6 KB
/
invalidrole.js
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
describe('invalidrole', function () {
'use strict';
var fixture = document.getElementById('fixture');
var queryFixture = axe.testUtils.queryFixture;
var checkContext = axe.testUtils.MockCheckContext();
afterEach(function () {
fixture.innerHTML = '';
checkContext.reset();
});
it('should return true if applied to an empty role', function () {
var virtualNode = queryFixture('<div id="target" role="">Contents</div>');
assert.isTrue(
checks.invalidrole.evaluate.call(
checkContext,
virtualNode.actualNode,
null,
virtualNode
)
);
assert.deepEqual(checkContext._data, ['']);
});
it('should return true if applied to a nonsensical role', function () {
var virtualNode = queryFixture(
'<div id="target" role="foo">Contents</div>'
);
assert.isTrue(
checks.invalidrole.evaluate.call(
checkContext,
virtualNode.actualNode,
null,
virtualNode
)
);
assert.deepEqual(checkContext._data, ['foo']);
});
it('should return false if applied to a concrete role', function () {
var virtualNode = queryFixture(
'<div id="target" role="alert">Contents</div>'
);
assert.isFalse(
checks.invalidrole.evaluate.call(
checkContext,
virtualNode.actualNode,
null,
virtualNode
)
);
assert.isNull(checkContext._data);
});
it('should return false if applied to an abstract role', function () {
var virtualNode = queryFixture(
'<div id="target" role="widget">Contents</div>'
);
assert.isFalse(
checks.invalidrole.evaluate.call(
checkContext,
virtualNode.actualNode,
null,
virtualNode
)
);
assert.isNull(checkContext._data);
});
it('should return false if applied to multiple valid roles', function () {
var virtualNode = queryFixture(
'<div id="target" role="alert button">Contents</div>'
);
assert.isFalse(
checks.invalidrole.evaluate.call(
checkContext,
virtualNode.actualNode,
null,
virtualNode
)
);
assert.isNull(checkContext._data);
});
it('should return false if atleast one role is valid', function () {
var virtualNode = queryFixture(
'<div id="target" role="alert button foo bar">Contents</div>'
);
assert.isFalse(
checks.invalidrole.evaluate.call(
checkContext,
virtualNode.actualNode,
null,
virtualNode
)
);
});
it('should return true if all roles are invalid', function () {
var virtualNode = queryFixture(
'<div id="target" role="foo bar">Contents</div>'
);
assert.isTrue(
checks.invalidrole.evaluate.call(
checkContext,
virtualNode.actualNode,
null,
virtualNode
)
);
assert.deepEqual(checkContext._data, ['foo', 'bar']);
});
it('should return true if applied to an uppercase nonsensical role', function () {
var virtualNode = queryFixture(
'<div id="target" role="FOO">Contents</div>'
);
assert.isTrue(
checks.invalidrole.evaluate.call(
checkContext,
virtualNode.actualNode,
null,
virtualNode
)
);
assert.deepEqual(checkContext._data, ['FOO']);
});
it('should return false if applied to an uppercase valid role', function () {
var virtualNode = queryFixture(
'<div id="target" role="BUTTON">Contents</div>'
);
assert.isFalse(
checks.invalidrole.evaluate.call(
checkContext,
virtualNode.actualNode,
null,
virtualNode
)
);
});
});