test(function() {
    var params = new URLSearchParams();
    params.append('=', 'a');
    assert_equals(params + '', '%3D=a');
    params.append('b', '=');
    assert_equals(params + '', '%3D=a&b=%3D');
}, 'Serialize =');
test(function() {
    var params = new URLSearchParams();
    params.append('', 'b');
    assert_equals(params + '', '=b');
    params.append('', 'b');
    assert_equals(params + '', '=b&=b');
}, 'Serialize empty name');
test(function() {
    var params = new URLSearchParams();
    params.append('&', 'a');
    assert_equals(params + '', '%26=a');
    params.append('b', '&');
    assert_equals(params + '', '%26=a&b=%26');
}, 'Serialize &');
Example #4
0
test(function() {
    var params = new URLSearchParams();
    params.append(null, null);
    assert_equals(params + '', 'null=null');
    params.append(null, null);
    assert_equals(params + '', 'null=null&null=null');
}, 'Append null');
Example #5
0
test(function() {
    var params = new URLSearchParams();
    params.append('', '');
    assert_equals(params + '', '=');
    params.append('', '');
    assert_equals(params + '', '=&=');
}, 'Append empty strings');
test(function() {
    var params = new URLSearchParams();
    params.append('', '');
    assert_equals(params + '', '=');
    params.append('', '');
    assert_equals(params + '', '=&=');
}, 'Serialize empty name and value');
test(function() {
    var params = new URLSearchParams();
    params.append('a', 'b\uD83D\uDCA9c');
    assert_equals(params + '', 'a=b%F0%9F%92%A9c');
    params.delete('a');
    params.append('a\uD83D\uDCA9b', 'c');
    assert_equals(params + '', 'a%F0%9F%92%A9b=c');
}, 'Serialize \uD83D\uDCA9');  // Unicode Character 'PILE OF POO' (U+1F4A9)
function has(n, param) {
  const params = new URLSearchParams(str);

  bench.start();
  for (var i = 0; i < n; i += 1)
    params.has(param);
  bench.end(n);
}
function getOAuthCallbackUrl(req) {
  const { utm_source, CollectiveId, access_token, redirect } = req.query;
  const { service } = req.params;

  const params = new URLSearchParams(omitBy({ access_token, redirect, CollectiveId, utm_source }, isNil));

  return `${config.host.website}/api/connected-accounts/${service}/callback?${params.toString()}`;
}
test(function() {
    var params = new URLSearchParams();
    params.append('a', '*-._');
    assert_equals(params + '', 'a=*-._');
    params.delete('a');
    params.append('*-._', 'c');
    assert_equals(params + '', '*-._=c');
}, 'Serialize *-._');
test(function() {
    var params = new URLSearchParams();
    params.append('a', 'b%c');
    assert_equals(params + '', 'a=b%25c');
    params.delete('a');
    params.append('a%b', 'c');
    assert_equals(params + '', 'a%25b=c');
}, 'Serialize %');
test(function() {
    var params = new URLSearchParams();
    params.append('a', 'b\0c');
    assert_equals(params + '', 'a=b%00c');
    params.delete('a');
    params.append('a\0b', 'c');
    assert_equals(params + '', 'a%00b=c');
}, 'Serialize \\0');
Example #13
0
test(() => {
  params = new URLSearchParams()
  params[Symbol.iterator] = function *() {
    yield ["a", "b"]
  }
  let params2 = new URLSearchParams(params)
  assert_equals(params2.get("a"), "b")
}, "Custom [Symbol.iterator]")
 test(() => {
   const params = new URLSearchParams(val.input);
   let i = 0;
   params.sort();
   for (const param of params) {
     assert_array_equals(param, val.output[i]);
     i++;
   }
 }, 'Parse and sort: ' + val.input);
 test(() => {
   let params = new URLSearchParams(val.input),
       i = 0
   params.sort()
   for(let param of params) {
     assert_array_equals(param, val.output[i])
     i++
   }
 }, "Parse and sort: " + val.input)
Example #16
0
test(function() {
    var params = new URLSearchParams();
    params.append('a', 'b');
    assert_equals(params + '', 'a=b');
    params.append('a', 'b');
    assert_equals(params + '', 'a=b&a=b');
    params.append('a', 'c');
    assert_equals(params + '', 'a=b&a=b&a=c');
}, 'Append same name');
function useWHATWG(n, param, prop) {
  const obj = new URLSearchParams(param);
  obj.toString();
  bench.start();
  for (var i = 0; i < n; i += 1) {
    obj.toString();
  }
  bench.end(n);
}
Example #18
0
test(function() {
    var params = new URLSearchParams([]);
    assert_true(params != null, 'constructor returned non-null value.');
    params = new URLSearchParams([['a', 'b'], ['c', 'd']]);
    assert_equals(params.get("a"), "b");
    assert_equals(params.get("c"), "d");
    assert_throws(new TypeError(), function() { new URLSearchParams([[1]]); });
    assert_throws(new TypeError(), function() { new URLSearchParams([[1,2,3]]); });
}, "Constructor with sequence of sequences of strings");
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;
    // params = new URLSearchParams('a=b&c=d&&e&&');
    // assert_equals(params.toString(), 'a=b&c=d&e=');
    // params = new URLSearchParams('a = b &a=b&c=d%20');
    // assert_equals(params.toString(), 'a+=+b+&a=b&c=d+');
    // The lone '=' _does_ survive the roundtrip.
    params = new URLSearchParams('a=&a=b');
    assert_equals(params.toString(), 'a=&a=b');
}, 'URLSearchParams.toString');
test(function() {
    var params = new URLSearchParams('a=1&b=2&c=3');
    var keys = [];
    var values = [];
    params.forEach(function(value, key) {
        keys.push(key);
        values.push(value);
    });
    assert_array_equals(keys, ['a', 'b', 'c']);
    assert_array_equals(values, ['1', '2', '3']);
}, "ForEach Check");
test(function() {
    var params = new URLSearchParams();
    params.append('first', 1);
    assert_true(params.has('first'), 'Search params object has name "first"');
    assert_equals(params.get('first'), '1', 'Search params object has name "first" with value "1"');
    params.delete('first');
    assert_false(params.has('first'), 'Search params object has no "first" name');
    params.append('first', 1);
    params.append('first', 10);
    params.delete('first');
    assert_false(params.has('first'), 'Search params object has no "first" name');
}, 'Deleting appended multiple');
export async function fetchLedgerTransactions(args) {
  const ledgerQuery = {
    where: {
      ToAccountId: args.CollectiveId,
    },
    limit: args.limit,
    offset: args.offset,
    includeHostedCollectivesTransactions: args.includeHostedCollectivesTransactions,
  };
  ledgerQuery.where = JSON.stringify(ledgerQuery.where);
  const params = new URLSearchParams(ledgerQuery);
  return axios.get(`${ledger.transactionUrl}?${params.toString()}`);
}
test(function() {
    var params = new URLSearchParams('a=b&c=d&&');
    params.append('first', 1);
    params.append('first', 2);
    assert_true(params.has('a'), 'Search params object has name "a"');
    assert_true(params.has('c'), 'Search params object has name "c"');
    assert_true(params.has('first'), 'Search params object has name "first"');
    assert_false(params.has('d'), 'Search params object has no name "d"');
    params.delete('first');
    assert_false(params.has('first'), 'Search params object has no name "first"');
}, 'has() following delete()');
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');
function forEach(n) {
  const params = new URLSearchParams(str);
  const noDead = [];
  const cb = (val, key) => {
    noDead[0] = key;
    noDead[1] = val;
  };

  bench.start();
  for (var i = 0; i < n; i += 1)
    params.forEach(cb);
  bench.end(n);

  assert.strictEqual(noDead[0], 'three');
  assert.strictEqual(noDead[1], '3rd');
}
Example #27
0
test(function() {
    var seed = new URLSearchParams('a=b&c=d');
    var params = new URLSearchParams(seed);
    assert_true(params != null, 'constructor returned non-null value.');
    assert_equals(params.get('a'), 'b');
    assert_equals(params.get('c'), 'd');
    assert_false(params.has('d'));
    // The name-value pairs are copied when created; later updates
    // should not be observable.
    seed.append('e', 'f');
    assert_false(params.has('e'));
    params.append('g', 'h');
    assert_false(seed.has('g'));
}, 'URLSearchParams constructor, object.');
Example #28
0
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=b&c=d');
    assert_array_equals(params.getAll('a'), ['b']);
    assert_array_equals(params.getAll('c'), ['d']);
    assert_array_equals(params.getAll('e'), []);
    params = new URLSearchParams('a=b&c=d&a=e');
    assert_array_equals(params.getAll('a'), ['b', 'e']);
    params = new URLSearchParams('=b&c=d');
    assert_array_equals(params.getAll(''), ['b']);
    params = new URLSearchParams('a=&c=d&a=e');
    assert_array_equals(params.getAll('a'), ['', 'e']);
}, 'getAll() basics');
Example #30
0
File: index.js Project: jgsme/rpt
module.exports = async (req, res) => {
  try {
    const url = parse(req.url)
    res.statusCode = 200
    res.setHeader('Access-Control-Allow-Origin', '*')
    res.setHeader('Access-Control-Allow-Methods', 'GET')
    switch (url.pathname) {
      case '/': {
        res.setHeader('Content-Type', 'application/json')
        res.end('{"status": "ok"}')
        break
      }
      case '/p': {
        const params = new URLSearchParams(url.query)
        const u = await crawl({id: params.get('id')})
        res.setHeader('Content-Type', 'text/plain')
        res.end(u)
        break
      }
      case '/b': {
        const params = new URLSearchParams(url.query)
        const u = await crawl({id: params.get('id')})
        const image = await encode(u, {
          string: true
        })
        const ext = u.split('.').pop()
        res.setHeader('Content-Type', 'text/plain')
        res.end(`data:image/${ext};base64,${image}`)
        break
      }
    }
  } catch (err) {
    res.statusCode = 500
    res.setHeader('Content-Type', 'application/json')
    res.end('{"status": "Error"}')
    console.log(500, err)
  }
}