From f2fb3b95ce8daf58663a2c7209461932b0026345 Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Mon, 4 Nov 2024 14:09:34 +0100 Subject: [PATCH] Add helper functions to load image blob/bitmap data in `test/unit/api_spec.js` This avoids repeating the same code multiple times, and as part of the changes we'll also utilize existing PDF.js helpers more. --- test/unit/api_spec.js | 68 ++++++++++++++----------------------------- 1 file changed, 22 insertions(+), 46 deletions(-) diff --git a/test/unit/api_spec.js b/test/unit/api_spec.js index bb78c9c32b31d..fb0d6064b8668 100644 --- a/test/unit/api_spec.js +++ b/test/unit/api_spec.js @@ -46,6 +46,7 @@ import { RenderTask, } from "../../src/display/api.js"; import { + fetchData as fetchDataDOM, PageViewport, RenderingCancelledException, StatTimer, @@ -117,6 +118,21 @@ describe("api", function () { return node; } + async function getImageBlob(filename) { + if (isNodeJS) { + throw new Error("Not implemented."); + } + const TEST_IMAGES_PATH = "../images/"; + const url = new URL(TEST_IMAGES_PATH + filename, window.location).href; + + return fetchDataDOM(url, /* type = */ "blob"); + } + + async function getImageBitmap(filename) { + const blob = await getImageBlob(filename); + return createImageBitmap(blob); + } + describe("getDocument", function () { it("creates pdf doc from URL-string", async function () { const urlStr = TEST_PDFS_PATH + basicApiFileName; @@ -2472,14 +2488,7 @@ describe("api", function () { if (isNodeJS) { pending("Cannot create a bitmap from Node.js."); } - - const TEST_IMAGES_PATH = "../images/"; - const filename = "firefox_logo.png"; - const path = new URL(TEST_IMAGES_PATH + filename, window.location).href; - - const response = await fetch(path); - const blob = await response.blob(); - const bitmap = await createImageBitmap(blob); + const bitmap = await getImageBitmap("firefox_logo.png"); let loadingTask = getDocument(buildGetDocumentParams("empty.pdf")); let pdfDoc = await loadingTask.promise; @@ -2524,14 +2533,7 @@ describe("api", function () { if (isNodeJS) { pending("Cannot create a bitmap from Node.js."); } - - const TEST_IMAGES_PATH = "../images/"; - const filename = "firefox_logo.png"; - const path = new URL(TEST_IMAGES_PATH + filename, window.location).href; - - const response = await fetch(path); - const blob = await response.blob(); - const bitmap = await createImageBitmap(blob); + const bitmap = await getImageBitmap("firefox_logo.png"); let loadingTask = getDocument(buildGetDocumentParams("bug1823296.pdf")); let pdfDoc = await loadingTask.promise; @@ -2636,14 +2638,7 @@ describe("api", function () { if (isNodeJS) { pending("Cannot create a bitmap from Node.js."); } - - const TEST_IMAGES_PATH = "../images/"; - const filename = "firefox_logo.png"; - const path = new URL(TEST_IMAGES_PATH + filename, window.location).href; - - const response = await fetch(path); - const blob = await response.blob(); - const bitmap = await createImageBitmap(blob); + const bitmap = await getImageBitmap("firefox_logo.png"); let loadingTask = getDocument( buildGetDocumentParams("pdfjs_wikipedia.pdf") @@ -2734,13 +2729,8 @@ describe("api", function () { if (isNodeJS) { pending("Cannot create a bitmap from Node.js."); } + const blob = await getImageBlob("firefox_logo.png"); - const TEST_IMAGES_PATH = "../images/"; - const filename = "firefox_logo.png"; - const path = new URL(TEST_IMAGES_PATH + filename, window.location).href; - - const response = await fetch(path); - const blob = await response.blob(); let loadingTask, pdfDoc; let data = buildGetDocumentParams("empty.pdf"); @@ -2804,14 +2794,7 @@ describe("api", function () { if (isNodeJS) { pending("Cannot create a bitmap from Node.js."); } - - const TEST_IMAGES_PATH = "../images/"; - const filename = "firefox_logo.png"; - const path = new URL(TEST_IMAGES_PATH + filename, window.location).href; - - const response = await fetch(path); - const blob = await response.blob(); - const bitmap = await createImageBitmap(blob); + const bitmap = await getImageBitmap("firefox_logo.png"); let loadingTask = getDocument(buildGetDocumentParams("empty.pdf")); let pdfDoc = await loadingTask.promise; @@ -2860,14 +2843,7 @@ describe("api", function () { if (isNodeJS) { pending("Cannot create a bitmap from Node.js."); } - - const TEST_IMAGES_PATH = "../images/"; - const filename = "firefox_logo.png"; - const path = new URL(TEST_IMAGES_PATH + filename, window.location).href; - - const response = await fetch(path); - const blob = await response.blob(); - const bitmap = await createImageBitmap(blob); + const bitmap = await getImageBitmap("firefox_logo.png"); let loadingTask = getDocument(buildGetDocumentParams("empty.pdf")); let pdfDoc = await loadingTask.promise;