mirror of
https://github.com/mozilla/pdf.js.git
synced 2026-02-08 00:21:11 +01:00
84 lines
2.4 KiB
JavaScript
84 lines
2.4 KiB
JavaScript
import { awaitPromise, closePages, loadAndWait } from "./test_utils.mjs";
|
|
|
|
describe("PDF Thumbnail View", () => {
|
|
describe("Works without errors", () => {
|
|
let pages;
|
|
|
|
beforeEach(async () => {
|
|
pages = await loadAndWait("tracemonkey.pdf", "#sidebarToggleButton");
|
|
});
|
|
|
|
afterEach(async () => {
|
|
await closePages(pages);
|
|
});
|
|
|
|
it("should render thumbnails without errors", async () => {
|
|
await Promise.all(
|
|
pages.map(async ([browserName, page]) => {
|
|
await page.click("#sidebarToggleButton");
|
|
|
|
const thumbSelector = "#thumbnailView .thumbnailImage";
|
|
await page.waitForSelector(thumbSelector, { visible: true });
|
|
|
|
await page.waitForSelector(
|
|
"#thumbnailView .thumbnail:not(.missingThumbnailImage)"
|
|
);
|
|
|
|
const src = await page.$eval(thumbSelector, el => el.src);
|
|
expect(src)
|
|
.withContext(`In ${browserName}`)
|
|
.toMatch(/^blob:http:/);
|
|
})
|
|
);
|
|
});
|
|
});
|
|
|
|
describe("The view is scrolled correctly", () => {
|
|
let pages;
|
|
|
|
beforeEach(async () => {
|
|
pages = await loadAndWait("tracemonkey.pdf", "#sidebarToggleButton");
|
|
});
|
|
|
|
afterEach(async () => {
|
|
await closePages(pages);
|
|
});
|
|
|
|
async function goToPage(page, number) {
|
|
const handle = await page.evaluateHandle(
|
|
num => [
|
|
new Promise(resolve => {
|
|
const container = document.getElementById("thumbnailView");
|
|
container.addEventListener("scrollend", resolve, { once: true });
|
|
// eslint-disable-next-line no-undef
|
|
PDFViewerApplication.pdfLinkService.goToPage(num);
|
|
}),
|
|
],
|
|
number
|
|
);
|
|
return awaitPromise(handle);
|
|
}
|
|
|
|
it("should scroll the view", async () => {
|
|
await Promise.all(
|
|
pages.map(async ([browserName, page]) => {
|
|
await page.click("#sidebarToggleButton");
|
|
|
|
for (const pageNum of [14, 1, 13, 2]) {
|
|
await goToPage(page, pageNum);
|
|
const thumbSelector = `.thumbnailImage[data-l10n-args='{"page":${pageNum}}']`;
|
|
await page.waitForSelector(
|
|
`.thumbnail:has(${thumbSelector}).selected`,
|
|
{ visible: true }
|
|
);
|
|
const src = await page.$eval(thumbSelector, el => el.src);
|
|
expect(src)
|
|
.withContext(`In ${browserName}`)
|
|
.toMatch(/^blob:http:/);
|
|
}
|
|
})
|
|
);
|
|
});
|
|
});
|
|
});
|