tor-browser

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

test_register_invalid_json.js (1555B)


      1 /* Any copyright is dedicated to the Public Domain.
      2   http://creativecommons.org/publicdomain/zero/1.0/ */
      3 
      4 "use strict";
      5 
      6 const userAgentID = "8271186b-8073-43a3-adf6-225bd44a8b0a";
      7 const channelID = "2d08571e-feab-48a0-9f05-8254c3c7e61f";
      8 
      9 function run_test() {
     10  do_get_profile();
     11  setPrefs({
     12    requestTimeout: 1000,
     13    retryBaseInterval: 150,
     14  });
     15  run_next_test();
     16 }
     17 
     18 add_task(async function test_register_invalid_json() {
     19  let helloDone;
     20  let helloPromise = new Promise(resolve => (helloDone = after(2, resolve)));
     21  let registers = 0;
     22 
     23  PushServiceWebSocket._generateID = () => channelID;
     24  PushService.init({
     25    serverURI: "wss://push.example.org/",
     26    makeWebSocket(uri) {
     27      return new MockWebSocket(uri, {
     28        onHello() {
     29          this.serverSendMsg(
     30            JSON.stringify({
     31              messageType: "hello",
     32              status: 200,
     33              uaid: userAgentID,
     34            })
     35          );
     36          helloDone();
     37        },
     38        onRegister(request) {
     39          equal(request.channelID, channelID, "Register: wrong channel ID");
     40          this.serverSendMsg(");alert(1);(");
     41          registers++;
     42        },
     43      });
     44    },
     45  });
     46 
     47  await Assert.rejects(
     48    PushService.register({
     49      scope: "https://example.net/page/invalid-json",
     50      originAttributes: ChromeUtils.originAttributesToSuffix({
     51        inIsolatedMozBrowser: false,
     52      }),
     53    }),
     54    /Registration error/,
     55    "Expected error for invalid JSON response"
     56  );
     57 
     58  await helloPromise;
     59  equal(registers, 1, "Wrong register count");
     60 });