Repository navigation
Expand file tree
/
Copy pathinline-script-disabled.spec.js
More file actions
50 lines (43 loc) · 1.83 KB
/
Copy pathinline-script-disabled.spec.js
File metadata and controls
50 lines (43 loc) · 1.83 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
const expect = require('expect.js');
const HTMLHint = require('../../dist/htmlhint.js').default;
const ruldId = 'inline-script-disabled';
const ruleOptions = {};
ruleOptions[ruldId] = true;
describe(`Rules: ${ruldId}`, function() {
it('Inline on event should result in an error', function() {
const code =
'<body><img src="test.gif" onclick="alert(1);"><img src="test.gif" onMouseDown="alert(1);"></body>';
const messages = HTMLHint.verify(code, ruleOptions);
expect(messages.length).to.be(2);
expect(messages[0].rule.id).to.be(ruldId);
expect(messages[0].line).to.be(1);
expect(messages[0].col).to.be(26);
expect(messages[0].type).to.be('warning');
expect(messages[1].col).to.be(66);
});
it('onttt should not result in an error', function() {
const code = '<body><img src="test.gif" onttt="alert(1);"></body>';
const messages = HTMLHint.verify(code, ruleOptions);
expect(messages.length).to.be(0);
});
it('Javascript protocol [ javascript: ] should result in an error', function() {
let code =
'<body><img src="javascript:alert(1)"><img src=" JAVASCRIPT:alert(1)"></body>';
let messages = HTMLHint.verify(code, ruleOptions);
expect(messages.length).to.be(2);
expect(messages[0].rule.id).to.be(ruldId);
expect(messages[0].line).to.be(1);
expect(messages[0].col).to.be(11);
expect(messages[0].type).to.be('warning');
expect(messages[1].col).to.be(42);
code =
'<body><a href="javascript:alert(1)">test1</a><a href=" JAVASCRIPT:alert(2)">test2</a></body>';
messages = HTMLHint.verify(code, ruleOptions);
expect(messages.length).to.be(2);
expect(messages[0].rule.id).to.be(ruldId);
expect(messages[0].line).to.be(1);
expect(messages[0].col).to.be(9);
expect(messages[0].type).to.be('warning');
expect(messages[1].col).to.be(48);
});
});