json_schemer 0.2.9 → 0.2.14

Sign up to get free protection for your applications and to get access to all the features.
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,213 +0,0 @@
1
- [
2
- {
3
- "description": "ECMA 262 regex non-compliance",
4
- "schema": { "format": "regex" },
5
- "tests": [
6
- {
7
- "description": "ECMA 262 has no support for \\Z anchor from .NET",
8
- "data": "^\\S(|(.|\\n)*\\S)\\Z",
9
- "valid": false
10
- }
11
- ]
12
- },
13
- {
14
- "description": "ECMA 262 regex $ does not match trailing newline",
15
- "schema": {
16
- "type": "string",
17
- "pattern": "^abc$"
18
- },
19
- "tests": [
20
- {
21
- "description": "matches in Python, but should not in jsonschema",
22
- "data": "abc\n",
23
- "valid": false
24
- },
25
- {
26
- "description": "should match",
27
- "data": "abc",
28
- "valid": true
29
- }
30
- ]
31
- },
32
- {
33
- "description": "ECMA 262 regex converts \\a to ascii BEL",
34
- "schema": {
35
- "type": "string",
36
- "pattern": "^\\a$"
37
- },
38
- "tests": [
39
- {
40
- "description": "does not match",
41
- "data": "\\a",
42
- "valid": false
43
- },
44
- {
45
- "description": "matches",
46
- "data": "\u0007",
47
- "valid": true
48
- }
49
- ]
50
- },
51
- {
52
- "description": "ECMA 262 regex escapes control codes with \\c and upper letter",
53
- "schema": {
54
- "type": "string",
55
- "pattern": "^\\cC$"
56
- },
57
- "tests": [
58
- {
59
- "description": "does not match",
60
- "data": "\\cC",
61
- "valid": false
62
- },
63
- {
64
- "description": "matches",
65
- "data": "\u0003",
66
- "valid": true
67
- }
68
- ]
69
- },
70
- {
71
- "description": "ECMA 262 regex escapes control codes with \\c and lower letter",
72
- "schema": {
73
- "type": "string",
74
- "pattern": "^\\cc$"
75
- },
76
- "tests": [
77
- {
78
- "description": "does not match",
79
- "data": "\\cc",
80
- "valid": false
81
- },
82
- {
83
- "description": "matches",
84
- "data": "\u0003",
85
- "valid": true
86
- }
87
- ]
88
- },
89
- {
90
- "description": "ECMA 262 \\d matches ascii digits only",
91
- "schema": {
92
- "type": "string",
93
- "pattern": "^\\d$"
94
- },
95
- "tests": [
96
- {
97
- "description": "ASCII zero matches",
98
- "data": "0",
99
- "valid": true
100
- },
101
- {
102
- "description": "NKO DIGIT ZERO does not match (unlike e.g. Python)",
103
- "data": "߀",
104
- "valid": false
105
- },
106
- {
107
- "description": "NKO DIGIT ZERO (as \\u escape) does not match",
108
- "data": "\u07c0",
109
- "valid": false
110
- }
111
- ]
112
- },
113
- {
114
- "description": "ECMA 262 \\D matches everything but ascii digits",
115
- "schema": {
116
- "type": "string",
117
- "pattern": "^\\D$"
118
- },
119
- "tests": [
120
- {
121
- "description": "ASCII zero does not match",
122
- "data": "0",
123
- "valid": false
124
- },
125
- {
126
- "description": "NKO DIGIT ZERO matches (unlike e.g. Python)",
127
- "data": "߀",
128
- "valid": true
129
- },
130
- {
131
- "description": "NKO DIGIT ZERO (as \\u escape) matches",
132
- "data": "\u07c0",
133
- "valid": true
134
- }
135
- ]
136
- },
137
- {
138
- "description": "ECMA 262 \\w matches ascii letters only",
139
- "schema": {
140
- "type": "string",
141
- "pattern": "^\\w$"
142
- },
143
- "tests": [
144
- {
145
- "description": "ASCII 'a' matches",
146
- "data": "a",
147
- "valid": true
148
- },
149
- {
150
- "description": "latin-1 e-acute does not match (unlike e.g. Python)",
151
- "data": "é",
152
- "valid": false
153
- }
154
- ]
155
- },
156
- {
157
- "description": "ECMA 262 \\w matches everything but ascii letters",
158
- "schema": {
159
- "type": "string",
160
- "pattern": "^\\W$"
161
- },
162
- "tests": [
163
- {
164
- "description": "ASCII 'a' does not match",
165
- "data": "a",
166
- "valid": false
167
- },
168
- {
169
- "description": "latin-1 e-acute matches (unlike e.g. Python)",
170
- "data": "é",
171
- "valid": true
172
- }
173
- ]
174
- },
175
- {
176
- "description": "ECMA 262 \\s matches ascii whitespace only",
177
- "schema": {
178
- "type": "string",
179
- "pattern": "^\\s$"
180
- },
181
- "tests": [
182
- {
183
- "description": "ASCII space matches",
184
- "data": " ",
185
- "valid": true
186
- },
187
- {
188
- "description": "latin-1 non-breaking-space does not match (unlike e.g. Python)",
189
- "data": "\u00a0",
190
- "valid": false
191
- }
192
- ]
193
- },
194
- {
195
- "description": "ECMA 262 \\S matches everything but ascii whitespace",
196
- "schema": {
197
- "type": "string",
198
- "pattern": "^\\S$"
199
- },
200
- "tests": [
201
- {
202
- "description": "ASCII space does not match",
203
- "data": " ",
204
- "valid": false
205
- },
206
- {
207
- "description": "latin-1 non-breaking-space matches (unlike e.g. Python)",
208
- "data": "\u00a0",
209
- "valid": true
210
- }
211
- ]
212
- }
213
- ]
@@ -1,491 +0,0 @@
1
- [
2
- {
3
- "description": "validation of date-time strings",
4
- "schema": {"format": "date-time"},
5
- "tests": [
6
- {
7
- "description": "a valid date-time string",
8
- "data": "1963-06-19T08:30:06.283185Z",
9
- "valid": true
10
- },
11
- {
12
- "description": "a valid date-time string without second fraction",
13
- "data": "1963-06-19T08:30:06Z",
14
- "valid": true
15
- },
16
- {
17
- "description": "a valid date-time string with plus offset",
18
- "data": "1937-01-01T12:00:27.87+00:20",
19
- "valid": true
20
- },
21
- {
22
- "description": "a valid date-time string with minus offset",
23
- "data": "1990-12-31T15:59:50.123-08:00",
24
- "valid": true
25
- },
26
- {
27
- "description": "a invalid day in date-time string",
28
- "data": "1990-02-31T15:59:60.123-08:00",
29
- "valid": false
30
- },
31
- {
32
- "description": "an invalid offset in date-time string",
33
- "data": "1990-12-31T15:59:60-24:00",
34
- "valid": false
35
- },
36
- {
37
- "description": "an invalid closing Z after time-zone offset",
38
- "data": "1963-06-19T08:30:06.28123+01:00Z",
39
- "valid": false
40
- },
41
- {
42
- "description": "an invalid date-time string",
43
- "data": "06/19/1963 08:30:06 PST",
44
- "valid": false
45
- },
46
- {
47
- "description": "case-insensitive T and Z",
48
- "data": "1963-06-19t08:30:06.283185z",
49
- "valid": true
50
- },
51
- {
52
- "description": "only RFC3339 not all of ISO 8601 are valid",
53
- "data": "2013-350T01:01:01",
54
- "valid": false
55
- }
56
- ]
57
- },
58
- {
59
- "description": "validation of URIs",
60
- "schema": {"format": "uri"},
61
- "tests": [
62
- {
63
- "description": "a valid URL with anchor tag",
64
- "data": "http://foo.bar/?baz=qux#quux",
65
- "valid": true
66
- },
67
- {
68
- "description": "a valid URL with anchor tag and parantheses",
69
- "data": "http://foo.com/blah_(wikipedia)_blah#cite-1",
70
- "valid": true
71
- },
72
- {
73
- "description": "a valid URL with URL-encoded stuff",
74
- "data": "http://foo.bar/?q=Test%20URL-encoded%20stuff",
75
- "valid": true
76
- },
77
- {
78
- "description": "a valid puny-coded URL ",
79
- "data": "http://xn--nw2a.xn--j6w193g/",
80
- "valid": true
81
- },
82
- {
83
- "description": "a valid URL with many special characters",
84
- "data": "http://-.~_!$&'()*+,;=:%40:80%2f::::::@example.com",
85
- "valid": true
86
- },
87
- {
88
- "description": "a valid URL based on IPv4",
89
- "data": "http://223.255.255.254",
90
- "valid": true
91
- },
92
- {
93
- "description": "a valid URL with ftp scheme",
94
- "data": "ftp://ftp.is.co.za/rfc/rfc1808.txt",
95
- "valid": true
96
- },
97
- {
98
- "description": "a valid URL for a simple text file",
99
- "data": "http://www.ietf.org/rfc/rfc2396.txt",
100
- "valid": true
101
- },
102
- {
103
- "description": "a valid URL ",
104
- "data": "ldap://[2001:db8::7]/c=GB?objectClass?one",
105
- "valid": true
106
- },
107
- {
108
- "description": "a valid mailto URI",
109
- "data": "mailto:John.Doe@example.com",
110
- "valid": true
111
- },
112
- {
113
- "description": "a valid newsgroup URI",
114
- "data": "news:comp.infosystems.www.servers.unix",
115
- "valid": true
116
- },
117
- {
118
- "description": "a valid tel URI",
119
- "data": "tel:+1-816-555-1212",
120
- "valid": true
121
- },
122
- {
123
- "description": "a valid URN",
124
- "data": "urn:oasis:names:specification:docbook:dtd:xml:4.1.2",
125
- "valid": true
126
- },
127
- {
128
- "description": "an invalid protocol-relative URI Reference",
129
- "data": "//foo.bar/?baz=qux#quux",
130
- "valid": false
131
- },
132
- {
133
- "description": "an invalid relative URI Reference",
134
- "data": "/abc",
135
- "valid": false
136
- },
137
- {
138
- "description": "an invalid URI",
139
- "data": "\\\\WINDOWS\\fileshare",
140
- "valid": false
141
- },
142
- {
143
- "description": "an invalid URI though valid URI reference",
144
- "data": "abc",
145
- "valid": false
146
- },
147
- {
148
- "description": "an invalid URI with spaces",
149
- "data": "http:// shouldfail.com",
150
- "valid": false
151
- },
152
- {
153
- "description": "an invalid URI with spaces and missing scheme",
154
- "data": ":// should fail",
155
- "valid": false
156
- }
157
- ]
158
- },
159
- {
160
- "description": "validation of URI References",
161
- "schema": {"format": "uri-reference"},
162
- "tests": [
163
- {
164
- "description": "a valid URI",
165
- "data": "http://foo.bar/?baz=qux#quux",
166
- "valid": true
167
- },
168
- {
169
- "description": "a valid protocol-relative URI Reference",
170
- "data": "//foo.bar/?baz=qux#quux",
171
- "valid": true
172
- },
173
- {
174
- "description": "a valid relative URI Reference",
175
- "data": "/abc",
176
- "valid": true
177
- },
178
- {
179
- "description": "an invalid URI Reference",
180
- "data": "\\\\WINDOWS\\fileshare",
181
- "valid": false
182
- },
183
- {
184
- "description": "a valid URI Reference",
185
- "data": "abc",
186
- "valid": true
187
- },
188
- {
189
- "description": "a valid URI fragment",
190
- "data": "#fragment",
191
- "valid": true
192
- },
193
- {
194
- "description": "an invalid URI fragment",
195
- "data": "#frag\\ment",
196
- "valid": false
197
- }
198
- ]
199
- },
200
- {
201
- "description": "format: uri-template",
202
- "schema": {"format": "uri-template"},
203
- "tests": [
204
- {
205
- "description": "a valid uri-template",
206
- "data": "http://example.com/dictionary/{term:1}/{term}",
207
- "valid": true
208
- },
209
- {
210
- "description": "an invalid uri-template",
211
- "data": "http://example.com/dictionary/{term:1}/{term",
212
- "valid": false
213
- },
214
- {
215
- "description": "a valid uri-template without variables",
216
- "data": "http://example.com/dictionary",
217
- "valid": true
218
- },
219
- {
220
- "description": "a valid relative uri-template",
221
- "data": "dictionary/{term:1}/{term}",
222
- "valid": true
223
- }
224
- ]
225
- },
226
- {
227
- "description": "validation of e-mail addresses",
228
- "schema": {"format": "email"},
229
- "tests": [
230
- {
231
- "description": "a valid e-mail address",
232
- "data": "joe.bloggs@example.com",
233
- "valid": true
234
- },
235
- {
236
- "description": "an invalid e-mail address",
237
- "data": "2962",
238
- "valid": false
239
- }
240
- ]
241
- },
242
- {
243
- "description": "validation of IP addresses",
244
- "schema": {"format": "ipv4"},
245
- "tests": [
246
- {
247
- "description": "a valid IP address",
248
- "data": "192.168.0.1",
249
- "valid": true
250
- },
251
- {
252
- "description": "an IP address with too many components",
253
- "data": "127.0.0.0.1",
254
- "valid": false
255
- },
256
- {
257
- "description": "an IP address with out-of-range values",
258
- "data": "256.256.256.256",
259
- "valid": false
260
- },
261
- {
262
- "description": "an IP address without 4 components",
263
- "data": "127.0",
264
- "valid": false
265
- },
266
- {
267
- "description": "an IP address as an integer",
268
- "data": "0x7f000001",
269
- "valid": false
270
- }
271
- ]
272
- },
273
- {
274
- "description": "validation of IPv6 addresses",
275
- "schema": {"format": "ipv6"},
276
- "tests": [
277
- {
278
- "description": "a valid IPv6 address",
279
- "data": "::1",
280
- "valid": true
281
- },
282
- {
283
- "description": "an IPv6 address with out-of-range values",
284
- "data": "12345::",
285
- "valid": false
286
- },
287
- {
288
- "description": "an IPv6 address with too many components",
289
- "data": "1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1",
290
- "valid": false
291
- },
292
- {
293
- "description": "an IPv6 address containing illegal characters",
294
- "data": "::laptop",
295
- "valid": false
296
- }
297
- ]
298
- },
299
- {
300
- "description": "validation of host names",
301
- "schema": {"format": "hostname"},
302
- "tests": [
303
- {
304
- "description": "a valid host name",
305
- "data": "www.example.com",
306
- "valid": true
307
- },
308
- {
309
- "description": "a host name starting with an illegal character",
310
- "data": "-a-host-name-that-starts-with--",
311
- "valid": false
312
- },
313
- {
314
- "description": "a host name containing illegal characters",
315
- "data": "not_a_valid_host_name",
316
- "valid": false
317
- },
318
- {
319
- "description": "a host name with a component too long",
320
- "data": "a-vvvvvvvvvvvvvvvveeeeeeeeeeeeeeeerrrrrrrrrrrrrrrryyyyyyyyyyyyyyyy-long-host-name-component",
321
- "valid": false
322
- }
323
- ]
324
- },
325
- {
326
- "description": "validation of JSON-pointers (JSON String Representation)",
327
- "schema": {"format": "json-pointer"},
328
- "tests": [
329
- {
330
- "description": "a valid JSON-pointer",
331
- "data": "/foo/bar~0/baz~1/%a",
332
- "valid": true
333
- },
334
- {
335
- "description": "not a valid JSON-pointer (~ not escaped)",
336
- "data": "/foo/bar~",
337
- "valid": false
338
- },
339
- {
340
- "description": "valid JSON-pointer with empty segment",
341
- "data": "/foo//bar",
342
- "valid": true
343
- },
344
- {
345
- "description": "valid JSON-pointer with the last empty segment",
346
- "data": "/foo/bar/",
347
- "valid": true
348
- },
349
- {
350
- "description": "valid JSON-pointer as stated in RFC 6901 #1",
351
- "data": "",
352
- "valid": true
353
- },
354
- {
355
- "description": "valid JSON-pointer as stated in RFC 6901 #2",
356
- "data": "/foo",
357
- "valid": true
358
- },
359
- {
360
- "description": "valid JSON-pointer as stated in RFC 6901 #3",
361
- "data": "/foo/0",
362
- "valid": true
363
- },
364
- {
365
- "description": "valid JSON-pointer as stated in RFC 6901 #4",
366
- "data": "/",
367
- "valid": true
368
- },
369
- {
370
- "description": "valid JSON-pointer as stated in RFC 6901 #5",
371
- "data": "/a~1b",
372
- "valid": true
373
- },
374
- {
375
- "description": "valid JSON-pointer as stated in RFC 6901 #6",
376
- "data": "/c%d",
377
- "valid": true
378
- },
379
- {
380
- "description": "valid JSON-pointer as stated in RFC 6901 #7",
381
- "data": "/e^f",
382
- "valid": true
383
- },
384
- {
385
- "description": "valid JSON-pointer as stated in RFC 6901 #8",
386
- "data": "/g|h",
387
- "valid": true
388
- },
389
- {
390
- "description": "valid JSON-pointer as stated in RFC 6901 #9",
391
- "data": "/i\\j",
392
- "valid": true
393
- },
394
- {
395
- "description": "valid JSON-pointer as stated in RFC 6901 #10",
396
- "data": "/k\"l",
397
- "valid": true
398
- },
399
- {
400
- "description": "valid JSON-pointer as stated in RFC 6901 #11",
401
- "data": "/ ",
402
- "valid": true
403
- },
404
- {
405
- "description": "valid JSON-pointer as stated in RFC 6901 #12",
406
- "data": "/m~0n",
407
- "valid": true
408
- },
409
- {
410
- "description": "valid JSON-pointer used adding to the last array position",
411
- "data": "/foo/-",
412
- "valid": true
413
- },
414
- {
415
- "description": "valid JSON-pointer (- used as object member name)",
416
- "data": "/foo/-/bar",
417
- "valid": true
418
- },
419
- {
420
- "description": "valid JSON-pointer (multiple escaped characters)",
421
- "data": "/~1~0~0~1~1",
422
- "valid": true
423
- },
424
- {
425
- "description": "valid JSON-pointer (escaped with fraction part) #1",
426
- "data": "/~1.1",
427
- "valid": true
428
- },
429
- {
430
- "description": "valid JSON-pointer (escaped with fraction part) #2",
431
- "data": "/~0.1",
432
- "valid": true
433
- },
434
- {
435
- "description": "not a valid JSON-pointer (URI Fragment Identifier) #1",
436
- "data": "#",
437
- "valid": false
438
- },
439
- {
440
- "description": "not a valid JSON-pointer (URI Fragment Identifier) #2",
441
- "data": "#/",
442
- "valid": false
443
- },
444
- {
445
- "description": "not a valid JSON-pointer (URI Fragment Identifier) #3",
446
- "data": "#a",
447
- "valid": false
448
- },
449
- {
450
- "description": "not a valid JSON-pointer (some escaped, but not all) #1",
451
- "data": "/~0~",
452
- "valid": false
453
- },
454
- {
455
- "description": "not a valid JSON-pointer (some escaped, but not all) #2",
456
- "data": "/~0/~",
457
- "valid": false
458
- },
459
- {
460
- "description": "not a valid JSON-pointer (wrong escape character) #1",
461
- "data": "/~2",
462
- "valid": false
463
- },
464
- {
465
- "description": "not a valid JSON-pointer (wrong escape character) #2",
466
- "data": "/~-1",
467
- "valid": false
468
- },
469
- {
470
- "description": "not a valid JSON-pointer (multiple characters not escaped)",
471
- "data": "/~~",
472
- "valid": false
473
- },
474
- {
475
- "description": "not a valid JSON-pointer (isn't empty nor starts with /) #1",
476
- "data": "a",
477
- "valid": false
478
- },
479
- {
480
- "description": "not a valid JSON-pointer (isn't empty nor starts with /) #2",
481
- "data": "0",
482
- "valid": false
483
- },
484
- {
485
- "description": "not a valid JSON-pointer (isn't empty nor starts with /) #3",
486
- "data": "a/a",
487
- "valid": false
488
- }
489
- ]
490
- }
491
- ]