mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-23 21:01:08 +00:00
2c53a5dcd9
# ignore-this-changeset Differential Revision: https://phabricator.services.mozilla.com/D35919 --HG-- extra : source : afa5bd771feba466ba7670c58f3d93233a14e202
65 lines
1.8 KiB
JavaScript
65 lines
1.8 KiB
JavaScript
"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"
|
|
);
|
|
});
|