Convert the integration
test-files to JavaScript modules
This commit is contained in:
parent
33456d3704
commit
9878d058fe
@ -13,7 +13,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
const { closePages, loadAndWait } = require("./test_utils.js");
|
||||
import { closePages, loadAndWait } from "./test_utils.mjs";
|
||||
|
||||
describe("accessibility", () => {
|
||||
describe("structure tree", () => {
|
||||
|
@ -13,12 +13,12 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
const {
|
||||
import {
|
||||
closePages,
|
||||
getSelector,
|
||||
getQuerySelector,
|
||||
getSelector,
|
||||
loadAndWait,
|
||||
} = require("./test_utils.js");
|
||||
} from "./test_utils.mjs";
|
||||
|
||||
describe("Annotation highlight", () => {
|
||||
describe("annotation-highlight.pdf", () => {
|
||||
|
@ -13,13 +13,13 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
const {
|
||||
import {
|
||||
closePages,
|
||||
loadAndWait,
|
||||
mockClipboard,
|
||||
waitForEvent,
|
||||
waitForTextLayer,
|
||||
} = require("./test_utils.js");
|
||||
} from "./test_utils.mjs";
|
||||
|
||||
const selectAll = async page => {
|
||||
const promise = waitForEvent(page, "selectionchange");
|
||||
|
@ -13,7 +13,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
const { closePages, loadAndWait } = require("./test_utils.js");
|
||||
import { closePages, loadAndWait } from "./test_utils.mjs";
|
||||
|
||||
function fuzzyMatch(a, b, browserName, pixelFuzz = 3) {
|
||||
expect(a)
|
||||
|
@ -13,24 +13,23 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
const {
|
||||
import {
|
||||
closePages,
|
||||
dragAndDropAnnotation,
|
||||
getEditors,
|
||||
getEditorSelector,
|
||||
getSelectedEditors,
|
||||
getFirstSerialized,
|
||||
getSelectedEditors,
|
||||
getSerialized,
|
||||
loadAndWait,
|
||||
scrollIntoView,
|
||||
waitForEvent,
|
||||
waitForSelectedEditor,
|
||||
waitForUnselectedEditor,
|
||||
waitForSerialized,
|
||||
waitForStorageEntries,
|
||||
} = require("./test_utils.js");
|
||||
|
||||
const PNG = require("pngjs").PNG;
|
||||
waitForUnselectedEditor,
|
||||
} from "./test_utils.mjs";
|
||||
import { PNG } from "pngjs";
|
||||
|
||||
const copyPaste = async page => {
|
||||
let promise = waitForEvent(page, "copy");
|
||||
|
@ -13,12 +13,12 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
const {
|
||||
import {
|
||||
closePages,
|
||||
getSelectedEditors,
|
||||
loadAndWait,
|
||||
waitForStorageEntries,
|
||||
} = require("./test_utils.js");
|
||||
} from "./test_utils.mjs";
|
||||
|
||||
const waitForPointerUp = page =>
|
||||
page.evaluate(
|
||||
|
@ -13,16 +13,16 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
const {
|
||||
import {
|
||||
clearInput,
|
||||
closePages,
|
||||
getSelector,
|
||||
getQuerySelector,
|
||||
getComputedStyleSelector,
|
||||
loadAndWait,
|
||||
getFirstSerialized,
|
||||
getQuerySelector,
|
||||
getSelector,
|
||||
loadAndWait,
|
||||
scrollIntoView,
|
||||
} = require("./test_utils.js");
|
||||
} from "./test_utils.mjs";
|
||||
|
||||
describe("Interaction", () => {
|
||||
async function actAndWaitForInput(page, selector, action, clear = true) {
|
||||
|
@ -13,7 +13,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
const {
|
||||
import {
|
||||
closePages,
|
||||
getEditorDimensions,
|
||||
getEditorSelector,
|
||||
@ -21,11 +21,14 @@ const {
|
||||
loadAndWait,
|
||||
serializeBitmapDimensions,
|
||||
waitForAnnotationEditorLayer,
|
||||
waitForStorageEntries,
|
||||
waitForSelectedEditor,
|
||||
} = require("./test_utils.js");
|
||||
const path = require("path");
|
||||
const fs = require("fs");
|
||||
waitForStorageEntries,
|
||||
} from "./test_utils.mjs";
|
||||
import { fileURLToPath } from "url";
|
||||
import fs from "fs";
|
||||
import path from "path";
|
||||
|
||||
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
||||
|
||||
const selectAll = async page => {
|
||||
await page.keyboard.down("Control");
|
||||
|
@ -13,8 +13,8 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
exports.loadAndWait = (filename, selector, zoom, pageSetup) =>
|
||||
Promise.all(
|
||||
function loadAndWait(filename, selector, zoom, pageSetup) {
|
||||
return Promise.all(
|
||||
global.integrationSessions.map(async session => {
|
||||
const page = await session.browser.newPage();
|
||||
|
||||
@ -49,40 +49,42 @@ exports.loadAndWait = (filename, selector, zoom, pageSetup) =>
|
||||
return [session.name, page];
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
exports.closePages = pages =>
|
||||
Promise.all(
|
||||
function closePages(pages) {
|
||||
return Promise.all(
|
||||
pages.map(async ([_, page]) => {
|
||||
// Avoid to keep something from a previous test.
|
||||
await page.evaluate(() => window.localStorage.clear());
|
||||
await page.close();
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
exports.clearInput = async (page, selector) => {
|
||||
async function clearInput(page, selector) {
|
||||
await page.click(selector);
|
||||
await page.keyboard.down("Control");
|
||||
await page.keyboard.press("A");
|
||||
await page.keyboard.up("Control");
|
||||
await page.keyboard.press("Backspace");
|
||||
await page.waitForTimeout(10);
|
||||
};
|
||||
}
|
||||
|
||||
function getSelector(id) {
|
||||
return `[data-element-id="${id}"]`;
|
||||
}
|
||||
exports.getSelector = getSelector;
|
||||
|
||||
function getQuerySelector(id) {
|
||||
return `document.querySelector('${getSelector(id)}')`;
|
||||
}
|
||||
exports.getQuerySelector = getQuerySelector;
|
||||
|
||||
function getComputedStyleSelector(id) {
|
||||
return `getComputedStyle(${getQuerySelector(id)})`;
|
||||
}
|
||||
exports.getComputedStyleSelector = getComputedStyleSelector;
|
||||
exports.getEditorSelector = n => `#pdfjs_internal_editor_${n}`;
|
||||
|
||||
function getEditorSelector(n) {
|
||||
return `#pdfjs_internal_editor_${n}`;
|
||||
}
|
||||
|
||||
function getSelectedEditors(page) {
|
||||
return page.evaluate(() => {
|
||||
@ -95,7 +97,6 @@ function getSelectedEditors(page) {
|
||||
return results;
|
||||
});
|
||||
}
|
||||
exports.getSelectedEditors = getSelectedEditors;
|
||||
|
||||
async function waitForEvent(page, eventName, timeout = 5000) {
|
||||
const hasTimedout = await Promise.race([
|
||||
@ -119,40 +120,35 @@ async function waitForEvent(page, eventName, timeout = 5000) {
|
||||
console.log(`waitForEvent: timeout waiting for ${eventName}`);
|
||||
}
|
||||
}
|
||||
exports.waitForEvent = waitForEvent;
|
||||
|
||||
const waitForStorageEntries = async (page, nEntries) => {
|
||||
await page.waitForFunction(
|
||||
async function waitForStorageEntries(page, nEntries) {
|
||||
return page.waitForFunction(
|
||||
n => window.PDFViewerApplication.pdfDocument.annotationStorage.size === n,
|
||||
{},
|
||||
nEntries
|
||||
);
|
||||
};
|
||||
exports.waitForStorageEntries = waitForStorageEntries;
|
||||
}
|
||||
|
||||
const waitForSerialized = async (page, nEntries) => {
|
||||
await page.waitForFunction(
|
||||
async function waitForSerialized(page, nEntries) {
|
||||
return page.waitForFunction(
|
||||
n =>
|
||||
(window.PDFViewerApplication.pdfDocument.annotationStorage.serializable
|
||||
.map?.size ?? 0) === n,
|
||||
{},
|
||||
nEntries
|
||||
);
|
||||
};
|
||||
exports.waitForSerialized = waitForSerialized;
|
||||
}
|
||||
|
||||
const waitForSelectedEditor = async (page, selector) => {
|
||||
await page.waitForSelector(`${selector}.selectedEditor`);
|
||||
};
|
||||
exports.waitForSelectedEditor = waitForSelectedEditor;
|
||||
async function waitForSelectedEditor(page, selector) {
|
||||
return page.waitForSelector(`${selector}.selectedEditor`);
|
||||
}
|
||||
|
||||
const waitForUnselectedEditor = async (page, selector) => {
|
||||
await page.waitForSelector(`${selector}:not(.selectedEditor)`);
|
||||
};
|
||||
exports.waitForUnselectedEditor = waitForUnselectedEditor;
|
||||
async function waitForUnselectedEditor(page, selector) {
|
||||
return page.waitForSelector(`${selector}:not(.selectedEditor)`);
|
||||
}
|
||||
|
||||
const mockClipboard = async pages => {
|
||||
await Promise.all(
|
||||
async function mockClipboard(pages) {
|
||||
return Promise.all(
|
||||
pages.map(async ([_, page]) => {
|
||||
await page.evaluate(() => {
|
||||
let data = null;
|
||||
@ -164,8 +160,7 @@ const mockClipboard = async pages => {
|
||||
});
|
||||
})
|
||||
);
|
||||
};
|
||||
exports.mockClipboard = mockClipboard;
|
||||
}
|
||||
|
||||
async function getSerialized(page, filter = undefined) {
|
||||
const values = await page.evaluate(() => {
|
||||
@ -175,11 +170,10 @@ async function getSerialized(page, filter = undefined) {
|
||||
});
|
||||
return filter ? values.map(filter) : values;
|
||||
}
|
||||
exports.getSerialized = getSerialized;
|
||||
|
||||
const getFirstSerialized = async (page, filter = undefined) =>
|
||||
(await getSerialized(page, filter))[0];
|
||||
exports.getFirstSerialized = getFirstSerialized;
|
||||
async function getFirstSerialized(page, filter = undefined) {
|
||||
return (await getSerialized(page, filter))[0];
|
||||
}
|
||||
|
||||
function getEditors(page, kind) {
|
||||
return page.evaluate(aKind => {
|
||||
@ -191,7 +185,6 @@ function getEditors(page, kind) {
|
||||
return results;
|
||||
}, kind);
|
||||
}
|
||||
exports.getEditors = getEditors;
|
||||
|
||||
function getEditorDimensions(page, id) {
|
||||
return page.evaluate(n => {
|
||||
@ -205,7 +198,6 @@ function getEditorDimensions(page, id) {
|
||||
};
|
||||
}, id);
|
||||
}
|
||||
exports.getEditorDimensions = getEditorDimensions;
|
||||
|
||||
async function serializeBitmapDimensions(page) {
|
||||
await page.waitForFunction(() => {
|
||||
@ -229,7 +221,6 @@ async function serializeBitmapDimensions(page) {
|
||||
: [];
|
||||
});
|
||||
}
|
||||
exports.serializeBitmapDimensions = serializeBitmapDimensions;
|
||||
|
||||
async function dragAndDropAnnotation(page, startX, startY, tX, tY) {
|
||||
await page.mouse.move(startX, startY);
|
||||
@ -239,7 +230,6 @@ async function dragAndDropAnnotation(page, startX, startY, tX, tY) {
|
||||
await page.mouse.up();
|
||||
await page.waitForSelector("#viewer:not(.noUserSelect)");
|
||||
}
|
||||
exports.dragAndDropAnnotation = dragAndDropAnnotation;
|
||||
|
||||
async function waitForAnnotationEditorLayer(page) {
|
||||
return page.evaluate(() => {
|
||||
@ -251,7 +241,6 @@ async function waitForAnnotationEditorLayer(page) {
|
||||
});
|
||||
});
|
||||
}
|
||||
exports.waitForAnnotationEditorLayer = waitForAnnotationEditorLayer;
|
||||
|
||||
async function waitForTextLayer(page) {
|
||||
return page.evaluate(() => {
|
||||
@ -260,7 +249,6 @@ async function waitForTextLayer(page) {
|
||||
});
|
||||
});
|
||||
}
|
||||
exports.waitForTextLayer = waitForTextLayer;
|
||||
|
||||
async function scrollIntoView(page, selector) {
|
||||
const promise = page.evaluate(
|
||||
@ -296,4 +284,29 @@ async function scrollIntoView(page, selector) {
|
||||
selector
|
||||
);
|
||||
}
|
||||
exports.scrollIntoView = scrollIntoView;
|
||||
|
||||
export {
|
||||
clearInput,
|
||||
closePages,
|
||||
dragAndDropAnnotation,
|
||||
getComputedStyleSelector,
|
||||
getEditorDimensions,
|
||||
getEditors,
|
||||
getEditorSelector,
|
||||
getFirstSerialized,
|
||||
getQuerySelector,
|
||||
getSelectedEditors,
|
||||
getSelector,
|
||||
getSerialized,
|
||||
loadAndWait,
|
||||
mockClipboard,
|
||||
scrollIntoView,
|
||||
serializeBitmapDimensions,
|
||||
waitForAnnotationEditorLayer,
|
||||
waitForEvent,
|
||||
waitForSelectedEditor,
|
||||
waitForSerialized,
|
||||
waitForStorageEntries,
|
||||
waitForTextLayer,
|
||||
waitForUnselectedEditor,
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user