1263646Sbapt[
2263646Sbapt    {
3263646Sbapt        "description": "object properties validation",
4263646Sbapt        "schema": {
5263646Sbapt            "properties": {
6263646Sbapt                "foo": {"type": "integer"},
7263646Sbapt                "bar": {"type": "string"}
8263646Sbapt            }
9263646Sbapt        },
10263646Sbapt        "tests": [
11263646Sbapt            {
12263646Sbapt                "description": "both properties present and valid is valid",
13263646Sbapt                "data": {"foo": 1, "bar": "baz"},
14263646Sbapt                "valid": true
15263646Sbapt            },
16263646Sbapt            {
17263646Sbapt                "description": "one property invalid is invalid",
18263646Sbapt                "data": {"foo": 1, "bar": {}},
19263646Sbapt                "valid": false
20263646Sbapt            },
21263646Sbapt            {
22263646Sbapt                "description": "both properties invalid is invalid",
23263646Sbapt                "data": {"foo": [], "bar": {}},
24263646Sbapt                "valid": false
25263646Sbapt            },
26263646Sbapt            {
27263646Sbapt                "description": "doesn't invalidate other properties",
28263646Sbapt                "data": {"quux": []},
29263646Sbapt                "valid": true
30263646Sbapt            },
31263646Sbapt            {
32263646Sbapt                "description": "ignores non-objects",
33263646Sbapt                "data": [],
34263646Sbapt                "valid": true
35263646Sbapt            }
36263646Sbapt        ]
37263646Sbapt    },
38263646Sbapt    {
39263646Sbapt        "description":
40263646Sbapt            "properties, patternProperties, additionalProperties interaction",
41263646Sbapt        "schema": {
42263646Sbapt            "properties": {
43263646Sbapt                "foo": {"type": "array", "maxItems": 3},
44263646Sbapt                "bar": {"type": "array"}
45263646Sbapt            },
46263646Sbapt            "patternProperties": {"f.o": {"minItems": 2}},
47263646Sbapt            "additionalProperties": {"type": "integer"}
48263646Sbapt        },
49263646Sbapt        "tests": [
50263646Sbapt            {
51263646Sbapt                "description": "property validates property",
52263646Sbapt                "data": {"foo": [1, 2]},
53263646Sbapt                "valid": true
54263646Sbapt            },
55263646Sbapt            {
56263646Sbapt                "description": "property invalidates property",
57263646Sbapt                "data": {"foo": [1, 2, 3, 4]},
58263646Sbapt                "valid": false
59263646Sbapt            },
60263646Sbapt            {
61263646Sbapt                "description": "patternProperty invalidates property",
62263646Sbapt                "data": {"foo": []},
63263646Sbapt                "valid": false
64263646Sbapt            },
65263646Sbapt            {
66263646Sbapt                "description": "patternProperty validates nonproperty",
67263646Sbapt                "data": {"fxo": [1, 2]},
68263646Sbapt                "valid": true
69263646Sbapt            },
70263646Sbapt            {
71263646Sbapt                "description": "patternProperty invalidates nonproperty",
72263646Sbapt                "data": {"fxo": []},
73263646Sbapt                "valid": false
74263646Sbapt            },
75263646Sbapt            {
76263646Sbapt                "description": "additionalProperty ignores property",
77263646Sbapt                "data": {"bar": []},
78263646Sbapt                "valid": true
79263646Sbapt            },
80263646Sbapt            {
81263646Sbapt                "description": "additionalProperty validates others",
82263646Sbapt                "data": {"quux": 3},
83263646Sbapt                "valid": true
84263646Sbapt            },
85263646Sbapt            {
86263646Sbapt                "description": "additionalProperty invalidates others",
87263646Sbapt                "data": {"quux": "foo"},
88263646Sbapt                "valid": false
89263646Sbapt            }
90263646Sbapt        ]
91263646Sbapt    }
92263646Sbapt]
93