From d3ec162a48da069c55ef65c6c00779841befb4e6 Mon Sep 17 00:00:00 2001 From: Calixte Denizet Date: Fri, 19 Jan 2024 17:47:05 +0100 Subject: [PATCH] Use the original value of a field when propagating event (fixes #17540) And avoid to not format a field when the value is 0. --- src/scripting_api/aform.js | 4 --- src/scripting_api/event.js | 13 +++++--- test/integration/scripting_spec.mjs | 44 +++++++++++++++++++++++++++- test/pdfs/.gitignore | 1 + test/pdfs/issue17540.pdf | Bin 0 -> 39800 bytes test/unit/scripting_spec.js | 29 ++++++++++++++++++ 6 files changed, 82 insertions(+), 9 deletions(-) create mode 100644 test/pdfs/issue17540.pdf diff --git a/src/scripting_api/aform.js b/src/scripting_api/aform.js index dd780d2c2c3abd..5719de43856408 100644 --- a/src/scripting_api/aform.js +++ b/src/scripting_api/aform.js @@ -220,10 +220,6 @@ class AForm { bCurrencyPrepend ) { const event = globalThis.event; - if (!event.value) { - return; - } - let value = this.AFMakeNumber(event.value); if (value === null) { event.value = ""; diff --git a/src/scripting_api/event.js b/src/scripting_api/event.js index 20be536578355c..c3f73b263d9ed8 100644 --- a/src/scripting_api/event.js +++ b/src/scripting_api/event.js @@ -335,7 +335,7 @@ class EventDispatcher { event.value = null; const target = this._objects[targetId]; - let savedValue = target.obj.value; + let savedValue = target.obj._getValue(); this.runActions(source, target, event, "Calculate"); if (!event.rc) { continue; @@ -344,18 +344,23 @@ class EventDispatcher { if (event.value !== null) { // A new value has been calculated so set it. target.obj.value = event.value; + } else { + event.value = target.obj._getValue(); } - event.value = target.obj.value; this.runActions(target, target, event, "Validate"); if (!event.rc) { - if (target.obj.value !== savedValue) { + if (target.obj._getValue() !== savedValue) { target.wrapped.value = savedValue; } continue; } - savedValue = event.value = target.obj.value; + if (event.value === null) { + event.value = target.obj._getValue(); + } + + savedValue = target.obj._getValue(); let formattedValue = null; if (this.runActions(target, target, event, "Format")) { formattedValue = event.value?.toString?.(); diff --git a/test/integration/scripting_spec.mjs b/test/integration/scripting_spec.mjs index 8824be38b0d7ff..a2f22c27efe121 100644 --- a/test/integration/scripting_spec.mjs +++ b/test/integration/scripting_spec.mjs @@ -29,7 +29,7 @@ import { waitForEntryInStorage, } from "./test_utils.mjs"; -describe("Interaction", () => { +fdescribe("Interaction", () => { async function actAndWaitForInput(page, selector, action, clear = true) { await page.waitForSelector(selector, { timeout: 0, @@ -2324,4 +2324,46 @@ describe("Interaction", () => { ); }); }); + + describe("Textfield with a number and some decimals", () => { + let pages; + let otherPages; + + beforeAll(async () => { + otherPages = await Promise.all( + global.integrationSessions.map(async session => + session.browser.newPage() + ) + ); + pages = await loadAndWait("issue17540.pdf", getSelector("15R")); + }); + + afterAll(async () => { + await closePages(pages); + await Promise.all(otherPages.map(page => page.close())); + }); + + it("must check the number has the correct number of decimals", async () => { + await Promise.all( + pages.map(async ([browserName, page], i) => { + await page.waitForFunction( + "window.PDFViewerApplication.scriptingReady === true" + ); + + await page.click(getSelector("15R")); + await page.type(getSelector("15R"), "3"); + await page.keyboard.press("Enter"); + + await page.waitForFunction( + sel => document.querySelector(sel).value !== "", + {}, + getSelector("16R") + ); + + const text = await page.$eval(getSelector("16R"), el => el.value); + expect(text).withContext(`In ${browserName}`).toEqual("0.900"); + }) + ); + }); + }); }); diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index 640aa418471272..2404660d83d5e9 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -625,3 +625,4 @@ !bug1871353.1.pdf !file_pdfjs_form.pdf !issue17492.pdf +!issue17540.pdf diff --git a/test/pdfs/issue17540.pdf b/test/pdfs/issue17540.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4f3cc5ac0db6a4cdc9297821c9bb82724adb8651 GIT binary patch literal 39800 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 A`~Uy| literal 0 HcmV?d00001 diff --git a/test/unit/scripting_spec.js b/test/unit/scripting_spec.js index d3d85dc5118c09..57ec428093a065 100644 --- a/test/unit/scripting_spec.js +++ b/test/unit/scripting_spec.js @@ -716,6 +716,11 @@ describe("Scripting", function () { `AFNumber_Format(2, 0, 3, 0, "€", false);` + `event.source.value = event.value;`, ], + test6: [ + `event.value = 0;` + + `AFNumber_Format(2, 0, 0, 0, "€", false);` + + `event.source.value = event.value;`, + ], }, type: "text", }, @@ -727,6 +732,30 @@ describe("Scripting", function () { }; sandbox.createSandbox(data); + await sandbox.dispatchEventInSandbox({ + id: refId, + value: "0", + name: "test1", + }); + expect(send_queue.has(refId)).toEqual(true); + expect(send_queue.get(refId)).toEqual({ + id: refId, + value: "0.00€", + }); + send_queue.delete(refId); + + await sandbox.dispatchEventInSandbox({ + id: refId, + value: "", + name: "test6", + }); + expect(send_queue.has(refId)).toEqual(true); + expect(send_queue.get(refId)).toEqual({ + id: refId, + value: "0.00€", + }); + send_queue.delete(refId); + await sandbox.dispatchEventInSandbox({ id: refId, value: "123456.789",