Skip to content

Commit

Permalink
test: update PDF hash validation to support platform-specific values
Browse files Browse the repository at this point in the history
  • Loading branch information
microshine committed Jan 6, 2025
1 parent a298c43 commit 9f09326
Show file tree
Hide file tree
Showing 9 changed files with 330 additions and 136 deletions.
6 changes: 4 additions & 2 deletions packages/core/src/structure/common/Date.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@ describe("PDFDate", () => {
it("should create from Date object", () => {
const date = new Date("2021-10-04T01:02:03.000Z");
const pdfDate = new PDFDate(date);
expect(pdfDate.toString()).toMatch(/^\(D:20211004\d{6}[+-]\d{2}'00'\)$/);
expect(pdfDate.toString()).toMatch(
/^\(D:20211004\d{6}(Z|[+-]\d{2}'00')\)$/
);
});

it("should create from PDFString", () => {
Expand Down Expand Up @@ -91,7 +93,7 @@ describe("PDFDate", () => {
const initDate = new Date("2021-10-04T01:02:03.000+0000");
const date = new PDFDate(initDate);
const result = date.toString();
expect(result).toMatch(/^\(D:20211004\d{6}[+-]\d{2}'00'\)$/);
expect(result).toMatch(/^\(D:20211004\d{6}(Z|[+-]\d{2}'00')\)$/);
});
});

Expand Down
11 changes: 7 additions & 4 deletions packages/doc/src/Example.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -955,9 +955,12 @@ describe("Examples", () => {
);

const pdf = await doc.save();
const hash = await PdfRenderingHelper.getPageHash(pdf, 1, true);
expect(hash).toEqual(
"c349c894252d13a6b733772f7f994c46399acaa94c169e6bc1c3e1eb4e5d9ff0"
);
const hash = await PdfRenderingHelper.getPageHash(pdf, 1);
const expectedHash: Record<string, string> = {
darwin:
"c349c894252d13a6b733772f7f994c46399acaa94c169e6bc1c3e1eb4e5d9ff0",
linux: "065dc45d38816d08015c1faf5158449b9fffbec7e63aa095597e2d330e82d944"
};
expect(hash).toEqual(expectedHash[process.platform]);
});
});
43 changes: 31 additions & 12 deletions packages/doc/src/Page.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,14 @@ describe("Page", () => {
const raw = await doc.save();

const hash = await PdfRenderingHelper.getPageHash(raw, 1);
expect(hash).toEqual(
"97afbc0da17a69ed79aa5833ffcb6e1d0bcba0cf9f0dbe8c22a01dac75ecebe7"
);

const expectedHash: Record<string, string> = {
darwin:
"97afbc0da17a69ed79aa5833ffcb6e1d0bcba0cf9f0dbe8c22a01dac75ecebe7",
linux:
"9d1ee36dec23a7266823651855a44fc0e2b5bf2139d473a9d58224d4f6e9af13"
};
expect(hash).toEqual(expectedHash[process.platform]);
});

it("should add simple JPEG image", async () => {
Expand All @@ -48,9 +53,14 @@ describe("Page", () => {

const raw = await doc.save();
const hash = await PdfRenderingHelper.getPageHash(raw, 1);
expect(hash).toEqual(
"dc7b5f4535ae3f4ba0295520277abcf28e0f89e5b663ac518ca1781f8354e31b"
);

const expectedHash: Record<string, string> = {
darwin:
"dc7b5f4535ae3f4ba0295520277abcf28e0f89e5b663ac518ca1781f8354e31b",
linux:
"9ae286debf575276a966629d3a866a7a1f80fe471005905ef18661adff58e8b6"
};
expect(hash).toEqual(expectedHash[process.platform]);
});
});

Expand Down Expand Up @@ -89,9 +99,13 @@ describe("Page", () => {

const raw = await doc.save();
const hash = await PdfRenderingHelper.getPageHash(raw, 1);
expect(hash).toEqual(
"28ac1661e14138f24d788cb8936bc220debe081f5fc2ec80c8b63e9038ba5761"
);

const expectedHash: Record<string, string> = {
darwin:
"28ac1661e14138f24d788cb8936bc220debe081f5fc2ec80c8b63e9038ba5761",
linux: "2275593b3fbdbcaa0fcbb45d367ee6cbc99740be236a64e7cc7a05410577503d"
};
expect(hash).toEqual(expectedHash[process.platform]);
});

describe("Rectangle", () => {
Expand Down Expand Up @@ -129,9 +143,14 @@ describe("Page", () => {

const raw = await doc.save();
const hash = await PdfRenderingHelper.getPageHash(raw, 1);
expect(hash).toEqual(
"67e7ef2671f43a777b91f2c8238684badb60dab62c9d66fe362108f69fa04a19"
);

const expectedHash: Record<string, string> = {
darwin:
"67e7ef2671f43a777b91f2c8238684badb60dab62c9d66fe362108f69fa04a19",
linux:
"c29308f76f37848b3f0080bdc99dedf1e605aeef05b1a5886736fc7896827cee"
};
expect(hash).toEqual(expectedHash[process.platform]);
});

it("should add rectangle with border", async () => {
Expand Down
58 changes: 40 additions & 18 deletions packages/doc/src/forms/CheckBox.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,12 @@ describe("CheckBox", () => {

it("draw", async () => {
const pageHash = await PdfRenderingHelper.getPageHash(docRaw, 1);
expect(pageHash).toBe(
"1cd4b7d6584a30e5ad13ebfa69b3de8dfb6b7518e4a410837173ea9aaedc1337"
);
const expectedHash: Record<string, string> = {
darwin:
"1cd4b7d6584a30e5ad13ebfa69b3de8dfb6b7518e4a410837173ea9aaedc1337",
linux: "866bfa7f1c4474fdb27ba5d3b2d28c6976255555ac197c5146fb75a9480bf12f"
};
expect(pageHash).toBe(expectedHash[process.platform]);
});

it("change value", async () => {
Expand All @@ -41,9 +44,12 @@ describe("CheckBox", () => {
const pdf = await doc.save();
const pageHash = await PdfRenderingHelper.getPageHash(pdf, 1);

expect(pageHash).toBe(
"314e2e5af84bbe7180700e146e8a385bbc2392f2d111484f41a3096c2dc0765b"
);
const expectedHash: Record<string, string> = {
darwin:
"314e2e5af84bbe7180700e146e8a385bbc2392f2d111484f41a3096c2dc0765b",
linux: "e61a2a3d40b357c7f7e326dfbe1dbb119a68f3ebe34b03531b945bc563183a75"
};
expect(pageHash).toBe(expectedHash[process.platform]);
});

describe("style", () => {
Expand All @@ -59,9 +65,13 @@ describe("CheckBox", () => {
const pdf = await doc.save();
const pageHash = await PdfRenderingHelper.getPageHash(pdf, 1);

expect(pageHash).toBe(
"fa09bde7805bf1b37c3534d15e708e5d673b0d31c008da8923cbecc13a01fdc0"
);
const expectedHash: Record<string, string> = {
darwin:
"fa09bde7805bf1b37c3534d15e708e5d673b0d31c008da8923cbecc13a01fdc0",
linux:
"cfc84ba417263b6c25db71a67ec95a8916aaa0a76cea0b0edc48a7aa6f0a0bde"
};
expect(pageHash).toBe(expectedHash[process.platform]);
});

describe("border", () => {
Expand All @@ -88,9 +98,13 @@ describe("CheckBox", () => {
const pdf = await doc.save();
const pageHash = await PdfRenderingHelper.getPageHash(pdf, 1);

expect(pageHash).toBe(
"615925d2c924808cd556ce8096d4b7f2678386c7aba046ab72792b8e11f359b9"
);
const expectedHash: Record<string, string> = {
darwin:
"615925d2c924808cd556ce8096d4b7f2678386c7aba046ab72792b8e11f359b9",
linux:
"19e7833e30a4d568a767642109fda6249dc0ad901d13455aec8784b9c7b59bac"
};
expect(pageHash).toBe(expectedHash[process.platform]);
});
});
});
Expand All @@ -106,9 +120,13 @@ describe("CheckBox", () => {
const pdf = await doc.save();
const pageHash = await PdfRenderingHelper.getPageHash(pdf, 1);

expect(pageHash).toBe(
"59a44d1ab362eb83dd4030d5213201ddf059ac237c9f27dd16a4960adc465c64"
);
const expectedHash: Record<string, string> = {
darwin:
"59a44d1ab362eb83dd4030d5213201ddf059ac237c9f27dd16a4960adc465c64",
linux:
"0b0bd9ff06c562005c05ba11a21663c9be71175c0057fa18e800ad1114aa7fc0"
};
expect(pageHash).toBe(expectedHash[process.platform]);
});

it("size", async () => {
Expand All @@ -122,9 +140,13 @@ describe("CheckBox", () => {
const pdf = await doc.save();
const pageHash = await PdfRenderingHelper.getPageHash(pdf, 1);

expect(pageHash).toBe(
"2f940cb11206838653734a8502492b706f7cb2cf87fddd8b3b4b7957ce917df3"
);
const expectedHash: Record<string, string> = {
darwin:
"2f940cb11206838653734a8502492b706f7cb2cf87fddd8b3b4b7957ce917df3",
linux:
"5468ad4ab2cfbbfb0920eaacf0d8841ba73f499a913759de930942022f94b660"
};
expect(pageHash).toBe(expectedHash[process.platform]);
});
});
});
88 changes: 61 additions & 27 deletions packages/doc/src/forms/ComboBox.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,12 @@ describe("ComboBox", () => {

it("draw", async () => {
const pageHash = await PdfRenderingHelper.getPageHash(docRaw, 1);
expect(pageHash).toBe(
"3d89d848445a0e51f22e88729efd70bf0d4a32b5164bb33f89c46471110b7c1c"
);
const expectedHash: Record<string, string> = {
darwin:
"3d89d848445a0e51f22e88729efd70bf0d4a32b5164bb33f89c46471110b7c1c",
linux: "dc7bb09fe8e69f76bed85a6b8f81841fe013cdc2393d3b75f5f4292f3f7daaab"
};
expect(pageHash).toBe(expectedHash[process.platform]);
});

it("change value", async () => {
Expand All @@ -47,9 +50,12 @@ describe("ComboBox", () => {
const pdf = await doc.save();
const pageHash = await PdfRenderingHelper.getPageHash(pdf, 1);

expect(pageHash).toBe(
"5e85c0c6af7a25c22941020e1619793ab5241ceb632bbdf9d899fd1e6bce2576"
);
const expectedHash: Record<string, string> = {
darwin:
"5e85c0c6af7a25c22941020e1619793ab5241ceb632bbdf9d899fd1e6bce2576",
linux: "54a7624b07cfab989fdef229ed41dfb67c89624fdc903d41c602796db0997fa6"
};
expect(pageHash).toBe(expectedHash[process.platform]);
});

describe("style", () => {
Expand All @@ -67,9 +73,13 @@ describe("ComboBox", () => {

// NOTE: Acrobat Reader paints content depending on the object data, so it can be different. Chrome draws correct content.

expect(pageHash).toBe(
"436d78486d05aa72190a9c38dc50c0b5152ce3f691b7b7203c6ee20fafb941a9"
);
const expectedHash: Record<string, string> = {
darwin:
"436d78486d05aa72190a9c38dc50c0b5152ce3f691b7b7203c6ee20fafb941a9",
linux:
"869fc4f73ae2ad92c7b852065dec3df4ea51fb7eb08965a6ab2374a76055fa3b"
};
expect(pageHash).toBe(expectedHash[process.platform]);
});

describe("border", () => {
Expand All @@ -82,9 +92,13 @@ describe("ComboBox", () => {
const pdf = await doc.save();
const pageHash = await PdfRenderingHelper.getPageHash(pdf, 1);

expect(pageHash).toBe(
"ab5c1d04cc9fc8356ae481c98313e10fb3b12c4ced13a3f0ead0ce3920384a72"
);
const expectedHash: Record<string, string> = {
darwin:
"ab5c1d04cc9fc8356ae481c98313e10fb3b12c4ced13a3f0ead0ce3920384a72",
linux:
"878063c53ca9239b8833faf5050d35919e0b8d70aa1dc4c5cc06afa5de98443d"
};
expect(pageHash).toBe(expectedHash[process.platform]);
});

it("change border color and width", async () => {
Expand All @@ -97,9 +111,13 @@ describe("ComboBox", () => {
const pdf = await doc.save();
const pageHash = await PdfRenderingHelper.getPageHash(pdf, 1);

expect(pageHash).toBe(
"dfc473d1fd30ce6f2eddf8cc0ced87e8bbc2f1ee04e31886f1f5f2298a6a32fa"
);
const expectedHash: Record<string, string> = {
darwin:
"dfc473d1fd30ce6f2eddf8cc0ced87e8bbc2f1ee04e31886f1f5f2298a6a32fa",
linux:
"13afb096124c6f225671f6e22e3f5dc5b32b3f3690494d46aa7a04b5e1d5ac68"
};
expect(pageHash).toBe(expectedHash[process.platform]);
});
});

Expand All @@ -113,9 +131,13 @@ describe("ComboBox", () => {
const pdf = await doc.save();
const pageHash = await PdfRenderingHelper.getPageHash(pdf, 1);

expect(pageHash).toBe(
"cd6c095980b1cb8798e30d68887bbf79f19d2d538f00dbb6b7c6b60df98e7d50"
);
const expectedHash: Record<string, string> = {
darwin:
"cd6c095980b1cb8798e30d68887bbf79f19d2d538f00dbb6b7c6b60df98e7d50",
linux:
"f1ca0f031f4c23b9c554b1b94bd4d2fc07139bf9507e1e24af13c47e8e31bb46"
};
expect(pageHash).toBe(expectedHash[process.platform]);
});
});

Expand All @@ -130,9 +152,13 @@ describe("ComboBox", () => {
const pdf = await doc.save();
const pageHash = await PdfRenderingHelper.getPageHash(pdf, 1);

expect(pageHash).toBe(
"a447729efa22ef92102afac12fca8e9b0f2ab8e2b527eeb46c4f877676d4f53b"
);
const expectedHash: Record<string, string> = {
darwin:
"a447729efa22ef92102afac12fca8e9b0f2ab8e2b527eeb46c4f877676d4f53b",
linux:
"efe573b45af37f9cdcd86338dca63c67cb93b1d4a167da2d9f9907bc239fd53a"
};
expect(pageHash).toBe(expectedHash[process.platform]);
});

it("size", async () => {
Expand All @@ -145,9 +171,13 @@ describe("ComboBox", () => {
const pdf = await doc.save();
const pageHash = await PdfRenderingHelper.getPageHash(pdf, 1);

expect(pageHash).toBe(
"6eda94069ac586d521ed04d0126b09225e45b7bea1a55c02317a60339242a1cb"
);
const expectedHash: Record<string, string> = {
darwin:
"6eda94069ac586d521ed04d0126b09225e45b7bea1a55c02317a60339242a1cb",
linux:
"e7426738b5540fb9220d0c8706dba0abef85584e51a58fdebea2520c71a0c4fd"
};
expect(pageHash).toBe(expectedHash[process.platform]);
});
});

Expand All @@ -168,9 +198,13 @@ describe("ComboBox", () => {
const pdf = await doc.save();
const pageHash = await PdfRenderingHelper.getPageHash(pdf, 1);

expect(pageHash).toBe(
"118d6800dcfc221d6fd7b9c12076ed985643c85741555e83c0f7efdc0148291a"
);
const expectedHash: Record<string, string> = {
darwin:
"118d6800dcfc221d6fd7b9c12076ed985643c85741555e83c0f7efdc0148291a",
linux:
"16d09611906adb91362432ae3d4964616984fb9a9cec2ceca3979ef3ce4c8b14"
};
expect(pageHash).toBe(expectedHash[process.platform]);
});
});
});
Loading

0 comments on commit 9f09326

Please sign in to comment.