json_schemer 0.2.6 → 0.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +22 -0
- data/Gemfile.lock +1 -1
- data/JSON-Schema-Test-Suite/.gitignore +1 -0
- data/JSON-Schema-Test-Suite/.travis.yml +8 -0
- data/JSON-Schema-Test-Suite/LICENSE +19 -0
- data/JSON-Schema-Test-Suite/README.md +181 -0
- data/JSON-Schema-Test-Suite/bin/jsonschema_suite +295 -0
- data/JSON-Schema-Test-Suite/index.js +45 -0
- data/JSON-Schema-Test-Suite/package.json +28 -0
- data/JSON-Schema-Test-Suite/remotes/folder/folderInteger.json +3 -0
- data/JSON-Schema-Test-Suite/remotes/integer.json +3 -0
- data/JSON-Schema-Test-Suite/remotes/name-defs.json +11 -0
- data/JSON-Schema-Test-Suite/remotes/name.json +11 -0
- data/JSON-Schema-Test-Suite/remotes/subSchemas.json +8 -0
- data/JSON-Schema-Test-Suite/test-schema.json +59 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/additionalItems.json +87 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/additionalProperties.json +133 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/allOf.json +218 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/anyOf.json +189 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/boolean_schema.json +104 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/const.json +170 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/contains.json +95 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/default.json +49 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/defs.json +24 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/dependencies.json +268 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/enum.json +179 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/exclusiveMaximum.json +30 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/exclusiveMinimum.json +30 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/if-then-else.json +188 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/items.json +250 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/maxItems.json +28 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/maxLength.json +33 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/maxProperties.json +38 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/maximum.json +28 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/minItems.json +28 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/minLength.json +33 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/minProperties.json +38 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/minimum.json +59 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/multipleOf.json +60 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/not.json +117 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/oneOf.json +206 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/bignum.json +105 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/content.json +77 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/ecmascript-regex.json +13 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/date-time.json +53 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/date.json +23 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/email.json +18 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/hostname.json +33 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/idn-email.json +18 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/idn-hostname.json +28 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/ipv4.json +33 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/ipv6.json +28 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/iri-reference.json +43 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/iri.json +53 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/json-pointer.json +168 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/regex.json +18 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/relative-json-pointer.json +33 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/time.json +23 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/uri-reference.json +43 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/uri-template.json +28 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/uri.json +103 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/zeroTerminatedFloats.json +15 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/pattern.json +34 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/patternProperties.json +151 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/properties.json +167 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/propertyNames.json +78 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/ref.json +443 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/refRemote.json +167 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/required.json +105 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/type.json +464 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-08/uniqueItems.json +89 -0
- data/JSON-Schema-Test-Suite/tests/draft3/additionalItems.json +82 -0
- data/JSON-Schema-Test-Suite/tests/draft3/additionalProperties.json +133 -0
- data/JSON-Schema-Test-Suite/tests/draft3/default.json +49 -0
- data/JSON-Schema-Test-Suite/tests/draft3/dependencies.json +118 -0
- data/JSON-Schema-Test-Suite/tests/draft3/disallow.json +80 -0
- data/JSON-Schema-Test-Suite/tests/draft3/divisibleBy.json +60 -0
- data/JSON-Schema-Test-Suite/tests/draft3/enum.json +71 -0
- data/JSON-Schema-Test-Suite/tests/draft3/extends.json +94 -0
- data/JSON-Schema-Test-Suite/tests/draft3/items.json +46 -0
- data/JSON-Schema-Test-Suite/tests/draft3/maxItems.json +28 -0
- data/JSON-Schema-Test-Suite/tests/draft3/maxLength.json +33 -0
- data/JSON-Schema-Test-Suite/tests/draft3/maximum.json +42 -0
- data/JSON-Schema-Test-Suite/tests/draft3/minItems.json +28 -0
- data/JSON-Schema-Test-Suite/tests/draft3/minLength.json +33 -0
- data/JSON-Schema-Test-Suite/tests/draft3/minimum.json +73 -0
- data/JSON-Schema-Test-Suite/tests/draft3/optional/bignum.json +107 -0
- data/JSON-Schema-Test-Suite/tests/draft3/optional/format.json +227 -0
- data/JSON-Schema-Test-Suite/tests/draft3/optional/jsregex.json +18 -0
- data/JSON-Schema-Test-Suite/tests/draft3/optional/zeroTerminatedFloats.json +15 -0
- data/JSON-Schema-Test-Suite/tests/draft3/pattern.json +34 -0
- data/JSON-Schema-Test-Suite/tests/draft3/patternProperties.json +115 -0
- data/JSON-Schema-Test-Suite/tests/draft3/properties.json +97 -0
- data/JSON-Schema-Test-Suite/tests/draft3/ref.json +192 -0
- data/JSON-Schema-Test-Suite/tests/draft3/refRemote.json +74 -0
- data/JSON-Schema-Test-Suite/tests/draft3/required.json +53 -0
- data/JSON-Schema-Test-Suite/tests/draft3/type.json +489 -0
- data/JSON-Schema-Test-Suite/tests/draft3/uniqueItems.json +79 -0
- data/JSON-Schema-Test-Suite/tests/draft4/additionalItems.json +87 -0
- data/JSON-Schema-Test-Suite/tests/draft4/additionalProperties.json +133 -0
- data/JSON-Schema-Test-Suite/tests/draft4/allOf.json +185 -0
- data/JSON-Schema-Test-Suite/tests/draft4/anyOf.json +156 -0
- data/JSON-Schema-Test-Suite/tests/draft4/default.json +49 -0
- data/JSON-Schema-Test-Suite/tests/draft4/definitions.json +32 -0
- data/JSON-Schema-Test-Suite/tests/draft4/dependencies.json +194 -0
- data/JSON-Schema-Test-Suite/tests/draft4/enum.json +179 -0
- data/JSON-Schema-Test-Suite/tests/draft4/items.json +195 -0
- data/JSON-Schema-Test-Suite/tests/draft4/maxItems.json +28 -0
- data/JSON-Schema-Test-Suite/tests/draft4/maxLength.json +33 -0
- data/JSON-Schema-Test-Suite/tests/draft4/maxProperties.json +38 -0
- data/JSON-Schema-Test-Suite/tests/draft4/maximum.json +73 -0
- data/JSON-Schema-Test-Suite/tests/draft4/minItems.json +28 -0
- data/JSON-Schema-Test-Suite/tests/draft4/minLength.json +33 -0
- data/JSON-Schema-Test-Suite/tests/draft4/minProperties.json +38 -0
- data/JSON-Schema-Test-Suite/tests/draft4/minimum.json +104 -0
- data/JSON-Schema-Test-Suite/tests/draft4/multipleOf.json +60 -0
- data/JSON-Schema-Test-Suite/tests/draft4/not.json +96 -0
- data/JSON-Schema-Test-Suite/tests/draft4/oneOf.json +162 -0
- data/JSON-Schema-Test-Suite/tests/draft4/optional/bignum.json +107 -0
- data/JSON-Schema-Test-Suite/tests/draft4/optional/ecmascript-regex.json +13 -0
- data/JSON-Schema-Test-Suite/tests/draft4/optional/format.json +253 -0
- data/JSON-Schema-Test-Suite/tests/draft4/optional/zeroTerminatedFloats.json +15 -0
- data/JSON-Schema-Test-Suite/tests/draft4/pattern.json +34 -0
- data/JSON-Schema-Test-Suite/tests/draft4/patternProperties.json +120 -0
- data/JSON-Schema-Test-Suite/tests/draft4/properties.json +136 -0
- data/JSON-Schema-Test-Suite/tests/draft4/ref.json +411 -0
- data/JSON-Schema-Test-Suite/tests/draft4/refRemote.json +171 -0
- data/JSON-Schema-Test-Suite/tests/draft4/required.json +89 -0
- data/JSON-Schema-Test-Suite/tests/draft4/type.json +464 -0
- data/JSON-Schema-Test-Suite/tests/draft4/uniqueItems.json +89 -0
- data/JSON-Schema-Test-Suite/tests/draft6/additionalItems.json +87 -0
- data/JSON-Schema-Test-Suite/tests/draft6/additionalProperties.json +133 -0
- data/JSON-Schema-Test-Suite/tests/draft6/allOf.json +218 -0
- data/JSON-Schema-Test-Suite/tests/draft6/anyOf.json +189 -0
- data/JSON-Schema-Test-Suite/tests/draft6/boolean_schema.json +104 -0
- data/JSON-Schema-Test-Suite/tests/draft6/const.json +170 -0
- data/JSON-Schema-Test-Suite/tests/draft6/contains.json +100 -0
- data/JSON-Schema-Test-Suite/tests/draft6/default.json +49 -0
- data/JSON-Schema-Test-Suite/tests/draft6/definitions.json +32 -0
- data/JSON-Schema-Test-Suite/tests/draft6/dependencies.json +268 -0
- data/JSON-Schema-Test-Suite/tests/draft6/enum.json +179 -0
- data/JSON-Schema-Test-Suite/tests/draft6/exclusiveMaximum.json +30 -0
- data/JSON-Schema-Test-Suite/tests/draft6/exclusiveMinimum.json +30 -0
- data/JSON-Schema-Test-Suite/tests/draft6/items.json +250 -0
- data/JSON-Schema-Test-Suite/tests/draft6/maxItems.json +28 -0
- data/JSON-Schema-Test-Suite/tests/draft6/maxLength.json +33 -0
- data/JSON-Schema-Test-Suite/tests/draft6/maxProperties.json +38 -0
- data/JSON-Schema-Test-Suite/tests/draft6/maximum.json +28 -0
- data/JSON-Schema-Test-Suite/tests/draft6/minItems.json +28 -0
- data/JSON-Schema-Test-Suite/tests/draft6/minLength.json +33 -0
- data/JSON-Schema-Test-Suite/tests/draft6/minProperties.json +38 -0
- data/JSON-Schema-Test-Suite/tests/draft6/minimum.json +59 -0
- data/JSON-Schema-Test-Suite/tests/draft6/multipleOf.json +60 -0
- data/JSON-Schema-Test-Suite/tests/draft6/not.json +117 -0
- data/JSON-Schema-Test-Suite/tests/draft6/oneOf.json +206 -0
- data/JSON-Schema-Test-Suite/tests/draft6/optional/bignum.json +105 -0
- data/JSON-Schema-Test-Suite/tests/draft6/optional/ecmascript-regex.json +13 -0
- data/JSON-Schema-Test-Suite/tests/draft6/optional/format.json +491 -0
- data/JSON-Schema-Test-Suite/tests/draft6/optional/zeroTerminatedFloats.json +15 -0
- data/JSON-Schema-Test-Suite/tests/draft6/pattern.json +34 -0
- data/JSON-Schema-Test-Suite/tests/draft6/patternProperties.json +151 -0
- data/JSON-Schema-Test-Suite/tests/draft6/properties.json +167 -0
- data/JSON-Schema-Test-Suite/tests/draft6/propertyNames.json +78 -0
- data/JSON-Schema-Test-Suite/tests/draft6/ref.json +443 -0
- data/JSON-Schema-Test-Suite/tests/draft6/refRemote.json +171 -0
- data/JSON-Schema-Test-Suite/tests/draft6/required.json +105 -0
- data/JSON-Schema-Test-Suite/tests/draft6/type.json +464 -0
- data/JSON-Schema-Test-Suite/tests/draft6/uniqueItems.json +89 -0
- data/JSON-Schema-Test-Suite/tests/draft7/additionalItems.json +87 -0
- data/JSON-Schema-Test-Suite/tests/draft7/additionalProperties.json +133 -0
- data/JSON-Schema-Test-Suite/tests/draft7/allOf.json +218 -0
- data/JSON-Schema-Test-Suite/tests/draft7/anyOf.json +189 -0
- data/JSON-Schema-Test-Suite/tests/draft7/boolean_schema.json +104 -0
- data/JSON-Schema-Test-Suite/tests/draft7/const.json +170 -0
- data/JSON-Schema-Test-Suite/tests/draft7/contains.json +100 -0
- data/JSON-Schema-Test-Suite/tests/draft7/default.json +49 -0
- data/JSON-Schema-Test-Suite/tests/draft7/definitions.json +32 -0
- data/JSON-Schema-Test-Suite/tests/draft7/dependencies.json +268 -0
- data/JSON-Schema-Test-Suite/tests/draft7/enum.json +179 -0
- data/JSON-Schema-Test-Suite/tests/draft7/exclusiveMaximum.json +30 -0
- data/JSON-Schema-Test-Suite/tests/draft7/exclusiveMinimum.json +30 -0
- data/JSON-Schema-Test-Suite/tests/draft7/if-then-else.json +188 -0
- data/JSON-Schema-Test-Suite/tests/draft7/items.json +250 -0
- data/JSON-Schema-Test-Suite/tests/draft7/maxItems.json +28 -0
- data/JSON-Schema-Test-Suite/tests/draft7/maxLength.json +33 -0
- data/JSON-Schema-Test-Suite/tests/draft7/maxProperties.json +38 -0
- data/JSON-Schema-Test-Suite/tests/draft7/maximum.json +28 -0
- data/JSON-Schema-Test-Suite/tests/draft7/minItems.json +28 -0
- data/JSON-Schema-Test-Suite/tests/draft7/minLength.json +33 -0
- data/JSON-Schema-Test-Suite/tests/draft7/minProperties.json +38 -0
- data/JSON-Schema-Test-Suite/tests/draft7/minimum.json +59 -0
- data/JSON-Schema-Test-Suite/tests/draft7/multipleOf.json +60 -0
- data/JSON-Schema-Test-Suite/tests/draft7/not.json +117 -0
- data/JSON-Schema-Test-Suite/tests/draft7/oneOf.json +206 -0
- data/JSON-Schema-Test-Suite/tests/draft7/optional/bignum.json +105 -0
- data/JSON-Schema-Test-Suite/tests/draft7/optional/content.json +77 -0
- data/JSON-Schema-Test-Suite/tests/draft7/optional/ecmascript-regex.json +13 -0
- data/JSON-Schema-Test-Suite/tests/draft7/optional/format/date-time.json +53 -0
- data/JSON-Schema-Test-Suite/tests/draft7/optional/format/date.json +23 -0
- data/JSON-Schema-Test-Suite/tests/draft7/optional/format/email.json +18 -0
- data/JSON-Schema-Test-Suite/tests/draft7/optional/format/hostname.json +33 -0
- data/JSON-Schema-Test-Suite/tests/draft7/optional/format/idn-email.json +18 -0
- data/JSON-Schema-Test-Suite/tests/draft7/optional/format/idn-hostname.json +28 -0
- data/JSON-Schema-Test-Suite/tests/draft7/optional/format/ipv4.json +33 -0
- data/JSON-Schema-Test-Suite/tests/draft7/optional/format/ipv6.json +28 -0
- data/JSON-Schema-Test-Suite/tests/draft7/optional/format/iri-reference.json +43 -0
- data/JSON-Schema-Test-Suite/tests/draft7/optional/format/iri.json +53 -0
- data/JSON-Schema-Test-Suite/tests/draft7/optional/format/json-pointer.json +168 -0
- data/JSON-Schema-Test-Suite/tests/draft7/optional/format/regex.json +18 -0
- data/JSON-Schema-Test-Suite/tests/draft7/optional/format/relative-json-pointer.json +33 -0
- data/JSON-Schema-Test-Suite/tests/draft7/optional/format/time.json +23 -0
- data/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri-reference.json +43 -0
- data/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri-template.json +28 -0
- data/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri.json +103 -0
- data/JSON-Schema-Test-Suite/tests/draft7/optional/zeroTerminatedFloats.json +15 -0
- data/JSON-Schema-Test-Suite/tests/draft7/pattern.json +34 -0
- data/JSON-Schema-Test-Suite/tests/draft7/patternProperties.json +151 -0
- data/JSON-Schema-Test-Suite/tests/draft7/properties.json +167 -0
- data/JSON-Schema-Test-Suite/tests/draft7/propertyNames.json +78 -0
- data/JSON-Schema-Test-Suite/tests/draft7/ref.json +443 -0
- data/JSON-Schema-Test-Suite/tests/draft7/refRemote.json +171 -0
- data/JSON-Schema-Test-Suite/tests/draft7/required.json +105 -0
- data/JSON-Schema-Test-Suite/tests/draft7/type.json +464 -0
- data/JSON-Schema-Test-Suite/tests/draft7/uniqueItems.json +89 -0
- data/JSON-Schema-Test-Suite/tox.ini +8 -0
- data/README.md +1 -1
- data/lib/json_schemer/schema/base.rb +2 -2
- data/lib/json_schemer/version.rb +1 -1
- metadata +226 -4
- data/.gitmodules +0 -4
- data/.travis.yml +0 -10
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"description": "oneOf",
|
|
4
|
+
"schema": {
|
|
5
|
+
"oneOf": [
|
|
6
|
+
{
|
|
7
|
+
"type": "integer"
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"minimum": 2
|
|
11
|
+
}
|
|
12
|
+
]
|
|
13
|
+
},
|
|
14
|
+
"tests": [
|
|
15
|
+
{
|
|
16
|
+
"description": "first oneOf valid",
|
|
17
|
+
"data": 1,
|
|
18
|
+
"valid": true
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"description": "second oneOf valid",
|
|
22
|
+
"data": 2.5,
|
|
23
|
+
"valid": true
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"description": "both oneOf valid",
|
|
27
|
+
"data": 3,
|
|
28
|
+
"valid": false
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"description": "neither oneOf valid",
|
|
32
|
+
"data": 1.5,
|
|
33
|
+
"valid": false
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"description": "oneOf with base schema",
|
|
39
|
+
"schema": {
|
|
40
|
+
"type": "string",
|
|
41
|
+
"oneOf" : [
|
|
42
|
+
{
|
|
43
|
+
"minLength": 2
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"maxLength": 4
|
|
47
|
+
}
|
|
48
|
+
]
|
|
49
|
+
},
|
|
50
|
+
"tests": [
|
|
51
|
+
{
|
|
52
|
+
"description": "mismatch base schema",
|
|
53
|
+
"data": 3,
|
|
54
|
+
"valid": false
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"description": "one oneOf valid",
|
|
58
|
+
"data": "foobar",
|
|
59
|
+
"valid": true
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"description": "both oneOf valid",
|
|
63
|
+
"data": "foo",
|
|
64
|
+
"valid": false
|
|
65
|
+
}
|
|
66
|
+
]
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"description": "oneOf with boolean schemas, all true",
|
|
70
|
+
"schema": {"oneOf": [true, true, true]},
|
|
71
|
+
"tests": [
|
|
72
|
+
{
|
|
73
|
+
"description": "any value is invalid",
|
|
74
|
+
"data": "foo",
|
|
75
|
+
"valid": false
|
|
76
|
+
}
|
|
77
|
+
]
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"description": "oneOf with boolean schemas, one true",
|
|
81
|
+
"schema": {"oneOf": [true, false, false]},
|
|
82
|
+
"tests": [
|
|
83
|
+
{
|
|
84
|
+
"description": "any value is valid",
|
|
85
|
+
"data": "foo",
|
|
86
|
+
"valid": true
|
|
87
|
+
}
|
|
88
|
+
]
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"description": "oneOf with boolean schemas, more than one true",
|
|
92
|
+
"schema": {"oneOf": [true, true, false]},
|
|
93
|
+
"tests": [
|
|
94
|
+
{
|
|
95
|
+
"description": "any value is invalid",
|
|
96
|
+
"data": "foo",
|
|
97
|
+
"valid": false
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"description": "oneOf with boolean schemas, all false",
|
|
103
|
+
"schema": {"oneOf": [false, false, false]},
|
|
104
|
+
"tests": [
|
|
105
|
+
{
|
|
106
|
+
"description": "any value is invalid",
|
|
107
|
+
"data": "foo",
|
|
108
|
+
"valid": false
|
|
109
|
+
}
|
|
110
|
+
]
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"description": "oneOf complex types",
|
|
114
|
+
"schema": {
|
|
115
|
+
"oneOf": [
|
|
116
|
+
{
|
|
117
|
+
"properties": {
|
|
118
|
+
"bar": {"type": "integer"}
|
|
119
|
+
},
|
|
120
|
+
"required": ["bar"]
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"properties": {
|
|
124
|
+
"foo": {"type": "string"}
|
|
125
|
+
},
|
|
126
|
+
"required": ["foo"]
|
|
127
|
+
}
|
|
128
|
+
]
|
|
129
|
+
},
|
|
130
|
+
"tests": [
|
|
131
|
+
{
|
|
132
|
+
"description": "first oneOf valid (complex)",
|
|
133
|
+
"data": {"bar": 2},
|
|
134
|
+
"valid": true
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"description": "second oneOf valid (complex)",
|
|
138
|
+
"data": {"foo": "baz"},
|
|
139
|
+
"valid": true
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"description": "both oneOf valid (complex)",
|
|
143
|
+
"data": {"foo": "baz", "bar": 2},
|
|
144
|
+
"valid": false
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"description": "neither oneOf valid (complex)",
|
|
148
|
+
"data": {"foo": 2, "bar": "quux"},
|
|
149
|
+
"valid": false
|
|
150
|
+
}
|
|
151
|
+
]
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"description": "oneOf with empty schema",
|
|
155
|
+
"schema": {
|
|
156
|
+
"oneOf": [
|
|
157
|
+
{ "type": "number" },
|
|
158
|
+
{}
|
|
159
|
+
]
|
|
160
|
+
},
|
|
161
|
+
"tests": [
|
|
162
|
+
{
|
|
163
|
+
"description": "one valid - valid",
|
|
164
|
+
"data": "foo",
|
|
165
|
+
"valid": true
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"description": "both valid - invalid",
|
|
169
|
+
"data": 123,
|
|
170
|
+
"valid": false
|
|
171
|
+
}
|
|
172
|
+
]
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"description": "oneOf with required",
|
|
176
|
+
"schema": {
|
|
177
|
+
"type": "object",
|
|
178
|
+
"oneOf": [
|
|
179
|
+
{ "required": ["foo", "bar"] },
|
|
180
|
+
{ "required": ["foo", "baz"] }
|
|
181
|
+
]
|
|
182
|
+
},
|
|
183
|
+
"tests": [
|
|
184
|
+
{
|
|
185
|
+
"description": "both invalid - invalid",
|
|
186
|
+
"data": {"bar": 2},
|
|
187
|
+
"valid": false
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
"description": "first valid - valid",
|
|
191
|
+
"data": {"foo": 1, "bar": 2},
|
|
192
|
+
"valid": true
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"description": "second valid - valid",
|
|
196
|
+
"data": {"foo": 1, "baz": 3},
|
|
197
|
+
"valid": true
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"description": "both valid - invalid",
|
|
201
|
+
"data": {"foo": 1, "bar": 2, "baz" : 3},
|
|
202
|
+
"valid": false
|
|
203
|
+
}
|
|
204
|
+
]
|
|
205
|
+
}
|
|
206
|
+
]
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"description": "integer",
|
|
4
|
+
"schema": {"type": "integer"},
|
|
5
|
+
"tests": [
|
|
6
|
+
{
|
|
7
|
+
"description": "a bignum is an integer",
|
|
8
|
+
"data": 12345678910111213141516171819202122232425262728293031,
|
|
9
|
+
"valid": true
|
|
10
|
+
}
|
|
11
|
+
]
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"description": "number",
|
|
15
|
+
"schema": {"type": "number"},
|
|
16
|
+
"tests": [
|
|
17
|
+
{
|
|
18
|
+
"description": "a bignum is a number",
|
|
19
|
+
"data": 98249283749234923498293171823948729348710298301928331,
|
|
20
|
+
"valid": true
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"description": "integer",
|
|
26
|
+
"schema": {"type": "integer"},
|
|
27
|
+
"tests": [
|
|
28
|
+
{
|
|
29
|
+
"description": "a negative bignum is an integer",
|
|
30
|
+
"data": -12345678910111213141516171819202122232425262728293031,
|
|
31
|
+
"valid": true
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"description": "number",
|
|
37
|
+
"schema": {"type": "number"},
|
|
38
|
+
"tests": [
|
|
39
|
+
{
|
|
40
|
+
"description": "a negative bignum is a number",
|
|
41
|
+
"data": -98249283749234923498293171823948729348710298301928331,
|
|
42
|
+
"valid": true
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"description": "string",
|
|
48
|
+
"schema": {"type": "string"},
|
|
49
|
+
"tests": [
|
|
50
|
+
{
|
|
51
|
+
"description": "a bignum is not a string",
|
|
52
|
+
"data": 98249283749234923498293171823948729348710298301928331,
|
|
53
|
+
"valid": false
|
|
54
|
+
}
|
|
55
|
+
]
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"description": "integer comparison",
|
|
59
|
+
"schema": {"maximum": 18446744073709551615},
|
|
60
|
+
"tests": [
|
|
61
|
+
{
|
|
62
|
+
"description": "comparison works for high numbers",
|
|
63
|
+
"data": 18446744073709551600,
|
|
64
|
+
"valid": true
|
|
65
|
+
}
|
|
66
|
+
]
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"description": "float comparison with high precision",
|
|
70
|
+
"schema": {
|
|
71
|
+
"exclusiveMaximum": 972783798187987123879878123.18878137
|
|
72
|
+
},
|
|
73
|
+
"tests": [
|
|
74
|
+
{
|
|
75
|
+
"description": "comparison works for high numbers",
|
|
76
|
+
"data": 972783798187987123879878123.188781371,
|
|
77
|
+
"valid": false
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"description": "integer comparison",
|
|
83
|
+
"schema": {"minimum": -18446744073709551615},
|
|
84
|
+
"tests": [
|
|
85
|
+
{
|
|
86
|
+
"description": "comparison works for very negative numbers",
|
|
87
|
+
"data": -18446744073709551600,
|
|
88
|
+
"valid": true
|
|
89
|
+
}
|
|
90
|
+
]
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"description": "float comparison with high precision on negative numbers",
|
|
94
|
+
"schema": {
|
|
95
|
+
"exclusiveMinimum": -972783798187987123879878123.18878137
|
|
96
|
+
},
|
|
97
|
+
"tests": [
|
|
98
|
+
{
|
|
99
|
+
"description": "comparison works for very negative numbers",
|
|
100
|
+
"data": -972783798187987123879878123.188781371,
|
|
101
|
+
"valid": false
|
|
102
|
+
}
|
|
103
|
+
]
|
|
104
|
+
}
|
|
105
|
+
]
|
|
@@ -0,0 +1,491 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"description": "validation of date-time strings",
|
|
4
|
+
"schema": {"format": "date-time"},
|
|
5
|
+
"tests": [
|
|
6
|
+
{
|
|
7
|
+
"description": "a valid date-time string",
|
|
8
|
+
"data": "1963-06-19T08:30:06.283185Z",
|
|
9
|
+
"valid": true
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"description": "a valid date-time string without second fraction",
|
|
13
|
+
"data": "1963-06-19T08:30:06Z",
|
|
14
|
+
"valid": true
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"description": "a valid date-time string with plus offset",
|
|
18
|
+
"data": "1937-01-01T12:00:27.87+00:20",
|
|
19
|
+
"valid": true
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"description": "a valid date-time string with minus offset",
|
|
23
|
+
"data": "1990-12-31T15:59:50.123-08:00",
|
|
24
|
+
"valid": true
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"description": "a invalid day in date-time string",
|
|
28
|
+
"data": "1990-02-31T15:59:60.123-08:00",
|
|
29
|
+
"valid": false
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"description": "an invalid offset in date-time string",
|
|
33
|
+
"data": "1990-12-31T15:59:60-24:00",
|
|
34
|
+
"valid": false
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"description": "an invalid closing Z after time-zone offset",
|
|
38
|
+
"data": "1963-06-19T08:30:06.28123+01:00Z",
|
|
39
|
+
"valid": false
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"description": "an invalid date-time string",
|
|
43
|
+
"data": "06/19/1963 08:30:06 PST",
|
|
44
|
+
"valid": false
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"description": "case-insensitive T and Z",
|
|
48
|
+
"data": "1963-06-19t08:30:06.283185z",
|
|
49
|
+
"valid": true
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"description": "only RFC3339 not all of ISO 8601 are valid",
|
|
53
|
+
"data": "2013-350T01:01:01",
|
|
54
|
+
"valid": false
|
|
55
|
+
}
|
|
56
|
+
]
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"description": "validation of URIs",
|
|
60
|
+
"schema": {"format": "uri"},
|
|
61
|
+
"tests": [
|
|
62
|
+
{
|
|
63
|
+
"description": "a valid URL with anchor tag",
|
|
64
|
+
"data": "http://foo.bar/?baz=qux#quux",
|
|
65
|
+
"valid": true
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"description": "a valid URL with anchor tag and parantheses",
|
|
69
|
+
"data": "http://foo.com/blah_(wikipedia)_blah#cite-1",
|
|
70
|
+
"valid": true
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"description": "a valid URL with URL-encoded stuff",
|
|
74
|
+
"data": "http://foo.bar/?q=Test%20URL-encoded%20stuff",
|
|
75
|
+
"valid": true
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"description": "a valid puny-coded URL ",
|
|
79
|
+
"data": "http://xn--nw2a.xn--j6w193g/",
|
|
80
|
+
"valid": true
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"description": "a valid URL with many special characters",
|
|
84
|
+
"data": "http://-.~_!$&'()*+,;=:%40:80%2f::::::@example.com",
|
|
85
|
+
"valid": true
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"description": "a valid URL based on IPv4",
|
|
89
|
+
"data": "http://223.255.255.254",
|
|
90
|
+
"valid": true
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"description": "a valid URL with ftp scheme",
|
|
94
|
+
"data": "ftp://ftp.is.co.za/rfc/rfc1808.txt",
|
|
95
|
+
"valid": true
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"description": "a valid URL for a simple text file",
|
|
99
|
+
"data": "http://www.ietf.org/rfc/rfc2396.txt",
|
|
100
|
+
"valid": true
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"description": "a valid URL ",
|
|
104
|
+
"data": "ldap://[2001:db8::7]/c=GB?objectClass?one",
|
|
105
|
+
"valid": true
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"description": "a valid mailto URI",
|
|
109
|
+
"data": "mailto:John.Doe@example.com",
|
|
110
|
+
"valid": true
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"description": "a valid newsgroup URI",
|
|
114
|
+
"data": "news:comp.infosystems.www.servers.unix",
|
|
115
|
+
"valid": true
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"description": "a valid tel URI",
|
|
119
|
+
"data": "tel:+1-816-555-1212",
|
|
120
|
+
"valid": true
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"description": "a valid URN",
|
|
124
|
+
"data": "urn:oasis:names:specification:docbook:dtd:xml:4.1.2",
|
|
125
|
+
"valid": true
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"description": "an invalid protocol-relative URI Reference",
|
|
129
|
+
"data": "//foo.bar/?baz=qux#quux",
|
|
130
|
+
"valid": false
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"description": "an invalid relative URI Reference",
|
|
134
|
+
"data": "/abc",
|
|
135
|
+
"valid": false
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"description": "an invalid URI",
|
|
139
|
+
"data": "\\\\WINDOWS\\fileshare",
|
|
140
|
+
"valid": false
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"description": "an invalid URI though valid URI reference",
|
|
144
|
+
"data": "abc",
|
|
145
|
+
"valid": false
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"description": "an invalid URI with spaces",
|
|
149
|
+
"data": "http:// shouldfail.com",
|
|
150
|
+
"valid": false
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"description": "an invalid URI with spaces and missing scheme",
|
|
154
|
+
"data": ":// should fail",
|
|
155
|
+
"valid": false
|
|
156
|
+
}
|
|
157
|
+
]
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"description": "validation of URI References",
|
|
161
|
+
"schema": {"format": "uri-reference"},
|
|
162
|
+
"tests": [
|
|
163
|
+
{
|
|
164
|
+
"description": "a valid URI",
|
|
165
|
+
"data": "http://foo.bar/?baz=qux#quux",
|
|
166
|
+
"valid": true
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"description": "a valid protocol-relative URI Reference",
|
|
170
|
+
"data": "//foo.bar/?baz=qux#quux",
|
|
171
|
+
"valid": true
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
"description": "a valid relative URI Reference",
|
|
175
|
+
"data": "/abc",
|
|
176
|
+
"valid": true
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
"description": "an invalid URI Reference",
|
|
180
|
+
"data": "\\\\WINDOWS\\fileshare",
|
|
181
|
+
"valid": false
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
"description": "a valid URI Reference",
|
|
185
|
+
"data": "abc",
|
|
186
|
+
"valid": true
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
"description": "a valid URI fragment",
|
|
190
|
+
"data": "#fragment",
|
|
191
|
+
"valid": true
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
"description": "an invalid URI fragment",
|
|
195
|
+
"data": "#frag\\ment",
|
|
196
|
+
"valid": false
|
|
197
|
+
}
|
|
198
|
+
]
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
"description": "format: uri-template",
|
|
202
|
+
"schema": {"format": "uri-template"},
|
|
203
|
+
"tests": [
|
|
204
|
+
{
|
|
205
|
+
"description": "a valid uri-template",
|
|
206
|
+
"data": "http://example.com/dictionary/{term:1}/{term}",
|
|
207
|
+
"valid": true
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
"description": "an invalid uri-template",
|
|
211
|
+
"data": "http://example.com/dictionary/{term:1}/{term",
|
|
212
|
+
"valid": false
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"description": "a valid uri-template without variables",
|
|
216
|
+
"data": "http://example.com/dictionary",
|
|
217
|
+
"valid": true
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
"description": "a valid relative uri-template",
|
|
221
|
+
"data": "dictionary/{term:1}/{term}",
|
|
222
|
+
"valid": true
|
|
223
|
+
}
|
|
224
|
+
]
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
"description": "validation of e-mail addresses",
|
|
228
|
+
"schema": {"format": "email"},
|
|
229
|
+
"tests": [
|
|
230
|
+
{
|
|
231
|
+
"description": "a valid e-mail address",
|
|
232
|
+
"data": "joe.bloggs@example.com",
|
|
233
|
+
"valid": true
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
"description": "an invalid e-mail address",
|
|
237
|
+
"data": "2962",
|
|
238
|
+
"valid": false
|
|
239
|
+
}
|
|
240
|
+
]
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
"description": "validation of IP addresses",
|
|
244
|
+
"schema": {"format": "ipv4"},
|
|
245
|
+
"tests": [
|
|
246
|
+
{
|
|
247
|
+
"description": "a valid IP address",
|
|
248
|
+
"data": "192.168.0.1",
|
|
249
|
+
"valid": true
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
"description": "an IP address with too many components",
|
|
253
|
+
"data": "127.0.0.0.1",
|
|
254
|
+
"valid": false
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
"description": "an IP address with out-of-range values",
|
|
258
|
+
"data": "256.256.256.256",
|
|
259
|
+
"valid": false
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
"description": "an IP address without 4 components",
|
|
263
|
+
"data": "127.0",
|
|
264
|
+
"valid": false
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
"description": "an IP address as an integer",
|
|
268
|
+
"data": "0x7f000001",
|
|
269
|
+
"valid": false
|
|
270
|
+
}
|
|
271
|
+
]
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
"description": "validation of IPv6 addresses",
|
|
275
|
+
"schema": {"format": "ipv6"},
|
|
276
|
+
"tests": [
|
|
277
|
+
{
|
|
278
|
+
"description": "a valid IPv6 address",
|
|
279
|
+
"data": "::1",
|
|
280
|
+
"valid": true
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
"description": "an IPv6 address with out-of-range values",
|
|
284
|
+
"data": "12345::",
|
|
285
|
+
"valid": false
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
"description": "an IPv6 address with too many components",
|
|
289
|
+
"data": "1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1",
|
|
290
|
+
"valid": false
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
"description": "an IPv6 address containing illegal characters",
|
|
294
|
+
"data": "::laptop",
|
|
295
|
+
"valid": false
|
|
296
|
+
}
|
|
297
|
+
]
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
"description": "validation of host names",
|
|
301
|
+
"schema": {"format": "hostname"},
|
|
302
|
+
"tests": [
|
|
303
|
+
{
|
|
304
|
+
"description": "a valid host name",
|
|
305
|
+
"data": "www.example.com",
|
|
306
|
+
"valid": true
|
|
307
|
+
},
|
|
308
|
+
{
|
|
309
|
+
"description": "a host name starting with an illegal character",
|
|
310
|
+
"data": "-a-host-name-that-starts-with--",
|
|
311
|
+
"valid": false
|
|
312
|
+
},
|
|
313
|
+
{
|
|
314
|
+
"description": "a host name containing illegal characters",
|
|
315
|
+
"data": "not_a_valid_host_name",
|
|
316
|
+
"valid": false
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
"description": "a host name with a component too long",
|
|
320
|
+
"data": "a-vvvvvvvvvvvvvvvveeeeeeeeeeeeeeeerrrrrrrrrrrrrrrryyyyyyyyyyyyyyyy-long-host-name-component",
|
|
321
|
+
"valid": false
|
|
322
|
+
}
|
|
323
|
+
]
|
|
324
|
+
},
|
|
325
|
+
{
|
|
326
|
+
"description": "validation of JSON-pointers (JSON String Representation)",
|
|
327
|
+
"schema": {"format": "json-pointer"},
|
|
328
|
+
"tests": [
|
|
329
|
+
{
|
|
330
|
+
"description": "a valid JSON-pointer",
|
|
331
|
+
"data": "/foo/bar~0/baz~1/%a",
|
|
332
|
+
"valid": true
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
"description": "not a valid JSON-pointer (~ not escaped)",
|
|
336
|
+
"data": "/foo/bar~",
|
|
337
|
+
"valid": false
|
|
338
|
+
},
|
|
339
|
+
{
|
|
340
|
+
"description": "valid JSON-pointer with empty segment",
|
|
341
|
+
"data": "/foo//bar",
|
|
342
|
+
"valid": true
|
|
343
|
+
},
|
|
344
|
+
{
|
|
345
|
+
"description": "valid JSON-pointer with the last empty segment",
|
|
346
|
+
"data": "/foo/bar/",
|
|
347
|
+
"valid": true
|
|
348
|
+
},
|
|
349
|
+
{
|
|
350
|
+
"description": "valid JSON-pointer as stated in RFC 6901 #1",
|
|
351
|
+
"data": "",
|
|
352
|
+
"valid": true
|
|
353
|
+
},
|
|
354
|
+
{
|
|
355
|
+
"description": "valid JSON-pointer as stated in RFC 6901 #2",
|
|
356
|
+
"data": "/foo",
|
|
357
|
+
"valid": true
|
|
358
|
+
},
|
|
359
|
+
{
|
|
360
|
+
"description": "valid JSON-pointer as stated in RFC 6901 #3",
|
|
361
|
+
"data": "/foo/0",
|
|
362
|
+
"valid": true
|
|
363
|
+
},
|
|
364
|
+
{
|
|
365
|
+
"description": "valid JSON-pointer as stated in RFC 6901 #4",
|
|
366
|
+
"data": "/",
|
|
367
|
+
"valid": true
|
|
368
|
+
},
|
|
369
|
+
{
|
|
370
|
+
"description": "valid JSON-pointer as stated in RFC 6901 #5",
|
|
371
|
+
"data": "/a~1b",
|
|
372
|
+
"valid": true
|
|
373
|
+
},
|
|
374
|
+
{
|
|
375
|
+
"description": "valid JSON-pointer as stated in RFC 6901 #6",
|
|
376
|
+
"data": "/c%d",
|
|
377
|
+
"valid": true
|
|
378
|
+
},
|
|
379
|
+
{
|
|
380
|
+
"description": "valid JSON-pointer as stated in RFC 6901 #7",
|
|
381
|
+
"data": "/e^f",
|
|
382
|
+
"valid": true
|
|
383
|
+
},
|
|
384
|
+
{
|
|
385
|
+
"description": "valid JSON-pointer as stated in RFC 6901 #8",
|
|
386
|
+
"data": "/g|h",
|
|
387
|
+
"valid": true
|
|
388
|
+
},
|
|
389
|
+
{
|
|
390
|
+
"description": "valid JSON-pointer as stated in RFC 6901 #9",
|
|
391
|
+
"data": "/i\\j",
|
|
392
|
+
"valid": true
|
|
393
|
+
},
|
|
394
|
+
{
|
|
395
|
+
"description": "valid JSON-pointer as stated in RFC 6901 #10",
|
|
396
|
+
"data": "/k\"l",
|
|
397
|
+
"valid": true
|
|
398
|
+
},
|
|
399
|
+
{
|
|
400
|
+
"description": "valid JSON-pointer as stated in RFC 6901 #11",
|
|
401
|
+
"data": "/ ",
|
|
402
|
+
"valid": true
|
|
403
|
+
},
|
|
404
|
+
{
|
|
405
|
+
"description": "valid JSON-pointer as stated in RFC 6901 #12",
|
|
406
|
+
"data": "/m~0n",
|
|
407
|
+
"valid": true
|
|
408
|
+
},
|
|
409
|
+
{
|
|
410
|
+
"description": "valid JSON-pointer used adding to the last array position",
|
|
411
|
+
"data": "/foo/-",
|
|
412
|
+
"valid": true
|
|
413
|
+
},
|
|
414
|
+
{
|
|
415
|
+
"description": "valid JSON-pointer (- used as object member name)",
|
|
416
|
+
"data": "/foo/-/bar",
|
|
417
|
+
"valid": true
|
|
418
|
+
},
|
|
419
|
+
{
|
|
420
|
+
"description": "valid JSON-pointer (multiple escaped characters)",
|
|
421
|
+
"data": "/~1~0~0~1~1",
|
|
422
|
+
"valid": true
|
|
423
|
+
},
|
|
424
|
+
{
|
|
425
|
+
"description": "valid JSON-pointer (escaped with fraction part) #1",
|
|
426
|
+
"data": "/~1.1",
|
|
427
|
+
"valid": true
|
|
428
|
+
},
|
|
429
|
+
{
|
|
430
|
+
"description": "valid JSON-pointer (escaped with fraction part) #2",
|
|
431
|
+
"data": "/~0.1",
|
|
432
|
+
"valid": true
|
|
433
|
+
},
|
|
434
|
+
{
|
|
435
|
+
"description": "not a valid JSON-pointer (URI Fragment Identifier) #1",
|
|
436
|
+
"data": "#",
|
|
437
|
+
"valid": false
|
|
438
|
+
},
|
|
439
|
+
{
|
|
440
|
+
"description": "not a valid JSON-pointer (URI Fragment Identifier) #2",
|
|
441
|
+
"data": "#/",
|
|
442
|
+
"valid": false
|
|
443
|
+
},
|
|
444
|
+
{
|
|
445
|
+
"description": "not a valid JSON-pointer (URI Fragment Identifier) #3",
|
|
446
|
+
"data": "#a",
|
|
447
|
+
"valid": false
|
|
448
|
+
},
|
|
449
|
+
{
|
|
450
|
+
"description": "not a valid JSON-pointer (some escaped, but not all) #1",
|
|
451
|
+
"data": "/~0~",
|
|
452
|
+
"valid": false
|
|
453
|
+
},
|
|
454
|
+
{
|
|
455
|
+
"description": "not a valid JSON-pointer (some escaped, but not all) #2",
|
|
456
|
+
"data": "/~0/~",
|
|
457
|
+
"valid": false
|
|
458
|
+
},
|
|
459
|
+
{
|
|
460
|
+
"description": "not a valid JSON-pointer (wrong escape character) #1",
|
|
461
|
+
"data": "/~2",
|
|
462
|
+
"valid": false
|
|
463
|
+
},
|
|
464
|
+
{
|
|
465
|
+
"description": "not a valid JSON-pointer (wrong escape character) #2",
|
|
466
|
+
"data": "/~-1",
|
|
467
|
+
"valid": false
|
|
468
|
+
},
|
|
469
|
+
{
|
|
470
|
+
"description": "not a valid JSON-pointer (multiple characters not escaped)",
|
|
471
|
+
"data": "/~~",
|
|
472
|
+
"valid": false
|
|
473
|
+
},
|
|
474
|
+
{
|
|
475
|
+
"description": "not a valid JSON-pointer (isn't empty nor starts with /) #1",
|
|
476
|
+
"data": "a",
|
|
477
|
+
"valid": false
|
|
478
|
+
},
|
|
479
|
+
{
|
|
480
|
+
"description": "not a valid JSON-pointer (isn't empty nor starts with /) #2",
|
|
481
|
+
"data": "0",
|
|
482
|
+
"valid": false
|
|
483
|
+
},
|
|
484
|
+
{
|
|
485
|
+
"description": "not a valid JSON-pointer (isn't empty nor starts with /) #3",
|
|
486
|
+
"data": "a/a",
|
|
487
|
+
"valid": false
|
|
488
|
+
}
|
|
489
|
+
]
|
|
490
|
+
}
|
|
491
|
+
]
|