Source code
Revision control
Copy as Markdown
Other Tools
Test Info: Warnings
- This test gets skipped with pattern: os == 'android'
- Manifest: toolkit/components/thumbnails/test/xpcshell.toml
"use strict";
// This is an xpcshell test and gets a browser test env applied, so we
// need to still manually import NetUtil.
// eslint-disable-next-line mozilla/no-redeclare-with-import-autofix
const { NetUtil } = ChromeUtils.importESModule(
"resource://gre/modules/NetUtil.sys.mjs"
);
// need profile so that PageThumbsStorageService can resolve the path to the underlying file
do_get_profile();
function run_test() {
// check the protocol handler implements the correct interface
let handler = Services.io.getProtocolHandler("moz-page-thumb");
ok(
handler instanceof Ci.nsIProtocolHandler,
"moz-page-thumb handler provides a protocol handler interface"
);
// create a dummy loadinfo which we can hand to newChannel.
let dummyChannel = NetUtil.newChannel({
uri: dummyURI,
loadUsingSystemPrincipal: true,
});
let dummyLoadInfo = dummyChannel.loadInfo;
// and check that the error cases work as specified
let badhost = Services.io.newURI(
);
Assert.throws(
() => handler.newChannel(badhost, dummyLoadInfo),
/NS_ERROR_NOT_AVAILABLE/i,
"moz-page-thumb object with wrong host must not resolve to a file path"
);
let badQuery = Services.io.newURI(
);
Assert.throws(
() => handler.newChannel(badQuery, dummyLoadInfo),
/NS_ERROR_NOT_AVAILABLE/i,
"moz-page-thumb object with malformed query parameters must not resolve to a file path"
);
Assert.throws(
() => handler.newChannel(noURL, dummyLoadInfo),
/NS_ERROR_NOT_AVAILABLE/i,
"moz-page-thumb object without a URL parameter must not resolve to a file path"
);
}