tor-browser

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

script.js (1341B)


      1 var token = window.parent.token;
      2 
      3 function getExpectedEvents() {
      4    return [
      5        {
      6            type: "open",
      7        },
      8        {
      9            type: "message",
     10            data: `Hello ${window.parent.user}!`,
     11        },
     12        {
     13            type: "close",
     14            code: 1000,
     15            reason: "",
     16            wasClean: true,
     17        },
     18    ];
     19 }
     20 
     21 function isEqual(expected, actual) {
     22    // good enough for our purposes here!
     23    return JSON.stringify(expected) === JSON.stringify(actual);
     24 }
     25 
     26 function testStep(expected, actual) {
     27    if (isEqual(expected, actual)) {
     28        document.body.className = "ok";
     29    } else if (isEqual(expected.slice(0, actual.length), actual)) {
     30        document.body.className = "test";
     31    } else {
     32        document.body.className = "ko";
     33    }
     34 }
     35 
     36 function runTest(websocket) {
     37    const expected = getExpectedEvents();
     38    var actual = [];
     39    websocket.addEventListener("open", ({ type }) => {
     40        actual.push({ type });
     41        testStep(expected, actual);
     42    });
     43    websocket.addEventListener("message", ({ type, data }) => {
     44        actual.push({ type, data });
     45        testStep(expected, actual);
     46    });
     47    websocket.addEventListener("close", ({ type, code, reason, wasClean }) => {
     48        actual.push({ type, code, reason, wasClean });
     49        testStep(expected, actual);
     50    });
     51 }