forked from json-schema-org/JSON-Schema-Test-Suite
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Initialize draft6 tests from draft4.
We are not currently adding tests for draft5, see issue json-schema-org#136 for discussion.
- Loading branch information
Showing
32 changed files
with
2,436 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
[ | ||
{ | ||
"description": "additionalItems as schema", | ||
"schema": { | ||
"items": [{}], | ||
"additionalItems": {"type": "integer"} | ||
}, | ||
"tests": [ | ||
{ | ||
"description": "additional items match schema", | ||
"data": [ null, 2, 3, 4 ], | ||
"valid": true | ||
}, | ||
{ | ||
"description": "additional items do not match schema", | ||
"data": [ null, 2, 3, "foo" ], | ||
"valid": false | ||
} | ||
] | ||
}, | ||
{ | ||
"description": "items is schema, no additionalItems", | ||
"schema": { | ||
"items": {}, | ||
"additionalItems": false | ||
}, | ||
"tests": [ | ||
{ | ||
"description": "all items match schema", | ||
"data": [ 1, 2, 3, 4, 5 ], | ||
"valid": true | ||
} | ||
] | ||
}, | ||
{ | ||
"description": "array of items with no additionalItems", | ||
"schema": { | ||
"items": [{}, {}, {}], | ||
"additionalItems": false | ||
}, | ||
"tests": [ | ||
{ | ||
"description": "no additional items present", | ||
"data": [ 1, 2, 3 ], | ||
"valid": true | ||
}, | ||
{ | ||
"description": "additional items are not permitted", | ||
"data": [ 1, 2, 3, 4 ], | ||
"valid": false | ||
} | ||
] | ||
}, | ||
{ | ||
"description": "additionalItems as false without items", | ||
"schema": {"additionalItems": false}, | ||
"tests": [ | ||
{ | ||
"description": | ||
"items defaults to empty schema so everything is valid", | ||
"data": [ 1, 2, 3, 4, 5 ], | ||
"valid": true | ||
}, | ||
{ | ||
"description": "ignores non-arrays", | ||
"data": {"foo" : "bar"}, | ||
"valid": true | ||
} | ||
] | ||
}, | ||
{ | ||
"description": "additionalItems are allowed by default", | ||
"schema": {"items": [{"type": "integer"}]}, | ||
"tests": [ | ||
{ | ||
"description": "only the first item is validated", | ||
"data": [1, "foo", false], | ||
"valid": true | ||
} | ||
] | ||
} | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
[ | ||
{ | ||
"description": | ||
"additionalProperties being false does not allow other properties", | ||
"schema": { | ||
"properties": {"foo": {}, "bar": {}}, | ||
"patternProperties": { "^v": {} }, | ||
"additionalProperties": false | ||
}, | ||
"tests": [ | ||
{ | ||
"description": "no additional properties is valid", | ||
"data": {"foo": 1}, | ||
"valid": true | ||
}, | ||
{ | ||
"description": "an additional property is invalid", | ||
"data": {"foo" : 1, "bar" : 2, "quux" : "boom"}, | ||
"valid": false | ||
}, | ||
{ | ||
"description": "ignores non-objects", | ||
"data": [1, 2, 3], | ||
"valid": true | ||
}, | ||
{ | ||
"description": "patternProperties are not additional properties", | ||
"data": {"foo":1, "vroom": 2}, | ||
"valid": true | ||
} | ||
] | ||
}, | ||
{ | ||
"description": | ||
"additionalProperties allows a schema which should validate", | ||
"schema": { | ||
"properties": {"foo": {}, "bar": {}}, | ||
"additionalProperties": {"type": "boolean"} | ||
}, | ||
"tests": [ | ||
{ | ||
"description": "no additional properties is valid", | ||
"data": {"foo": 1}, | ||
"valid": true | ||
}, | ||
{ | ||
"description": "an additional valid property is valid", | ||
"data": {"foo" : 1, "bar" : 2, "quux" : true}, | ||
"valid": true | ||
}, | ||
{ | ||
"description": "an additional invalid property is invalid", | ||
"data": {"foo" : 1, "bar" : 2, "quux" : 12}, | ||
"valid": false | ||
} | ||
] | ||
}, | ||
{ | ||
"description": | ||
"additionalProperties can exist by itself", | ||
"schema": { | ||
"additionalProperties": {"type": "boolean"} | ||
}, | ||
"tests": [ | ||
{ | ||
"description": "an additional valid property is valid", | ||
"data": {"foo" : true}, | ||
"valid": true | ||
}, | ||
{ | ||
"description": "an additional invalid property is invalid", | ||
"data": {"foo" : 1}, | ||
"valid": false | ||
} | ||
] | ||
}, | ||
{ | ||
"description": "additionalProperties are allowed by default", | ||
"schema": {"properties": {"foo": {}, "bar": {}}}, | ||
"tests": [ | ||
{ | ||
"description": "additional properties are allowed", | ||
"data": {"foo": 1, "bar": 2, "quux": true}, | ||
"valid": true | ||
} | ||
] | ||
} | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,112 @@ | ||
[ | ||
{ | ||
"description": "allOf", | ||
"schema": { | ||
"allOf": [ | ||
{ | ||
"properties": { | ||
"bar": {"type": "integer"} | ||
}, | ||
"required": ["bar"] | ||
}, | ||
{ | ||
"properties": { | ||
"foo": {"type": "string"} | ||
}, | ||
"required": ["foo"] | ||
} | ||
] | ||
}, | ||
"tests": [ | ||
{ | ||
"description": "allOf", | ||
"data": {"foo": "baz", "bar": 2}, | ||
"valid": true | ||
}, | ||
{ | ||
"description": "mismatch second", | ||
"data": {"foo": "baz"}, | ||
"valid": false | ||
}, | ||
{ | ||
"description": "mismatch first", | ||
"data": {"bar": 2}, | ||
"valid": false | ||
}, | ||
{ | ||
"description": "wrong type", | ||
"data": {"foo": "baz", "bar": "quux"}, | ||
"valid": false | ||
} | ||
] | ||
}, | ||
{ | ||
"description": "allOf with base schema", | ||
"schema": { | ||
"properties": {"bar": {"type": "integer"}}, | ||
"required": ["bar"], | ||
"allOf" : [ | ||
{ | ||
"properties": { | ||
"foo": {"type": "string"} | ||
}, | ||
"required": ["foo"] | ||
}, | ||
{ | ||
"properties": { | ||
"baz": {"type": "null"} | ||
}, | ||
"required": ["baz"] | ||
} | ||
] | ||
}, | ||
"tests": [ | ||
{ | ||
"description": "valid", | ||
"data": {"foo": "quux", "bar": 2, "baz": null}, | ||
"valid": true | ||
}, | ||
{ | ||
"description": "mismatch base schema", | ||
"data": {"foo": "quux", "baz": null}, | ||
"valid": false | ||
}, | ||
{ | ||
"description": "mismatch first allOf", | ||
"data": {"bar": 2, "baz": null}, | ||
"valid": false | ||
}, | ||
{ | ||
"description": "mismatch second allOf", | ||
"data": {"foo": "quux", "bar": 2}, | ||
"valid": false | ||
}, | ||
{ | ||
"description": "mismatch both", | ||
"data": {"bar": 2}, | ||
"valid": false | ||
} | ||
] | ||
}, | ||
{ | ||
"description": "allOf simple types", | ||
"schema": { | ||
"allOf": [ | ||
{"maximum": 30}, | ||
{"minimum": 20} | ||
] | ||
}, | ||
"tests": [ | ||
{ | ||
"description": "valid", | ||
"data": 25, | ||
"valid": true | ||
}, | ||
{ | ||
"description": "mismatch one", | ||
"data": 35, | ||
"valid": false | ||
} | ||
] | ||
} | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
[ | ||
{ | ||
"description": "anyOf", | ||
"schema": { | ||
"anyOf": [ | ||
{ | ||
"type": "integer" | ||
}, | ||
{ | ||
"minimum": 2 | ||
} | ||
] | ||
}, | ||
"tests": [ | ||
{ | ||
"description": "first anyOf valid", | ||
"data": 1, | ||
"valid": true | ||
}, | ||
{ | ||
"description": "second anyOf valid", | ||
"data": 2.5, | ||
"valid": true | ||
}, | ||
{ | ||
"description": "both anyOf valid", | ||
"data": 3, | ||
"valid": true | ||
}, | ||
{ | ||
"description": "neither anyOf valid", | ||
"data": 1.5, | ||
"valid": false | ||
} | ||
] | ||
}, | ||
{ | ||
"description": "anyOf with base schema", | ||
"schema": { | ||
"type": "string", | ||
"anyOf" : [ | ||
{ | ||
"maxLength": 2 | ||
}, | ||
{ | ||
"minLength": 4 | ||
} | ||
] | ||
}, | ||
"tests": [ | ||
{ | ||
"description": "mismatch base schema", | ||
"data": 3, | ||
"valid": false | ||
}, | ||
{ | ||
"description": "one anyOf valid", | ||
"data": "foobar", | ||
"valid": true | ||
}, | ||
{ | ||
"description": "both anyOf invalid", | ||
"data": "foo", | ||
"valid": false | ||
} | ||
] | ||
} | ||
] |
Oops, something went wrong.