]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - contrib/libucl/tests/schema/ref.json
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.git] / contrib / libucl / tests / schema / ref.json
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",
90                 "data": {"slash": "aoeu"},
91                 "valid": false
92             },
93             {
94                 "description": "tilda",
95                 "data": {"tilda": "aoeu"},
96                 "valid": false
97             },
98             {
99                 "description": "percent",
100                 "data": {"percent": "aoeu"},
101                 "valid": false
102             }
103         ]
104     },
105     {
106         "description": "nested refs",
107         "schema": {
108             "definitions": {
109                 "a": {"type": "integer"},
110                 "b": {"$ref": "#/definitions/a"},
111                 "c": {"$ref": "#/definitions/b"}
112             },
113             "$ref": "#/definitions/c"
114         },
115         "tests": [
116             {
117                 "description": "nested ref valid",
118                 "data": 5,
119                 "valid": true
120             },
121             {
122                 "description": "nested ref invalid",
123                 "data": "a",
124                 "valid": false
125             }
126         ]
127     },
128 /*
129     {
130         "description": "remote ref, containing refs itself",
131         "schema": {"$ref": "http://json-schema.org/draft-04/schema#"},
132         "tests": [
133             {
134                 "description": "remote ref valid",
135                 "data": {"minLength": 1},
136                 "valid": true
137             },
138             {
139                 "description": "remote ref invalid",
140                 "data": {"minLength": -1},
141                 "valid": false
142             }
143         ]
144     }
145 */
146 ]