Merge pull request #14950 from calixteman/1766987
[JS] Format all the fields if any when the document is open (bug 1766987)
This commit is contained in:
commit
61012b931c
@ -76,6 +76,11 @@ class EventDispatcher {
|
||||
event.name = baseEvent.name;
|
||||
}
|
||||
if (id === "doc") {
|
||||
if (event.name === "Open") {
|
||||
// Before running the Open event, we format all the fields
|
||||
// (see bug 1766987).
|
||||
this.formatAll();
|
||||
}
|
||||
this._document.obj._dispatchDocEvent(event.name);
|
||||
} else if (id === "page") {
|
||||
this._document.obj._dispatchPageEvent(
|
||||
@ -180,6 +185,20 @@ class EventDispatcher {
|
||||
}
|
||||
}
|
||||
|
||||
formatAll() {
|
||||
// Run format actions if any for all the fields.
|
||||
const event = (globalThis.event = new Event({}));
|
||||
for (const source of Object.values(this._objects)) {
|
||||
event.value = source.obj.value;
|
||||
if (this.runActions(source, source, event, "Format")) {
|
||||
source.obj._send({
|
||||
id: source.obj._id,
|
||||
formattedValue: event.value?.toString?.(),
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
runValidation(source, event) {
|
||||
const didValidateRun = this.runActions(source, source, event, "Validate");
|
||||
if (event.rc) {
|
||||
|
@ -1302,4 +1302,38 @@ describe("Interaction", () => {
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe("in bug1766987.pdf", () => {
|
||||
let pages;
|
||||
|
||||
beforeAll(async () => {
|
||||
pages = await loadAndWait("bug1766987.pdf", "#\\37 5R");
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await closePages(pages);
|
||||
});
|
||||
|
||||
it("must check that field value is correctly formatted", async () => {
|
||||
await Promise.all(
|
||||
pages.map(async ([browserName, page]) => {
|
||||
await page.waitForFunction(
|
||||
"window.PDFViewerApplication.scriptingReady === true"
|
||||
);
|
||||
|
||||
let text = await page.$eval("#\\37 5R", el => el.value);
|
||||
expect(text).withContext(`In ${browserName}`).toEqual("150.32 €");
|
||||
|
||||
text = await page.$eval("#\\38 2R", el => el.value);
|
||||
expect(text).withContext(`In ${browserName}`).toEqual("12.74 Kwh");
|
||||
|
||||
text = await page.$eval("#\\39 1R", el => el.value);
|
||||
expect(text).withContext(`In ${browserName}`).toEqual("352.19 Kwh");
|
||||
|
||||
text = await page.$eval("#\\31 01R", el => el.value);
|
||||
expect(text).withContext(`In ${browserName}`).toEqual("20.57 €");
|
||||
})
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
2
test/pdfs/bug1766987.pdf.link
Normal file
2
test/pdfs/bug1766987.pdf.link
Normal file
@ -0,0 +1,2 @@
|
||||
https://bugzilla.mozilla.org/attachment.cgi?id=9274388
|
||||
|
@ -6494,5 +6494,12 @@
|
||||
"value": "05/17/2022"
|
||||
}
|
||||
}
|
||||
},
|
||||
{ "id": "bug1766987",
|
||||
"file": "pdfs/bug1766987.pdf",
|
||||
"md5": "3ce134ead03d6158c3e8207453dcd21d",
|
||||
"rounds": 1,
|
||||
"link": true,
|
||||
"type": "other"
|
||||
}
|
||||
]
|
||||
|
Loading…
Reference in New Issue
Block a user