Merge pull request #21541 from Snuffleupagus/signature-api-unittests

Add API unit-tests for `getSignatures` and `getSignatureData` (PR 21247 follow-up)
This commit is contained in:
Tim van der Meij 2026-07-05 11:29:47 +02:00 committed by GitHub
commit 330cc4f2f4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -2109,6 +2109,90 @@ describe("api", function () {
await loadingTask.destroy();
});
it("gets non-existent signatures and signatureData", async function () {
const signatures = await pdfDocument.getSignatures();
expect(signatures).toBeNull();
const signatureData = await pdfDocument.getSignatureData("qwerty");
expect(signatureData).toBeNull();
});
it("gets signatures and signatureData", async function () {
const loadingTask = getDocument(buildGetDocumentParams("issue20433.pdf"));
const pdfDoc = await loadingTask.promise;
const signatures = await pdfDoc.getSignatures();
expect(signatures).toEqual([
{
id: "70R:0-435961-437515-34098",
fieldName: "Sig2",
signerName: null,
reason: null,
location: null,
contactInfo: null,
signingTime: "D:20251101152937Z",
filter: "Adobe.PPKLite",
subFilter: "ETSI.CAdES.detached",
signatureType: null,
byteRange: [0, 435961, 437515, 34098],
revisionIndex: 0,
parentId: null,
coversWholeDocument: true,
},
{
id: "49R:0-60285-74083-357914",
fieldName: "Sig1",
signerName: "Richard III",
reason: "Royal Seal of Approval",
location: null,
contactInfo: null,
signingTime: "D:20251101162754+01'00'",
filter: "Adobe.PPKLite",
subFilter: "ETSI.CAdES.detached",
signatureType: null,
byteRange: [0, 60285, 74083, 357914],
revisionIndex: 1,
parentId: "70R:0-435961-437515-34098",
coversWholeDocument: false,
},
]);
const sigIds = signatures.map(s => s.id);
const sigData = await Promise.all(
sigIds.map(id => pdfDoc.getSignatureData(id))
);
expect(sigData.length).toEqual(2);
const expectedLengths = [
{
data0Len: 435961,
data1Len: 34098,
pkcs7Len: 776,
},
{
data0Len: 60285,
data1Len: 357914,
pkcs7Len: 6898,
},
];
for (const [i, s] of sigData.entries()) {
const { data, pkcs7 } = s;
const { data0Len, data1Len, pkcs7Len } = expectedLengths[i];
expect(data.length).toEqual(2);
expect(data[0]).toBeInstanceOf(Uint8Array);
expect(data[0].length).toEqual(data0Len);
expect(data[1]).toBeInstanceOf(Uint8Array);
expect(data[1].length).toEqual(data1Len);
expect(pkcs7).toBeInstanceOf(Uint8Array);
expect(pkcs7.length).toEqual(pkcs7Len);
}
await loadingTask.destroy();
});
it("gets non-existent calculationOrder", async function () {
const calculationOrder = await pdfDocument.getCalculationOrderIds();
expect(calculationOrder).toEqual(null);