{
  "schema": "https://bars.commonsware.com/conformance/schema/render-fixture.schema.json",
  "version": "0.1.0",
  "cases": [
    {
      "name": "url_param_escape-ampersand-encoded",
      "spotlight": true,
      "description": "Unlike url_escape, & becomes %26.",
      "template": "{{{ q | url_param_escape }}}",
      "context": {
        "q": "a&b"
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "a%26b"
      }
    },
    {
      "name": "url_param_escape-equals-encoded",
      "description": "Unlike url_escape, = becomes %3D.",
      "template": "{{{ q | url_param_escape }}}",
      "context": {
        "q": "k=v"
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "k%3Dv"
      }
    },
    {
      "name": "url_param_escape-space-percent-encoded",
      "spotlight": true,
      "description": "Space becomes %20 (same as url_escape).",
      "template": "{{{ q | url_param_escape }}}",
      "context": {
        "q": "a b"
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "a%20b"
      }
    },
    {
      "name": "url_param_escape-other-reserved-preserved",
      "description": "Other reserved characters (excluding & and =) are still preserved.",
      "template": "{{{ q | url_param_escape }}}",
      "context": {
        "q": ":/?#[]@!$'()*+,;"
      },
      "expect": {
        "kind": "output",
        "expectedOutput": ":/?#[]@!$'()*+,;"
      }
    },
    {
      "name": "url_param_escape-utf8-multibyte",
      "description": "Non-ASCII is percent-encoded as UTF-8.",
      "template": "{{{ q | url_param_escape }}}",
      "context": {
        "q": "caf\u00e9"
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "caf%C3%A9"
      }
    },
    {
      "name": "url_param_escape-empty",
      "description": "Empty input passes through.",
      "template": "{{{ q | url_param_escape }}}",
      "context": {
        "q": ""
      },
      "expect": {
        "kind": "output",
        "expectedOutput": ""
      }
    },
    {
      "name": "url_param_escape-with-arg-is-error",
      "description": "Any argument is an arity error.",
      "template": "{{ q | url_param_escape: \"x\" }}",
      "context": {
        "q": "hi"
      },
      "expect": {
        "kind": "error",
        "errorCode": "KB-2002"
      }
    }
  ]
}
