-
-
Notifications
You must be signed in to change notification settings - Fork 388
Expand file tree
/
Copy pathvalidator_spec.js
More file actions
254 lines (180 loc) · 7.77 KB
/
Copy pathvalidator_spec.js
File metadata and controls
254 lines (180 loc) · 7.77 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
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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
var validator = require("../bin/validator");
describe("XMLParser", function () {
it("should validate simple xml string", function () {
var xmlData = "<rootNode></rootNode>";
var result = validator.validate(xmlData);
expect(result).toBe(true);
xmlData = "<rootNode></rootNode >";
result = validator.validate(xmlData);
expect(result).toBe(true);
});
it("should not validate invalid starting tag", function () {
var xmlData = "< rootNode></rootNode>";
result = validator.validate(xmlData);
expect(result).toBe(false);
});
it("should not validate incomplete xml string", function () {
var xmlData = "<rootNode>";
result = validator.validate(xmlData);
expect(result).toBe(false);
});
it("should return false for non xml text", function () {
var xmlData = "rootNode";
result = validator.validate(xmlData);
expect(result).toBe(false);
});
it("should validate self closing tags", function () {
var xmlData = "<rootNode/>";
result = validator.validate(xmlData);
expect(result).toBe(true);
});
it("should not validate xml string when closing tag is different", function () {
var xmlData = "<rootNode></rootnode>";
result = validator.validate(xmlData);
expect(result).toBe(false);
});
it("should not validate xml string when closing tag is invalid", function () {
var xmlData = "<rootNode>< /rootnode>";
result = validator.validate(xmlData);
expect(result).toBe(false);
xmlData = "<rootNode></ rootnode>";
result = validator.validate(xmlData);
expect(result).toBe(false);
xmlData = "<rootNode></rootnode 123>";
result = validator.validate(xmlData);
expect(result).toBe(false);
});
it("should validate simple xml string with namespace", function () {
var xmlData = "<root:Node></root:Node>";
var result = validator.validate(xmlData);
expect(result).toBe(true);
});
it("should not validate xml string with namespace when closing tag is diffrent", function () {
var xmlData = "<root:Node></root:node>";
result = validator.validate(xmlData);
expect(result).toBe(false);
});
it("should validate simple xml string with value", function () {
var xmlData = "<root:Node>some value</root:Node>";
var result = validator.validate(xmlData);
expect(result).toBe(true);
});
it("should not validate simple xml string with value but not matching closing tag", function () {
var xmlData = "<root:Node>some value</root>";
result = validator.validate(xmlData);
expect(result).toBe(false);
});
it("should not validate simple xml string with value but no closing tag", function () {
var xmlData = "<root:Node>some value";
result = validator.validate(xmlData);
expect(result).toBe(false);
});
it("should validate xml with nested tags", function () {
var xmlData = "<rootNode><tag></tag><tag>1</tag><tag>val</tag></rootNode>";
var result = validator.validate(xmlData);
expect(result).toBe(true);
});
it("should not validate xml with wrongly nested tags", function () {
var xmlData = "<rootNode><tag><tag1></tag>1</tag1><tag>val</tag></rootNode>";
result = validator.validate(xmlData);
expect(result).toBe(false);
});
it("should validate xml with comment", function () {
var xmlData = "<rootNode><!-- <tag> - - --><tag>1</tag><tag>val</tag></rootNode>";
var result = validator.validate(xmlData);
expect(result).toBe(true);
});
it("should validate xml with comment", function () {
var xmlData = "<rootNode><!-- <tag> - - \n--><tag>1</tag><tag>val</tag></rootNode>";
var result = validator.validate(xmlData);
expect(result).toBe(true);
});
it("should not validate xml with comment in a open tag", function () {
var xmlData = "<rootNode<!-- <tag> -- -->><tag>1</tag><tag>val</tag></rootNode>";
var result = validator.validate(xmlData);
expect(result).toBe(false);
});
it("should not validate xml with non closing comment", function () {
var xmlData = "<rootNode ><!-- <tag> -- <tag>1</tag><tag>val</tag></rootNode>";
result = validator.validate(xmlData);
expect(result).toBe(false);
});
it("should not validate xml with unclosed tag", function () {
var xmlData = "<rootNode abc='123' bc='567'";
result = validator.validate(xmlData);
expect(result).toBe(false);
});
it("should validate xml with CDATA", function () {
var xmlData = "<name><![CDATA[Jack]]></name>";
var result = validator.validate(xmlData);
expect(result).toBe(true);
});
it("should validate xml with repeated CDATA", function () {
var xmlData = "<name><![CDATA[Jack]]><![CDATA[Jack]]></name>";
var result = validator.validate(xmlData);
expect(result).toBe(true);
});
it("should validate xml when CDATA consist regx or blank data", function () {
var xmlData = "<name><![CDATA[]]><![CDATA[^[ ].*$]]></name>";
var result = validator.validate(xmlData);
expect(result).toBe(true);
});
/*it("should return false when tag starts with xml or XML etc", function () {
var xmlData = "<xmlNode abc='123' bc='567'>val</xmlNode>";
result = validator.validate(xmlData);
expect(result).toBe(false);
xmlData = "<XmLNode abc='123' bc='567'></XmLNode>";
result = validator.validate(xmlData);
expect(result).toBe(false);
xmlData = "<xMLNode/>";
result = validator.validate(xmlData);
expect(result).toBe(false);
});*/
it("should return true for valid tag", function () {
var xmlData = "<ns:start_tag-2.0></ns:start_tag-2.0>";
result = validator.validate(xmlData);
expect(result).toBe(true);
});
it("should return false for invalid tag", function () {
var xmlData = "<2start_tag abc='123' bc='567'></2start_tag>";
result = validator.validate(xmlData);
expect(result).toBe(false);
});
it("should return false for invalid tag", function () {
var xmlData = "<2start_tag />";
result = validator.validate(xmlData);
expect(result).toBe(false);
});
it("should validate xml data", function () {
var fs = require("fs");
var path = require("path");
var fileNamePath = path.join(__dirname, "assets/sample.xml");
var xmlData = fs.readFileSync(fileNamePath).toString();
var result = validator.validate(xmlData);
expect(result).toBe(true);
});
it("should validate complex xml data", function () {
var fs = require("fs");
var path = require("path");
var fileNamePath = path.join(__dirname, "assets/complex.xml");
var xmlData = fs.readFileSync(fileNamePath).toString();
var result = validator.validate(xmlData);
expect(result).toBe(true);
});
it("should return false for invalid xml", function () {
var fs = require("fs");
var path = require("path");
var fileNamePath = path.join(__dirname, "assets/invalid.xml");
var xmlData = fs.readFileSync(fileNamePath).toString();
var result = validator.validate(xmlData);
expect(result).toBe(false);
});
it("should return true for valid svg", function () {
var fs = require("fs");
var path = require("path");
var fileNamePath = path.join(__dirname, "assets/by.svg");
var svgData = fs.readFileSync(fileNamePath).toString();
var result = validator.validate(svgData);
expect(result).toBe(true);
});
});