1*97bd480fSBaptiste Daroussin[
2*97bd480fSBaptiste Daroussin    {
3*97bd480fSBaptiste Daroussin        "description":
4*97bd480fSBaptiste Daroussin            "additionalProperties being false does not allow other properties",
5*97bd480fSBaptiste Daroussin        "schema": {
6*97bd480fSBaptiste Daroussin            "properties": {"foo": {}, "bar": {}},
7*97bd480fSBaptiste Daroussin            "patternProperties": { "^v": {} },
8*97bd480fSBaptiste Daroussin            "additionalProperties": false
9*97bd480fSBaptiste Daroussin        },
10*97bd480fSBaptiste Daroussin        "tests": [
11*97bd480fSBaptiste Daroussin            {
12*97bd480fSBaptiste Daroussin                "description": "no additional properties is valid",
13*97bd480fSBaptiste Daroussin                "data": {"foo": 1},
14*97bd480fSBaptiste Daroussin                "valid": true
15*97bd480fSBaptiste Daroussin            },
16*97bd480fSBaptiste Daroussin            {
17*97bd480fSBaptiste Daroussin                "description": "an additional property is invalid",
18*97bd480fSBaptiste Daroussin                "data": {"foo" : 1, "bar" : 2, "quux" : "boom"},
19*97bd480fSBaptiste Daroussin                "valid": false
20*97bd480fSBaptiste Daroussin            },
21*97bd480fSBaptiste Daroussin            {
22*97bd480fSBaptiste Daroussin                "description": "ignores non-objects",
23*97bd480fSBaptiste Daroussin                "data": [1, 2, 3],
24*97bd480fSBaptiste Daroussin                "valid": true
25*97bd480fSBaptiste Daroussin            },
26*97bd480fSBaptiste Daroussin            {
27*97bd480fSBaptiste Daroussin                "description": "patternProperties are not additional properties",
28*97bd480fSBaptiste Daroussin                "data": {"foo":1, "vroom": 2},
29*97bd480fSBaptiste Daroussin                "valid": true
30*97bd480fSBaptiste Daroussin            }
31*97bd480fSBaptiste Daroussin        ]
32*97bd480fSBaptiste Daroussin    },
33*97bd480fSBaptiste Daroussin    {
34*97bd480fSBaptiste Daroussin        "description":
35*97bd480fSBaptiste Daroussin            "additionalProperties allows a schema which should validate",
36*97bd480fSBaptiste Daroussin        "schema": {
37*97bd480fSBaptiste Daroussin            "properties": {"foo": {}, "bar": {}},
38*97bd480fSBaptiste Daroussin            "additionalProperties": {"type": "boolean"}
39*97bd480fSBaptiste Daroussin        },
40*97bd480fSBaptiste Daroussin        "tests": [
41*97bd480fSBaptiste Daroussin            {
42*97bd480fSBaptiste Daroussin                "description": "no additional properties is valid",
43*97bd480fSBaptiste Daroussin                "data": {"foo": 1},
44*97bd480fSBaptiste Daroussin                "valid": true
45*97bd480fSBaptiste Daroussin            },
46*97bd480fSBaptiste Daroussin            {
47*97bd480fSBaptiste Daroussin                "description": "an additional valid property is valid",
48*97bd480fSBaptiste Daroussin                "data": {"foo" : 1, "bar" : 2, "quux" : true},
49*97bd480fSBaptiste Daroussin                "valid": true
50*97bd480fSBaptiste Daroussin            },
51*97bd480fSBaptiste Daroussin            {
52*97bd480fSBaptiste Daroussin                "description": "an additional invalid property is invalid",
53*97bd480fSBaptiste Daroussin                "data": {"foo" : 1, "bar" : 2, "quux" : 12},
54*97bd480fSBaptiste Daroussin                "valid": false
55*97bd480fSBaptiste Daroussin            }
56*97bd480fSBaptiste Daroussin        ]
57*97bd480fSBaptiste Daroussin    },
58*97bd480fSBaptiste Daroussin    {
59*97bd480fSBaptiste Daroussin        "description": "additionalProperties are allowed by default",
60*97bd480fSBaptiste Daroussin        "schema": {"properties": {"foo": {}, "bar": {}}},
61*97bd480fSBaptiste Daroussin        "tests": [
62*97bd480fSBaptiste Daroussin            {
63*97bd480fSBaptiste Daroussin                "description": "additional properties are allowed",
64*97bd480fSBaptiste Daroussin                "data": {"foo": 1, "bar": 2, "quux": true},
65*97bd480fSBaptiste Daroussin                "valid": true
66*97bd480fSBaptiste Daroussin            }
67*97bd480fSBaptiste Daroussin        ]
68*97bd480fSBaptiste Daroussin    }
69*97bd480fSBaptiste Daroussin]
70