Skip to content

Commit 76b529f

Browse files
authored
Merge pull request #482 from json-schema-org/ether/more-date-time-tests
some more tests for "date" and "time" formats
2 parents eb61904 + 57f1d63 commit 76b529f

File tree

8 files changed

+340
-20
lines changed

8 files changed

+340
-20
lines changed

tests/draft-future/optional/format/date.json

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,14 +154,34 @@
154154
"valid": false
155155
},
156156
{
157-
"description": "invalidates non-padded month dates",
157+
"description": "non-padded month dates are not valid",
158158
"data": "1998-1-20",
159159
"valid": false
160160
},
161161
{
162-
"description": "invalidates non-padded day dates",
162+
"description": "non-padded day dates are not valid",
163163
"data": "1998-01-1",
164164
"valid": false
165+
},
166+
{
167+
"description": "invalid month",
168+
"data": "1998-13-01",
169+
"valid": false
170+
},
171+
{
172+
"description": "invalid month-day combination",
173+
"data": "1998-04-31",
174+
"valid": false
175+
},
176+
{
177+
"description": "2021 is not a leap year",
178+
"data": "2021-02-29",
179+
"valid": false
180+
},
181+
{
182+
"description": "2020 is a leap year",
183+
"data": "2020-02-29",
184+
"valid": true
165185
}
166186
]
167187
}

tests/draft-future/optional/format/time.json

Lines changed: 63 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,75 @@
99
"valid": true
1010
},
1111
{
12-
"description": "a valid time string with leap second",
12+
"description": "a valid time string with leap second, Zulu",
1313
"data": "23:59:60Z",
1414
"valid": true
1515
},
1616
{
17-
"description": "a valid time string with leap second with offset",
17+
"description": "invalid leap second, Zulu (wrong hour)",
18+
"data": "22:59:60Z",
19+
"valid": false
20+
},
21+
{
22+
"description": "invalid leap second, Zulu (wrong minute)",
23+
"data": "23:58:60Z",
24+
"valid": false
25+
},
26+
{
27+
"description": "valid leap second, zero time-offset",
28+
"data": "23:59:60+00:00",
29+
"valid": true
30+
},
31+
{
32+
"description": "invalid leap second, zero time-offset (wrong hour)",
33+
"data": "22:59:60+00:00",
34+
"valid": false
35+
},
36+
{
37+
"description": "invalid leap second, zero time-offset (wrong minute)",
38+
"data": "23:58:60+00:00",
39+
"valid": false
40+
},
41+
{
42+
"description": "valid leap second, positive time-offset",
43+
"data": "01:29:60+01:30",
44+
"valid": true
45+
},
46+
{
47+
"description": "valid leap second, large positive time-offset",
48+
"data": "23:29:60+23:30",
49+
"valid": true
50+
},
51+
{
52+
"description": "invalid leap second, positive time-offset (wrong hour)",
53+
"data": "23:59:60+01:00",
54+
"valid": false
55+
},
56+
{
57+
"description": "invalid leap second, positive time-offset (wrong minute)",
58+
"data": "23:59:60+00:30",
59+
"valid": false
60+
},
61+
{
62+
"description": "valid leap second, negative time-offset",
1863
"data": "15:59:60-08:00",
1964
"valid": true
2065
},
66+
{
67+
"description": "valid leap second, large negative time-offset",
68+
"data": "00:29:60-23:30",
69+
"valid": true
70+
},
71+
{
72+
"description": "invalid leap second, negative time-offset (wrong hour)",
73+
"data": "23:59:60-01:00",
74+
"valid": false
75+
},
76+
{
77+
"description": "invalid leap second, negative time-offset (wrong minute)",
78+
"data": "23:59:60-00:30",
79+
"valid": false
80+
},
2181
{
2282
"description": "a valid time string with second fraction",
2383
"data": "23:20:50.52Z",
@@ -84,7 +144,7 @@
84144
"valid": false
85145
},
86146
{
87-
"description": "an invalid time string",
147+
"description": "an invalid offset indicator",
88148
"data": "08:30:06 PST",
89149
"valid": false
90150
},

tests/draft2019-09/optional/format/date.json

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,14 +154,34 @@
154154
"valid": false
155155
},
156156
{
157-
"description": "invalidates non-padded month dates",
157+
"description": "non-padded month dates are not valid",
158158
"data": "1998-1-20",
159159
"valid": false
160160
},
161161
{
162-
"description": "invalidates non-padded day dates",
162+
"description": "non-padded day dates are not valid",
163163
"data": "1998-01-1",
164164
"valid": false
165+
},
166+
{
167+
"description": "invalid month",
168+
"data": "1998-13-01",
169+
"valid": false
170+
},
171+
{
172+
"description": "invalid month-day combination",
173+
"data": "1998-04-31",
174+
"valid": false
175+
},
176+
{
177+
"description": "2021 is not a leap year",
178+
"data": "2021-02-29",
179+
"valid": false
180+
},
181+
{
182+
"description": "2020 is a leap year",
183+
"data": "2020-02-29",
184+
"valid": true
165185
}
166186
]
167187
}

tests/draft2019-09/optional/format/time.json

Lines changed: 63 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,75 @@
99
"valid": true
1010
},
1111
{
12-
"description": "a valid time string with leap second",
12+
"description": "a valid time string with leap second, Zulu",
1313
"data": "23:59:60Z",
1414
"valid": true
1515
},
1616
{
17-
"description": "a valid time string with leap second with offset",
17+
"description": "invalid leap second, Zulu (wrong hour)",
18+
"data": "22:59:60Z",
19+
"valid": false
20+
},
21+
{
22+
"description": "invalid leap second, Zulu (wrong minute)",
23+
"data": "23:58:60Z",
24+
"valid": false
25+
},
26+
{
27+
"description": "valid leap second, zero time-offset",
28+
"data": "23:59:60+00:00",
29+
"valid": true
30+
},
31+
{
32+
"description": "invalid leap second, zero time-offset (wrong hour)",
33+
"data": "22:59:60+00:00",
34+
"valid": false
35+
},
36+
{
37+
"description": "invalid leap second, zero time-offset (wrong minute)",
38+
"data": "23:58:60+00:00",
39+
"valid": false
40+
},
41+
{
42+
"description": "valid leap second, positive time-offset",
43+
"data": "01:29:60+01:30",
44+
"valid": true
45+
},
46+
{
47+
"description": "valid leap second, large positive time-offset",
48+
"data": "23:29:60+23:30",
49+
"valid": true
50+
},
51+
{
52+
"description": "invalid leap second, positive time-offset (wrong hour)",
53+
"data": "23:59:60+01:00",
54+
"valid": false
55+
},
56+
{
57+
"description": "invalid leap second, positive time-offset (wrong minute)",
58+
"data": "23:59:60+00:30",
59+
"valid": false
60+
},
61+
{
62+
"description": "valid leap second, negative time-offset",
1863
"data": "15:59:60-08:00",
1964
"valid": true
2065
},
66+
{
67+
"description": "valid leap second, large negative time-offset",
68+
"data": "00:29:60-23:30",
69+
"valid": true
70+
},
71+
{
72+
"description": "invalid leap second, negative time-offset (wrong hour)",
73+
"data": "23:59:60-01:00",
74+
"valid": false
75+
},
76+
{
77+
"description": "invalid leap second, negative time-offset (wrong minute)",
78+
"data": "23:59:60-00:30",
79+
"valid": false
80+
},
2181
{
2282
"description": "a valid time string with second fraction",
2383
"data": "23:20:50.52Z",
@@ -84,7 +144,7 @@
84144
"valid": false
85145
},
86146
{
87-
"description": "an invalid time string",
147+
"description": "an invalid offset indicator",
88148
"data": "08:30:06 PST",
89149
"valid": false
90150
},

tests/draft2020-12/optional/format/date.json

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,14 +154,34 @@
154154
"valid": false
155155
},
156156
{
157-
"description": "invalidates non-padded month dates",
157+
"description": "non-padded month dates are not valid",
158158
"data": "1998-1-20",
159159
"valid": false
160160
},
161161
{
162-
"description": "invalidates non-padded day dates",
162+
"description": "non-padded day dates are not valid",
163163
"data": "1998-01-1",
164164
"valid": false
165+
},
166+
{
167+
"description": "invalid month",
168+
"data": "1998-13-01",
169+
"valid": false
170+
},
171+
{
172+
"description": "invalid month-day combination",
173+
"data": "1998-04-31",
174+
"valid": false
175+
},
176+
{
177+
"description": "2021 is not a leap year",
178+
"data": "2021-02-29",
179+
"valid": false
180+
},
181+
{
182+
"description": "2020 is a leap year",
183+
"data": "2020-02-29",
184+
"valid": true
165185
}
166186
]
167187
}

tests/draft2020-12/optional/format/time.json

Lines changed: 63 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,75 @@
99
"valid": true
1010
},
1111
{
12-
"description": "a valid time string with leap second",
12+
"description": "a valid time string with leap second, Zulu",
1313
"data": "23:59:60Z",
1414
"valid": true
1515
},
1616
{
17-
"description": "a valid time string with leap second with offset",
17+
"description": "invalid leap second, Zulu (wrong hour)",
18+
"data": "22:59:60Z",
19+
"valid": false
20+
},
21+
{
22+
"description": "invalid leap second, Zulu (wrong minute)",
23+
"data": "23:58:60Z",
24+
"valid": false
25+
},
26+
{
27+
"description": "valid leap second, zero time-offset",
28+
"data": "23:59:60+00:00",
29+
"valid": true
30+
},
31+
{
32+
"description": "invalid leap second, zero time-offset (wrong hour)",
33+
"data": "22:59:60+00:00",
34+
"valid": false
35+
},
36+
{
37+
"description": "invalid leap second, zero time-offset (wrong minute)",
38+
"data": "23:58:60+00:00",
39+
"valid": false
40+
},
41+
{
42+
"description": "valid leap second, positive time-offset",
43+
"data": "01:29:60+01:30",
44+
"valid": true
45+
},
46+
{
47+
"description": "valid leap second, large positive time-offset",
48+
"data": "23:29:60+23:30",
49+
"valid": true
50+
},
51+
{
52+
"description": "invalid leap second, positive time-offset (wrong hour)",
53+
"data": "23:59:60+01:00",
54+
"valid": false
55+
},
56+
{
57+
"description": "invalid leap second, positive time-offset (wrong minute)",
58+
"data": "23:59:60+00:30",
59+
"valid": false
60+
},
61+
{
62+
"description": "valid leap second, negative time-offset",
1863
"data": "15:59:60-08:00",
1964
"valid": true
2065
},
66+
{
67+
"description": "valid leap second, large negative time-offset",
68+
"data": "00:29:60-23:30",
69+
"valid": true
70+
},
71+
{
72+
"description": "invalid leap second, negative time-offset (wrong hour)",
73+
"data": "23:59:60-01:00",
74+
"valid": false
75+
},
76+
{
77+
"description": "invalid leap second, negative time-offset (wrong minute)",
78+
"data": "23:59:60-00:30",
79+
"valid": false
80+
},
2181
{
2282
"description": "a valid time string with second fraction",
2383
"data": "23:20:50.52Z",
@@ -84,7 +144,7 @@
84144
"valid": false
85145
},
86146
{
87-
"description": "an invalid time string",
147+
"description": "an invalid offset indicator",
88148
"data": "08:30:06 PST",
89149
"valid": false
90150
},

0 commit comments

Comments
 (0)