json_schemer 0.2.9 → 0.2.14

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.
Files changed (239) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +3 -9
  3. data/Gemfile.lock +6 -6
  4. data/json_schemer.gemspec +2 -2
  5. data/lib/json_schemer.rb +2 -0
  6. data/lib/json_schemer/errors.rb +31 -0
  7. data/lib/json_schemer/schema/base.rb +13 -16
  8. data/lib/json_schemer/version.rb +1 -1
  9. metadata +5 -234
  10. data/JSON-Schema-Test-Suite/.gitignore +0 -1
  11. data/JSON-Schema-Test-Suite/.travis.yml +0 -8
  12. data/JSON-Schema-Test-Suite/LICENSE +0 -19
  13. data/JSON-Schema-Test-Suite/README.md +0 -181
  14. data/JSON-Schema-Test-Suite/bin/jsonschema_suite +0 -298
  15. data/JSON-Schema-Test-Suite/index.js +0 -45
  16. data/JSON-Schema-Test-Suite/package.json +0 -28
  17. data/JSON-Schema-Test-Suite/remotes/folder/folderInteger.json +0 -3
  18. data/JSON-Schema-Test-Suite/remotes/integer.json +0 -3
  19. data/JSON-Schema-Test-Suite/remotes/name-defs.json +0 -15
  20. data/JSON-Schema-Test-Suite/remotes/name.json +0 -15
  21. data/JSON-Schema-Test-Suite/remotes/subSchemas.json +0 -8
  22. data/JSON-Schema-Test-Suite/test-schema.json +0 -59
  23. data/JSON-Schema-Test-Suite/tests/draft2019-09/additionalItems.json +0 -87
  24. data/JSON-Schema-Test-Suite/tests/draft2019-09/additionalProperties.json +0 -133
  25. data/JSON-Schema-Test-Suite/tests/draft2019-09/allOf.json +0 -218
  26. data/JSON-Schema-Test-Suite/tests/draft2019-09/anchor.json +0 -87
  27. data/JSON-Schema-Test-Suite/tests/draft2019-09/anyOf.json +0 -189
  28. data/JSON-Schema-Test-Suite/tests/draft2019-09/boolean_schema.json +0 -104
  29. data/JSON-Schema-Test-Suite/tests/draft2019-09/const.json +0 -170
  30. data/JSON-Schema-Test-Suite/tests/draft2019-09/contains.json +0 -95
  31. data/JSON-Schema-Test-Suite/tests/draft2019-09/default.json +0 -49
  32. data/JSON-Schema-Test-Suite/tests/draft2019-09/defs.json +0 -24
  33. data/JSON-Schema-Test-Suite/tests/draft2019-09/dependencies.json +0 -268
  34. data/JSON-Schema-Test-Suite/tests/draft2019-09/enum.json +0 -179
  35. data/JSON-Schema-Test-Suite/tests/draft2019-09/exclusiveMaximum.json +0 -30
  36. data/JSON-Schema-Test-Suite/tests/draft2019-09/exclusiveMinimum.json +0 -30
  37. data/JSON-Schema-Test-Suite/tests/draft2019-09/format.json +0 -614
  38. data/JSON-Schema-Test-Suite/tests/draft2019-09/if-then-else.json +0 -188
  39. data/JSON-Schema-Test-Suite/tests/draft2019-09/items.json +0 -250
  40. data/JSON-Schema-Test-Suite/tests/draft2019-09/maxItems.json +0 -28
  41. data/JSON-Schema-Test-Suite/tests/draft2019-09/maxLength.json +0 -33
  42. data/JSON-Schema-Test-Suite/tests/draft2019-09/maxProperties.json +0 -38
  43. data/JSON-Schema-Test-Suite/tests/draft2019-09/maximum.json +0 -28
  44. data/JSON-Schema-Test-Suite/tests/draft2019-09/minItems.json +0 -28
  45. data/JSON-Schema-Test-Suite/tests/draft2019-09/minLength.json +0 -33
  46. data/JSON-Schema-Test-Suite/tests/draft2019-09/minProperties.json +0 -38
  47. data/JSON-Schema-Test-Suite/tests/draft2019-09/minimum.json +0 -59
  48. data/JSON-Schema-Test-Suite/tests/draft2019-09/multipleOf.json +0 -60
  49. data/JSON-Schema-Test-Suite/tests/draft2019-09/not.json +0 -117
  50. data/JSON-Schema-Test-Suite/tests/draft2019-09/oneOf.json +0 -206
  51. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/bignum.json +0 -105
  52. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/content.json +0 -77
  53. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/ecmascript-regex.json +0 -213
  54. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/date-time.json +0 -53
  55. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/date.json +0 -23
  56. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/email.json +0 -18
  57. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/hostname.json +0 -33
  58. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/idn-email.json +0 -18
  59. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/idn-hostname.json +0 -28
  60. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/ipv4.json +0 -33
  61. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/ipv6.json +0 -28
  62. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/iri-reference.json +0 -43
  63. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/iri.json +0 -53
  64. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/json-pointer.json +0 -168
  65. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/regex.json +0 -18
  66. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/relative-json-pointer.json +0 -33
  67. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/time.json +0 -23
  68. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/uri-reference.json +0 -43
  69. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/uri-template.json +0 -28
  70. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/uri.json +0 -103
  71. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/zeroTerminatedFloats.json +0 -15
  72. data/JSON-Schema-Test-Suite/tests/draft2019-09/pattern.json +0 -34
  73. data/JSON-Schema-Test-Suite/tests/draft2019-09/patternProperties.json +0 -151
  74. data/JSON-Schema-Test-Suite/tests/draft2019-09/properties.json +0 -167
  75. data/JSON-Schema-Test-Suite/tests/draft2019-09/propertyNames.json +0 -78
  76. data/JSON-Schema-Test-Suite/tests/draft2019-09/ref.json +0 -359
  77. data/JSON-Schema-Test-Suite/tests/draft2019-09/refRemote.json +0 -167
  78. data/JSON-Schema-Test-Suite/tests/draft2019-09/required.json +0 -105
  79. data/JSON-Schema-Test-Suite/tests/draft2019-09/type.json +0 -464
  80. data/JSON-Schema-Test-Suite/tests/draft2019-09/uniqueItems.json +0 -173
  81. data/JSON-Schema-Test-Suite/tests/draft3/additionalItems.json +0 -82
  82. data/JSON-Schema-Test-Suite/tests/draft3/additionalProperties.json +0 -133
  83. data/JSON-Schema-Test-Suite/tests/draft3/default.json +0 -49
  84. data/JSON-Schema-Test-Suite/tests/draft3/dependencies.json +0 -118
  85. data/JSON-Schema-Test-Suite/tests/draft3/disallow.json +0 -80
  86. data/JSON-Schema-Test-Suite/tests/draft3/divisibleBy.json +0 -60
  87. data/JSON-Schema-Test-Suite/tests/draft3/enum.json +0 -71
  88. data/JSON-Schema-Test-Suite/tests/draft3/extends.json +0 -94
  89. data/JSON-Schema-Test-Suite/tests/draft3/format.json +0 -362
  90. data/JSON-Schema-Test-Suite/tests/draft3/items.json +0 -46
  91. data/JSON-Schema-Test-Suite/tests/draft3/maxItems.json +0 -28
  92. data/JSON-Schema-Test-Suite/tests/draft3/maxLength.json +0 -33
  93. data/JSON-Schema-Test-Suite/tests/draft3/maximum.json +0 -42
  94. data/JSON-Schema-Test-Suite/tests/draft3/minItems.json +0 -28
  95. data/JSON-Schema-Test-Suite/tests/draft3/minLength.json +0 -33
  96. data/JSON-Schema-Test-Suite/tests/draft3/minimum.json +0 -73
  97. data/JSON-Schema-Test-Suite/tests/draft3/optional/bignum.json +0 -107
  98. data/JSON-Schema-Test-Suite/tests/draft3/optional/ecmascript-regex.json +0 -18
  99. data/JSON-Schema-Test-Suite/tests/draft3/optional/format.json +0 -227
  100. data/JSON-Schema-Test-Suite/tests/draft3/optional/zeroTerminatedFloats.json +0 -15
  101. data/JSON-Schema-Test-Suite/tests/draft3/pattern.json +0 -34
  102. data/JSON-Schema-Test-Suite/tests/draft3/patternProperties.json +0 -115
  103. data/JSON-Schema-Test-Suite/tests/draft3/properties.json +0 -97
  104. data/JSON-Schema-Test-Suite/tests/draft3/ref.json +0 -192
  105. data/JSON-Schema-Test-Suite/tests/draft3/refRemote.json +0 -74
  106. data/JSON-Schema-Test-Suite/tests/draft3/required.json +0 -53
  107. data/JSON-Schema-Test-Suite/tests/draft3/type.json +0 -489
  108. data/JSON-Schema-Test-Suite/tests/draft3/uniqueItems.json +0 -163
  109. data/JSON-Schema-Test-Suite/tests/draft4/additionalItems.json +0 -87
  110. data/JSON-Schema-Test-Suite/tests/draft4/additionalProperties.json +0 -133
  111. data/JSON-Schema-Test-Suite/tests/draft4/allOf.json +0 -185
  112. data/JSON-Schema-Test-Suite/tests/draft4/anyOf.json +0 -156
  113. data/JSON-Schema-Test-Suite/tests/draft4/default.json +0 -49
  114. data/JSON-Schema-Test-Suite/tests/draft4/definitions.json +0 -32
  115. data/JSON-Schema-Test-Suite/tests/draft4/dependencies.json +0 -194
  116. data/JSON-Schema-Test-Suite/tests/draft4/enum.json +0 -179
  117. data/JSON-Schema-Test-Suite/tests/draft4/format.json +0 -218
  118. data/JSON-Schema-Test-Suite/tests/draft4/items.json +0 -195
  119. data/JSON-Schema-Test-Suite/tests/draft4/maxItems.json +0 -28
  120. data/JSON-Schema-Test-Suite/tests/draft4/maxLength.json +0 -33
  121. data/JSON-Schema-Test-Suite/tests/draft4/maxProperties.json +0 -38
  122. data/JSON-Schema-Test-Suite/tests/draft4/maximum.json +0 -73
  123. data/JSON-Schema-Test-Suite/tests/draft4/minItems.json +0 -28
  124. data/JSON-Schema-Test-Suite/tests/draft4/minLength.json +0 -33
  125. data/JSON-Schema-Test-Suite/tests/draft4/minProperties.json +0 -38
  126. data/JSON-Schema-Test-Suite/tests/draft4/minimum.json +0 -104
  127. data/JSON-Schema-Test-Suite/tests/draft4/multipleOf.json +0 -60
  128. data/JSON-Schema-Test-Suite/tests/draft4/not.json +0 -96
  129. data/JSON-Schema-Test-Suite/tests/draft4/oneOf.json +0 -162
  130. data/JSON-Schema-Test-Suite/tests/draft4/optional/bignum.json +0 -107
  131. data/JSON-Schema-Test-Suite/tests/draft4/optional/ecmascript-regex.json +0 -213
  132. data/JSON-Schema-Test-Suite/tests/draft4/optional/format.json +0 -253
  133. data/JSON-Schema-Test-Suite/tests/draft4/optional/zeroTerminatedFloats.json +0 -15
  134. data/JSON-Schema-Test-Suite/tests/draft4/pattern.json +0 -34
  135. data/JSON-Schema-Test-Suite/tests/draft4/patternProperties.json +0 -120
  136. data/JSON-Schema-Test-Suite/tests/draft4/properties.json +0 -136
  137. data/JSON-Schema-Test-Suite/tests/draft4/ref.json +0 -411
  138. data/JSON-Schema-Test-Suite/tests/draft4/refRemote.json +0 -171
  139. data/JSON-Schema-Test-Suite/tests/draft4/required.json +0 -89
  140. data/JSON-Schema-Test-Suite/tests/draft4/type.json +0 -464
  141. data/JSON-Schema-Test-Suite/tests/draft4/uniqueItems.json +0 -173
  142. data/JSON-Schema-Test-Suite/tests/draft6/additionalItems.json +0 -87
  143. data/JSON-Schema-Test-Suite/tests/draft6/additionalProperties.json +0 -133
  144. data/JSON-Schema-Test-Suite/tests/draft6/allOf.json +0 -218
  145. data/JSON-Schema-Test-Suite/tests/draft6/anyOf.json +0 -189
  146. data/JSON-Schema-Test-Suite/tests/draft6/boolean_schema.json +0 -104
  147. data/JSON-Schema-Test-Suite/tests/draft6/const.json +0 -170
  148. data/JSON-Schema-Test-Suite/tests/draft6/contains.json +0 -100
  149. data/JSON-Schema-Test-Suite/tests/draft6/default.json +0 -49
  150. data/JSON-Schema-Test-Suite/tests/draft6/definitions.json +0 -32
  151. data/JSON-Schema-Test-Suite/tests/draft6/dependencies.json +0 -268
  152. data/JSON-Schema-Test-Suite/tests/draft6/enum.json +0 -179
  153. data/JSON-Schema-Test-Suite/tests/draft6/exclusiveMaximum.json +0 -30
  154. data/JSON-Schema-Test-Suite/tests/draft6/exclusiveMinimum.json +0 -30
  155. data/JSON-Schema-Test-Suite/tests/draft6/format.json +0 -326
  156. data/JSON-Schema-Test-Suite/tests/draft6/items.json +0 -250
  157. data/JSON-Schema-Test-Suite/tests/draft6/maxItems.json +0 -28
  158. data/JSON-Schema-Test-Suite/tests/draft6/maxLength.json +0 -33
  159. data/JSON-Schema-Test-Suite/tests/draft6/maxProperties.json +0 -38
  160. data/JSON-Schema-Test-Suite/tests/draft6/maximum.json +0 -28
  161. data/JSON-Schema-Test-Suite/tests/draft6/minItems.json +0 -28
  162. data/JSON-Schema-Test-Suite/tests/draft6/minLength.json +0 -33
  163. data/JSON-Schema-Test-Suite/tests/draft6/minProperties.json +0 -38
  164. data/JSON-Schema-Test-Suite/tests/draft6/minimum.json +0 -59
  165. data/JSON-Schema-Test-Suite/tests/draft6/multipleOf.json +0 -60
  166. data/JSON-Schema-Test-Suite/tests/draft6/not.json +0 -117
  167. data/JSON-Schema-Test-Suite/tests/draft6/oneOf.json +0 -206
  168. data/JSON-Schema-Test-Suite/tests/draft6/optional/bignum.json +0 -105
  169. data/JSON-Schema-Test-Suite/tests/draft6/optional/ecmascript-regex.json +0 -213
  170. data/JSON-Schema-Test-Suite/tests/draft6/optional/format.json +0 -491
  171. data/JSON-Schema-Test-Suite/tests/draft6/optional/zeroTerminatedFloats.json +0 -15
  172. data/JSON-Schema-Test-Suite/tests/draft6/pattern.json +0 -34
  173. data/JSON-Schema-Test-Suite/tests/draft6/patternProperties.json +0 -151
  174. data/JSON-Schema-Test-Suite/tests/draft6/properties.json +0 -167
  175. data/JSON-Schema-Test-Suite/tests/draft6/propertyNames.json +0 -78
  176. data/JSON-Schema-Test-Suite/tests/draft6/ref.json +0 -443
  177. data/JSON-Schema-Test-Suite/tests/draft6/refRemote.json +0 -171
  178. data/JSON-Schema-Test-Suite/tests/draft6/required.json +0 -105
  179. data/JSON-Schema-Test-Suite/tests/draft6/type.json +0 -464
  180. data/JSON-Schema-Test-Suite/tests/draft6/uniqueItems.json +0 -173
  181. data/JSON-Schema-Test-Suite/tests/draft7/additionalItems.json +0 -87
  182. data/JSON-Schema-Test-Suite/tests/draft7/additionalProperties.json +0 -133
  183. data/JSON-Schema-Test-Suite/tests/draft7/allOf.json +0 -218
  184. data/JSON-Schema-Test-Suite/tests/draft7/anyOf.json +0 -189
  185. data/JSON-Schema-Test-Suite/tests/draft7/boolean_schema.json +0 -104
  186. data/JSON-Schema-Test-Suite/tests/draft7/const.json +0 -170
  187. data/JSON-Schema-Test-Suite/tests/draft7/contains.json +0 -100
  188. data/JSON-Schema-Test-Suite/tests/draft7/default.json +0 -49
  189. data/JSON-Schema-Test-Suite/tests/draft7/definitions.json +0 -32
  190. data/JSON-Schema-Test-Suite/tests/draft7/dependencies.json +0 -268
  191. data/JSON-Schema-Test-Suite/tests/draft7/enum.json +0 -179
  192. data/JSON-Schema-Test-Suite/tests/draft7/exclusiveMaximum.json +0 -30
  193. data/JSON-Schema-Test-Suite/tests/draft7/exclusiveMinimum.json +0 -30
  194. data/JSON-Schema-Test-Suite/tests/draft7/format.json +0 -614
  195. data/JSON-Schema-Test-Suite/tests/draft7/if-then-else.json +0 -188
  196. data/JSON-Schema-Test-Suite/tests/draft7/items.json +0 -250
  197. data/JSON-Schema-Test-Suite/tests/draft7/maxItems.json +0 -28
  198. data/JSON-Schema-Test-Suite/tests/draft7/maxLength.json +0 -33
  199. data/JSON-Schema-Test-Suite/tests/draft7/maxProperties.json +0 -38
  200. data/JSON-Schema-Test-Suite/tests/draft7/maximum.json +0 -28
  201. data/JSON-Schema-Test-Suite/tests/draft7/minItems.json +0 -28
  202. data/JSON-Schema-Test-Suite/tests/draft7/minLength.json +0 -33
  203. data/JSON-Schema-Test-Suite/tests/draft7/minProperties.json +0 -38
  204. data/JSON-Schema-Test-Suite/tests/draft7/minimum.json +0 -59
  205. data/JSON-Schema-Test-Suite/tests/draft7/multipleOf.json +0 -60
  206. data/JSON-Schema-Test-Suite/tests/draft7/not.json +0 -117
  207. data/JSON-Schema-Test-Suite/tests/draft7/oneOf.json +0 -206
  208. data/JSON-Schema-Test-Suite/tests/draft7/optional/bignum.json +0 -105
  209. data/JSON-Schema-Test-Suite/tests/draft7/optional/content.json +0 -77
  210. data/JSON-Schema-Test-Suite/tests/draft7/optional/ecmascript-regex.json +0 -213
  211. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/date-time.json +0 -53
  212. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/date.json +0 -23
  213. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/email.json +0 -18
  214. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/hostname.json +0 -33
  215. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/idn-email.json +0 -18
  216. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/idn-hostname.json +0 -28
  217. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/ipv4.json +0 -33
  218. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/ipv6.json +0 -28
  219. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/iri-reference.json +0 -43
  220. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/iri.json +0 -53
  221. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/json-pointer.json +0 -168
  222. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/regex.json +0 -18
  223. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/relative-json-pointer.json +0 -33
  224. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/time.json +0 -23
  225. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri-reference.json +0 -43
  226. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri-template.json +0 -28
  227. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri.json +0 -103
  228. data/JSON-Schema-Test-Suite/tests/draft7/optional/zeroTerminatedFloats.json +0 -15
  229. data/JSON-Schema-Test-Suite/tests/draft7/pattern.json +0 -34
  230. data/JSON-Schema-Test-Suite/tests/draft7/patternProperties.json +0 -151
  231. data/JSON-Schema-Test-Suite/tests/draft7/properties.json +0 -167
  232. data/JSON-Schema-Test-Suite/tests/draft7/propertyNames.json +0 -78
  233. data/JSON-Schema-Test-Suite/tests/draft7/ref.json +0 -443
  234. data/JSON-Schema-Test-Suite/tests/draft7/refRemote.json +0 -171
  235. data/JSON-Schema-Test-Suite/tests/draft7/required.json +0 -105
  236. data/JSON-Schema-Test-Suite/tests/draft7/type.json +0 -464
  237. data/JSON-Schema-Test-Suite/tests/draft7/uniqueItems.json +0 -173
  238. data/JSON-Schema-Test-Suite/tests/latest +0 -1
  239. data/JSON-Schema-Test-Suite/tox.ini +0 -9
@@ -1,167 +0,0 @@
1
- [
2
- {
3
- "description": "object properties validation",
4
- "schema": {
5
- "properties": {
6
- "foo": {"type": "integer"},
7
- "bar": {"type": "string"}
8
- }
9
- },
10
- "tests": [
11
- {
12
- "description": "both properties present and valid is valid",
13
- "data": {"foo": 1, "bar": "baz"},
14
- "valid": true
15
- },
16
- {
17
- "description": "one property invalid is invalid",
18
- "data": {"foo": 1, "bar": {}},
19
- "valid": false
20
- },
21
- {
22
- "description": "both properties invalid is invalid",
23
- "data": {"foo": [], "bar": {}},
24
- "valid": false
25
- },
26
- {
27
- "description": "doesn't invalidate other properties",
28
- "data": {"quux": []},
29
- "valid": true
30
- },
31
- {
32
- "description": "ignores arrays",
33
- "data": [],
34
- "valid": true
35
- },
36
- {
37
- "description": "ignores other non-objects",
38
- "data": 12,
39
- "valid": true
40
- }
41
- ]
42
- },
43
- {
44
- "description":
45
- "properties, patternProperties, additionalProperties interaction",
46
- "schema": {
47
- "properties": {
48
- "foo": {"type": "array", "maxItems": 3},
49
- "bar": {"type": "array"}
50
- },
51
- "patternProperties": {"f.o": {"minItems": 2}},
52
- "additionalProperties": {"type": "integer"}
53
- },
54
- "tests": [
55
- {
56
- "description": "property validates property",
57
- "data": {"foo": [1, 2]},
58
- "valid": true
59
- },
60
- {
61
- "description": "property invalidates property",
62
- "data": {"foo": [1, 2, 3, 4]},
63
- "valid": false
64
- },
65
- {
66
- "description": "patternProperty invalidates property",
67
- "data": {"foo": []},
68
- "valid": false
69
- },
70
- {
71
- "description": "patternProperty validates nonproperty",
72
- "data": {"fxo": [1, 2]},
73
- "valid": true
74
- },
75
- {
76
- "description": "patternProperty invalidates nonproperty",
77
- "data": {"fxo": []},
78
- "valid": false
79
- },
80
- {
81
- "description": "additionalProperty ignores property",
82
- "data": {"bar": []},
83
- "valid": true
84
- },
85
- {
86
- "description": "additionalProperty validates others",
87
- "data": {"quux": 3},
88
- "valid": true
89
- },
90
- {
91
- "description": "additionalProperty invalidates others",
92
- "data": {"quux": "foo"},
93
- "valid": false
94
- }
95
- ]
96
- },
97
- {
98
- "description": "properties with boolean schema",
99
- "schema": {
100
- "properties": {
101
- "foo": true,
102
- "bar": false
103
- }
104
- },
105
- "tests": [
106
- {
107
- "description": "no property present is valid",
108
- "data": {},
109
- "valid": true
110
- },
111
- {
112
- "description": "only 'true' property present is valid",
113
- "data": {"foo": 1},
114
- "valid": true
115
- },
116
- {
117
- "description": "only 'false' property present is invalid",
118
- "data": {"bar": 2},
119
- "valid": false
120
- },
121
- {
122
- "description": "both properties present is invalid",
123
- "data": {"foo": 1, "bar": 2},
124
- "valid": false
125
- }
126
- ]
127
- },
128
- {
129
- "description": "properties with escaped characters",
130
- "schema": {
131
- "properties": {
132
- "foo\nbar": {"type": "number"},
133
- "foo\"bar": {"type": "number"},
134
- "foo\\bar": {"type": "number"},
135
- "foo\rbar": {"type": "number"},
136
- "foo\tbar": {"type": "number"},
137
- "foo\fbar": {"type": "number"}
138
- }
139
- },
140
- "tests": [
141
- {
142
- "description": "object with all numbers is valid",
143
- "data": {
144
- "foo\nbar": 1,
145
- "foo\"bar": 1,
146
- "foo\\bar": 1,
147
- "foo\rbar": 1,
148
- "foo\tbar": 1,
149
- "foo\fbar": 1
150
- },
151
- "valid": true
152
- },
153
- {
154
- "description": "object with strings is invalid",
155
- "data": {
156
- "foo\nbar": "1",
157
- "foo\"bar": "1",
158
- "foo\\bar": "1",
159
- "foo\rbar": "1",
160
- "foo\tbar": "1",
161
- "foo\fbar": "1"
162
- },
163
- "valid": false
164
- }
165
- ]
166
- }
167
- ]
@@ -1,78 +0,0 @@
1
- [
2
- {
3
- "description": "propertyNames validation",
4
- "schema": {
5
- "propertyNames": {"maxLength": 3}
6
- },
7
- "tests": [
8
- {
9
- "description": "all property names valid",
10
- "data": {
11
- "f": {},
12
- "foo": {}
13
- },
14
- "valid": true
15
- },
16
- {
17
- "description": "some property names invalid",
18
- "data": {
19
- "foo": {},
20
- "foobar": {}
21
- },
22
- "valid": false
23
- },
24
- {
25
- "description": "object without properties is valid",
26
- "data": {},
27
- "valid": true
28
- },
29
- {
30
- "description": "ignores arrays",
31
- "data": [1, 2, 3, 4],
32
- "valid": true
33
- },
34
- {
35
- "description": "ignores strings",
36
- "data": "foobar",
37
- "valid": true
38
- },
39
- {
40
- "description": "ignores other non-objects",
41
- "data": 12,
42
- "valid": true
43
- }
44
- ]
45
- },
46
- {
47
- "description": "propertyNames with boolean schema true",
48
- "schema": {"propertyNames": true},
49
- "tests": [
50
- {
51
- "description": "object with any properties is valid",
52
- "data": {"foo": 1},
53
- "valid": true
54
- },
55
- {
56
- "description": "empty object is valid",
57
- "data": {},
58
- "valid": true
59
- }
60
- ]
61
- },
62
- {
63
- "description": "propertyNames with boolean schema false",
64
- "schema": {"propertyNames": false},
65
- "tests": [
66
- {
67
- "description": "object with any properties is invalid",
68
- "data": {"foo": 1},
69
- "valid": false
70
- },
71
- {
72
- "description": "empty object is valid",
73
- "data": {},
74
- "valid": true
75
- }
76
- ]
77
- }
78
- ]
@@ -1,443 +0,0 @@
1
- [
2
- {
3
- "description": "root pointer ref",
4
- "schema": {
5
- "properties": {
6
- "foo": {"$ref": "#"}
7
- },
8
- "additionalProperties": false
9
- },
10
- "tests": [
11
- {
12
- "description": "match",
13
- "data": {"foo": false},
14
- "valid": true
15
- },
16
- {
17
- "description": "recursive match",
18
- "data": {"foo": {"foo": false}},
19
- "valid": true
20
- },
21
- {
22
- "description": "mismatch",
23
- "data": {"bar": false},
24
- "valid": false
25
- },
26
- {
27
- "description": "recursive mismatch",
28
- "data": {"foo": {"bar": false}},
29
- "valid": false
30
- }
31
- ]
32
- },
33
- {
34
- "description": "relative pointer ref to object",
35
- "schema": {
36
- "properties": {
37
- "foo": {"type": "integer"},
38
- "bar": {"$ref": "#/properties/foo"}
39
- }
40
- },
41
- "tests": [
42
- {
43
- "description": "match",
44
- "data": {"bar": 3},
45
- "valid": true
46
- },
47
- {
48
- "description": "mismatch",
49
- "data": {"bar": true},
50
- "valid": false
51
- }
52
- ]
53
- },
54
- {
55
- "description": "relative pointer ref to array",
56
- "schema": {
57
- "items": [
58
- {"type": "integer"},
59
- {"$ref": "#/items/0"}
60
- ]
61
- },
62
- "tests": [
63
- {
64
- "description": "match array",
65
- "data": [1, 2],
66
- "valid": true
67
- },
68
- {
69
- "description": "mismatch array",
70
- "data": [1, "foo"],
71
- "valid": false
72
- }
73
- ]
74
- },
75
- {
76
- "description": "escaped pointer ref",
77
- "schema": {
78
- "tilda~field": {"type": "integer"},
79
- "slash/field": {"type": "integer"},
80
- "percent%field": {"type": "integer"},
81
- "properties": {
82
- "tilda": {"$ref": "#/tilda~0field"},
83
- "slash": {"$ref": "#/slash~1field"},
84
- "percent": {"$ref": "#/percent%25field"}
85
- }
86
- },
87
- "tests": [
88
- {
89
- "description": "slash invalid",
90
- "data": {"slash": "aoeu"},
91
- "valid": false
92
- },
93
- {
94
- "description": "tilda invalid",
95
- "data": {"tilda": "aoeu"},
96
- "valid": false
97
- },
98
- {
99
- "description": "percent invalid",
100
- "data": {"percent": "aoeu"},
101
- "valid": false
102
- },
103
- {
104
- "description": "slash valid",
105
- "data": {"slash": 123},
106
- "valid": true
107
- },
108
- {
109
- "description": "tilda valid",
110
- "data": {"tilda": 123},
111
- "valid": true
112
- },
113
- {
114
- "description": "percent valid",
115
- "data": {"percent": 123},
116
- "valid": true
117
- }
118
- ]
119
- },
120
- {
121
- "description": "nested refs",
122
- "schema": {
123
- "definitions": {
124
- "a": {"type": "integer"},
125
- "b": {"$ref": "#/definitions/a"},
126
- "c": {"$ref": "#/definitions/b"}
127
- },
128
- "$ref": "#/definitions/c"
129
- },
130
- "tests": [
131
- {
132
- "description": "nested ref valid",
133
- "data": 5,
134
- "valid": true
135
- },
136
- {
137
- "description": "nested ref invalid",
138
- "data": "a",
139
- "valid": false
140
- }
141
- ]
142
- },
143
- {
144
- "description": "ref overrides any sibling keywords",
145
- "schema": {
146
- "definitions": {
147
- "reffed": {
148
- "type": "array"
149
- }
150
- },
151
- "properties": {
152
- "foo": {
153
- "$ref": "#/definitions/reffed",
154
- "maxItems": 2
155
- }
156
- }
157
- },
158
- "tests": [
159
- {
160
- "description": "ref valid",
161
- "data": { "foo": [] },
162
- "valid": true
163
- },
164
- {
165
- "description": "ref valid, maxItems ignored",
166
- "data": { "foo": [ 1, 2, 3] },
167
- "valid": true
168
- },
169
- {
170
- "description": "ref invalid",
171
- "data": { "foo": "string" },
172
- "valid": false
173
- }
174
- ]
175
- },
176
- {
177
- "description": "remote ref, containing refs itself",
178
- "schema": {"$ref": "http://json-schema.org/draft-07/schema#"},
179
- "tests": [
180
- {
181
- "description": "remote ref valid",
182
- "data": {"minLength": 1},
183
- "valid": true
184
- },
185
- {
186
- "description": "remote ref invalid",
187
- "data": {"minLength": -1},
188
- "valid": false
189
- }
190
- ]
191
- },
192
- {
193
- "description": "property named $ref that is not a reference",
194
- "schema": {
195
- "properties": {
196
- "$ref": {"type": "string"}
197
- }
198
- },
199
- "tests": [
200
- {
201
- "description": "property named $ref valid",
202
- "data": {"$ref": "a"},
203
- "valid": true
204
- },
205
- {
206
- "description": "property named $ref invalid",
207
- "data": {"$ref": 2},
208
- "valid": false
209
- }
210
- ]
211
- },
212
- {
213
- "description": "$ref to boolean schema true",
214
- "schema": {
215
- "$ref": "#/definitions/bool",
216
- "definitions": {
217
- "bool": true
218
- }
219
- },
220
- "tests": [
221
- {
222
- "description": "any value is valid",
223
- "data": "foo",
224
- "valid": true
225
- }
226
- ]
227
- },
228
- {
229
- "description": "$ref to boolean schema false",
230
- "schema": {
231
- "$ref": "#/definitions/bool",
232
- "definitions": {
233
- "bool": false
234
- }
235
- },
236
- "tests": [
237
- {
238
- "description": "any value is invalid",
239
- "data": "foo",
240
- "valid": false
241
- }
242
- ]
243
- },
244
- {
245
- "description": "Recursive references between schemas",
246
- "schema": {
247
- "$id": "http://localhost:1234/tree",
248
- "description": "tree of nodes",
249
- "type": "object",
250
- "properties": {
251
- "meta": {"type": "string"},
252
- "nodes": {
253
- "type": "array",
254
- "items": {"$ref": "node"}
255
- }
256
- },
257
- "required": ["meta", "nodes"],
258
- "definitions": {
259
- "node": {
260
- "$id": "http://localhost:1234/node",
261
- "description": "node",
262
- "type": "object",
263
- "properties": {
264
- "value": {"type": "number"},
265
- "subtree": {"$ref": "tree"}
266
- },
267
- "required": ["value"]
268
- }
269
- }
270
- },
271
- "tests": [
272
- {
273
- "description": "valid tree",
274
- "data": {
275
- "meta": "root",
276
- "nodes": [
277
- {
278
- "value": 1,
279
- "subtree": {
280
- "meta": "child",
281
- "nodes": [
282
- {"value": 1.1},
283
- {"value": 1.2}
284
- ]
285
- }
286
- },
287
- {
288
- "value": 2,
289
- "subtree": {
290
- "meta": "child",
291
- "nodes": [
292
- {"value": 2.1},
293
- {"value": 2.2}
294
- ]
295
- }
296
- }
297
- ]
298
- },
299
- "valid": true
300
- },
301
- {
302
- "description": "invalid tree",
303
- "data": {
304
- "meta": "root",
305
- "nodes": [
306
- {
307
- "value": 1,
308
- "subtree": {
309
- "meta": "child",
310
- "nodes": [
311
- {"value": "string is invalid"},
312
- {"value": 1.2}
313
- ]
314
- }
315
- },
316
- {
317
- "value": 2,
318
- "subtree": {
319
- "meta": "child",
320
- "nodes": [
321
- {"value": 2.1},
322
- {"value": 2.2}
323
- ]
324
- }
325
- }
326
- ]
327
- },
328
- "valid": false
329
- }
330
- ]
331
- },
332
- {
333
- "description": "refs with quote",
334
- "schema": {
335
- "properties": {
336
- "foo\"bar": {"$ref": "#/definitions/foo%22bar"}
337
- },
338
- "definitions": {
339
- "foo\"bar": {"type": "number"}
340
- }
341
- },
342
- "tests": [
343
- {
344
- "description": "object with numbers is valid",
345
- "data": {
346
- "foo\"bar": 1
347
- },
348
- "valid": true
349
- },
350
- {
351
- "description": "object with strings is invalid",
352
- "data": {
353
- "foo\"bar": "1"
354
- },
355
- "valid": false
356
- }
357
- ]
358
- },
359
- {
360
- "description": "Location-independent identifier",
361
- "schema": {
362
- "allOf": [{
363
- "$ref": "#foo"
364
- }],
365
- "definitions": {
366
- "A": {
367
- "$id": "#foo",
368
- "type": "integer"
369
- }
370
- }
371
- },
372
- "tests": [
373
- {
374
- "data": 1,
375
- "description": "match",
376
- "valid": true
377
- },
378
- {
379
- "data": "a",
380
- "description": "mismatch",
381
- "valid": false
382
- }
383
- ]
384
- },
385
- {
386
- "description": "Location-independent identifier with absolute URI",
387
- "schema": {
388
- "allOf": [{
389
- "$ref": "http://localhost:1234/bar#foo"
390
- }],
391
- "definitions": {
392
- "A": {
393
- "$id": "http://localhost:1234/bar#foo",
394
- "type": "integer"
395
- }
396
- }
397
- },
398
- "tests": [
399
- {
400
- "data": 1,
401
- "description": "match",
402
- "valid": true
403
- },
404
- {
405
- "data": "a",
406
- "description": "mismatch",
407
- "valid": false
408
- }
409
- ]
410
- },
411
- {
412
- "description": "Location-independent identifier with base URI change in subschema",
413
- "schema": {
414
- "$id": "http://localhost:1234/root",
415
- "allOf": [{
416
- "$ref": "http://localhost:1234/nested.json#foo"
417
- }],
418
- "definitions": {
419
- "A": {
420
- "$id": "nested.json",
421
- "definitions": {
422
- "B": {
423
- "$id": "#foo",
424
- "type": "integer"
425
- }
426
- }
427
- }
428
- }
429
- },
430
- "tests": [
431
- {
432
- "data": 1,
433
- "description": "match",
434
- "valid": true
435
- },
436
- {
437
- "data": "a",
438
- "description": "mismatch",
439
- "valid": false
440
- }
441
- ]
442
- }
443
- ]