diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
commit | 2aa4a82499d4becd2284cdb482213d541b8804dd (patch) | |
tree | b80bf8bf13c3766139fbacc530efd0dd9d54394c /netwerk/test/unit/test_substituting_protocol_handler.js | |
parent | Initial commit. (diff) | |
download | firefox-upstream.tar.xz firefox-upstream.zip |
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'netwerk/test/unit/test_substituting_protocol_handler.js')
-rw-r--r-- | netwerk/test/unit/test_substituting_protocol_handler.js | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/netwerk/test/unit/test_substituting_protocol_handler.js b/netwerk/test/unit/test_substituting_protocol_handler.js new file mode 100644 index 0000000000..00e5af0c21 --- /dev/null +++ b/netwerk/test/unit/test_substituting_protocol_handler.js @@ -0,0 +1,64 @@ +"use strict"; + +add_task(async function test_case_insensitive_substitutions() { + let resProto = Services.io + .getProtocolHandler("resource") + .QueryInterface(Ci.nsISubstitutingProtocolHandler); + + let uri = Services.io.newFileURI(do_get_file("data")); + + resProto.setSubstitution("FooBar", uri); + resProto.setSubstitutionWithFlags("BarBaz", uri, 0); + + equal( + resProto.resolveURI(Services.io.newURI("resource://foobar/")), + uri.spec, + "Got correct resolved URI for setSubstitution" + ); + + equal( + resProto.resolveURI(Services.io.newURI("resource://foobar/")), + uri.spec, + "Got correct resolved URI for setSubstitutionWithFlags" + ); + + ok( + resProto.hasSubstitution("foobar"), + "hasSubstitution works with all-lower-case root" + ); + ok( + resProto.hasSubstitution("FooBar"), + "hasSubstitution works with mixed-case root" + ); + + equal( + resProto.getSubstitution("foobar").spec, + uri.spec, + "getSubstitution works with all-lower-case root" + ); + equal( + resProto.getSubstitution("FooBar").spec, + uri.spec, + "getSubstitution works with mixed-case root" + ); + + resProto.setSubstitution("foobar", null); + resProto.setSubstitution("barbaz", null); + + Assert.throws( + () => resProto.resolveURI(Services.io.newURI("resource://foobar/")), + e => e.result == Cr.NS_ERROR_NOT_AVAILABLE, + "Correctly unregistered case-insensitive substitution in setSubstitution" + ); + Assert.throws( + () => resProto.resolveURI(Services.io.newURI("resource://barbaz/")), + e => e.result == Cr.NS_ERROR_NOT_AVAILABLE, + "Correctly unregistered case-insensitive substitution in setSubstitutionWithFlags" + ); + + Assert.throws( + () => resProto.getSubstitution("foobar"), + e => e.result == Cr.NS_ERROR_NOT_AVAILABLE, + "foobar substitution has been removed" + ); +}); |