1[
2 {
3 "description": "Sanity check: validation of date-time strings",
4 "schema": {"format": "date-time"},
5 "tests": [
6 {
7 "description": "a valid date-time string",
8 "data": "1963-06-19T08:30:06.283185Z",
9 "valid": true
10 },
11 {
12 "description": "an invalid date-time string",
13 "data": "06/19/1963 08:30:06 PST",
14 "valid": false
15 },
16 {
17 "description": "only RFC3339 not all of ISO 8601 are valid",
18 "data": "2013-350T01:01:01",
19 "valid": false
20 }
21 ]
22 },
23 {
24 "description": "validation of date strings",
25 "schema": {"format": "date"},
26 "tests": [
27 {
28 "description": "a valid date string",
29 "data": "1963-06-19",
30 "valid": true
31 },
32 {
33 "description": "invalid month in date",
34 "data": "1963-13-19",
35 "valid": false
36 },
37 {
38 "description": "invalid day in date",
39 "data": "1963-12-39",
40 "valid": false
41 },
42 {
43 "description": "invalid year in date",
44 "data": "63-12-39",
45 "valid": false
46 },
47 {
48 "description": "invalid leap year date",
49 "data": "1999-02-29",
50 "valid": false
51 },
52 {
53 "description": "date does not validate date-time",
54 "data": "1963-06-19T08:30:06.283185Z",
55 "valid": false
56 },
57 {
58 "description": "invalid date",
59 "data": "2013-350T01:01:01",
60 "valid": false
61 },
62 {
63 "description": "an invalid date string",
64 "data": "06/19/1963",
65 "valid": false
66 },
67 {
68 "description": "only RFC3339 not all of ISO 8601 are valid",
69 "data": "2013-350T01:01:01",
70 "valid": false
71 }
72 ]
73 },
74 {
75 "description": "sanity check: validation of URIs (literally from json schema test suite)",
76 "schema": {"format": "uri"},
77 "tests": [
78 {
79 "description": "a valid URI",
80 "data": "http://foo.bar/?baz=qux#quux",
81 "valid": true
82 },
83 {
84 "description": "an invalid URI",
85 "data": "\\\\WINDOWS\\fileshare",
86 "valid": false
87 },
88 {
89 "description": "an invalid URI though valid URI reference",
90 "data": "abc",
91 "valid": false
92 }
93 ]
94 },
95 {
96 "description": "sanity check: validation of e-mail addresses (literally from json schema test suite)",
97 "schema": {"format": "email"},
98 "tests": [
99 {
100 "description": "a valid e-mail address",
101 "data": "joe.bloggs@example.com",
102 "valid": true
103 },
104 {
105 "description": "an invalid e-mail address",
106 "data": "2962",
107 "valid": false
108 }
109 ]
110 },
111 {
112 "description": "sanity check: validation of IP addresses (literally from json schema test suite)",
113 "schema": {"format": "ipv4"},
114 "tests": [
115 {
116 "description": "a valid IP address",
117 "data": "192.168.0.1",
118 "valid": true
119 },
120 {
121 "description": "an IP address with too many components",
122 "data": "127.0.0.0.1",
123 "valid": false
124 },
125 {
126 "description": "an IP address with out-of-range values",
127 "data": "256.256.256.256",
128 "valid": false
129 },
130 {
131 "description": "an IP address without 4 components",
132 "data": "127.0",
133 "valid": false
134 },
135 {
136 "description": "an IP address as an integer",
137 "data": "0x7f000001",
138 "valid": false
139 }
140 ]
141 },
142 {
143 "description": "sanity check: validation of IPv6 addresses (literally from json schema test suite)",
144 "schema": {"format": "ipv6"},
145 "tests": [
146 {
147 "description": "a valid IPv6 address",
148 "data": "::1",
149 "valid": true
150 },
151 {
152 "description": "an IPv6 address with out-of-range values",
153 "data": "12345::",
154 "valid": false
155 },
156 {
157 "description": "an IPv6 address with too many components",
158 "data": "1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1",
159 "valid": false
160 },
161 {
162 "description": "an IPv6 address containing illegal characters",
163 "data": "::laptop",
164 "valid": false
165 }
166 ]
167 },
168 {
169 "description": "sanity check: validation of host names (literally from json schema test suite)",
170 "schema": {"format": "hostname"},
171 "tests": [
172 {
173 "description": "a valid host name",
174 "data": "www.example.com",
175 "valid": true
176 },
177 {
178 "description": "a host name starting with an illegal character",
179 "data": "-a-host-name-that-starts-with--",
180 "valid": false
181 },
182 {
183 "description": "a host name containing illegal characters",
184 "data": "not_a_valid_host_name",
185 "valid": false
186 },
187 {
188 "description": "a host name with a component too long",
189 "data": "a-vvvvvvvvvvvvvvvveeeeeeeeeeeeeeeerrrrrrrrrrrrrrrryyyyyyyyyyyyyyyy-long-host-name-component",
190 "valid": false
191 }
192 ]
193 },
194 {
195 "description": "validation of duration strings",
196 "schema": {"format": "duration"},
197 "tests": [
198 {
199 "description": "a valid duration string",
200 "data": "1ns",
201 "valid": true
202 },
203 {
204 "description": "a valid duration string",
205 "data": "1min",
206 "valid": true
207 },
208 {
209 "description": "a valid duration string",
210 "data": "1wk",
211 "valid": true
212 },
213 {
214 "description": "a valid duration string",
215 "data": "3week",
216 "valid": true
217 },
218 {
219 "description": "a valid duration string",
220 "data": "3 week",
221 "valid": true
222 },
223 {
224 "description": "a valid duration string",
225 "data": "3 weeks",
226 "valid": true
227 },
228 {
229 "description": "a valid duration string",
230 "data": "three weeks",
231 "valid": false
232 },
233 {
234 "description": "an invalid duration string",
235 "data": "06/19/1963 08:30:06 PST",
236 "valid": false
237 },
238 {
239 "description": "an invalid duration string",
240 "data": "06/19/1963 08:30:06 PST",
241 "valid": false
242 },
243 {
244 "description": "an invalid duration string",
245 "data": "zorg",
246 "valid": false
247 }
248 ]
249 },
250 {
251 "description": "validation of MAC address strings",
252 "schema": {"format": "mac"},
253 "tests": [
254 {
255 "description": "a valid MAC address string",
256 "data": "01:02:03:04:05:06",
257 "valid": true
258 },
259 {
260 "description": "a valid MAC address string",
261 "data": "AE:02:03:04:05:06",
262 "valid": true
263 },
264 {
265 "description": "an invalid MAC address string",
266 "data": "01:02:03:0G:05:06",
267 "valid": false
268 },
269 {
270 "description": "an invalid MAC address string",
271 "data": "01:02:03:04:05:06:07",
272 "valid": false
273 }
274 ]
275 },
276 {
277 "description": "validation of uuid strings",
278 "schema": {"format": "uuid"},
279 "tests": [
280 {
281 "description": "a valid uuid",
282 "data": "a8098c1a-f86e-11da-bd1a-00112444be1e",
283 "valid": true
284 },
285 {
286 "description": "an invalid uuid",
287 "data": "a8098c1a+f86e+11da+bd1a+00112444be1e",
288 "valid": false
289 }
290 ]
291 },
292 {
293 "description": "validation of uuid3 strings",
294 "schema": {"format": "uuid3"},
295 "tests": [
296 {
297 "description": "a valid uuid3",
298 "data": "bcd02e22-68f0-3046-a512-327cca9def8f",
299 "valid": true
300 },
301 {
302 "description": "an invalid uuid3",
303 "data": "not-an-uuid3",
304 "valid": false
305 },
306 {
307 "description": "an invalid uuid3",
308 "data": "bcg02e22-68f0-3046-a512-327cca9def8f",
309 "valid": false
310 }
311 ]
312 },
313 {
314 "description": "validation of uuid4 strings",
315 "schema": {"format": "uuid4"},
316 "tests": [
317 {
318 "description": "a valid uuid4",
319 "data": "025b0d74-00a2-4048-bf57-227c5111bb34",
320 "valid": true
321 },
322 {
323 "description": "an invalid uuid4",
324 "data": "not-an-uuid4",
325 "valid": false
326 },
327 {
328 "description": "an invalid uuid4",
329 "data": "025b0d74-00a2-4048-bf57-227x5111bb34",
330 "valid": false
331 }
332 ]
333 },
334 {
335 "description": "validation of uuid5 strings",
336 "schema": {"format": "uuid5"},
337 "tests": [
338 {
339 "description": "a valid uuid5",
340 "data": "886313e1-3b8a-5372-9b90-0c9aee199e5d",
341 "valid": true
342 },
343 {
344 "description": "an invalid uuid5",
345 "data": "886313e1/3b8a-5372/9b90/0c9aee199e5d",
346 "valid": false
347 },
348 {
349 "description": "an invalid uuid5",
350 "data": "886313h1-3b8a-5372-9b90-0c9aee199e5d",
351 "valid": false
352 }
353 ]
354 },
355 {
356 "description": "test password format (pass-through)",
357 "schema": {"format": "password"},
358 "tests": [
359 {
360 "description": "a valid password",
361 "data": "secret",
362 "valid": true
363 }
364 ]
365 },
366 {
367 "description": "validation of ISBN strings",
368 "schema": {"format": "isbn"},
369 "tests": [
370 {
371 "description": "a valid ISBN",
372 "data": "0321751043",
373 "valid": true
374 },
375 {
376 "description": "an invalid ISBN",
377 "data": "03217510X3",
378 "valid": false
379 }
380 ]
381 },
382 {
383 "description": "validation of ISBN10 strings",
384 "schema": {"format": "isbn10"},
385 "tests": [
386 {
387 "description": "a valid ISBN10",
388 "data": "0321751043",
389 "valid": true
390 },
391 {
392 "description": "an invalid ISBN10",
393 "data": "032175104300000500",
394 "valid": false
395 }
396 ]
397 },
398 {
399 "description": "validation of ISBN13 strings",
400 "schema": {"format": "isbn13"},
401 "tests": [
402 {
403 "description": "a valid ISBN13",
404 "data": "978 3401013190",
405 "valid": true
406 },
407 {
408 "description": "an invalid ISBN13",
409 "data": "032175104300000500",
410 "valid": false
411 }
412 ]
413 },
414 {
415 "description": "validation of creditcard strings",
416 "schema": {"format": "creditcard"},
417 "tests": [
418 {
419 "description": "a valid creditcard",
420 "data": "4111-1111-1111-1111",
421 "valid": true
422 },
423 {
424 "description": "an invalid creditcard",
425 "data": "4111-1111-1111-11A1",
426 "valid": false
427 }
428 ]
429 },
430 {
431 "description": "validation of SSN strings",
432 "schema": {"format": "ssn"},
433 "tests": [
434 {
435 "description": "a valid SSN",
436 "data": "111-11-1111",
437 "valid": true
438 },
439 {
440 "description": "an invalid SSN",
441 "data": "111-111111",
442 "valid": false
443 }
444 ]
445 },
446 {
447 "description": "validation of hexcolor string",
448 "schema": {"format": "hexcolor"},
449 "tests": [
450 {
451 "description": "a valid hexcolor",
452 "data": "#FFFFFF",
453 "valid": true
454 },
455 {
456 "description": "an invalid hexcolor",
457 "data": "xFFFFFF",
458 "valid": false
459 }
460 ]
461 },
462 {
463 "description": "validation of RGB color strings",
464 "schema": {"format": "rgbcolor"},
465 "tests": [
466 {
467 "description": "a valid rgbcolor",
468 "data": "rgb(255,255,255)",
469 "valid": true
470 },
471 {
472 "description": "an invalid rgbcolor",
473 "data": "rgb(100,100)",
474 "valid": false
475 }
476 ]
477 },
478 {
479 "description": "validation of base64 strings",
480 "schema": {"format": "byte"},
481 "tests": [
482 {
483 "description": "a valid byte (base64)",
484 "data": "ZWxpemFiZXRocG9zZXk=",
485 "valid": true
486 },
487 {
488 "description": "an invalid byte (base64)",
489 "data": "ZWxpemFiZXRocG9zZXk",
490 "valid": false
491 }
492 ]
493 },
494 {
495 "description": "validation of BSON object ID strings",
496 "schema": {"format": "bsonobjectid"},
497 "tests": [
498 {
499 "description": "a valid bsonobjectid",
500 "data": "507f1f77bcf86cd799439011",
501 "valid": true
502 },
503 {
504 "description": "an invalid bsonobjectid",
505 "data": "x07f1f77bcf86cd799439011",
506 "valid": false
507 }
508 ]
509 },
510 {
511 "description": "validation of unsupported format (pass-through)",
512 "schema": {"format": "unsupported"},
513 "tests": [
514 {
515 "description": "an invalid format (no validation)",
516 "data": "my string",
517 "valid": true
518 }
519 ]
520 }
521]
View as plain text