diff options
Diffstat (limited to 'netwerk/test/unit/test_ohttp.js')
-rw-r--r-- | netwerk/test/unit/test_ohttp.js | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/netwerk/test/unit/test_ohttp.js b/netwerk/test/unit/test_ohttp.js new file mode 100644 index 0000000000..b7bd2f1d06 --- /dev/null +++ b/netwerk/test/unit/test_ohttp.js @@ -0,0 +1,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(); +} |