1263646Sbapt[
2263646Sbapt    {
3263646Sbapt        "description": "root pointer ref",
4263646Sbapt        "schema": {
5263646Sbapt            "properties": {
6263646Sbapt                "foo": {"$ref": "#"}
7263646Sbapt            },
8263646Sbapt            "additionalProperties": false
9263646Sbapt        },
10263646Sbapt        "tests": [
11263646Sbapt            {
12263646Sbapt                "description": "match",
13263646Sbapt                "data": {"foo": false},
14263646Sbapt                "valid": true
15263646Sbapt            },
16263646Sbapt            {
17263646Sbapt                "description": "recursive match",
18263646Sbapt                "data": {"foo": {"foo": false}},
19263646Sbapt                "valid": true
20263646Sbapt            },
21263646Sbapt            {
22263646Sbapt                "description": "mismatch",
23263646Sbapt                "data": {"bar": false},
24263646Sbapt                "valid": false
25263646Sbapt            },
26263646Sbapt            {
27263646Sbapt                "description": "recursive mismatch",
28263646Sbapt                "data": {"foo": {"bar": false}},
29263646Sbapt                "valid": false
30263646Sbapt            }
31263646Sbapt        ]
32263646Sbapt    },
33263646Sbapt    {
34263646Sbapt        "description": "relative pointer ref to object",
35263646Sbapt        "schema": {
36263646Sbapt            "properties": {
37263646Sbapt                "foo": {"type": "integer"},
38263646Sbapt                "bar": {"$ref": "#/properties/foo"}
39263646Sbapt            }
40263646Sbapt        },
41263646Sbapt        "tests": [
42263646Sbapt            {
43263646Sbapt                "description": "match",
44263646Sbapt                "data": {"bar": 3},
45263646Sbapt                "valid": true
46263646Sbapt            },
47263646Sbapt            {
48263646Sbapt                "description": "mismatch",
49263646Sbapt                "data": {"bar": true},
50263646Sbapt                "valid": false
51263646Sbapt            }
52263646Sbapt        ]
53263646Sbapt    },
54263646Sbapt    {
55263646Sbapt        "description": "relative pointer ref to array",
56263646Sbapt        "schema": {
57263646Sbapt            "items": [
58263646Sbapt                {"type": "integer"},
59263646Sbapt                {"$ref": "#/items/0"}
60263646Sbapt            ]
61263646Sbapt        },
62263646Sbapt        "tests": [
63263646Sbapt            {
64263646Sbapt                "description": "match array",
65263646Sbapt                "data": [1, 2],
66263646Sbapt                "valid": true
67263646Sbapt            },
68263646Sbapt            {
69263646Sbapt                "description": "mismatch array",
70263646Sbapt                "data": [1, "foo"],
71263646Sbapt                "valid": false
72263646Sbapt            }
73263646Sbapt        ]
74263646Sbapt    },
75263646Sbapt    {
76263646Sbapt        "description": "escaped pointer ref",
77263646Sbapt        "schema": {
78263646Sbapt            "tilda~field": {"type": "integer"},
79263646Sbapt            "slash/field": {"type": "integer"},
80263646Sbapt            "percent%field": {"type": "integer"},
81263646Sbapt            "properties": {
82263646Sbapt                "tilda": {"$ref": "#/tilda~0field"},
83263646Sbapt                "slash": {"$ref": "#/slash~1field"},
84263646Sbapt                "percent": {"$ref": "#/percent%25field"}
85263646Sbapt            }
86263646Sbapt        },
87263646Sbapt        "tests": [
88263646Sbapt            {
89263646Sbapt                "description": "slash",
90263646Sbapt                "data": {"slash": "aoeu"},
91263646Sbapt                "valid": false
92263646Sbapt            },
93263646Sbapt            {
94263646Sbapt                "description": "tilda",
95263646Sbapt                "data": {"tilda": "aoeu"},
96263646Sbapt                "valid": false
97263646Sbapt            },
98263646Sbapt            {
99263646Sbapt                "description": "percent",
100263646Sbapt                "data": {"percent": "aoeu"},
101263646Sbapt                "valid": false
102263646Sbapt            }
103263646Sbapt        ]
104263646Sbapt    },
105263646Sbapt    {
106263646Sbapt        "description": "nested refs",
107263646Sbapt        "schema": {
108263646Sbapt            "definitions": {
109263646Sbapt                "a": {"type": "integer"},
110263646Sbapt                "b": {"$ref": "#/definitions/a"},
111263646Sbapt                "c": {"$ref": "#/definitions/b"}
112263646Sbapt            },
113263646Sbapt            "$ref": "#/definitions/c"
114263646Sbapt        },
115263646Sbapt        "tests": [
116263646Sbapt            {
117263646Sbapt                "description": "nested ref valid",
118263646Sbapt                "data": 5,
119263646Sbapt                "valid": true
120263646Sbapt            },
121263646Sbapt            {
122263646Sbapt                "description": "nested ref invalid",
123263646Sbapt                "data": "a",
124263646Sbapt                "valid": false
125263646Sbapt            }
126263646Sbapt        ]
127263646Sbapt    },
128263646Sbapt    {
129263646Sbapt        "description": "remote ref, containing refs itself",
130298166Sbapt        "schema": {"$ref": "http://highsecure.ru/ucl-schema/schema#"},
131263646Sbapt        "tests": [
132263646Sbapt            {
133263646Sbapt                "description": "remote ref valid",
134263646Sbapt                "data": {"minLength": 1},
135263646Sbapt                "valid": true
136263646Sbapt            },
137263646Sbapt            {
138263646Sbapt                "description": "remote ref invalid",
139263646Sbapt                "data": {"minLength": -1},
140263646Sbapt                "valid": false
141263646Sbapt            }
142263646Sbapt        ]
143263646Sbapt    }
144263646Sbapt]
145