extract-spec-examples.json 7.2 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231
{
  "Level 0 Examples" :
  {
    "level": 0,
    "variables": {
     },
     "testcases" : [
        ["var", "var", []],
        ["hello", "hello", []],
        ["varhello", "var", false],
        ["var", "varhello", false]
     ]
  },
  "Level 1 Examples" :
  {
    "level": 1,
    "variables": {
       "var"   : "value",
       "hello" : "Hello World!"
     },
     "testcases" : [
        ["{var}", "value", ["var"]],
        ["{hello}", "Hello%20World%21", ["hello"]],
        ["{hello}foo{var}", "Hello%20World%21foovalue", ["hello", "var"]]
     ]
  },
  "Level 2 Examples" :
  {
    "level": 2,
    "variables": {
       "var"   : "value",
       "hello" : "Hello World!",
       "path"  : "/foo/bar"
     },
     "testcases" : [
        ["{+var}", "value", false],
        ["{+hello}", "Hello%20World!", false],
        ["{+path}/here", "/foo/bar/here", false],
        ["here?ref={+path}", "here?ref=/foo/bar", false]
     ]
  },
  "Level 3 Examples" :
  {
    "level": 3,
    "variables": {
       "var"   : "value",
       "hello" : "Hello World!",
       "empty" : "",
       "path"  : "/foo/bar",
       "x"     : "1024",
       "y"     : "768"
     },
     "testcases" : [
        ["map?{x,y}", "map?1024,768", false],
        ["{x,hello,y}", "1024,Hello%20World%21,768", false],
        ["{+x,hello,y}", "1024,Hello%20World!,768", false],
        ["{+path,x}/here", "/foo/bar,1024/here", false],
        ["{#x,hello,y}", "#1024,Hello%20World!,768", false],
        ["{#path,x}/here", "#/foo/bar,1024/here", false],
        ["X{.var}", "X.value", false],
        ["X{.x,y}", "X.1024.768", false],
        ["{/var}", "/value", false],
        ["{/var,x}/here", "/value/1024/here", false],
        ["{;x,y}", ";x=1024;y=768", false],
        ["{;x,y,empty}", ";x=1024;y=768;empty", false],
        ["{?x,y}", "?x=1024&y=768", false],
        ["{?x,y,empty}", "?x=1024&y=768&empty=", false],
        ["?fixed=yes{&x}", "?fixed=yes&x=1024", false],
        ["{&x,y,empty}", "&x=1024&y=768&empty=", false]
     ]
  },
  "Level 4 Examples" :
  {
    "level": 4,
    "variables": {
      "var": "value",
      "hello": "Hello World!",
      "path": "/foo/bar",
      "list": ["red", "green", "blue"],
      "keys": {"semi": ";", "dot": ".", "comma":","}
    },
    "testcases": [
      ["{var:3}", "val", false],
      ["{var:30}", "value", false],
      ["{list}", "red,green,blue", false],
      ["{list*}", "red,green,blue", false],
      ["{keys}", [
        "comma,%2C,dot,.,semi,%3B",
        "comma,%2C,semi,%3B,dot,.",
        "dot,.,comma,%2C,semi,%3B",
        "dot,.,semi,%3B,comma,%2C",
        "semi,%3B,comma,%2C,dot,.",
        "semi,%3B,dot,.,comma,%2C"
      ], false],
      ["{keys*}", [
        "comma=%2C,dot=.,semi=%3B",
        "comma=%2C,semi=%3B,dot=.",
        "dot=.,comma=%2C,semi=%3B",
        "dot=.,semi=%3B,comma=%2C",
        "semi=%3B,comma=%2C,dot=.",
        "semi=%3B,dot=.,comma=%2C"
      ], false],
      ["{+path:6}/here", "/foo/b/here", false],
      ["{+list}", "red,green,blue", false],
      ["{+list*}", "red,green,blue", false],
      ["{+keys}", [
        "comma,,,dot,.,semi,;",
        "comma,,,semi,;,dot,.",
        "dot,.,comma,,,semi,;",
        "dot,.,semi,;,comma,,",
        "semi,;,comma,,,dot,.",
        "semi,;,dot,.,comma,,"
      ], false],
      ["{+keys*}", [
        "comma=,,dot=.,semi=;",
        "comma=,,semi=;,dot=.",
        "dot=.,comma=,,semi=;",
        "dot=.,semi=;,comma=,",
        "semi=;,comma=,,dot=.",
        "semi=;,dot=.,comma=,"
      ], false],
      ["{#path:6}/here", "#/foo/b/here", false],
      ["{#list}", "#red,green,blue", false],
      ["{#list*}", "#red,green,blue", false],
      ["{#keys}", [
        "#comma,,,dot,.,semi,;",
        "#comma,,,semi,;,dot,.",
        "#dot,.,comma,,,semi,;",
        "#dot,.,semi,;,comma,,",
        "#semi,;,comma,,,dot,.",
        "#semi,;,dot,.,comma,,"
      ], false],
      ["{#keys*}", [
        "#comma=,,dot=.,semi=;",
        "#comma=,,semi=;,dot=.",
        "#dot=.,comma=,,semi=;",
        "#dot=.,semi=;,comma=,",
        "#semi=;,comma=,,dot=.",
        "#semi=;,dot=.,comma=,"
      ], false],
      ["X{.var:3}", "X.val", false],
      ["X{.list}", "X.red,green,blue", false],
      ["X{.list*}", "X.red.green.blue", false],
      ["X{.keys}", [ 
        "X.comma,%2C,dot,.,semi,%3B",
        "X.comma,%2C,semi,%3B,dot,.",
        "X.dot,.,comma,%2C,semi,%3B",
        "X.dot,.,semi,%3B,comma,%2C",
        "X.semi,%3B,comma,%2C,dot,.",
        "X.semi,%3B,dot,.,comma,%2C"
      ], false],
      ["{/var:1,var}", "/v/value", false],
      ["{/list}", "/red,green,blue", false],
      ["{/list*}", "/red/green/blue", false],
      ["{/list*,path:4}", "/red/green/blue/%2Ffoo", false],
      ["{/keys}", [
        "/comma,%2C,dot,.,semi,%3B",
        "/comma,%2C,semi,%3B,dot,.",
        "/dot,.,comma,%2C,semi,%3B",
        "/dot,.,semi,%3B,comma,%2C",
        "/semi,%3B,comma,%2C,dot,.",
        "/semi,%3B,dot,.,comma,%2C"
      ], false],
      ["{/keys*}", [ 
        "/comma=%2C/dot=./semi=%3B",
        "/comma=%2C/semi=%3B/dot=.",
        "/dot=./comma=%2C/semi=%3B",
        "/dot=./semi=%3B/comma=%2C",
        "/semi=%3B/comma=%2C/dot=.",
        "/semi=%3B/dot=./comma=%2C"
      ], false],
      ["{;hello:5}", ";hello=Hello", false],
      ["{;list}", ";list=red,green,blue", false],
      ["{;list*}", ";list=red;list=green;list=blue", false],
      ["{;keys}", [ 
        ";keys=comma,%2C,dot,.,semi,%3B",
        ";keys=comma,%2C,semi,%3B,dot,.",
        ";keys=dot,.,comma,%2C,semi,%3B",
        ";keys=dot,.,semi,%3B,comma,%2C",
        ";keys=semi,%3B,comma,%2C,dot,.",
        ";keys=semi,%3B,dot,.,comma,%2C"
      ], false],
      ["{;keys*}", [ 
        ";comma=%2C;dot=.;semi=%3B",
        ";comma=%2C;semi=%3B;dot=.",
        ";dot=.;comma=%2C;semi=%3B",
        ";dot=.;semi=%3B;comma=%2C",
        ";semi=%3B;comma=%2C;dot=.",
        ";semi=%3B;dot=.;comma=%2C"
      ], false],
      ["{?var:3}", "?var=val", false],
      ["{?list}", "?list=red,green,blue", false],
      ["{?list*}", "?list=red&list=green&list=blue", false],
      ["{?keys}", [ 
        "?keys=comma,%2C,dot,.,semi,%3B",
        "?keys=comma,%2C,semi,%3B,dot,.",
        "?keys=dot,.,comma,%2C,semi,%3B",
        "?keys=dot,.,semi,%3B,comma,%2C",
        "?keys=semi,%3B,comma,%2C,dot,.",
        "?keys=semi,%3B,dot,.,comma,%2C"
      ], false],
      ["{?keys*}", [ 
        "?comma=%2C&dot=.&semi=%3B",
        "?comma=%2C&semi=%3B&dot=.",
        "?dot=.&comma=%2C&semi=%3B",
        "?dot=.&semi=%3B&comma=%2C",
        "?semi=%3B&comma=%2C&dot=.",
        "?semi=%3B&dot=.&comma=%2C"
      ], false],
      ["{&var:3}", "&var=val", false],
      ["{&list}", "&list=red,green,blue", false],
      ["{&list*}", "&list=red&list=green&list=blue", false],
      ["{&keys}", [ 
        "&keys=comma,%2C,dot,.,semi,%3B",
        "&keys=comma,%2C,semi,%3B,dot,.",
        "&keys=dot,.,comma,%2C,semi,%3B",
        "&keys=dot,.,semi,%3B,comma,%2C",
        "&keys=semi,%3B,comma,%2C,dot,.",
        "&keys=semi,%3B,dot,.,comma,%2C"
      ], false],
      ["{&keys*}", [ 
        "&comma=%2C&dot=.&semi=%3B",
        "&comma=%2C&semi=%3B&dot=.",
        "&dot=.&comma=%2C&semi=%3B",
        "&dot=.&semi=%3B&comma=%2C",
        "&semi=%3B&comma=%2C&dot=.",
        "&semi=%3B&dot=.&comma=%2C"
      ], false]
    ]
  }
}