-
Notifications
You must be signed in to change notification settings - Fork 83
/
normalize.vows.js
89 lines (67 loc) · 5.24 KB
/
normalize.vows.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
var wows = require('vows');
var assert = require('../assert');
var DOMParser = require('../../lib/dom-parser').DOMParser;
var XMLSerializer = require('../../lib/dom-parser').XMLSerializer;
var parser = new DOMParser();
wows.describe('html normalizer').addBatch({
'text & <': function () {
var dom = new DOMParser().parseFromString('<div>&<123&456<789;&&</div>','text/html');
assert(dom+'', '<div xmlns="http://www.w3.org/1999/xhtml">&<123&456<789;&&</div>');
var dom = new DOMParser().parseFromString('<div><123e>&<a<br/></div>','text/html');
assert(dom+'', '<div xmlns="http://www.w3.org/1999/xhtml"><123e>&<a<br/></div>');
var dom = new DOMParser().parseFromString('<div> © ©</div>','text/html');
assert(dom+'', '<div xmlns="http://www.w3.org/1999/xhtml">\u00a0\u00a9&nbsp&copy</div>');
var dom = new DOMParser().parseFromString('<html xmlns:x="1"><body/></html>','text/html');
assert(dom+'', '<html xmlns:x="1" xmlns="http://www.w3.org/1999/xhtml"><body></body></html>');
},
'attr': function () {
var dom = new DOMParser().parseFromString('<html test="a<b && a>b && \'&&&\'"/>','text/html');
assert(dom+'', '<html test="a<b && a>b && \'&&&\'" xmlns="http://www.w3.org/1999/xhtml"></html>');
var dom = new DOMParser().parseFromString('<div test="alert(\'<br/>\')"/>','text/html');
assert(dom+'', '<div test="alert(\'<br/>\')" xmlns="http://www.w3.org/1999/xhtml"></div>');
var dom = new DOMParser().parseFromString('<div test="a<b&&a< c && a>d"></div>','text/html');
assert(dom+'', '<div test="a<b&&a< c && a>d" xmlns="http://www.w3.org/1999/xhtml"></div>');
var dom = new DOMParser().parseFromString('<div a=& bb c d=123&&456/>','text/html');
assert(dom+'', '<div a="&" bb="bb" c="c" d="123&&456" xmlns="http://www.w3.org/1999/xhtml"></div>');
var dom = new DOMParser().parseFromString('<div a=& a="&\'\'" b/>','text/html');
assert(dom+'', '<div a="&\'\'" b="b" xmlns="http://www.w3.org/1999/xhtml"></div>');
},
'attrQute': function () {
var dom = new DOMParser().parseFromString('<html test="123"/>','text/html');
assert(dom+'', '<html test="123" xmlns="http://www.w3.org/1999/xhtml"></html>');
var dom = new DOMParser().parseFromString('<r><Label onClick="doClick..>Hello, World</Label></r>','text/html');
assert.skip(dom+'', '<r xmlns="http://www.w3.org/1999/xhtml"><Label onClick="doClick..">Hello, World</Label></r>')
var dom = new DOMParser().parseFromString('<Label onClick=doClick..">Hello, World</Label>','text/html');
assert(dom+'', '<Label onClick="doClick.." xmlns="http://www.w3.org/1999/xhtml">Hello, World</Label>');
},
"unclosed":function(){
var dom = new DOMParser().parseFromString('<html><meta><link><img><br><hr><input></html>','text/html');
assert(dom+'', '<html xmlns="http://www.w3.org/1999/xhtml"><meta/><link/><img/><br/><hr/><input/></html>');
var dom = new DOMParser().parseFromString('<html title =1/2></html>','text/html');
assert(dom+'', '<html title="1/2" xmlns="http://www.w3.org/1999/xhtml"></html>');
var dom = new DOMParser().parseFromString('<html title= 1/>','text/html');
assert(dom+'', '<html title="1" xmlns="http://www.w3.org/1999/xhtml"></html>');
var dom = new DOMParser().parseFromString('<html title = 1/>','text/html');
assert(dom+'', '<html title="1" xmlns="http://www.w3.org/1999/xhtml"></html>');
var dom = new DOMParser().parseFromString('<html title/>','text/html');
assert(dom+'', '<html title="title" xmlns="http://www.w3.org/1999/xhtml"></html>');
var dom = new DOMParser().parseFromString('<html><meta><link><img><br><hr><input></html>','text/html');
assert(dom+'', '<html xmlns="http://www.w3.org/1999/xhtml"><meta/><link/><img/><br/><hr/><input/></html>');
},
'script': function () {
var dom = new DOMParser().parseFromString('<script>alert(a<b&&c?"<br>":">>");</script>','text/html');
assert(dom+'', '<script xmlns="http://www.w3.org/1999/xhtml">alert(a<b&&c?"<br>":">>");</script>');
var dom = new DOMParser().parseFromString('<script>alert(a<b&&c?"<br>":">>");</script>','text/xml');
assert(dom+'', '<script>alert(a<b&&c?"<br/>":">>");</script>');
var dom = new DOMParser().parseFromString('<script>alert(a<b&&c?"<br/>":">>");</script>','text/html');
assert(dom+'', '<script xmlns="http://www.w3.org/1999/xhtml">alert(a<b&&c?"<br/>":">>");</script>');
var dom = new DOMParser().parseFromString('<script src="./test.js"/>','text/html');
assert(dom+'', '<script src="./test.js" xmlns="http://www.w3.org/1999/xhtml"></script>');
},
'textarea': function () {
var dom = new DOMParser().parseFromString('<textarea>alert(a<b&&c?"<br>":">>");</textarea>','text/html');
assert(dom+'', '<textarea xmlns="http://www.w3.org/1999/xhtml">alert(a<b&&c?"<br>":">>");</textarea>');
var dom = new DOMParser().parseFromString('<textarea>alert(a<b&&c?"<br>":">>");</textarea>','text/xml');
assert(dom+'', '<textarea>alert(a<b&&c?"<br/>":">>");</textarea>');
}
}).export(module);