empty-keys-cases.js
1 'use strict'; 2 3 module.exports = { 4 emptyTestCases: [ 5 { 6 input: '&', 7 withEmptyKeys: {}, 8 stringifyOutput: { 9 brackets: '', 10 indices: '', 11 repeat: '' 12 }, 13 noEmptyKeys: {} 14 }, 15 { 16 input: '&&', 17 withEmptyKeys: {}, 18 stringifyOutput: { 19 brackets: '', 20 indices: '', 21 repeat: '' 22 }, 23 noEmptyKeys: {} 24 }, 25 { 26 input: '&=', 27 withEmptyKeys: { '': '' }, 28 stringifyOutput: { 29 brackets: '=', 30 indices: '=', 31 repeat: '=' 32 }, 33 noEmptyKeys: {} 34 }, 35 { 36 input: '&=&', 37 withEmptyKeys: { '': '' }, 38 stringifyOutput: { 39 brackets: '=', 40 indices: '=', 41 repeat: '=' 42 }, 43 noEmptyKeys: {} 44 }, 45 { 46 input: '&=&=', 47 withEmptyKeys: { '': ['', ''] }, 48 stringifyOutput: { 49 brackets: '[]=&[]=', 50 indices: '[0]=&[1]=', 51 repeat: '=&=' 52 }, 53 noEmptyKeys: {} 54 }, 55 { 56 input: '&=&=&', 57 withEmptyKeys: { '': ['', ''] }, 58 stringifyOutput: { 59 brackets: '[]=&[]=', 60 indices: '[0]=&[1]=', 61 repeat: '=&=' 62 }, 63 noEmptyKeys: {} 64 }, 65 { 66 input: '=', 67 withEmptyKeys: { '': '' }, 68 noEmptyKeys: {}, 69 stringifyOutput: { 70 brackets: '=', 71 indices: '=', 72 repeat: '=' 73 } 74 }, 75 { 76 input: '=&', 77 withEmptyKeys: { '': '' }, 78 stringifyOutput: { 79 brackets: '=', 80 indices: '=', 81 repeat: '=' 82 }, 83 noEmptyKeys: {} 84 }, 85 { 86 input: '=&&&', 87 withEmptyKeys: { '': '' }, 88 stringifyOutput: { 89 brackets: '=', 90 indices: '=', 91 repeat: '=' 92 }, 93 noEmptyKeys: {} 94 }, 95 { 96 input: '=&=&=&', 97 withEmptyKeys: { '': ['', '', ''] }, 98 stringifyOutput: { 99 brackets: '[]=&[]=&[]=', 100 indices: '[0]=&[1]=&[2]=', 101 repeat: '=&=&=' 102 }, 103 noEmptyKeys: {} 104 }, 105 { 106 input: '=&a[]=b&a[1]=c', 107 withEmptyKeys: { '': '', a: ['b', 'c'] }, 108 stringifyOutput: { 109 brackets: '=&a[]=b&a[]=c', 110 indices: '=&a[0]=b&a[1]=c', 111 repeat: '=&a=b&a=c' 112 }, 113 noEmptyKeys: { a: ['b', 'c'] } 114 }, 115 { 116 input: '=a', 117 withEmptyKeys: { '': 'a' }, 118 noEmptyKeys: {}, 119 stringifyOutput: { 120 brackets: '=a', 121 indices: '=a', 122 repeat: '=a' 123 } 124 }, 125 { 126 input: 'a==a', 127 withEmptyKeys: { a: '=a' }, 128 noEmptyKeys: { a: '=a' }, 129 stringifyOutput: { 130 brackets: 'a==a', 131 indices: 'a==a', 132 repeat: 'a==a' 133 } 134 }, 135 { 136 input: '=&a[]=b', 137 withEmptyKeys: { '': '', a: ['b'] }, 138 stringifyOutput: { 139 brackets: '=&a[]=b', 140 indices: '=&a[0]=b', 141 repeat: '=&a=b' 142 }, 143 noEmptyKeys: { a: ['b'] } 144 }, 145 { 146 input: '=&a[]=b&a[]=c&a[2]=d', 147 withEmptyKeys: { '': '', a: ['b', 'c', 'd'] }, 148 stringifyOutput: { 149 brackets: '=&a[]=b&a[]=c&a[]=d', 150 indices: '=&a[0]=b&a[1]=c&a[2]=d', 151 repeat: '=&a=b&a=c&a=d' 152 }, 153 noEmptyKeys: { a: ['b', 'c', 'd'] } 154 }, 155 { 156 input: '=a&=b', 157 withEmptyKeys: { '': ['a', 'b'] }, 158 stringifyOutput: { 159 brackets: '[]=a&[]=b', 160 indices: '[0]=a&[1]=b', 161 repeat: '=a&=b' 162 }, 163 noEmptyKeys: {} 164 }, 165 { 166 input: '=a&foo=b', 167 withEmptyKeys: { '': 'a', foo: 'b' }, 168 noEmptyKeys: { foo: 'b' }, 169 stringifyOutput: { 170 brackets: '=a&foo=b', 171 indices: '=a&foo=b', 172 repeat: '=a&foo=b' 173 } 174 }, 175 { 176 input: 'a[]=b&a=c&=', 177 withEmptyKeys: { '': '', a: ['b', 'c'] }, 178 stringifyOutput: { 179 brackets: '=&a[]=b&a[]=c', 180 indices: '=&a[0]=b&a[1]=c', 181 repeat: '=&a=b&a=c' 182 }, 183 noEmptyKeys: { a: ['b', 'c'] } 184 }, 185 { 186 input: 'a[]=b&a=c&=', 187 withEmptyKeys: { '': '', a: ['b', 'c'] }, 188 stringifyOutput: { 189 brackets: '=&a[]=b&a[]=c', 190 indices: '=&a[0]=b&a[1]=c', 191 repeat: '=&a=b&a=c' 192 }, 193 noEmptyKeys: { a: ['b', 'c'] } 194 }, 195 { 196 input: 'a[0]=b&a=c&=', 197 withEmptyKeys: { '': '', a: ['b', 'c'] }, 198 stringifyOutput: { 199 brackets: '=&a[]=b&a[]=c', 200 indices: '=&a[0]=b&a[1]=c', 201 repeat: '=&a=b&a=c' 202 }, 203 noEmptyKeys: { a: ['b', 'c'] } 204 }, 205 { 206 input: 'a=b&a[]=c&=', 207 withEmptyKeys: { '': '', a: ['b', 'c'] }, 208 stringifyOutput: { 209 brackets: '=&a[]=b&a[]=c', 210 indices: '=&a[0]=b&a[1]=c', 211 repeat: '=&a=b&a=c' 212 }, 213 noEmptyKeys: { a: ['b', 'c'] } 214 }, 215 { 216 input: 'a=b&a[0]=c&=', 217 withEmptyKeys: { '': '', a: ['b', 'c'] }, 218 stringifyOutput: { 219 brackets: '=&a[]=b&a[]=c', 220 indices: '=&a[0]=b&a[1]=c', 221 repeat: '=&a=b&a=c' 222 }, 223 noEmptyKeys: { a: ['b', 'c'] } 224 }, 225 { 226 input: '[]=a&[]=b& []=1', 227 withEmptyKeys: { '': ['a', 'b'], ' ': ['1'] }, 228 stringifyOutput: { 229 brackets: '[]=a&[]=b& []=1', 230 indices: '[0]=a&[1]=b& [0]=1', 231 repeat: '=a&=b& =1' 232 }, 233 noEmptyKeys: { 0: 'a', 1: 'b', ' ': ['1'] } 234 }, 235 { 236 input: '[0]=a&[1]=b&a[0]=1&a[1]=2', 237 withEmptyKeys: { '': ['a', 'b'], a: ['1', '2'] }, 238 noEmptyKeys: { 0: 'a', 1: 'b', a: ['1', '2'] }, 239 stringifyOutput: { 240 brackets: '[]=a&[]=b&a[]=1&a[]=2', 241 indices: '[0]=a&[1]=b&a[0]=1&a[1]=2', 242 repeat: '=a&=b&a=1&a=2' 243 } 244 }, 245 { 246 input: '[deep]=a&[deep]=2', 247 withEmptyKeys: { '': { deep: ['a', '2'] } 248 }, 249 stringifyOutput: { 250 brackets: '[deep][]=a&[deep][]=2', 251 indices: '[deep][0]=a&[deep][1]=2', 252 repeat: '[deep]=a&[deep]=2' 253 }, 254 noEmptyKeys: { deep: ['a', '2'] } 255 }, 256 { 257 input: '%5B0%5D=a&%5B1%5D=b', 258 withEmptyKeys: { '': ['a', 'b'] }, 259 stringifyOutput: { 260 brackets: '[]=a&[]=b', 261 indices: '[0]=a&[1]=b', 262 repeat: '=a&=b' 263 }, 264 noEmptyKeys: { 0: 'a', 1: 'b' } 265 } 266 ] 267 };