summaryrefslogtreecommitdiff
path: root/json/tests/draft6
diff options
context:
space:
mode:
authorJulian Berman <Julian@GrayVines.com>2019-03-31 09:38:07 -0400
committerJulian Berman <Julian@GrayVines.com>2019-03-31 09:38:07 -0400
commit14710c64f2df383e00366b2db839f40ae0d691c8 (patch)
tree898682feb61fe3c35f670aaca6cf0abf0c7b8461 /json/tests/draft6
parent4b2d27602a9fd0c13fd3f3b1fe89a8a297b144fd (diff)
parenteb60af03a05771bdfa07256b54b71aef8c055a3b (diff)
downloadjsonschema-14710c64f2df383e00366b2db839f40ae0d691c8.tar.gz
Merge commit 'eb60af03a05771bdfa07256b54b71aef8c055a3b'
* commit 'eb60af03a05771bdfa07256b54b71aef8c055a3b': Squashed 'json/' changes from 3c3881a..15ba997
Diffstat (limited to 'json/tests/draft6')
-rw-r--r--json/tests/draft6/dependencies.json71
-rw-r--r--json/tests/draft6/enum.json23
-rw-r--r--json/tests/draft6/minimum.json31
-rw-r--r--json/tests/draft6/properties.json39
-rw-r--r--json/tests/draft6/ref.json27
-rw-r--r--json/tests/draft6/required.json35
6 files changed, 226 insertions, 0 deletions
diff --git a/json/tests/draft6/dependencies.json b/json/tests/draft6/dependencies.json
index 5af1894..8dd78aa 100644
--- a/json/tests/draft6/dependencies.json
+++ b/json/tests/draft6/dependencies.json
@@ -193,5 +193,76 @@
"valid": true
}
]
+ },
+ {
+ "description": "dependencies with escaped characters",
+ "schema": {
+ "dependencies": {
+ "foo\nbar": ["foo\rbar"],
+ "foo\tbar": {
+ "minProperties": 4
+ },
+ "foo'bar": {"required": ["foo\"bar"]},
+ "foo\"bar": ["foo'bar"]
+ }
+ },
+ "tests": [
+ {
+ "description": "valid object 1",
+ "data": {
+ "foo\nbar": 1,
+ "foo\rbar": 2
+ },
+ "valid": true
+ },
+ {
+ "description": "valid object 2",
+ "data": {
+ "foo\tbar": 1,
+ "a": 2,
+ "b": 3,
+ "c": 4
+ },
+ "valid": true
+ },
+ {
+ "description": "valid object 3",
+ "data": {
+ "foo'bar": 1,
+ "foo\"bar": 2
+ },
+ "valid": true
+ },
+ {
+ "description": "invalid object 1",
+ "data": {
+ "foo\nbar": 1,
+ "foo": 2
+ },
+ "valid": false
+ },
+ {
+ "description": "invalid object 2",
+ "data": {
+ "foo\tbar": 1,
+ "a": 2
+ },
+ "valid": false
+ },
+ {
+ "description": "invalid object 3",
+ "data": {
+ "foo'bar": 1
+ },
+ "valid": false
+ },
+ {
+ "description": "invalid object 4",
+ "data": {
+ "foo\"bar": 2
+ },
+ "valid": false
+ }
+ ]
}
]
diff --git a/json/tests/draft6/enum.json b/json/tests/draft6/enum.json
index 8fb9d7a..04a92a4 100644
--- a/json/tests/draft6/enum.json
+++ b/json/tests/draft6/enum.json
@@ -68,5 +68,28 @@
"valid": false
}
]
+ },
+ {
+ "description": "enum with escaped characters",
+ "schema": {
+ "enum": ["foo\nbar", "foo\rbar"]
+ },
+ "tests": [
+ {
+ "description": "member 1 is valid",
+ "data": "foo\nbar",
+ "valid": true
+ },
+ {
+ "description": "member 2 is valid",
+ "data": "foo\rbar",
+ "valid": true
+ },
+ {
+ "description": "another string is invalid",
+ "data": "abc",
+ "valid": false
+ }
+ ]
}
]
diff --git a/json/tests/draft6/minimum.json b/json/tests/draft6/minimum.json
index bd1e95b..2a9c42b 100644
--- a/json/tests/draft6/minimum.json
+++ b/json/tests/draft6/minimum.json
@@ -24,5 +24,36 @@
"valid": true
}
]
+ },
+ {
+ "description": "minimum validation with signed integer",
+ "schema": {"minimum": -2},
+ "tests": [
+ {
+ "description": "negative above the minimum is valid",
+ "data": -1,
+ "valid": true
+ },
+ {
+ "description": "positive above the minimum is valid",
+ "data": 0,
+ "valid": true
+ },
+ {
+ "description": "boundary point is valid",
+ "data": -2,
+ "valid": true
+ },
+ {
+ "description": "below the minimum is invalid",
+ "data": -3,
+ "valid": false
+ },
+ {
+ "description": "ignores non-numbers",
+ "data": "x",
+ "valid": true
+ }
+ ]
}
]
diff --git a/json/tests/draft6/properties.json b/json/tests/draft6/properties.json
index c8ad719..b86c181 100644
--- a/json/tests/draft6/properties.json
+++ b/json/tests/draft6/properties.json
@@ -124,5 +124,44 @@
"valid": false
}
]
+ },
+ {
+ "description": "properties with escaped characters",
+ "schema": {
+ "properties": {
+ "foo\nbar": {"type": "number"},
+ "foo\"bar": {"type": "number"},
+ "foo\\bar": {"type": "number"},
+ "foo\rbar": {"type": "number"},
+ "foo\tbar": {"type": "number"},
+ "foo\fbar": {"type": "number"}
+ }
+ },
+ "tests": [
+ {
+ "description": "object with all numbers is valid",
+ "data": {
+ "foo\nbar": 1,
+ "foo\"bar": 1,
+ "foo\\bar": 1,
+ "foo\rbar": 1,
+ "foo\tbar": 1,
+ "foo\fbar": 1
+ },
+ "valid": true
+ },
+ {
+ "description": "object with strings is invalid",
+ "data": {
+ "foo\nbar": "1",
+ "foo\"bar": "1",
+ "foo\\bar": "1",
+ "foo\rbar": "1",
+ "foo\tbar": "1",
+ "foo\fbar": "1"
+ },
+ "valid": false
+ }
+ ]
}
]
diff --git a/json/tests/draft6/ref.json b/json/tests/draft6/ref.json
index 5b58964..1ca3c79 100644
--- a/json/tests/draft6/ref.json
+++ b/json/tests/draft6/ref.json
@@ -328,5 +328,32 @@
"valid": false
}
]
+ },
+ {
+ "description": "refs with quote",
+ "schema": {
+ "properties": {
+ "foo\"bar": {"$ref": "#/definitions/foo\"bar"}
+ },
+ "definitions": {
+ "foo\"bar": {"type": "number"}
+ }
+ },
+ "tests": [
+ {
+ "description": "object with numbers is valid",
+ "data": {
+ "foo\"bar": 1
+ },
+ "valid": true
+ },
+ {
+ "description": "object with strings is invalid",
+ "data": {
+ "foo\"bar": "1"
+ },
+ "valid": false
+ }
+ ]
}
]
diff --git a/json/tests/draft6/required.json b/json/tests/draft6/required.json
index bd96907..abf18f3 100644
--- a/json/tests/draft6/required.json
+++ b/json/tests/draft6/required.json
@@ -66,5 +66,40 @@
"valid": true
}
]
+ },
+ {
+ "description": "required with escaped characters",
+ "schema": {
+ "required": [
+ "foo\nbar",
+ "foo\"bar",
+ "foo\\bar",
+ "foo\rbar",
+ "foo\tbar",
+ "foo\fbar"
+ ]
+ },
+ "tests": [
+ {
+ "description": "object with all properties present is valid",
+ "data": {
+ "foo\nbar": 1,
+ "foo\"bar": 1,
+ "foo\\bar": 1,
+ "foo\rbar": 1,
+ "foo\tbar": 1,
+ "foo\fbar": 1
+ },
+ "valid": true
+ },
+ {
+ "description": "object with some properties missing is invalid",
+ "data": {
+ "foo\nbar": "1",
+ "foo\"bar": "1"
+ },
+ "valid": false
+ }
+ ]
}
]