Skip to content

Commit 95874db

Browse files
committed
Squashed 'json/' changes from 40601f6..ea41553
ea41553 Remove test that doesn't match RFC 3339 duration grammar dee8ef7 Merge pull request #411 from ChALkeR/chalker/more-unevaluted cd88fb5 Add more nested and cousin unevaluatedProperties tests 5f3dc7e Merge pull request #415 from json-schema-org/ether/more-ipv6-tests 04ddab1 some more ipv6 tests acb45cd Merge pull request #417 from ChALkeR/chalker/patternProperties 0f4b73a One more patternProperties test with boolean schemas 8ccbfdc Merge pull request #412 from json-schema-org/ether/more-format-duration-2 1329dab some more tests for the "duration" format 1d5c3c0 Merge pull request #405 from ChALkeR/chalker/email-format 7ad7443 Extend email format tests git-subtree-dir: json git-subtree-split: ea415537dda2613f3cd5df1f219f84086f75a7dc
1 parent 774eda9 commit 95874db

File tree

15 files changed

+700
-3
lines changed

15 files changed

+700
-3
lines changed

Diff for: tests/draft2019-09/format.json

+36
Original file line numberDiff line numberDiff line change
@@ -646,5 +646,41 @@
646646
"valid": true
647647
}
648648
]
649+
},
650+
{
651+
"description": "validation of durations",
652+
"schema": { "format": "duration" },
653+
"tests": [
654+
{
655+
"description": "ignores integers",
656+
"data": 12,
657+
"valid": true
658+
},
659+
{
660+
"description": "ignores floats",
661+
"data": 13.7,
662+
"valid": true
663+
},
664+
{
665+
"description": "ignores objects",
666+
"data": {},
667+
"valid": true
668+
},
669+
{
670+
"description": "ignores arrays",
671+
"data": [],
672+
"valid": true
673+
},
674+
{
675+
"description": "ignores booleans",
676+
"data": false,
677+
"valid": true
678+
},
679+
{
680+
"description": "ignores null",
681+
"data": null,
682+
"valid": true
683+
}
684+
]
649685
}
650686
]

Diff for: tests/draft2019-09/optional/format/duration.json

+75
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,81 @@
1212
"description": "an invalid duration string",
1313
"data": "PT1D",
1414
"valid": false
15+
},
16+
{
17+
"description": "no elements present",
18+
"data": "P",
19+
"valid": false
20+
},
21+
{
22+
"description": "no time elements present",
23+
"data": "P1YT",
24+
"valid": false
25+
},
26+
{
27+
"description": "no date or time elements present",
28+
"data": "PT",
29+
"valid": false
30+
},
31+
{
32+
"description": "elements out of order",
33+
"data": "P2D1Y",
34+
"valid": false
35+
},
36+
{
37+
"description": "missing time separator",
38+
"data": "P1D2H",
39+
"valid": false
40+
},
41+
{
42+
"description": "time element in the date position",
43+
"data": "P2S",
44+
"valid": false
45+
},
46+
{
47+
"description": "four years duration",
48+
"data": "P4Y",
49+
"valid": true
50+
},
51+
{
52+
"description": "zero time, in seconds",
53+
"data": "PT0S",
54+
"valid": true
55+
},
56+
{
57+
"description": "zero time, in days",
58+
"data": "P0D",
59+
"valid": true
60+
},
61+
{
62+
"description": "one month duration",
63+
"data": "P1M",
64+
"valid": true
65+
},
66+
{
67+
"description": "one minute duration",
68+
"data": "PT1M",
69+
"valid": true
70+
},
71+
{
72+
"description": "one and a half days, in hours",
73+
"data": "PT36H",
74+
"valid": true
75+
},
76+
{
77+
"description": "one and a half days, in days and hours",
78+
"data": "P1DT12H",
79+
"valid": true
80+
},
81+
{
82+
"description": "two weeks",
83+
"data": "P2W",
84+
"valid": true
85+
},
86+
{
87+
"description": "weeks cannot be combined with other units",
88+
"data": "P1Y2W",
89+
"valid": false
1590
}
1691
]
1792
}

Diff for: tests/draft2019-09/optional/format/email.json

+35
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,41 @@
1212
"description": "an invalid e-mail address",
1313
"data": "2962",
1414
"valid": false
15+
},
16+
{
17+
"description": "tilde in local part is valid",
18+
"data": "[email protected]",
19+
"valid": true
20+
},
21+
{
22+
"description": "tilde before local part is valid",
23+
"data": "[email protected]",
24+
"valid": true
25+
},
26+
{
27+
"description": "tilde after local part is valid",
28+
"data": "[email protected]",
29+
"valid": true
30+
},
31+
{
32+
"description": "dot before local part is not valid",
33+
"data": "[email protected]",
34+
"valid": false
35+
},
36+
{
37+
"description": "dot after local part is not valid",
38+
"data": "[email protected]",
39+
"valid": false
40+
},
41+
{
42+
"description": "two separated dots inside local part are valid",
43+
"data": "[email protected]",
44+
"valid": true
45+
},
46+
{
47+
"description": "two subsequent dots inside local part are not valid",
48+
"data": "[email protected]",
49+
"valid": false
1550
}
1651
]
1752
}

Diff for: tests/draft2019-09/optional/format/ipv6.json

+50
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,21 @@
3838
"data": "d6::",
3939
"valid": true
4040
},
41+
{
42+
"description": "missing leading octet is invalid",
43+
"data": ":2:3:4:5:6:7:8",
44+
"valid": false
45+
},
46+
{
47+
"description": "missing trailing octet is invalid",
48+
"data": "1:2:3:4:5:6:7:",
49+
"valid": false
50+
},
51+
{
52+
"description": "missing leading octet with omitted octets later",
53+
"data": ":2:3:4::8",
54+
"valid": false
55+
},
4156
{
4257
"description": "two sets of double colons is invalid",
4358
"data": "1::d6::42",
@@ -62,6 +77,41 @@
6277
"description": "mixed format with ipv4 section with a hex octet",
6378
"data": "1::2:192.168.ff.1",
6479
"valid": false
80+
},
81+
{
82+
"description": "mixed format with leading double colons (ipv4-mapped ipv6 address)",
83+
"data": "::ffff:192.168.0.1",
84+
"valid": true
85+
},
86+
{
87+
"description": "triple colons is invalid",
88+
"data": "1:2:3:4:5:::8",
89+
"valid": false
90+
},
91+
{
92+
"description": "8 octets",
93+
"data": "1:2:3:4:5:6:7:8",
94+
"valid": true
95+
},
96+
{
97+
"description": "insufficient octets without double colons",
98+
"data": "1:2:3:4:5:6:7",
99+
"valid": false
100+
},
101+
{
102+
"description": "no colons is invalid",
103+
"data": "1",
104+
"valid": false
105+
},
106+
{
107+
"description": "ipv4 is not ipv6",
108+
"data": "127.0.0.1",
109+
"valid": false
110+
},
111+
{
112+
"description": "ipv4 segment must have 4 octets",
113+
"data": "1:2:3:4:1.2.3",
114+
"valid": false
65115
}
66116
]
67117
}

Diff for: tests/draft2019-09/patternProperties.json

+5
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,11 @@
141141
"data": {"foo": 1, "bar": 2},
142142
"valid": false
143143
},
144+
{
145+
"description": "object with a property matching both true and false is invalid",
146+
"data": {"foobar":1},
147+
"valid": false
148+
},
144149
{
145150
"description": "empty object is valid",
146151
"data": {},

0 commit comments

Comments
 (0)