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 and subitems",
80 "schema": {
81 "definitions": {
82 "item": {
83 "type": "array",
84 "additionalItems": false,
85 "items": [
86 { "$ref": "#/definitions/sub-item" },
87 { "$ref": "#/definitions/sub-item" }
88 ]
89 },
90 "sub-item": {
91 "type": "object",
92 "required": ["foo"]
93 }
94 },
95 "type": "array",
96 "additionalItems": false,
97 "items": [
98 { "$ref": "#/definitions/item" },
99 { "$ref": "#/definitions/item" },
100 { "$ref": "#/definitions/item" }
101 ]
102 },
103 "tests": [
104 {
105 "description": "valid items",
106 "data": [
107 [ {"foo": null}, {"foo": null} ],
108 [ {"foo": null}, {"foo": null} ],
109 [ {"foo": null}, {"foo": null} ]
110 ],
111 "valid": true
112 },
113 {
114 "description": "too many items",
115 "data": [
116 [ {"foo": null}, {"foo": null} ],
117 [ {"foo": null}, {"foo": null} ],
118 [ {"foo": null}, {"foo": null} ],
119 [ {"foo": null}, {"foo": null} ]
120 ],
121 "valid": false
122 },
123 {
124 "description": "too many sub-items",
125 "data": [
126 [ {"foo": null}, {"foo": null}, {"foo": null} ],
127 [ {"foo": null}, {"foo": null} ],
128 [ {"foo": null}, {"foo": null} ]
129 ],
130 "valid": false
131 },
132 {
133 "description": "wrong item",
134 "data": [
135 {"foo": null},
136 [ {"foo": null}, {"foo": null} ],
137 [ {"foo": null}, {"foo": null} ]
138 ],
139 "valid": false
140 },
141 {
142 "description": "wrong sub-item",
143 "data": [
144 [ {}, {"foo": null} ],
145 [ {"foo": null}, {"foo": null} ],
146 [ {"foo": null}, {"foo": null} ]
147 ],
148 "valid": false
149 },
150 {
151 "description": "fewer items is valid",
152 "data": [
153 [ {"foo": null} ],
154 [ {"foo": null} ]
155 ],
156 "valid": true
157 }
158 ]
159 },
160 {
161 "description": "nested items",
162 "schema": {
163 "type": "array",
164 "items": {
165 "type": "array",
166 "items": {
167 "type": "array",
168 "items": {
169 "type": "array",
170 "items": {
171 "type": "number"
172 }
173 }
174 }
175 }
176 },
177 "tests": [
178 {
179 "description": "valid nested array",
180 "data": [[[[1]], [[2],[3]]], [[[4], [5], [6]]]],
181 "valid": true
182 },
183 {
184 "description": "nested array with invalid type",
185 "data": [[[["1"]], [[2],[3]]], [[[4], [5], [6]]]],
186 "valid": false
187 },
188 {
189 "description": "not deep enough",
190 "data": [[[1], [2],[3]], [[4], [5], [6]]],
191 "valid": false
192 }
193 ]
194 }
195]
View as plain text