diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /netwerk/test/unit/test_referrer_policy.js | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'netwerk/test/unit/test_referrer_policy.js')
-rw-r--r-- | netwerk/test/unit/test_referrer_policy.js | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/netwerk/test/unit/test_referrer_policy.js b/netwerk/test/unit/test_referrer_policy.js new file mode 100644 index 000000000..f1f9dfd5a --- /dev/null +++ b/netwerk/test/unit/test_referrer_policy.js @@ -0,0 +1,95 @@ +Cu.import("resource://gre/modules/NetUtil.jsm"); + +function test_policy(test) { + do_print("Running test: " + test.toSource()); + + var uri = NetUtil.newURI(test.url, "", null) + var chan = NetUtil.newChannel({ + uri: uri, + loadUsingSystemPrincipal: true + }); + + var referrer = NetUtil.newURI(test.referrer, "", null); + chan.QueryInterface(Components.interfaces.nsIHttpChannel); + chan.setReferrerWithPolicy(referrer, test.policy); + if (test.expectedReferrerSpec === undefined) { + try { + chan.getRequestHeader("Referer"); + do_throw("Should not find a Referer header!"); + } catch(e) { + } + do_check_eq(chan.referrer, null); + } else { + var header = chan.getRequestHeader("Referer"); + do_check_eq(header, test.expectedReferrerSpec); + do_check_eq(chan.referrer.asciiSpec, test.expectedReferrerSpec); + } +} + +const nsIHttpChannel = Ci.nsIHttpChannel; +var gTests = [ + { + policy: nsIHttpChannel.REFERRER_POLICY_DEFAULT, + url: "https://test.example/foo", + referrer: "https://test.example/referrer", + expectedReferrerSpec: "https://test.example/referrer" + }, + { + policy: nsIHttpChannel.REFERRER_POLICY_DEFAULT, + url: "https://sub1.\xe4lt.example/foo", + referrer: "https://sub1.\xe4lt.example/referrer", + expectedReferrerSpec: "https://sub1.xn--lt-uia.example/referrer" + }, + { + policy: nsIHttpChannel.REFERRER_POLICY_DEFAULT, + url: "http://test.example/foo", + referrer: "https://test.example/referrer", + expectedReferrerSpec: undefined + }, + { + policy: nsIHttpChannel.REFERRER_POLICY_NO_REFERRER, + url: "https://test.example/foo", + referrer: "https://test.example/referrer", + expectedReferrerSpec: undefined + }, + { + policy: nsIHttpChannel.REFERRER_POLICY_ORIGIN, + url: "https://test.example/foo", + referrer: "https://test.example/referrer", + expectedReferrerSpec: "https://test.example/" + }, + { + policy: nsIHttpChannel.REFERRER_POLICY_ORIGIN, + url: "https://sub1.\xe4lt.example/foo", + referrer: "https://sub1.\xe4lt.example/referrer", + expectedReferrerSpec: "https://sub1.xn--lt-uia.example/" + }, + { + policy: nsIHttpChannel.REFERRER_POLICY_UNSAFE_URL, + url: "https://test.example/foo", + referrer: "https://test.example/referrer", + expectedReferrerSpec: "https://test.example/referrer" + }, + { + policy: nsIHttpChannel.REFERRER_POLICY_UNSAFE_URL, + url: "https://sub1.\xe4lt.example/foo", + referrer: "https://sub1.\xe4lt.example/referrer", + expectedReferrerSpec: "https://sub1.xn--lt-uia.example/referrer" + }, + { + policy: nsIHttpChannel.REFERRER_POLICY_UNSAFE_URL, + url: "http://test.example/foo", + referrer: "https://test.example/referrer", + expectedReferrerSpec: "https://test.example/referrer" + }, + { + policy: nsIHttpChannel.REFERRER_POLICY_UNSAFE_URL, + url: "http://sub1.\xe4lt.example/foo", + referrer: "https://sub1.\xe4lt.example/referrer", + expectedReferrerSpec: "https://sub1.xn--lt-uia.example/referrer" + }, +]; + +function run_test() { + gTests.forEach(test => test_policy(test)); +} |