1
0
Fork 0
firefox/toolkit/components/pdfjs/test/browser_pdfjs_jpeg2000.js
Daniel Baumann 5e9a113729
Adding upstream version 140.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-25 09:37:52 +02:00

65 lines
1.7 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
const RELATIVE_DIR = "toolkit/components/pdfjs/test/";
const TESTROOT = "https://example.com/browser/" + RELATIVE_DIR;
/**
* Get the the pixels on the drawn canvas.
* @param {Object} browser
* @returns {Object}
*/
async function getPixels(browser) {
return SpecialPowers.spawn(browser, [], async function () {
const { document } = content;
const canvas = document.querySelector("canvas");
Assert.ok(!!canvas, "We must have a canvas");
return new Uint32Array(
canvas
.getContext("2d")
.getImageData(0, 0, canvas.width, canvas.height).data.buffer
);
});
}
async function test_jpeg2000(enableWasm) {
await SpecialPowers.pushPrefEnv({
set: [["javascript.options.wasm", enableWasm]],
});
await BrowserTestUtils.withNewTab(
{ gBrowser, url: "about:blank" },
async function (browser) {
// check that PDF is opened with internal viewer
await waitForPdfJSCanvas(
browser,
`${TESTROOT}file_pdfjs_jp2_image.pdf#zoom=100`
);
const data = await getPixels(browser);
if (data.every(x => x === 0xff0000ff)) {
Assert.ok(true, "All pixels are red");
} else {
const i = data.findIndex(x => x !== 0xff0000ff);
Assert.equal(
data[i],
0xff0000ff,
`The pixel at index ${i} must be red`
);
}
await waitForPdfJSClose(browser);
}
);
await SpecialPowers.popPrefEnv();
}
add_task(async function test_wasm_enabled() {
await test_jpeg2000(true);
});
add_task(async function test_wasm_disabled() {
await test_jpeg2000(false);
});