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,411 +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-04/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": "Recursive references between schemas",
214
- "schema": {
215
- "id": "http://localhost:1234/tree",
216
- "description": "tree of nodes",
217
- "type": "object",
218
- "properties": {
219
- "meta": {"type": "string"},
220
- "nodes": {
221
- "type": "array",
222
- "items": {"$ref": "node"}
223
- }
224
- },
225
- "required": ["meta", "nodes"],
226
- "definitions": {
227
- "node": {
228
- "id": "http://localhost:1234/node",
229
- "description": "node",
230
- "type": "object",
231
- "properties": {
232
- "value": {"type": "number"},
233
- "subtree": {"$ref": "tree"}
234
- },
235
- "required": ["value"]
236
- }
237
- }
238
- },
239
- "tests": [
240
- {
241
- "description": "valid tree",
242
- "data": {
243
- "meta": "root",
244
- "nodes": [
245
- {
246
- "value": 1,
247
- "subtree": {
248
- "meta": "child",
249
- "nodes": [
250
- {"value": 1.1},
251
- {"value": 1.2}
252
- ]
253
- }
254
- },
255
- {
256
- "value": 2,
257
- "subtree": {
258
- "meta": "child",
259
- "nodes": [
260
- {"value": 2.1},
261
- {"value": 2.2}
262
- ]
263
- }
264
- }
265
- ]
266
- },
267
- "valid": true
268
- },
269
- {
270
- "description": "invalid tree",
271
- "data": {
272
- "meta": "root",
273
- "nodes": [
274
- {
275
- "value": 1,
276
- "subtree": {
277
- "meta": "child",
278
- "nodes": [
279
- {"value": "string is invalid"},
280
- {"value": 1.2}
281
- ]
282
- }
283
- },
284
- {
285
- "value": 2,
286
- "subtree": {
287
- "meta": "child",
288
- "nodes": [
289
- {"value": 2.1},
290
- {"value": 2.2}
291
- ]
292
- }
293
- }
294
- ]
295
- },
296
- "valid": false
297
- }
298
- ]
299
- },
300
- {
301
- "description": "refs with quote",
302
- "schema": {
303
- "properties": {
304
- "foo\"bar": {"$ref": "#/definitions/foo%22bar"}
305
- },
306
- "definitions": {
307
- "foo\"bar": {"type": "number"}
308
- }
309
- },
310
- "tests": [
311
- {
312
- "description": "object with numbers is valid",
313
- "data": {
314
- "foo\"bar": 1
315
- },
316
- "valid": true
317
- },
318
- {
319
- "description": "object with strings is invalid",
320
- "data": {
321
- "foo\"bar": "1"
322
- },
323
- "valid": false
324
- }
325
- ]
326
- },
327
- {
328
- "description": "Location-independent identifier",
329
- "schema": {
330
- "allOf": [{
331
- "$ref": "#foo"
332
- }],
333
- "definitions": {
334
- "A": {
335
- "id": "#foo",
336
- "type": "integer"
337
- }
338
- }
339
- },
340
- "tests": [
341
- {
342
- "data": 1,
343
- "description": "match",
344
- "valid": true
345
- },
346
- {
347
- "data": "a",
348
- "description": "mismatch",
349
- "valid": false
350
- }
351
- ]
352
- },
353
- {
354
- "description": "Location-independent identifier with absolute URI",
355
- "schema": {
356
- "allOf": [{
357
- "$ref": "http://localhost:1234/bar#foo"
358
- }],
359
- "definitions": {
360
- "A": {
361
- "id": "http://localhost:1234/bar#foo",
362
- "type": "integer"
363
- }
364
- }
365
- },
366
- "tests": [
367
- {
368
- "data": 1,
369
- "description": "match",
370
- "valid": true
371
- },
372
- {
373
- "data": "a",
374
- "description": "mismatch",
375
- "valid": false
376
- }
377
- ]
378
- },
379
- {
380
- "description": "Location-independent identifier with base URI change in subschema",
381
- "schema": {
382
- "id": "http://localhost:1234/root",
383
- "allOf": [{
384
- "$ref": "http://localhost:1234/nested.json#foo"
385
- }],
386
- "definitions": {
387
- "A": {
388
- "id": "nested.json",
389
- "definitions": {
390
- "B": {
391
- "id": "#foo",
392
- "type": "integer"
393
- }
394
- }
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
- ]
@@ -1,171 +0,0 @@
1
- [
2
- {
3
- "description": "remote ref",
4
- "schema": {"$ref": "http://localhost:1234/integer.json"},
5
- "tests": [
6
- {
7
- "description": "remote ref valid",
8
- "data": 1,
9
- "valid": true
10
- },
11
- {
12
- "description": "remote ref invalid",
13
- "data": "a",
14
- "valid": false
15
- }
16
- ]
17
- },
18
- {
19
- "description": "fragment within remote ref",
20
- "schema": {"$ref": "http://localhost:1234/subSchemas.json#/integer"},
21
- "tests": [
22
- {
23
- "description": "remote fragment valid",
24
- "data": 1,
25
- "valid": true
26
- },
27
- {
28
- "description": "remote fragment invalid",
29
- "data": "a",
30
- "valid": false
31
- }
32
- ]
33
- },
34
- {
35
- "description": "ref within remote ref",
36
- "schema": {
37
- "$ref": "http://localhost:1234/subSchemas.json#/refToInteger"
38
- },
39
- "tests": [
40
- {
41
- "description": "ref within ref valid",
42
- "data": 1,
43
- "valid": true
44
- },
45
- {
46
- "description": "ref within ref invalid",
47
- "data": "a",
48
- "valid": false
49
- }
50
- ]
51
- },
52
- {
53
- "description": "base URI change",
54
- "schema": {
55
- "id": "http://localhost:1234/",
56
- "items": {
57
- "id": "folder/",
58
- "items": {"$ref": "folderInteger.json"}
59
- }
60
- },
61
- "tests": [
62
- {
63
- "description": "base URI change ref valid",
64
- "data": [[1]],
65
- "valid": true
66
- },
67
- {
68
- "description": "base URI change ref invalid",
69
- "data": [["a"]],
70
- "valid": false
71
- }
72
- ]
73
- },
74
- {
75
- "description": "base URI change - change folder",
76
- "schema": {
77
- "id": "http://localhost:1234/scope_change_defs1.json",
78
- "type" : "object",
79
- "properties": {
80
- "list": {"$ref": "#/definitions/baz"}
81
- },
82
- "definitions": {
83
- "baz": {
84
- "id": "folder/",
85
- "type": "array",
86
- "items": {"$ref": "folderInteger.json"}
87
- }
88
- }
89
- },
90
- "tests": [
91
- {
92
- "description": "number is valid",
93
- "data": {"list": [1]},
94
- "valid": true
95
- },
96
- {
97
- "description": "string is invalid",
98
- "data": {"list": ["a"]},
99
- "valid": false
100
- }
101
- ]
102
- },
103
- {
104
- "description": "base URI change - change folder in subschema",
105
- "schema": {
106
- "id": "http://localhost:1234/scope_change_defs2.json",
107
- "type" : "object",
108
- "properties": {
109
- "list": {"$ref": "#/definitions/baz/definitions/bar"}
110
- },
111
- "definitions": {
112
- "baz": {
113
- "id": "folder/",
114
- "definitions": {
115
- "bar": {
116
- "type": "array",
117
- "items": {"$ref": "folderInteger.json"}
118
- }
119
- }
120
- }
121
- }
122
- },
123
- "tests": [
124
- {
125
- "description": "number is valid",
126
- "data": {"list": [1]},
127
- "valid": true
128
- },
129
- {
130
- "description": "string is invalid",
131
- "data": {"list": ["a"]},
132
- "valid": false
133
- }
134
- ]
135
- },
136
- {
137
- "description": "root ref in remote ref",
138
- "schema": {
139
- "id": "http://localhost:1234/object",
140
- "type": "object",
141
- "properties": {
142
- "name": {"$ref": "name.json#/definitions/orNull"}
143
- }
144
- },
145
- "tests": [
146
- {
147
- "description": "string is valid",
148
- "data": {
149
- "name": "foo"
150
- },
151
- "valid": true
152
- },
153
- {
154
- "description": "null is valid",
155
- "data": {
156
- "name": null
157
- },
158
- "valid": true
159
- },
160
- {
161
- "description": "object is invalid",
162
- "data": {
163
- "name": {
164
- "name": null
165
- }
166
- },
167
- "valid": false
168
- }
169
- ]
170
- }
171
- ]
@@ -1,89 +0,0 @@
1
- [
2
- {
3
- "description": "required validation",
4
- "schema": {
5
- "properties": {
6
- "foo": {},
7
- "bar": {}
8
- },
9
- "required": ["foo"]
10
- },
11
- "tests": [
12
- {
13
- "description": "present required property is valid",
14
- "data": {"foo": 1},
15
- "valid": true
16
- },
17
- {
18
- "description": "non-present required property is invalid",
19
- "data": {"bar": 1},
20
- "valid": false
21
- },
22
- {
23
- "description": "ignores arrays",
24
- "data": [],
25
- "valid": true
26
- },
27
- {
28
- "description": "ignores strings",
29
- "data": "",
30
- "valid": true
31
- },
32
- {
33
- "description": "ignores other non-objects",
34
- "data": 12,
35
- "valid": true
36
- }
37
- ]
38
- },
39
- {
40
- "description": "required default validation",
41
- "schema": {
42
- "properties": {
43
- "foo": {}
44
- }
45
- },
46
- "tests": [
47
- {
48
- "description": "not required by default",
49
- "data": {},
50
- "valid": true
51
- }
52
- ]
53
- },
54
- {
55
- "description": "required with escaped characters",
56
- "schema": {
57
- "required": [
58
- "foo\nbar",
59
- "foo\"bar",
60
- "foo\\bar",
61
- "foo\rbar",
62
- "foo\tbar",
63
- "foo\fbar"
64
- ]
65
- },
66
- "tests": [
67
- {
68
- "description": "object with all properties present is valid",
69
- "data": {
70
- "foo\nbar": 1,
71
- "foo\"bar": 1,
72
- "foo\\bar": 1,
73
- "foo\rbar": 1,
74
- "foo\tbar": 1,
75
- "foo\fbar": 1
76
- },
77
- "valid": true
78
- },
79
- {
80
- "description": "object with some properties missing is invalid",
81
- "data": {
82
- "foo\nbar": "1",
83
- "foo\"bar": "1"
84
- },
85
- "valid": false
86
- }
87
- ]
88
- }
89
- ]