summaryrefslogtreecommitdiffstats
path: root/toolkit/components/pdfjs/test/browser_pdfjs_form.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
commit2aa4a82499d4becd2284cdb482213d541b8804dd (patch)
treeb80bf8bf13c3766139fbacc530efd0dd9d54394c /toolkit/components/pdfjs/test/browser_pdfjs_form.js
parentInitial commit. (diff)
downloadfirefox-upstream.tar.xz
firefox-upstream.zip
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'toolkit/components/pdfjs/test/browser_pdfjs_form.js')
-rw-r--r--toolkit/components/pdfjs/test/browser_pdfjs_form.js85
1 files changed, 85 insertions, 0 deletions
diff --git a/toolkit/components/pdfjs/test/browser_pdfjs_form.js b/toolkit/components/pdfjs/test/browser_pdfjs_form.js
new file mode 100644
index 0000000000..f424a1ebdb
--- /dev/null
+++ b/toolkit/components/pdfjs/test/browser_pdfjs_form.js
@@ -0,0 +1,85 @@
+/* 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");
+ }
+ let viewer = content.wrappedJSObject.PDFViewerApplication;
+ await viewer.close();
+}
+
+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("renderInteractiveForms");
+ let renderForms = Services.prefs.getBoolPref("pdfjs.renderInteractiveForms");
+
+ is(
+ prefType,
+ Ci.nsIPrefBranch.PREF_BOOL,
+ "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);
+ }
+ );
+});
+
+// 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.renderInteractiveForms", true]],
+ });
+ await waitForPdfJSAnnotationLayer(
+ browser,
+ TESTROOT + "file_pdfjs_form.pdf"
+ );
+ await SpecialPowers.spawn(
+ browser,
+ [true /* formsEnabled */],
+ checkFormState
+ );
+ // Now disable the forms.
+ await SpecialPowers.pushPrefEnv({
+ set: [["pdfjs.renderInteractiveForms", false]],
+ });
+ await waitForPdfJSAnnotationLayer(
+ browser,
+ TESTROOT + "file_pdfjs_form.pdf"
+ );
+ await SpecialPowers.spawn(
+ browser,
+ [false /* formsEnabled */],
+ checkFormState
+ );
+ }
+ );
+});