tor-browser

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

send-usp.any.js (1371B)


      1 const NUM_TESTS = 128;
      2 
      3 function encode(n) {
      4  if (n === 0x20) {
      5    return "\x2B";
      6  }
      7 
      8  if (n === 0x2A || n === 0x2D || n === 0x2E ||
      9      (0x30 <= n && n <= 0x39) || (0x41 <= n && n <= 0x5A) ||
     10      n === 0x5F || (0x61 <= n && n <= 0x7A)) {
     11    return String.fromCharCode(n);
     12  }
     13 
     14  var s = n.toString(16).toUpperCase();
     15  return "%" + (s.length === 2 ? s : '0' + s);
     16 }
     17 
     18  var tests = [];
     19  var overall_test = async_test("Overall fetch with URLSearchParams");
     20  for (var i = 0; i < NUM_TESTS; i++) {
     21    // Multiple subtests so that failures can be fine-grained
     22    tests[i] = async_test("XMLHttpRequest.send(URLSearchParams) (" + i + ")");
     23  }
     24 
     25  // We use a single XHR since this test tends to time out
     26  // with 128 consecutive fetches when run in parallel
     27  // with many other WPT tests.
     28  var x = new XMLHttpRequest();
     29  x.onload = overall_test.step_func(function() {
     30    var response_split = x.response.split("&");
     31    overall_test.done();
     32    for (var i = 0; i < NUM_TESTS; i++) {
     33      tests[i].step(function() {
     34        assert_equals(response_split[i], "a" + i + "="+encode(i));
     35        tests[i].done();
     36      });
     37    }
     38  });
     39  x.onerror = overall_test.unreached_func();
     40 
     41  x.open("POST", "resources/content.py");
     42  var usp = new URLSearchParams();
     43  for (var i = 0; i < NUM_TESTS; i++) {
     44    usp.append("a" + i, String.fromCharCode(i));
     45  }
     46  x.send(usp)