86 lines
2.4 KiB
JavaScript
86 lines
2.4 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
const RELATIVE_DIR = "toolkit/components/pdfjs/test/";
|
|
const TESTROOT = "http://example.com/browser/" + RELATIVE_DIR;
|
|
|
|
async function checkFormState(formsEnabled) {
|
|
ok(
|
|
content.document.querySelector("div#viewer"),
|
|
"document content has viewer UI"
|
|
);
|
|
|
|
let formInput = content.document.querySelector("#viewerContainer input");
|
|
|
|
if (formsEnabled) {
|
|
ok(formInput, "Form input available");
|
|
} else {
|
|
ok(!formInput, "Form input not available");
|
|
}
|
|
}
|
|
|
|
add_task(async function test_defaults() {
|
|
// Ensure the default preference is set to the expected value.
|
|
let defaultBranch = Services.prefs.getDefaultBranch("pdfjs.");
|
|
let prefType = defaultBranch.getPrefType("annotationMode");
|
|
let renderForms = Services.prefs.getIntPref("pdfjs.annotationMode") === 2;
|
|
|
|
is(
|
|
prefType,
|
|
Ci.nsIPrefBranch.PREF_INT,
|
|
"The form pref is defined by default"
|
|
);
|
|
|
|
ok(renderForms, "Forms are enabled");
|
|
|
|
// Test that the forms state matches the pref.
|
|
await BrowserTestUtils.withNewTab(
|
|
{ gBrowser, url: "about:blank" },
|
|
async function (browser) {
|
|
await waitForPdfJSAnnotationLayer(
|
|
browser,
|
|
TESTROOT + "file_pdfjs_form.pdf"
|
|
);
|
|
|
|
await SpecialPowers.spawn(browser, [true], checkFormState);
|
|
await waitForPdfJSClose(browser);
|
|
}
|
|
);
|
|
});
|
|
|
|
// Test disabling forms with pref.
|
|
add_task(async function test_disabling() {
|
|
await BrowserTestUtils.withNewTab(
|
|
{ gBrowser, url: "about:blank" },
|
|
async function (browser) {
|
|
// First, make sure they are enabled.
|
|
await SpecialPowers.pushPrefEnv({
|
|
set: [["pdfjs.annotationMode", 2]],
|
|
});
|
|
await waitForPdfJSAnnotationLayer(
|
|
browser,
|
|
TESTROOT + "file_pdfjs_form.pdf"
|
|
);
|
|
await SpecialPowers.spawn(
|
|
browser,
|
|
[true /* formsEnabled */],
|
|
checkFormState
|
|
);
|
|
// Now disable the forms.
|
|
await SpecialPowers.pushPrefEnv({
|
|
set: [["pdfjs.annotationMode", 1]],
|
|
});
|
|
await waitForPdfJSAnnotationLayer(
|
|
browser,
|
|
TESTROOT + "file_pdfjs_form.pdf"
|
|
);
|
|
await SpecialPowers.spawn(
|
|
browser,
|
|
[false /* formsEnabled */],
|
|
checkFormState
|
|
);
|
|
await waitForPdfJSClose(browser);
|
|
await SpecialPowers.popPrefEnv();
|
|
}
|
|
);
|
|
});
|