From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- .../base/test/unit/test_nsIMsgContentPolicy.js | 68 ++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 comm/mailnews/base/test/unit/test_nsIMsgContentPolicy.js (limited to 'comm/mailnews/base/test/unit/test_nsIMsgContentPolicy.js') diff --git a/comm/mailnews/base/test/unit/test_nsIMsgContentPolicy.js b/comm/mailnews/base/test/unit/test_nsIMsgContentPolicy.js new file mode 100644 index 0000000000..de49d5b7eb --- /dev/null +++ b/comm/mailnews/base/test/unit/test_nsIMsgContentPolicy.js @@ -0,0 +1,68 @@ +/* -*- mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* + * Test suite for nsIMsgContentPolicy to check we could add/remove customized protocol to + * nsMsgContentPolicy. + */ +const { NetUtil } = ChromeUtils.import("resource://gre/modules/NetUtil.jsm"); + +function makeURI(aURL) { + return Services.io.newURI(aURL); +} + +function run_test() { + var content_policy = Cc["@mozilla.org/messenger/content-policy;1"].getService( + Ci.nsIContentPolicy + ); + + Assert.ok(content_policy); + + var msg_content_policy = content_policy.QueryInterface( + Ci.nsIMsgContentPolicy + ); + + Assert.ok(msg_content_policy); + + var req_uri = makeURI("custom-scheme://custom_url/1.emal"); + Assert.ok(req_uri); + + var content_uri = makeURI("custom-scheme://custom_content_url/1.jsp"); + Assert.ok(content_uri); + + let tmpChannel = NetUtil.newChannel({ + uri: content_uri, + // Needs one of 'loadingNode', 'loadingPrincipal' or 'loadUsingSystemPrincipal' which we don't have. + // Even with `loadUsingSystemPrincipal: true` this fails with "unknown protocol". See bug 1446587. + securityFlags: Ci.nsILoadInfo.SEC_ONLY_FOR_EXPLICIT_CONTENTSEC_CHECK, + contentPolicyType: Ci.nsIContentPolicy.TYPE_IMAGE, + }); + let tmpLoadInfo = tmpChannel.loadInfo; + + var decision = content_policy.shouldLoad( + content_uri, + tmpLoadInfo, + "img/jpeg" + ); + Assert.notEqual( + decision, + Ci.nsIContentPolicy.ACCEPT, + "customized protocol should not load" + ); + + msg_content_policy.addExposedProtocol("custom-scheme"); + + decision = content_policy.shouldLoad(content_uri, tmpLoadInfo, "img/jpeg"); + Assert.equal( + decision, + Ci.nsIContentPolicy.ACCEPT, + "customized protocol should load" + ); + + msg_content_policy.removeExposedProtocol("custom-scheme"); + + decision = content_policy.shouldLoad(content_uri, tmpLoadInfo, "img/jpeg"); + Assert.notEqual( + decision, + Ci.nsIContentPolicy.ACCEPT, + "customized protocol should not load" + ); +} -- cgit v1.2.3