test(function() { var params = new URLSearchParams('a=b&c=d'); params.set('a', 'B'); assert_equals(params + '', 'a=B&c=d'); params = new URLSearchParams('a=b&c=d&a=e'); params.set('a', 'B'); assert_equals(params + '', 'a=B&c=d') params.set('e', 'f'); assert_equals(params + '', 'a=B&c=d&e=f') }, 'Set basics');
test(function() { var params = new URLSearchParams('a=1&a=2&a=3'); assert_true(params.has('a'), 'Search params object has name "a"'); assert_equals(params.get('a'), '1', 'Search params object has name "a" with value "1"'); params.set('first', 4); assert_true(params.has('a'), 'Search params object has name "a"'); assert_equals(params.get('a'), '1', 'Search params object has name "a" with value "1"'); params.set('a', 4); assert_true(params.has('a'), 'Search params object has name "a"'); assert_equals(params.get('a'), '4', 'Search params object has name "a" with value "4"'); }, 'URLSearchParams.set');
test(function() { const testValue = '+15555555555'; const params = new URLSearchParams(); params.set('query', testValue); var newParams = new URLSearchParams(params.toString()); assert_equals(params.toString(), 'query=%2B15555555555'); assert_equals(params.get('query'), testValue); assert_equals(newParams.get('query'), testValue); }, 'Parse encoded +');
test(function() { var params = new URLSearchParams('a=1&a=2&a=3&a'); assert_true(params.has('a'), 'Search params object has name "a"'); var matches = params.getAll('a'); assert_true(matches && matches.length == 4, 'Search params object has values for name "a"'); assert_array_equals(matches, ['1', '2', '3', ''], 'Search params object has expected name "a" values'); params.set('a', 'one'); assert_equals(params.get('a'), 'one', 'Search params object has name "a" with value "one"'); var matches = params.getAll('a'); assert_true(matches && matches.length == 1, 'Search params object has values for name "a"'); assert_array_equals(matches, ['one'], 'Search params object has expected name "a" values'); }, 'getAll() multiples');