Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* Any copyright is dedicated to the Public Domain.
const RELATIVE_DIR = "toolkit/components/pdfjs/test/";
const TESTROOT = "https://example.com/browser/" + RELATIVE_DIR;
// Test js in pdf file.
add_task(async function test_js_signature_storage() {
await BrowserTestUtils.withNewTab(
{ gBrowser, url: "about:blank" },
async function (browser) {
await waitForPdfJSAnnotationLayer(
browser,
TESTROOT + "file_empty_test.pdf"
);
await SpecialPowers.spawn(browser, [], async () => {
function getStoredSignaturesChangedPromise() {
const { promise, resolve } = Promise.withResolvers();
content.addEventListener("storedSignaturesChanged", resolve, {
once: true,
});
return promise;
}
const HANDLE_SIGNATURE = "PDFJS:Parent:handleSignature";
const actor = content.windowGlobalChild.getActor("Pdfjs");
let all = await actor.sendQuery(HANDLE_SIGNATURE, {
action: "get",
});
is(all.length, 0, "No signature should be present");
let promise = getStoredSignaturesChangedPromise();
const uuid = await actor.sendQuery(HANDLE_SIGNATURE, {
action: "create",
description: "test",
signatureData: "1234",
});
await promise;
all = await actor.sendQuery(HANDLE_SIGNATURE, {
action: "get",
});
is(all.length, 1, "One signature should be present");
is(all[0].description, "test", "Must have the correct description");
is(all[0].signatureData, "1234", "Must have the correct signatureData");
promise = getStoredSignaturesChangedPromise();
await actor.sendQuery(HANDLE_SIGNATURE, {
action: "delete",
uuid,
});
await promise;
all = await actor.sendQuery(HANDLE_SIGNATURE, {
action: "get",
});
is(all.length, 0, "No signature should be present");
});
const request = indexedDB.deleteDatabase("pdfjs");
const { promise, resolve, reject } = Promise.withResolvers();
request.onsuccess = resolve;
request.onerror = reject;
try {
await promise;
} catch {
is(false, "The DB must be deleted");
}
await waitForPdfJSClose(browser);
}
);
});