Some checks failed
Types tests / Test (lts/*) (push) Has been cancelled
Lint / Lint (lts/*) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
CI / Test (20) (push) Has been cancelled
CI / Test (22) (push) Has been cancelled
CI / Test (24) (push) Has been cancelled
98 lines
2.8 KiB
JavaScript
98 lines
2.8 KiB
JavaScript
/* Copyright 2024 Mozilla Foundation
|
||
*
|
||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||
* you may not use this file except in compliance with the License.
|
||
* You may obtain a copy of the License at
|
||
*
|
||
* http://www.apache.org/licenses/LICENSE-2.0
|
||
*
|
||
* Unless required by applicable law or agreed to in writing, software
|
||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
* See the License for the specific language governing permissions and
|
||
* limitations under the License.
|
||
*/
|
||
|
||
import { closePages, FSI, loadAndWait, PDI } from "./test_utils.mjs";
|
||
|
||
const FIELDS = [
|
||
"fileName",
|
||
"fileSize",
|
||
"title",
|
||
"author",
|
||
"subject",
|
||
"keywords",
|
||
"creationDate",
|
||
"modificationDate",
|
||
"creator",
|
||
"producer",
|
||
"version",
|
||
"pageCount",
|
||
"pageSize",
|
||
"linearized",
|
||
];
|
||
|
||
describe("PDFDocumentProperties", () => {
|
||
async function getFieldProperties(page) {
|
||
const promises = [];
|
||
|
||
for (const name of FIELDS) {
|
||
promises.push(
|
||
page.evaluate(
|
||
n => [n, document.getElementById(`${n}Field`).textContent],
|
||
name
|
||
)
|
||
);
|
||
}
|
||
return Object.fromEntries(await Promise.all(promises));
|
||
}
|
||
|
||
describe("Document with both /Info and /Metadata", () => {
|
||
let pages;
|
||
|
||
beforeEach(async () => {
|
||
pages = await loadAndWait("basicapi.pdf", ".textLayer .endOfContent");
|
||
});
|
||
|
||
afterEach(async () => {
|
||
await closePages(pages);
|
||
});
|
||
|
||
it("must check that the document properties dialog has the correct information", async () => {
|
||
await Promise.all(
|
||
pages.map(async ([browserName, page]) => {
|
||
await page.click("#secondaryToolbarToggleButton");
|
||
await page.waitForSelector("#secondaryToolbar", { hidden: false });
|
||
|
||
await page.click("#documentProperties");
|
||
await page.waitForSelector("#documentPropertiesDialog", {
|
||
hidden: false,
|
||
});
|
||
|
||
await page.waitForFunction(
|
||
`document.getElementById("fileSizeField").textContent !== "-"`
|
||
);
|
||
const props = await getFieldProperties(page);
|
||
|
||
expect(props).toEqual({
|
||
fileName: "basicapi.pdf",
|
||
fileSize: `${FSI}103${PDI} KB (${FSI}105,779${PDI} bytes)`,
|
||
title: "Basic API Test",
|
||
author: "Brendan Dahl",
|
||
subject: "-",
|
||
keywords: "TCPDF",
|
||
creationDate: "4/10/12, 7:30:26 AM",
|
||
modificationDate: "4/10/12, 7:30:26 AM",
|
||
creator: "TCPDF",
|
||
producer: "TCPDF 5.9.133 (http://www.tcpdf.org)",
|
||
version: "1.7",
|
||
pageCount: "3",
|
||
pageSize: `${FSI}8.27${PDI} × ${FSI}11.69${PDI} ${FSI}in${PDI} (${FSI}A4${PDI}, ${FSI}portrait${PDI})`,
|
||
linearized: "No",
|
||
});
|
||
})
|
||
);
|
||
});
|
||
});
|
||
});
|