mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-08-23 12:53:07 +09:00
52 lines
1.4 KiB
JavaScript
52 lines
1.4 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
var url;
|
|
var requestHandled;
|
|
|
|
const icon =
|
|
'<?xml version="1.0" encoding="UTF-8" standalone="no"?>' +
|
|
'<svg xmlns="http://www.w3.org/2000/svg" ' +
|
|
'width="16" height="16" viewBox="0 0 16 16">' +
|
|
'<rect x="4" y="4" width="8px" height="8px" style="fill: blue"/>' +
|
|
'</svg>';
|
|
|
|
function run_test() {
|
|
updateAppInfo();
|
|
useHttpServer(); // Unused, but required to call addTestEngines.
|
|
|
|
requestHandled = new Promise(resolve => {
|
|
let srv = new HttpServer();
|
|
srv.registerPathHandler("/icon.svg", (metadata, response) => {
|
|
response.setStatusLine("1.0", 200, "OK");
|
|
response.setHeader("Content-Type", "image/svg+xml", false);
|
|
|
|
response.write(icon);
|
|
resolve();
|
|
});
|
|
srv.start(-1);
|
|
do_register_cleanup(() => srv.stop(() => {}));
|
|
|
|
url = "http://localhost:" + srv.identity.primaryPort + "/icon.svg";
|
|
});
|
|
|
|
run_next_test();
|
|
}
|
|
|
|
add_task(function* test_svg_icon() {
|
|
yield asyncInit();
|
|
|
|
let [engine] = yield addTestEngines([
|
|
{ name: "SVGIcon", details: [url, "", "SVG icon", "GET",
|
|
"http://icon.svg/search?q={searchTerms}"] },
|
|
]);
|
|
|
|
yield requestHandled;
|
|
yield promiseAfterCache();
|
|
|
|
ok(engine.iconURI, "the engine has an icon");
|
|
ok(engine.iconURI.spec.startsWith("data:image/svg+xml"),
|
|
"the icon is saved as an SVG data url");
|
|
});
|