summaryrefslogtreecommitdiffstats
path: root/netwerk/test/unit/test_ohttp.js
blob: b7bd2f1d067b247897bd4a4ae4cc3f419466ac5b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/* Any copyright is dedicated to the Public Domain.
 * https://creativecommons.org/publicdomain/zero/1.0/ */

"use strict";

function test_known_config() {
  let ohttp = Cc["@mozilla.org/network/oblivious-http;1"].getService(
    Ci.nsIObliviousHttp
  );
  let encodedConfig = hexStringToBytes(
    "0100209403aafe76dfd4568481e04e44b42d744287eae4070b50e48baa7a91a4e80d5600080001000100010003"
  );
  let request = hexStringToBytes(
    "00034745540568747470730b6578616d706c652e636f6d012f"
  );
  let ohttpRequest = ohttp.encapsulateRequest(encodedConfig, request);
  ok(ohttpRequest);
}

function test_with_server() {
  let ohttp = Cc["@mozilla.org/network/oblivious-http;1"].getService(
    Ci.nsIObliviousHttp
  );
  let server = ohttp.server();
  ok(server.encodedConfig);
  let request = hexStringToBytes(
    "00034745540568747470730b6578616d706c652e636f6d012f"
  );
  let ohttpRequest = ohttp.encapsulateRequest(server.encodedConfig, request);
  let ohttpResponse = server.decapsulate(ohttpRequest.encRequest);
  ok(ohttpResponse);
  deepEqual(ohttpResponse.request, request);
  let response = hexStringToBytes("0140c8");
  let encResponse = ohttpResponse.encapsulate(response);
  deepEqual(ohttpRequest.response.decapsulate(encResponse), response);
}

function run_test() {
  test_known_config();
  test_with_server();
}