1[
2 {
3 "description": "a schema given for items",
4 "schema": {
5 "items": {"type": "integer"}
6 },
7 "tests": [
8 {
9 "description": "valid items",
10 "data": [ 1, 2, 3 ],
11 "valid": true
12 },
13 {
14 "description": "wrong type of items",
15 "data": [1, "x"],
16 "valid": false
17 },
18 {
19 "description": "ignores non-arrays",
20 "data": {"foo" : "bar"},
21 "valid": true
22 },
23 {
24 "description": "JavaScript pseudo-array is valid",
25 "data": {
26 "0": "invalid",
27 "length": 1
28 },
29 "valid": true
30 }
31 ]
32 },
33 {
34 "description": "an array of schemas for items",
35 "schema": {
36 "items": [
37 {"type": "integer"},
38 {"type": "string"}
39 ]
40 },
41 "tests": [
42 {
43 "description": "correct types",
44 "data": [ 1, "foo" ],
45 "valid": true
46 },
47 {
48 "description": "wrong types",
49 "data": [ "foo", 1 ],
50 "valid": false
51 },
52 {
53 "description": "incomplete array of items",
54 "data": [ 1 ],
55 "valid": true
56 },
57 {
58 "description": "array with additional items",
59 "data": [ 1, "foo", true ],
60 "valid": true
61 },
62 {
63 "description": "empty array",
64 "data": [ ],
65 "valid": true
66 },
67 {
68 "description": "JavaScript pseudo-array is valid",
69 "data": {
70 "0": "invalid",
71 "1": "valid",
72 "length": 2
73 },
74 "valid": true
75 }
76 ]
77 },
78 {
79 "description": "items with boolean schema (true)",
80 "schema": {"items": true},
81 "tests": [
82 {
83 "description": "any array is valid",
84 "data": [ 1, "foo", true ],
85 "valid": true
86 },
87 {
88 "description": "empty array is valid",
89 "data": [],
90 "valid": true
91 }
92 ]
93 },
94 {
95 "description": "items with boolean schema (false)",
96 "schema": {"items": false},
97 "tests": [
98 {
99 "description": "any non-empty array is invalid",
100 "data": [ 1, "foo", true ],
101 "valid": false
102 },
103 {
104 "description": "empty array is valid",
105 "data": [],
106 "valid": true
107 }
108 ]
109 },
110 {
111 "description": "items with boolean schemas",
112 "schema": {
113 "items": [true, false]
114 },
115 "tests": [
116 {
117 "description": "array with one item is valid",
118 "data": [ 1 ],
119 "valid": true
120 },
121 {
122 "description": "array with two items is invalid",
123 "data": [ 1, "foo" ],
124 "valid": false
125 },
126 {
127 "description": "empty array is valid",
128 "data": [],
129 "valid": true
130 }
131 ]
132 },
133 {
134 "description": "items and subitems",
135 "schema": {
136 "definitions": {
137 "item": {
138 "type": "array",
139 "additionalItems": false,
140 "items": [
141 { "$ref": "#/definitions/sub-item" },
142 { "$ref": "#/definitions/sub-item" }
143 ]
144 },
145 "sub-item": {
146 "type": "object",
147 "required": ["foo"]
148 }
149 },
150 "type": "array",
151 "additionalItems": false,
152 "items": [
153 { "$ref": "#/definitions/item" },
154 { "$ref": "#/definitions/item" },
155 { "$ref": "#/definitions/item" }
156 ]
157 },
158 "tests": [
159 {
160 "description": "valid items",
161 "data": [
162 [ {"foo": null}, {"foo": null} ],
163 [ {"foo": null}, {"foo": null} ],
164 [ {"foo": null}, {"foo": null} ]
165 ],
166 "valid": true
167 },
168 {
169 "description": "too many items",
170 "data": [
171 [ {"foo": null}, {"foo": null} ],
172 [ {"foo": null}, {"foo": null} ],
173 [ {"foo": null}, {"foo": null} ],
174 [ {"foo": null}, {"foo": null} ]
175 ],
176 "valid": false
177 },
178 {
179 "description": "too many sub-items",
180 "data": [
181 [ {"foo": null}, {"foo": null}, {"foo": null} ],
182 [ {"foo": null}, {"foo": null} ],
183 [ {"foo": null}, {"foo": null} ]
184 ],
185 "valid": false
186 },
187 {
188 "description": "wrong item",
189 "data": [
190 {"foo": null},
191 [ {"foo": null}, {"foo": null} ],
192 [ {"foo": null}, {"foo": null} ]
193 ],
194 "valid": false
195 },
196 {
197 "description": "wrong sub-item",
198 "data": [
199 [ {}, {"foo": null} ],
200 [ {"foo": null}, {"foo": null} ],
201 [ {"foo": null}, {"foo": null} ]
202 ],
203 "valid": false
204 },
205 {
206 "description": "fewer items is valid",
207 "data": [
208 [ {"foo": null} ],
209 [ {"foo": null} ]
210 ],
211 "valid": true
212 }
213 ]
214 },
215 {
216 "description": "nested items",
217 "schema": {
218 "type": "array",
219 "items": {
220 "type": "array",
221 "items": {
222 "type": "array",
223 "items": {
224 "type": "array",
225 "items": {
226 "type": "number"
227 }
228 }
229 }
230 }
231 },
232 "tests": [
233 {
234 "description": "valid nested array",
235 "data": [[[[1]], [[2],[3]]], [[[4], [5], [6]]]],
236 "valid": true
237 },
238 {
239 "description": "nested array with invalid type",
240 "data": [[[["1"]], [[2],[3]]], [[[4], [5], [6]]]],
241 "valid": false
242 },
243 {
244 "description": "not deep enough",
245 "data": [[[1], [2],[3]], [[4], [5], [6]]],
246 "valid": false
247 }
248 ]
249 }
250]
View as plain text