tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

cloned-any.js (1655B)


      1 // Changing the body after it have been passed to Response/Request
      2 // should not change the outcome of the consumed body
      3 
      4 const url = 'http://a';
      5 const method = 'post';
      6 
      7 promise_test(async t => {
      8  const body = new FormData();
      9  body.set('a', '1');
     10  const res = new Response(body);
     11  const req = new Request(url, { method, body });
     12  body.set('a', '2');
     13  assert_true((await res.formData()).get('a') === '1');
     14  assert_true((await req.formData()).get('a') === '1');
     15 }, 'FormData is cloned');
     16 
     17 promise_test(async t => {
     18  const body = new URLSearchParams({a: '1'});
     19  const res = new Response(body);
     20  const req = new Request(url, { method, body });
     21  body.set('a', '2');
     22  assert_true((await res.formData()).get('a') === '1');
     23  assert_true((await req.formData()).get('a') === '1');
     24 }, 'URLSearchParams is cloned');
     25 
     26 promise_test(async t => {
     27  const body = new Uint8Array([97]); // a
     28  const res = new Response(body);
     29  const req = new Request(url, { method, body });
     30  body[0] = 98; // b
     31  assert_true(await res.text() === 'a');
     32  assert_true(await req.text() === 'a');
     33 }, 'TypedArray is cloned');
     34 
     35 promise_test(async t => {
     36  const body = new Uint8Array([97]); // a
     37  const res = new Response(body.buffer);
     38  const req = new Request(url, { method, body: body.buffer });
     39  body[0] = 98; // b
     40  assert_true(await res.text() === 'a');
     41  assert_true(await req.text() === 'a');
     42 }, 'ArrayBuffer is cloned');
     43 
     44 promise_test(async t => {
     45  const body = new Blob(['a']);
     46  const res = new Response(body);
     47  const req = new Request(url, { method, body });
     48  assert_true(await res.blob() !== body);
     49  assert_true(await req.blob() !== body);
     50 }, 'Blob is cloned');