json_schemer 0.2.8 → 0.2.11

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 (237) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +5 -5
  3. data/json_schemer.gemspec +2 -2
  4. data/lib/json_schemer/schema/base.rb +52 -32
  5. data/lib/json_schemer/version.rb +1 -1
  6. data/lib/json_schemer.rb +1 -0
  7. metadata +4 -234
  8. data/JSON-Schema-Test-Suite/.gitignore +0 -1
  9. data/JSON-Schema-Test-Suite/.travis.yml +0 -8
  10. data/JSON-Schema-Test-Suite/LICENSE +0 -19
  11. data/JSON-Schema-Test-Suite/README.md +0 -181
  12. data/JSON-Schema-Test-Suite/bin/jsonschema_suite +0 -298
  13. data/JSON-Schema-Test-Suite/index.js +0 -45
  14. data/JSON-Schema-Test-Suite/package.json +0 -28
  15. data/JSON-Schema-Test-Suite/remotes/folder/folderInteger.json +0 -3
  16. data/JSON-Schema-Test-Suite/remotes/integer.json +0 -3
  17. data/JSON-Schema-Test-Suite/remotes/name-defs.json +0 -15
  18. data/JSON-Schema-Test-Suite/remotes/name.json +0 -15
  19. data/JSON-Schema-Test-Suite/remotes/subSchemas.json +0 -8
  20. data/JSON-Schema-Test-Suite/test-schema.json +0 -59
  21. data/JSON-Schema-Test-Suite/tests/draft2019-09/additionalItems.json +0 -87
  22. data/JSON-Schema-Test-Suite/tests/draft2019-09/additionalProperties.json +0 -133
  23. data/JSON-Schema-Test-Suite/tests/draft2019-09/allOf.json +0 -218
  24. data/JSON-Schema-Test-Suite/tests/draft2019-09/anchor.json +0 -87
  25. data/JSON-Schema-Test-Suite/tests/draft2019-09/anyOf.json +0 -189
  26. data/JSON-Schema-Test-Suite/tests/draft2019-09/boolean_schema.json +0 -104
  27. data/JSON-Schema-Test-Suite/tests/draft2019-09/const.json +0 -170
  28. data/JSON-Schema-Test-Suite/tests/draft2019-09/contains.json +0 -95
  29. data/JSON-Schema-Test-Suite/tests/draft2019-09/default.json +0 -49
  30. data/JSON-Schema-Test-Suite/tests/draft2019-09/defs.json +0 -24
  31. data/JSON-Schema-Test-Suite/tests/draft2019-09/dependencies.json +0 -268
  32. data/JSON-Schema-Test-Suite/tests/draft2019-09/enum.json +0 -179
  33. data/JSON-Schema-Test-Suite/tests/draft2019-09/exclusiveMaximum.json +0 -30
  34. data/JSON-Schema-Test-Suite/tests/draft2019-09/exclusiveMinimum.json +0 -30
  35. data/JSON-Schema-Test-Suite/tests/draft2019-09/format.json +0 -614
  36. data/JSON-Schema-Test-Suite/tests/draft2019-09/if-then-else.json +0 -188
  37. data/JSON-Schema-Test-Suite/tests/draft2019-09/items.json +0 -250
  38. data/JSON-Schema-Test-Suite/tests/draft2019-09/maxItems.json +0 -28
  39. data/JSON-Schema-Test-Suite/tests/draft2019-09/maxLength.json +0 -33
  40. data/JSON-Schema-Test-Suite/tests/draft2019-09/maxProperties.json +0 -38
  41. data/JSON-Schema-Test-Suite/tests/draft2019-09/maximum.json +0 -28
  42. data/JSON-Schema-Test-Suite/tests/draft2019-09/minItems.json +0 -28
  43. data/JSON-Schema-Test-Suite/tests/draft2019-09/minLength.json +0 -33
  44. data/JSON-Schema-Test-Suite/tests/draft2019-09/minProperties.json +0 -38
  45. data/JSON-Schema-Test-Suite/tests/draft2019-09/minimum.json +0 -59
  46. data/JSON-Schema-Test-Suite/tests/draft2019-09/multipleOf.json +0 -60
  47. data/JSON-Schema-Test-Suite/tests/draft2019-09/not.json +0 -117
  48. data/JSON-Schema-Test-Suite/tests/draft2019-09/oneOf.json +0 -206
  49. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/bignum.json +0 -105
  50. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/content.json +0 -77
  51. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/ecmascript-regex.json +0 -213
  52. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/date-time.json +0 -53
  53. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/date.json +0 -23
  54. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/email.json +0 -18
  55. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/hostname.json +0 -33
  56. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/idn-email.json +0 -18
  57. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/idn-hostname.json +0 -28
  58. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/ipv4.json +0 -33
  59. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/ipv6.json +0 -28
  60. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/iri-reference.json +0 -43
  61. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/iri.json +0 -53
  62. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/json-pointer.json +0 -168
  63. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/regex.json +0 -18
  64. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/relative-json-pointer.json +0 -33
  65. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/time.json +0 -23
  66. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/uri-reference.json +0 -43
  67. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/uri-template.json +0 -28
  68. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/uri.json +0 -103
  69. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/zeroTerminatedFloats.json +0 -15
  70. data/JSON-Schema-Test-Suite/tests/draft2019-09/pattern.json +0 -34
  71. data/JSON-Schema-Test-Suite/tests/draft2019-09/patternProperties.json +0 -151
  72. data/JSON-Schema-Test-Suite/tests/draft2019-09/properties.json +0 -167
  73. data/JSON-Schema-Test-Suite/tests/draft2019-09/propertyNames.json +0 -78
  74. data/JSON-Schema-Test-Suite/tests/draft2019-09/ref.json +0 -359
  75. data/JSON-Schema-Test-Suite/tests/draft2019-09/refRemote.json +0 -167
  76. data/JSON-Schema-Test-Suite/tests/draft2019-09/required.json +0 -105
  77. data/JSON-Schema-Test-Suite/tests/draft2019-09/type.json +0 -464
  78. data/JSON-Schema-Test-Suite/tests/draft2019-09/uniqueItems.json +0 -173
  79. data/JSON-Schema-Test-Suite/tests/draft3/additionalItems.json +0 -82
  80. data/JSON-Schema-Test-Suite/tests/draft3/additionalProperties.json +0 -133
  81. data/JSON-Schema-Test-Suite/tests/draft3/default.json +0 -49
  82. data/JSON-Schema-Test-Suite/tests/draft3/dependencies.json +0 -118
  83. data/JSON-Schema-Test-Suite/tests/draft3/disallow.json +0 -80
  84. data/JSON-Schema-Test-Suite/tests/draft3/divisibleBy.json +0 -60
  85. data/JSON-Schema-Test-Suite/tests/draft3/enum.json +0 -71
  86. data/JSON-Schema-Test-Suite/tests/draft3/extends.json +0 -94
  87. data/JSON-Schema-Test-Suite/tests/draft3/format.json +0 -362
  88. data/JSON-Schema-Test-Suite/tests/draft3/items.json +0 -46
  89. data/JSON-Schema-Test-Suite/tests/draft3/maxItems.json +0 -28
  90. data/JSON-Schema-Test-Suite/tests/draft3/maxLength.json +0 -33
  91. data/JSON-Schema-Test-Suite/tests/draft3/maximum.json +0 -42
  92. data/JSON-Schema-Test-Suite/tests/draft3/minItems.json +0 -28
  93. data/JSON-Schema-Test-Suite/tests/draft3/minLength.json +0 -33
  94. data/JSON-Schema-Test-Suite/tests/draft3/minimum.json +0 -73
  95. data/JSON-Schema-Test-Suite/tests/draft3/optional/bignum.json +0 -107
  96. data/JSON-Schema-Test-Suite/tests/draft3/optional/ecmascript-regex.json +0 -18
  97. data/JSON-Schema-Test-Suite/tests/draft3/optional/format.json +0 -227
  98. data/JSON-Schema-Test-Suite/tests/draft3/optional/zeroTerminatedFloats.json +0 -15
  99. data/JSON-Schema-Test-Suite/tests/draft3/pattern.json +0 -34
  100. data/JSON-Schema-Test-Suite/tests/draft3/patternProperties.json +0 -115
  101. data/JSON-Schema-Test-Suite/tests/draft3/properties.json +0 -97
  102. data/JSON-Schema-Test-Suite/tests/draft3/ref.json +0 -192
  103. data/JSON-Schema-Test-Suite/tests/draft3/refRemote.json +0 -74
  104. data/JSON-Schema-Test-Suite/tests/draft3/required.json +0 -53
  105. data/JSON-Schema-Test-Suite/tests/draft3/type.json +0 -489
  106. data/JSON-Schema-Test-Suite/tests/draft3/uniqueItems.json +0 -163
  107. data/JSON-Schema-Test-Suite/tests/draft4/additionalItems.json +0 -87
  108. data/JSON-Schema-Test-Suite/tests/draft4/additionalProperties.json +0 -133
  109. data/JSON-Schema-Test-Suite/tests/draft4/allOf.json +0 -185
  110. data/JSON-Schema-Test-Suite/tests/draft4/anyOf.json +0 -156
  111. data/JSON-Schema-Test-Suite/tests/draft4/default.json +0 -49
  112. data/JSON-Schema-Test-Suite/tests/draft4/definitions.json +0 -32
  113. data/JSON-Schema-Test-Suite/tests/draft4/dependencies.json +0 -194
  114. data/JSON-Schema-Test-Suite/tests/draft4/enum.json +0 -179
  115. data/JSON-Schema-Test-Suite/tests/draft4/format.json +0 -218
  116. data/JSON-Schema-Test-Suite/tests/draft4/items.json +0 -195
  117. data/JSON-Schema-Test-Suite/tests/draft4/maxItems.json +0 -28
  118. data/JSON-Schema-Test-Suite/tests/draft4/maxLength.json +0 -33
  119. data/JSON-Schema-Test-Suite/tests/draft4/maxProperties.json +0 -38
  120. data/JSON-Schema-Test-Suite/tests/draft4/maximum.json +0 -73
  121. data/JSON-Schema-Test-Suite/tests/draft4/minItems.json +0 -28
  122. data/JSON-Schema-Test-Suite/tests/draft4/minLength.json +0 -33
  123. data/JSON-Schema-Test-Suite/tests/draft4/minProperties.json +0 -38
  124. data/JSON-Schema-Test-Suite/tests/draft4/minimum.json +0 -104
  125. data/JSON-Schema-Test-Suite/tests/draft4/multipleOf.json +0 -60
  126. data/JSON-Schema-Test-Suite/tests/draft4/not.json +0 -96
  127. data/JSON-Schema-Test-Suite/tests/draft4/oneOf.json +0 -162
  128. data/JSON-Schema-Test-Suite/tests/draft4/optional/bignum.json +0 -107
  129. data/JSON-Schema-Test-Suite/tests/draft4/optional/ecmascript-regex.json +0 -213
  130. data/JSON-Schema-Test-Suite/tests/draft4/optional/format.json +0 -253
  131. data/JSON-Schema-Test-Suite/tests/draft4/optional/zeroTerminatedFloats.json +0 -15
  132. data/JSON-Schema-Test-Suite/tests/draft4/pattern.json +0 -34
  133. data/JSON-Schema-Test-Suite/tests/draft4/patternProperties.json +0 -120
  134. data/JSON-Schema-Test-Suite/tests/draft4/properties.json +0 -136
  135. data/JSON-Schema-Test-Suite/tests/draft4/ref.json +0 -411
  136. data/JSON-Schema-Test-Suite/tests/draft4/refRemote.json +0 -171
  137. data/JSON-Schema-Test-Suite/tests/draft4/required.json +0 -89
  138. data/JSON-Schema-Test-Suite/tests/draft4/type.json +0 -464
  139. data/JSON-Schema-Test-Suite/tests/draft4/uniqueItems.json +0 -173
  140. data/JSON-Schema-Test-Suite/tests/draft6/additionalItems.json +0 -87
  141. data/JSON-Schema-Test-Suite/tests/draft6/additionalProperties.json +0 -133
  142. data/JSON-Schema-Test-Suite/tests/draft6/allOf.json +0 -218
  143. data/JSON-Schema-Test-Suite/tests/draft6/anyOf.json +0 -189
  144. data/JSON-Schema-Test-Suite/tests/draft6/boolean_schema.json +0 -104
  145. data/JSON-Schema-Test-Suite/tests/draft6/const.json +0 -170
  146. data/JSON-Schema-Test-Suite/tests/draft6/contains.json +0 -100
  147. data/JSON-Schema-Test-Suite/tests/draft6/default.json +0 -49
  148. data/JSON-Schema-Test-Suite/tests/draft6/definitions.json +0 -32
  149. data/JSON-Schema-Test-Suite/tests/draft6/dependencies.json +0 -268
  150. data/JSON-Schema-Test-Suite/tests/draft6/enum.json +0 -179
  151. data/JSON-Schema-Test-Suite/tests/draft6/exclusiveMaximum.json +0 -30
  152. data/JSON-Schema-Test-Suite/tests/draft6/exclusiveMinimum.json +0 -30
  153. data/JSON-Schema-Test-Suite/tests/draft6/format.json +0 -326
  154. data/JSON-Schema-Test-Suite/tests/draft6/items.json +0 -250
  155. data/JSON-Schema-Test-Suite/tests/draft6/maxItems.json +0 -28
  156. data/JSON-Schema-Test-Suite/tests/draft6/maxLength.json +0 -33
  157. data/JSON-Schema-Test-Suite/tests/draft6/maxProperties.json +0 -38
  158. data/JSON-Schema-Test-Suite/tests/draft6/maximum.json +0 -28
  159. data/JSON-Schema-Test-Suite/tests/draft6/minItems.json +0 -28
  160. data/JSON-Schema-Test-Suite/tests/draft6/minLength.json +0 -33
  161. data/JSON-Schema-Test-Suite/tests/draft6/minProperties.json +0 -38
  162. data/JSON-Schema-Test-Suite/tests/draft6/minimum.json +0 -59
  163. data/JSON-Schema-Test-Suite/tests/draft6/multipleOf.json +0 -60
  164. data/JSON-Schema-Test-Suite/tests/draft6/not.json +0 -117
  165. data/JSON-Schema-Test-Suite/tests/draft6/oneOf.json +0 -206
  166. data/JSON-Schema-Test-Suite/tests/draft6/optional/bignum.json +0 -105
  167. data/JSON-Schema-Test-Suite/tests/draft6/optional/ecmascript-regex.json +0 -213
  168. data/JSON-Schema-Test-Suite/tests/draft6/optional/format.json +0 -491
  169. data/JSON-Schema-Test-Suite/tests/draft6/optional/zeroTerminatedFloats.json +0 -15
  170. data/JSON-Schema-Test-Suite/tests/draft6/pattern.json +0 -34
  171. data/JSON-Schema-Test-Suite/tests/draft6/patternProperties.json +0 -151
  172. data/JSON-Schema-Test-Suite/tests/draft6/properties.json +0 -167
  173. data/JSON-Schema-Test-Suite/tests/draft6/propertyNames.json +0 -78
  174. data/JSON-Schema-Test-Suite/tests/draft6/ref.json +0 -443
  175. data/JSON-Schema-Test-Suite/tests/draft6/refRemote.json +0 -171
  176. data/JSON-Schema-Test-Suite/tests/draft6/required.json +0 -105
  177. data/JSON-Schema-Test-Suite/tests/draft6/type.json +0 -464
  178. data/JSON-Schema-Test-Suite/tests/draft6/uniqueItems.json +0 -173
  179. data/JSON-Schema-Test-Suite/tests/draft7/additionalItems.json +0 -87
  180. data/JSON-Schema-Test-Suite/tests/draft7/additionalProperties.json +0 -133
  181. data/JSON-Schema-Test-Suite/tests/draft7/allOf.json +0 -218
  182. data/JSON-Schema-Test-Suite/tests/draft7/anyOf.json +0 -189
  183. data/JSON-Schema-Test-Suite/tests/draft7/boolean_schema.json +0 -104
  184. data/JSON-Schema-Test-Suite/tests/draft7/const.json +0 -170
  185. data/JSON-Schema-Test-Suite/tests/draft7/contains.json +0 -100
  186. data/JSON-Schema-Test-Suite/tests/draft7/default.json +0 -49
  187. data/JSON-Schema-Test-Suite/tests/draft7/definitions.json +0 -32
  188. data/JSON-Schema-Test-Suite/tests/draft7/dependencies.json +0 -268
  189. data/JSON-Schema-Test-Suite/tests/draft7/enum.json +0 -179
  190. data/JSON-Schema-Test-Suite/tests/draft7/exclusiveMaximum.json +0 -30
  191. data/JSON-Schema-Test-Suite/tests/draft7/exclusiveMinimum.json +0 -30
  192. data/JSON-Schema-Test-Suite/tests/draft7/format.json +0 -614
  193. data/JSON-Schema-Test-Suite/tests/draft7/if-then-else.json +0 -188
  194. data/JSON-Schema-Test-Suite/tests/draft7/items.json +0 -250
  195. data/JSON-Schema-Test-Suite/tests/draft7/maxItems.json +0 -28
  196. data/JSON-Schema-Test-Suite/tests/draft7/maxLength.json +0 -33
  197. data/JSON-Schema-Test-Suite/tests/draft7/maxProperties.json +0 -38
  198. data/JSON-Schema-Test-Suite/tests/draft7/maximum.json +0 -28
  199. data/JSON-Schema-Test-Suite/tests/draft7/minItems.json +0 -28
  200. data/JSON-Schema-Test-Suite/tests/draft7/minLength.json +0 -33
  201. data/JSON-Schema-Test-Suite/tests/draft7/minProperties.json +0 -38
  202. data/JSON-Schema-Test-Suite/tests/draft7/minimum.json +0 -59
  203. data/JSON-Schema-Test-Suite/tests/draft7/multipleOf.json +0 -60
  204. data/JSON-Schema-Test-Suite/tests/draft7/not.json +0 -117
  205. data/JSON-Schema-Test-Suite/tests/draft7/oneOf.json +0 -206
  206. data/JSON-Schema-Test-Suite/tests/draft7/optional/bignum.json +0 -105
  207. data/JSON-Schema-Test-Suite/tests/draft7/optional/content.json +0 -77
  208. data/JSON-Schema-Test-Suite/tests/draft7/optional/ecmascript-regex.json +0 -213
  209. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/date-time.json +0 -53
  210. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/date.json +0 -23
  211. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/email.json +0 -18
  212. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/hostname.json +0 -33
  213. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/idn-email.json +0 -18
  214. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/idn-hostname.json +0 -28
  215. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/ipv4.json +0 -33
  216. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/ipv6.json +0 -28
  217. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/iri-reference.json +0 -43
  218. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/iri.json +0 -53
  219. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/json-pointer.json +0 -168
  220. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/regex.json +0 -18
  221. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/relative-json-pointer.json +0 -33
  222. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/time.json +0 -23
  223. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri-reference.json +0 -43
  224. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri-template.json +0 -28
  225. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri.json +0 -103
  226. data/JSON-Schema-Test-Suite/tests/draft7/optional/zeroTerminatedFloats.json +0 -15
  227. data/JSON-Schema-Test-Suite/tests/draft7/pattern.json +0 -34
  228. data/JSON-Schema-Test-Suite/tests/draft7/patternProperties.json +0 -151
  229. data/JSON-Schema-Test-Suite/tests/draft7/properties.json +0 -167
  230. data/JSON-Schema-Test-Suite/tests/draft7/propertyNames.json +0 -78
  231. data/JSON-Schema-Test-Suite/tests/draft7/ref.json +0 -443
  232. data/JSON-Schema-Test-Suite/tests/draft7/refRemote.json +0 -171
  233. data/JSON-Schema-Test-Suite/tests/draft7/required.json +0 -105
  234. data/JSON-Schema-Test-Suite/tests/draft7/type.json +0 -464
  235. data/JSON-Schema-Test-Suite/tests/draft7/uniqueItems.json +0 -173
  236. data/JSON-Schema-Test-Suite/tests/latest +0 -1
  237. data/JSON-Schema-Test-Suite/tox.ini +0 -9
@@ -1,82 +0,0 @@
1
- [
2
- {
3
- "description": "additionalItems as schema",
4
- "schema": {
5
- "items": [],
6
- "additionalItems": {"type": "integer"}
7
- },
8
- "tests": [
9
- {
10
- "description": "additional items match schema",
11
- "data": [ 1, 2, 3, 4 ],
12
- "valid": true
13
- },
14
- {
15
- "description": "additional items do not match schema",
16
- "data": [ 1, 2, 3, "foo" ],
17
- "valid": false
18
- }
19
- ]
20
- },
21
- {
22
- "description": "items is schema, no additionalItems",
23
- "schema": {
24
- "items": {},
25
- "additionalItems": false
26
- },
27
- "tests": [
28
- {
29
- "description": "all items match schema",
30
- "data": [ 1, 2, 3, 4, 5 ],
31
- "valid": true
32
- }
33
- ]
34
- },
35
- {
36
- "description": "array of items with no additionalItems",
37
- "schema": {
38
- "items": [{}, {}, {}],
39
- "additionalItems": false
40
- },
41
- "tests": [
42
- {
43
- "description": "no additional items present",
44
- "data": [ 1, 2, 3 ],
45
- "valid": true
46
- },
47
- {
48
- "description": "additional items are not permitted",
49
- "data": [ 1, 2, 3, 4 ],
50
- "valid": false
51
- }
52
- ]
53
- },
54
- {
55
- "description": "additionalItems as false without items",
56
- "schema": {"additionalItems": false},
57
- "tests": [
58
- {
59
- "description":
60
- "items defaults to empty schema so everything is valid",
61
- "data": [ 1, 2, 3, 4, 5 ],
62
- "valid": true
63
- },
64
- {
65
- "description": "ignores non-arrays",
66
- "data": {"foo" : "bar"},
67
- "valid": true
68
- }
69
- ]
70
- },
71
- {
72
- "description": "additionalItems are allowed by default",
73
- "schema": {"items": []},
74
- "tests": [
75
- {
76
- "description": "only the first items are validated",
77
- "data": [1, "foo", false],
78
- "valid": true
79
- }
80
- ]
81
- }
82
- ]
@@ -1,133 +0,0 @@
1
- [
2
- {
3
- "description":
4
- "additionalProperties being false does not allow other properties",
5
- "schema": {
6
- "properties": {"foo": {}, "bar": {}},
7
- "patternProperties": { "^v": {} },
8
- "additionalProperties": false
9
- },
10
- "tests": [
11
- {
12
- "description": "no additional properties is valid",
13
- "data": {"foo": 1},
14
- "valid": true
15
- },
16
- {
17
- "description": "an additional property is invalid",
18
- "data": {"foo" : 1, "bar" : 2, "quux" : "boom"},
19
- "valid": false
20
- },
21
- {
22
- "description": "ignores arrays",
23
- "data": [1, 2, 3],
24
- "valid": true
25
- },
26
- {
27
- "description": "ignores strings",
28
- "data": "foobarbaz",
29
- "valid": true
30
- },
31
- {
32
- "description": "ignores other non-objects",
33
- "data": 12,
34
- "valid": true
35
- },
36
- {
37
- "description": "patternProperties are not additional properties",
38
- "data": {"foo":1, "vroom": 2},
39
- "valid": true
40
- }
41
- ]
42
- },
43
- {
44
- "description": "non-ASCII pattern with additionalProperties",
45
- "schema": {
46
- "patternProperties": {"^á": {}},
47
- "additionalProperties": false
48
- },
49
- "tests": [
50
- {
51
- "description": "matching the pattern is valid",
52
- "data": {"ármányos": 2},
53
- "valid": true
54
- },
55
- {
56
- "description": "not matching the pattern is invalid",
57
- "data": {"élmény": 2},
58
- "valid": false
59
- }
60
- ]
61
- },
62
- {
63
- "description":
64
- "additionalProperties allows a schema which should validate",
65
- "schema": {
66
- "properties": {"foo": {}, "bar": {}},
67
- "additionalProperties": {"type": "boolean"}
68
- },
69
- "tests": [
70
- {
71
- "description": "no additional properties is valid",
72
- "data": {"foo": 1},
73
- "valid": true
74
- },
75
- {
76
- "description": "an additional valid property is valid",
77
- "data": {"foo" : 1, "bar" : 2, "quux" : true},
78
- "valid": true
79
- },
80
- {
81
- "description": "an additional invalid property is invalid",
82
- "data": {"foo" : 1, "bar" : 2, "quux" : 12},
83
- "valid": false
84
- }
85
- ]
86
- },
87
- {
88
- "description":
89
- "additionalProperties can exist by itself",
90
- "schema": {
91
- "additionalProperties": {"type": "boolean"}
92
- },
93
- "tests": [
94
- {
95
- "description": "an additional valid property is valid",
96
- "data": {"foo" : true},
97
- "valid": true
98
- },
99
- {
100
- "description": "an additional invalid property is invalid",
101
- "data": {"foo" : 1},
102
- "valid": false
103
- }
104
- ]
105
- },
106
- {
107
- "description": "additionalProperties are allowed by default",
108
- "schema": {"properties": {"foo": {}, "bar": {}}},
109
- "tests": [
110
- {
111
- "description": "additional properties are allowed",
112
- "data": {"foo": 1, "bar": 2, "quux": true},
113
- "valid": true
114
- }
115
- ]
116
- },
117
- {
118
- "description": "additionalProperties should not look in applicators",
119
- "schema": {
120
- "extends": [
121
- {"properties": {"foo": {}}}
122
- ],
123
- "additionalProperties": {"type": "boolean"}
124
- },
125
- "tests": [
126
- {
127
- "description": "properties defined in extends are not allowed",
128
- "data": {"foo": 1, "bar": true},
129
- "valid": false
130
- }
131
- ]
132
- }
133
- ]
@@ -1,49 +0,0 @@
1
- [
2
- {
3
- "description": "invalid type for default",
4
- "schema": {
5
- "properties": {
6
- "foo": {
7
- "type": "integer",
8
- "default": []
9
- }
10
- }
11
- },
12
- "tests": [
13
- {
14
- "description": "valid when property is specified",
15
- "data": {"foo": 13},
16
- "valid": true
17
- },
18
- {
19
- "description": "still valid when the invalid default is used",
20
- "data": {},
21
- "valid": true
22
- }
23
- ]
24
- },
25
- {
26
- "description": "invalid string value for default",
27
- "schema": {
28
- "properties": {
29
- "bar": {
30
- "type": "string",
31
- "minLength": 4,
32
- "default": "bad"
33
- }
34
- }
35
- },
36
- "tests": [
37
- {
38
- "description": "valid when property is specified",
39
- "data": {"bar": "good"},
40
- "valid": true
41
- },
42
- {
43
- "description": "still valid when the invalid default is used",
44
- "data": {},
45
- "valid": true
46
- }
47
- ]
48
- }
49
- ]
@@ -1,118 +0,0 @@
1
- [
2
- {
3
- "description": "dependencies",
4
- "schema": {
5
- "dependencies": {"bar": "foo"}
6
- },
7
- "tests": [
8
- {
9
- "description": "neither",
10
- "data": {},
11
- "valid": true
12
- },
13
- {
14
- "description": "nondependant",
15
- "data": {"foo": 1},
16
- "valid": true
17
- },
18
- {
19
- "description": "with dependency",
20
- "data": {"foo": 1, "bar": 2},
21
- "valid": true
22
- },
23
- {
24
- "description": "missing dependency",
25
- "data": {"bar": 2},
26
- "valid": false
27
- },
28
- {
29
- "description": "ignores arrays",
30
- "data": ["bar"],
31
- "valid": true
32
- },
33
- {
34
- "description": "ignores strings",
35
- "data": "foobar",
36
- "valid": true
37
- },
38
- {
39
- "description": "ignores other non-objects",
40
- "data": 12,
41
- "valid": true
42
- }
43
- ]
44
- },
45
- {
46
- "description": "multiple dependencies",
47
- "schema": {
48
- "dependencies": {"quux": ["foo", "bar"]}
49
- },
50
- "tests": [
51
- {
52
- "description": "neither",
53
- "data": {},
54
- "valid": true
55
- },
56
- {
57
- "description": "nondependants",
58
- "data": {"foo": 1, "bar": 2},
59
- "valid": true
60
- },
61
- {
62
- "description": "with dependencies",
63
- "data": {"foo": 1, "bar": 2, "quux": 3},
64
- "valid": true
65
- },
66
- {
67
- "description": "missing dependency",
68
- "data": {"foo": 1, "quux": 2},
69
- "valid": false
70
- },
71
- {
72
- "description": "missing other dependency",
73
- "data": {"bar": 1, "quux": 2},
74
- "valid": false
75
- },
76
- {
77
- "description": "missing both dependencies",
78
- "data": {"quux": 1},
79
- "valid": false
80
- }
81
- ]
82
- },
83
- {
84
- "description": "multiple dependencies subschema",
85
- "schema": {
86
- "dependencies": {
87
- "bar": {
88
- "properties": {
89
- "foo": {"type": "integer"},
90
- "bar": {"type": "integer"}
91
- }
92
- }
93
- }
94
- },
95
- "tests": [
96
- {
97
- "description": "valid",
98
- "data": {"foo": 1, "bar": 2},
99
- "valid": true
100
- },
101
- {
102
- "description": "wrong type",
103
- "data": {"foo": "quux", "bar": 2},
104
- "valid": false
105
- },
106
- {
107
- "description": "wrong type other",
108
- "data": {"foo": 2, "bar": "quux"},
109
- "valid": false
110
- },
111
- {
112
- "description": "wrong type both",
113
- "data": {"foo": "quux", "bar": "quux"},
114
- "valid": false
115
- }
116
- ]
117
- }
118
- ]
@@ -1,80 +0,0 @@
1
- [
2
- {
3
- "description": "disallow",
4
- "schema": {
5
- "disallow": "integer"
6
- },
7
- "tests": [
8
- {
9
- "description": "allowed",
10
- "data": "foo",
11
- "valid": true
12
- },
13
- {
14
- "description": "disallowed",
15
- "data": 1,
16
- "valid": false
17
- }
18
- ]
19
- },
20
- {
21
- "description": "multiple disallow",
22
- "schema": {
23
- "disallow": ["integer", "boolean"]
24
- },
25
- "tests": [
26
- {
27
- "description": "valid",
28
- "data": "foo",
29
- "valid": true
30
- },
31
- {
32
- "description": "mismatch",
33
- "data": 1,
34
- "valid": false
35
- },
36
- {
37
- "description": "other mismatch",
38
- "data": true,
39
- "valid": false
40
- }
41
- ]
42
- },
43
- {
44
- "description": "multiple disallow subschema",
45
- "schema": {
46
- "disallow":
47
- ["string",
48
- {
49
- "type": "object",
50
- "properties": {
51
- "foo": {
52
- "type": "string"
53
- }
54
- }
55
- }]
56
- },
57
- "tests": [
58
- {
59
- "description": "match",
60
- "data": 1,
61
- "valid": true
62
- },
63
- {
64
- "description": "other match",
65
- "data": {"foo": 1},
66
- "valid": true
67
- },
68
- {
69
- "description": "mismatch",
70
- "data": "foo",
71
- "valid": false
72
- },
73
- {
74
- "description": "other mismatch",
75
- "data": {"foo": "bar"},
76
- "valid": false
77
- }
78
- ]
79
- }
80
- ]
@@ -1,60 +0,0 @@
1
- [
2
- {
3
- "description": "by int",
4
- "schema": {"divisibleBy": 2},
5
- "tests": [
6
- {
7
- "description": "int by int",
8
- "data": 10,
9
- "valid": true
10
- },
11
- {
12
- "description": "int by int fail",
13
- "data": 7,
14
- "valid": false
15
- },
16
- {
17
- "description": "ignores non-numbers",
18
- "data": "foo",
19
- "valid": true
20
- }
21
- ]
22
- },
23
- {
24
- "description": "by number",
25
- "schema": {"divisibleBy": 1.5},
26
- "tests": [
27
- {
28
- "description": "zero is divisible by anything (except 0)",
29
- "data": 0,
30
- "valid": true
31
- },
32
- {
33
- "description": "4.5 is divisible by 1.5",
34
- "data": 4.5,
35
- "valid": true
36
- },
37
- {
38
- "description": "35 is not divisible by 1.5",
39
- "data": 35,
40
- "valid": false
41
- }
42
- ]
43
- },
44
- {
45
- "description": "by small number",
46
- "schema": {"divisibleBy": 0.0001},
47
- "tests": [
48
- {
49
- "description": "0.0075 is divisible by 0.0001",
50
- "data": 0.0075,
51
- "valid": true
52
- },
53
- {
54
- "description": "0.00751 is not divisible by 0.0001",
55
- "data": 0.00751,
56
- "valid": false
57
- }
58
- ]
59
- }
60
- ]
@@ -1,71 +0,0 @@
1
- [
2
- {
3
- "description": "simple enum validation",
4
- "schema": {"enum": [1, 2, 3]},
5
- "tests": [
6
- {
7
- "description": "one of the enum is valid",
8
- "data": 1,
9
- "valid": true
10
- },
11
- {
12
- "description": "something else is invalid",
13
- "data": 4,
14
- "valid": false
15
- }
16
- ]
17
- },
18
- {
19
- "description": "heterogeneous enum validation",
20
- "schema": {"enum": [6, "foo", [], true, {"foo": 12}]},
21
- "tests": [
22
- {
23
- "description": "one of the enum is valid",
24
- "data": [],
25
- "valid": true
26
- },
27
- {
28
- "description": "something else is invalid",
29
- "data": null,
30
- "valid": false
31
- },
32
- {
33
- "description": "objects are deep compared",
34
- "data": {"foo": false},
35
- "valid": false
36
- }
37
- ]
38
- },
39
- {
40
- "description": "enums in properties",
41
- "schema": {
42
- "type":"object",
43
- "properties": {
44
- "foo": {"enum":["foo"]},
45
- "bar": {"enum":["bar"], "required":true}
46
- }
47
- },
48
- "tests": [
49
- {
50
- "description": "both properties are valid",
51
- "data": {"foo":"foo", "bar":"bar"},
52
- "valid": true
53
- },
54
- {
55
- "description": "missing optional property is valid",
56
- "data": {"bar":"bar"},
57
- "valid": true
58
- },
59
- {
60
- "description": "missing required property is invalid",
61
- "data": {"foo":"foo"},
62
- "valid": false
63
- },
64
- {
65
- "description": "missing all properties is invalid",
66
- "data": {},
67
- "valid": false
68
- }
69
- ]
70
- }
71
- ]
@@ -1,94 +0,0 @@
1
- [
2
- {
3
- "description": "extends",
4
- "schema": {
5
- "properties": {"bar": {"type": "integer", "required": true}},
6
- "extends": {
7
- "properties": {
8
- "foo": {"type": "string", "required": true}
9
- }
10
- }
11
- },
12
- "tests": [
13
- {
14
- "description": "extends",
15
- "data": {"foo": "baz", "bar": 2},
16
- "valid": true
17
- },
18
- {
19
- "description": "mismatch extends",
20
- "data": {"foo": "baz"},
21
- "valid": false
22
- },
23
- {
24
- "description": "mismatch extended",
25
- "data": {"bar": 2},
26
- "valid": false
27
- },
28
- {
29
- "description": "wrong type",
30
- "data": {"foo": "baz", "bar": "quux"},
31
- "valid": false
32
- }
33
- ]
34
- },
35
- {
36
- "description": "multiple extends",
37
- "schema": {
38
- "properties": {"bar": {"type": "integer", "required": true}},
39
- "extends" : [
40
- {
41
- "properties": {
42
- "foo": {"type": "string", "required": true}
43
- }
44
- },
45
- {
46
- "properties": {
47
- "baz": {"type": "null", "required": true}
48
- }
49
- }
50
- ]
51
- },
52
- "tests": [
53
- {
54
- "description": "valid",
55
- "data": {"foo": "quux", "bar": 2, "baz": null},
56
- "valid": true
57
- },
58
- {
59
- "description": "mismatch first extends",
60
- "data": {"bar": 2, "baz": null},
61
- "valid": false
62
- },
63
- {
64
- "description": "mismatch second extends",
65
- "data": {"foo": "quux", "bar": 2},
66
- "valid": false
67
- },
68
- {
69
- "description": "mismatch both",
70
- "data": {"bar": 2},
71
- "valid": false
72
- }
73
- ]
74
- },
75
- {
76
- "description": "extends simple types",
77
- "schema": {
78
- "minimum": 20,
79
- "extends": {"maximum": 30}
80
- },
81
- "tests": [
82
- {
83
- "description": "valid",
84
- "data": 25,
85
- "valid": true
86
- },
87
- {
88
- "description": "mismatch extends",
89
- "data": 35,
90
- "valid": false
91
- }
92
- ]
93
- }
94
- ]