251 lines
7.1 KiB
JSON
251 lines
7.1 KiB
JSON
[
|
|
{
|
|
"description": "a schema given for items",
|
|
"schema": {
|
|
"items": {"type": "integer"}
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "valid items",
|
|
"data": [ 1, 2, 3 ],
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "wrong type of items",
|
|
"data": [1, "x"],
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "ignores non-arrays",
|
|
"data": {"foo" : "bar"},
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "JavaScript pseudo-array is valid",
|
|
"data": {
|
|
"0": "invalid",
|
|
"length": 1
|
|
},
|
|
"valid": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "an array of schemas for items",
|
|
"schema": {
|
|
"items": [
|
|
{"type": "integer"},
|
|
{"type": "string"}
|
|
]
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "correct types",
|
|
"data": [ 1, "foo" ],
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "wrong types",
|
|
"data": [ "foo", 1 ],
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "incomplete array of items",
|
|
"data": [ 1 ],
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "array with additional items",
|
|
"data": [ 1, "foo", true ],
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "empty array",
|
|
"data": [ ],
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "JavaScript pseudo-array is valid",
|
|
"data": {
|
|
"0": "invalid",
|
|
"1": "valid",
|
|
"length": 2
|
|
},
|
|
"valid": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "items with boolean schema (true)",
|
|
"schema": {"items": true},
|
|
"tests": [
|
|
{
|
|
"description": "any array is valid",
|
|
"data": [ 1, "foo", true ],
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "empty array is valid",
|
|
"data": [],
|
|
"valid": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "items with boolean schema (false)",
|
|
"schema": {"items": false},
|
|
"tests": [
|
|
{
|
|
"description": "any non-empty array is invalid",
|
|
"data": [ 1, "foo", true ],
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "empty array is valid",
|
|
"data": [],
|
|
"valid": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "items with boolean schemas",
|
|
"schema": {
|
|
"items": [true, false]
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "array with one item is valid",
|
|
"data": [ 1 ],
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "array with two items is invalid",
|
|
"data": [ 1, "foo" ],
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "empty array is valid",
|
|
"data": [],
|
|
"valid": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "items and subitems",
|
|
"schema": {
|
|
"definitions": {
|
|
"item": {
|
|
"type": "array",
|
|
"additionalItems": false,
|
|
"items": [
|
|
{ "$ref": "#/definitions/sub-item" },
|
|
{ "$ref": "#/definitions/sub-item" }
|
|
]
|
|
},
|
|
"sub-item": {
|
|
"type": "object",
|
|
"required": ["foo"]
|
|
}
|
|
},
|
|
"type": "array",
|
|
"additionalItems": false,
|
|
"items": [
|
|
{ "$ref": "#/definitions/item" },
|
|
{ "$ref": "#/definitions/item" },
|
|
{ "$ref": "#/definitions/item" }
|
|
]
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "valid items",
|
|
"data": [
|
|
[ {"foo": null}, {"foo": null} ],
|
|
[ {"foo": null}, {"foo": null} ],
|
|
[ {"foo": null}, {"foo": null} ]
|
|
],
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "too many items",
|
|
"data": [
|
|
[ {"foo": null}, {"foo": null} ],
|
|
[ {"foo": null}, {"foo": null} ],
|
|
[ {"foo": null}, {"foo": null} ],
|
|
[ {"foo": null}, {"foo": null} ]
|
|
],
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "too many sub-items",
|
|
"data": [
|
|
[ {"foo": null}, {"foo": null}, {"foo": null} ],
|
|
[ {"foo": null}, {"foo": null} ],
|
|
[ {"foo": null}, {"foo": null} ]
|
|
],
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "wrong item",
|
|
"data": [
|
|
{"foo": null},
|
|
[ {"foo": null}, {"foo": null} ],
|
|
[ {"foo": null}, {"foo": null} ]
|
|
],
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "wrong sub-item",
|
|
"data": [
|
|
[ {}, {"foo": null} ],
|
|
[ {"foo": null}, {"foo": null} ],
|
|
[ {"foo": null}, {"foo": null} ]
|
|
],
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "fewer items is valid",
|
|
"data": [
|
|
[ {"foo": null} ],
|
|
[ {"foo": null} ]
|
|
],
|
|
"valid": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "nested items",
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "number"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "valid nested array",
|
|
"data": [[[[1]], [[2],[3]]], [[[4], [5], [6]]]],
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "nested array with invalid type",
|
|
"data": [[[["1"]], [[2],[3]]], [[[4], [5], [6]]]],
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "not deep enough",
|
|
"data": [[[1], [2],[3]], [[4], [5], [6]]],
|
|
"valid": false
|
|
}
|
|
]
|
|
}
|
|
]
|