[ { "description": "validation of binary-encoded media type documents with schema", "schema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "contentMediaType": "application/json", "contentEncoding": "base64", "contentSchema": { "required": ["foo"], "properties": { "foo": { "type": "string" } } } }, "tests": [ { "description": "a valid base64-encoded JSON document", "data": "eyJmb28iOiAiYmFyIn0K", "valid": true }, { "description": "another valid base64-encoded JSON document", "data": "eyJib28iOiAyMCwgImZvbyI6ICJiYXoifQ==", "valid": true }, { "description": "an invalid base64-encoded JSON document; validates false", "data": "eyJib28iOiAyMH0=", "valid": false }, { "description": "an empty object as a base64-encoded JSON document; validates false", "data": "e30=", "valid": false }, { "description": "an empty array as a base64-encoded JSON document", "data": "W10=", "valid": true }, { "description": "a validly-encoded invalid JSON document; validates false", "data": "ezp9Cg==", "valid": false }, { "description": "an invalid base64 string that is valid JSON; validates false", "data": "{}", "valid": false }, { "description": "ignores non-strings", "data": 100, "valid": true } ] }, { "description": "contentSchema without contentMediaType", "schema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "contentEncoding": "base64", "contentSchema": { "required": ["foo"], "properties": { "foo": { "type": "string" } } } }, "tests": [ { "description": "a valid base64-encoded JSON document", "data": "eyJmb28iOiAiYmFyIn0K", "valid": true }, { "description": "another valid base64-encoded JSON document", "data": "eyJib28iOiAyMCwgImZvbyI6ICJiYXoifQ==", "valid": true }, { "description": "an invalid base64-encoded JSON document; validates true", "data": "eyJib28iOiAyMH0=", "valid": true }, { "description": "an empty object as a base64-encoded JSON document; validates true", "data": "e30=", "valid": true }, { "description": "an empty array as a base64-encoded JSON document", "data": "W10=", "valid": true }, { "description": "a validly-encoded invalid JSON document; validates true", "data": "ezp9Cg==", "valid": true }, { "description": "an invalid base64 string that is valid JSON; validates false", "data": "{}", "valid": false }, { "description": "ignores non-strings", "data": 100, "valid": true } ] }, { "description": "contentSchema without contentEncoding", "schema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "contentMediaType": "application/json", "contentSchema": { "required": ["foo"], "properties": { "foo": { "type": "string" } } } }, "tests": [ { "description": "a valid JSON document", "data": "{\"foo\": \"bar\"}", "valid": true }, { "description": "another valid base64-encoded JSON document", "data": "{\"boo\": 20, \"foo\": \"baz\"}", "valid": true }, { "description": "an empty object; validates false", "data": "{}", "valid": false }, { "description": "an empty array; validates false", "data": "[]", "valid": true }, { "description": "invalid JSON document; validates false", "data": "[}", "valid": false }, { "description": "ignores non-strings", "data": 100, "valid": true } ] } ]