diff options
Diffstat (limited to 'toolkit/modules/tests/xpcshell/test_servicerequest_xhr.js')
-rw-r--r-- | toolkit/modules/tests/xpcshell/test_servicerequest_xhr.js | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/toolkit/modules/tests/xpcshell/test_servicerequest_xhr.js b/toolkit/modules/tests/xpcshell/test_servicerequest_xhr.js new file mode 100644 index 0000000000..8d7955e1ee --- /dev/null +++ b/toolkit/modules/tests/xpcshell/test_servicerequest_xhr.js @@ -0,0 +1,62 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +const { ServiceRequest } = ChromeUtils.importESModule( + "resource://gre/modules/ServiceRequest.sys.mjs" +); + +add_task(async function test_tls_conservative() { + const request = new ServiceRequest(); + request.open("GET", "http://example.com", false); + + const sr_channel = request.channel.QueryInterface(Ci.nsIHttpChannelInternal); + ok("beConservative" in sr_channel, "TLS setting is present in SR channel"); + ok( + sr_channel.beConservative, + "TLS setting in request channel is set to conservative for SR" + ); + + const xhr = new XMLHttpRequest(); + xhr.open("GET", "http://example.com", false); + + const xhr_channel = xhr.channel.QueryInterface(Ci.nsIHttpChannelInternal); + ok("beConservative" in xhr_channel, "TLS setting is present in XHR channel"); + ok( + !xhr_channel.beConservative, + "TLS setting in request channel is not set to conservative for XHR" + ); +}); + +add_task(async function test_bypassProxy_default() { + const request = new ServiceRequest(); + request.open("GET", "http://example.com", true); + const sr_channel = request.channel.QueryInterface(Ci.nsIHttpChannelInternal); + + ok(!sr_channel.bypassProxy, "bypassProxy is false on SR channel"); + ok(!request.bypassProxy, "bypassProxy is false for SR"); +}); + +add_task(async function test_bypassProxy_true() { + const request = new ServiceRequest(); + request.open("GET", "http://example.com", { bypassProxy: true }); + const sr_channel = request.channel.QueryInterface(Ci.nsIHttpChannelInternal); + + ok(sr_channel.bypassProxy, "bypassProxy is true on SR channel"); + ok(request.bypassProxy, "bypassProxy is true for SR"); +}); + +add_task(async function test_bypassProxy_disabled_by_pref() { + const request = new ServiceRequest(); + + ok(request.bypassProxyEnabled, "bypassProxyEnabled is true"); + Services.prefs.setBoolPref("network.proxy.allow_bypass", false); + ok(!request.bypassProxyEnabled, "bypassProxyEnabled is false"); + + request.open("GET", "http://example.com", { bypassProxy: true }); + const sr_channel = request.channel.QueryInterface(Ci.nsIHttpChannelInternal); + + ok(!sr_channel.bypassProxy, "bypassProxy is false on SR channel"); + ok(!request.bypassProxy, "bypassProxy is false for SR"); +}); |