Merge pull request #12532 from Snuffleupagus/refactor-font-tests
Modernize, and remove SystemJS usage from, the font-tests
This commit is contained in:
commit
8098102714
@ -13,5 +13,4 @@ test/tmp/
|
|||||||
test/features/
|
test/features/
|
||||||
test/pdfs/
|
test/pdfs/
|
||||||
test/resources/
|
test/resources/
|
||||||
test/font/*_spec.js
|
|
||||||
*~/
|
*~/
|
||||||
|
10
test/font/.eslintrc
Normal file
10
test/font/.eslintrc
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"extends": [
|
||||||
|
"../.eslintrc"
|
||||||
|
],
|
||||||
|
|
||||||
|
"rules": {
|
||||||
|
// ECMAScript 6
|
||||||
|
"no-var": "error",
|
||||||
|
},
|
||||||
|
}
|
@ -1,10 +1,14 @@
|
|||||||
'use strict';
|
import { decodeFontData, ttx, verifyTtxOutput } from "./fontutils.js";
|
||||||
|
|
||||||
describe('font1', function() {
|
describe("font1", function () {
|
||||||
var font1_1 = decodeFontData('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');
|
const font1_1 = decodeFontData(
|
||||||
describe('test harness testing', function() {
|
// eslint-disable-next-line max-len
|
||||||
it('returns output', function(done) {
|
"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"
|
||||||
ttx(font1_1, function(output) {
|
);
|
||||||
|
|
||||||
|
describe("test harness testing", function () {
|
||||||
|
it("returns output", function (done) {
|
||||||
|
ttx(font1_1, function (output) {
|
||||||
verifyTtxOutput(output);
|
verifyTtxOutput(output);
|
||||||
expect(/<ttFont /.test(output)).toEqual(true);
|
expect(/<ttFont /.test(output)).toEqual(true);
|
||||||
expect(/<\/ttFont>/.test(output)).toEqual(true);
|
expect(/<\/ttFont>/.test(output)).toEqual(true);
|
||||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -5,20 +5,22 @@
|
|||||||
|
|
||||||
<link rel="stylesheet" type="text/css" href="../../node_modules/jasmine-core/lib/jasmine-core/jasmine.css">
|
<link rel="stylesheet" type="text/css" href="../../node_modules/jasmine-core/lib/jasmine-core/jasmine.css">
|
||||||
|
|
||||||
<script src="../../node_modules/systemjs/dist/system.js"></script>
|
|
||||||
<script src="../../systemjs.config.js"></script>
|
|
||||||
<script src="../../node_modules/jasmine-core/lib/jasmine-core/jasmine.js"></script>
|
<script src="../../node_modules/jasmine-core/lib/jasmine-core/jasmine.js"></script>
|
||||||
<script src="../../node_modules/jasmine-core/lib/jasmine-core/jasmine-html.js"></script>
|
<script src="../../node_modules/jasmine-core/lib/jasmine-core/jasmine-html.js"></script>
|
||||||
<script src="../unit/testreporter.js"></script>
|
<script src="../unit/testreporter.js"></script>
|
||||||
<script src="jasmine-boot.js"></script>
|
|
||||||
|
|
||||||
<script src="fontutils.js"></script>
|
<script defer src="../../node_modules/es-module-shims/dist/es-module-shims.js"></script>
|
||||||
|
<script type="importmap-shim">
|
||||||
<!-- include spec files here... -->
|
{
|
||||||
<script src="font_core_spec.js"></script>
|
"imports": {
|
||||||
<script src="font_os2_spec.js"></script>
|
"pdfjs/": "../../src/",
|
||||||
<script src="font_post_spec.js"></script>
|
"pdfjs-lib": "../../src/pdf.js",
|
||||||
<script src="font_fpgm_spec.js"></script>
|
"pdfjs-web/": "../../web/",
|
||||||
|
"pdfjs-test/": "../"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<script src="jasmine-boot.js" type="module-shim"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
</body>
|
</body>
|
||||||
|
@ -14,23 +14,20 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
"use strict";
|
const base64alphabet =
|
||||||
|
|
||||||
var base64alphabet =
|
|
||||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
|
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
|
||||||
|
|
||||||
// eslint-disable-next-line no-unused-vars
|
|
||||||
function decodeFontData(base64) {
|
function decodeFontData(base64) {
|
||||||
var result = [];
|
const result = [];
|
||||||
|
|
||||||
var bits = 0,
|
let bits = 0,
|
||||||
bitsLength = 0;
|
bitsLength = 0;
|
||||||
for (var i = 0, ii = base64.length; i < ii; i++) {
|
for (let i = 0, ii = base64.length; i < ii; i++) {
|
||||||
var ch = base64[i];
|
const ch = base64[i];
|
||||||
if (ch <= " ") {
|
if (ch <= " ") {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
var index = base64alphabet.indexOf(ch);
|
const index = base64alphabet.indexOf(ch);
|
||||||
if (index < 0) {
|
if (index < 0) {
|
||||||
throw new Error("Invalid character");
|
throw new Error("Invalid character");
|
||||||
}
|
}
|
||||||
@ -41,7 +38,7 @@ function decodeFontData(base64) {
|
|||||||
bitsLength += 6;
|
bitsLength += 6;
|
||||||
if (bitsLength >= 8) {
|
if (bitsLength >= 8) {
|
||||||
bitsLength -= 8;
|
bitsLength -= 8;
|
||||||
var code = (bits >> bitsLength) & 0xff;
|
const code = (bits >> bitsLength) & 0xff;
|
||||||
result.push(code);
|
result.push(code);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -49,16 +46,16 @@ function decodeFontData(base64) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function encodeFontData(data) {
|
function encodeFontData(data) {
|
||||||
var buffer = "";
|
let buffer = "";
|
||||||
var i, n;
|
let i, n;
|
||||||
for (i = 0, n = data.length; i < n; i += 3) {
|
for (i = 0, n = data.length; i < n; i += 3) {
|
||||||
var b1 = data[i] & 0xff;
|
const b1 = data[i] & 0xff;
|
||||||
var b2 = data[i + 1] & 0xff;
|
const b2 = data[i + 1] & 0xff;
|
||||||
var b3 = data[i + 2] & 0xff;
|
const b3 = data[i + 2] & 0xff;
|
||||||
var d1 = b1 >> 2,
|
const d1 = b1 >> 2,
|
||||||
d2 = ((b1 & 3) << 4) | (b2 >> 4);
|
d2 = ((b1 & 3) << 4) | (b2 >> 4);
|
||||||
var d3 = i + 1 < n ? ((b2 & 0xf) << 2) | (b3 >> 6) : 64;
|
const d3 = i + 1 < n ? ((b2 & 0xf) << 2) | (b3 >> 6) : 64;
|
||||||
var d4 = i + 2 < n ? b3 & 0x3f : 64;
|
const d4 = i + 2 < n ? b3 & 0x3f : 64;
|
||||||
buffer +=
|
buffer +=
|
||||||
base64alphabet.charAt(d1) +
|
base64alphabet.charAt(d1) +
|
||||||
base64alphabet.charAt(d2) +
|
base64alphabet.charAt(d2) +
|
||||||
@ -68,12 +65,11 @@ function encodeFontData(data) {
|
|||||||
return buffer;
|
return buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
// eslint-disable-next-line no-unused-vars
|
|
||||||
function ttx(data, callback) {
|
function ttx(data, callback) {
|
||||||
var xhr = new XMLHttpRequest();
|
const xhr = new XMLHttpRequest();
|
||||||
xhr.open("POST", "/ttx");
|
xhr.open("POST", "/ttx");
|
||||||
|
|
||||||
var encodedData = encodeFontData(data);
|
const encodedData = encodeFontData(data);
|
||||||
xhr.setRequestHeader("Content-type", "text/plain");
|
xhr.setRequestHeader("Content-type", "text/plain");
|
||||||
xhr.setRequestHeader("Content-length", encodedData.length);
|
xhr.setRequestHeader("Content-length", encodedData.length);
|
||||||
|
|
||||||
@ -89,10 +85,11 @@ function ttx(data, callback) {
|
|||||||
xhr.send(encodedData);
|
xhr.send(encodedData);
|
||||||
}
|
}
|
||||||
|
|
||||||
// eslint-disable-next-line no-unused-vars
|
|
||||||
function verifyTtxOutput(output) {
|
function verifyTtxOutput(output) {
|
||||||
var m = /^<error>(.*?)<\/error>/.exec(output);
|
const m = /^<error>(.*?)<\/error>/.exec(output);
|
||||||
if (m) {
|
if (m) {
|
||||||
throw m[1];
|
throw m[1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export { decodeFontData, encodeFontData, ttx, verifyTtxOutput };
|
||||||
|
@ -40,26 +40,20 @@
|
|||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
function initializePDFJS(callback) {
|
async function initializePDFJS(callback) {
|
||||||
Promise.all([
|
await Promise.all(
|
||||||
SystemJS.import("pdfjs/core/fonts.js"),
|
[
|
||||||
SystemJS.import("pdfjs/core/stream.js"),
|
"pdfjs-test/font/font_core_spec.js",
|
||||||
SystemJS.import("pdfjs/core/primitives.js"),
|
"pdfjs-test/font/font_os2_spec.js",
|
||||||
SystemJS.import("pdfjs/core/cmap.js"),
|
"pdfjs-test/font/font_post_spec.js",
|
||||||
]).then(function (modules) {
|
"pdfjs-test/font/font_fpgm_spec.js",
|
||||||
var fonts = modules[0],
|
].map(function (moduleName) {
|
||||||
stream = modules[1],
|
// eslint-disable-next-line no-unsanitized/method
|
||||||
primitives = modules[2],
|
return import(moduleName);
|
||||||
cmap = modules[3];
|
})
|
||||||
// Expose some of the PDFJS members to global scope for tests.
|
);
|
||||||
window.Font = fonts.Font;
|
|
||||||
window.ToUnicodeMap = fonts.ToUnicodeMap;
|
|
||||||
window.Stream = stream.Stream;
|
|
||||||
window.Name = primitives.Name;
|
|
||||||
window.CMapFactory = cmap.CMapFactory;
|
|
||||||
|
|
||||||
callback();
|
callback();
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
(function () {
|
(function () {
|
||||||
@ -67,36 +61,36 @@ function initializePDFJS(callback) {
|
|||||||
|
|
||||||
jasmineRequire.html(jasmine);
|
jasmineRequire.html(jasmine);
|
||||||
|
|
||||||
var env = jasmine.getEnv();
|
const env = jasmine.getEnv();
|
||||||
|
|
||||||
var jasmineInterface = jasmineRequire.interface(jasmine, env);
|
const jasmineInterface = jasmineRequire.interface(jasmine, env);
|
||||||
extend(window, jasmineInterface);
|
extend(window, jasmineInterface);
|
||||||
|
|
||||||
// Runner Parameters
|
// Runner Parameters
|
||||||
var queryString = new jasmine.QueryString({
|
const queryString = new jasmine.QueryString({
|
||||||
getWindowLocation() {
|
getWindowLocation() {
|
||||||
return window.location;
|
return window.location;
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
var config = {
|
const config = {
|
||||||
failFast: queryString.getParam("failFast"),
|
failFast: queryString.getParam("failFast"),
|
||||||
oneFailurePerSpec: queryString.getParam("oneFailurePerSpec"),
|
oneFailurePerSpec: queryString.getParam("oneFailurePerSpec"),
|
||||||
hideDisabled: queryString.getParam("hideDisabled"),
|
hideDisabled: queryString.getParam("hideDisabled"),
|
||||||
};
|
};
|
||||||
|
|
||||||
var random = queryString.getParam("random");
|
const random = queryString.getParam("random");
|
||||||
if (random !== undefined && random !== "") {
|
if (random !== undefined && random !== "") {
|
||||||
config.random = random;
|
config.random = random;
|
||||||
}
|
}
|
||||||
|
|
||||||
var seed = queryString.getParam("seed");
|
const seed = queryString.getParam("seed");
|
||||||
if (seed) {
|
if (seed) {
|
||||||
config.seed = seed;
|
config.seed = seed;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reporters
|
// Reporters
|
||||||
var htmlReporter = new jasmine.HtmlReporter({
|
const htmlReporter = new jasmine.HtmlReporter({
|
||||||
env,
|
env,
|
||||||
navigateWithNewParam(key, value) {
|
navigateWithNewParam(key, value) {
|
||||||
return queryString.navigateWithNewParam(key, value);
|
return queryString.navigateWithNewParam(key, value);
|
||||||
@ -119,13 +113,13 @@ function initializePDFJS(callback) {
|
|||||||
env.addReporter(htmlReporter);
|
env.addReporter(htmlReporter);
|
||||||
|
|
||||||
if (queryString.getParam("browser")) {
|
if (queryString.getParam("browser")) {
|
||||||
var testReporter = new TestReporter(queryString.getParam("browser"));
|
const testReporter = new TestReporter(queryString.getParam("browser"));
|
||||||
env.addReporter(testReporter);
|
env.addReporter(testReporter);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Filter which specs will be run by matching the start of the full name
|
// Filter which specs will be run by matching the start of the full name
|
||||||
// against the `spec` query param.
|
// against the `spec` query param.
|
||||||
var specFilter = new jasmine.HtmlSpecFilter({
|
const specFilter = new jasmine.HtmlSpecFilter({
|
||||||
filterString() {
|
filterString() {
|
||||||
return queryString.getParam("spec");
|
return queryString.getParam("spec");
|
||||||
},
|
},
|
||||||
@ -140,26 +134,26 @@ function initializePDFJS(callback) {
|
|||||||
// Sets longer timeout.
|
// Sets longer timeout.
|
||||||
jasmine.DEFAULT_TIMEOUT_INTERVAL = 30000;
|
jasmine.DEFAULT_TIMEOUT_INTERVAL = 30000;
|
||||||
|
|
||||||
// Replace the browser window's `onload`, ensure it's called, and then run
|
|
||||||
// all of the loaded specs. This includes initializing the `HtmlReporter`
|
|
||||||
// instance and then executing the loaded Jasmine environment.
|
|
||||||
var currentWindowOnload = window.onload;
|
|
||||||
|
|
||||||
window.onload = function () {
|
|
||||||
if (currentWindowOnload) {
|
|
||||||
currentWindowOnload();
|
|
||||||
}
|
|
||||||
|
|
||||||
initializePDFJS(function () {
|
|
||||||
htmlReporter.initialize();
|
|
||||||
env.execute();
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
function extend(destination, source) {
|
function extend(destination, source) {
|
||||||
for (var property in source) {
|
for (const property in source) {
|
||||||
destination[property] = source[property];
|
destination[property] = source[property];
|
||||||
}
|
}
|
||||||
return destination;
|
return destination;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function fontTestInit() {
|
||||||
|
initializePDFJS(function () {
|
||||||
|
htmlReporter.initialize();
|
||||||
|
env.execute();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
document.readyState === "interactive" ||
|
||||||
|
document.readyState === "complete"
|
||||||
|
) {
|
||||||
|
fontTestInit();
|
||||||
|
} else {
|
||||||
|
document.addEventListener("DOMContentLoaded", fontTestInit, true);
|
||||||
|
}
|
||||||
})();
|
})();
|
||||||
|
@ -16,34 +16,34 @@
|
|||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
var fs = require("fs");
|
const fs = require("fs");
|
||||||
var path = require("path");
|
const path = require("path");
|
||||||
var spawn = require("child_process").spawn;
|
const spawn = require("child_process").spawn;
|
||||||
|
|
||||||
var ttxResourcesHome = path.join(__dirname, "..", "ttx");
|
const ttxResourcesHome = path.join(__dirname, "..", "ttx");
|
||||||
|
|
||||||
var nextTTXTaskId = Date.now();
|
let nextTTXTaskId = Date.now();
|
||||||
|
|
||||||
function runTtx(ttxResourcesHomePath, fontPath, registerOnCancel, callback) {
|
function runTtx(ttxResourcesHomePath, fontPath, registerOnCancel, callback) {
|
||||||
fs.realpath(ttxResourcesHomePath, function (error, realTtxResourcesHomePath) {
|
fs.realpath(ttxResourcesHomePath, function (error, realTtxResourcesHomePath) {
|
||||||
var fontToolsHome = path.join(realTtxResourcesHomePath, "fonttools-code");
|
const fontToolsHome = path.join(realTtxResourcesHomePath, "fonttools-code");
|
||||||
fs.realpath(fontPath, function (errorFontPath, realFontPath) {
|
fs.realpath(fontPath, function (errorFontPath, realFontPath) {
|
||||||
var ttxPath = path.join("Tools", "ttx");
|
const ttxPath = path.join("Tools", "ttx");
|
||||||
if (!fs.existsSync(path.join(fontToolsHome, ttxPath))) {
|
if (!fs.existsSync(path.join(fontToolsHome, ttxPath))) {
|
||||||
callback("TTX was not found, please checkout PDF.js submodules");
|
callback("TTX was not found, please checkout PDF.js submodules");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var ttxEnv = {
|
const ttxEnv = {
|
||||||
PYTHONPATH: path.join(fontToolsHome, "Lib"),
|
PYTHONPATH: path.join(fontToolsHome, "Lib"),
|
||||||
PYTHONDONTWRITEBYTECODE: true,
|
PYTHONDONTWRITEBYTECODE: true,
|
||||||
};
|
};
|
||||||
var ttxStdioMode = "ignore";
|
const ttxStdioMode = "ignore";
|
||||||
var ttx = spawn("python", [ttxPath, realFontPath], {
|
const ttx = spawn("python", [ttxPath, realFontPath], {
|
||||||
cwd: fontToolsHome,
|
cwd: fontToolsHome,
|
||||||
stdio: ttxStdioMode,
|
stdio: ttxStdioMode,
|
||||||
env: ttxEnv,
|
env: ttxEnv,
|
||||||
});
|
});
|
||||||
var ttxRunError;
|
let ttxRunError;
|
||||||
registerOnCancel(function (reason) {
|
registerOnCancel(function (reason) {
|
||||||
ttxRunError = reason;
|
ttxRunError = reason;
|
||||||
callback(reason);
|
callback(reason);
|
||||||
@ -68,10 +68,10 @@ exports.translateFont = function translateFont(
|
|||||||
registerOnCancel,
|
registerOnCancel,
|
||||||
callback
|
callback
|
||||||
) {
|
) {
|
||||||
var buffer = Buffer.from(content, "base64");
|
const buffer = Buffer.from(content, "base64");
|
||||||
var taskId = (nextTTXTaskId++).toString();
|
const taskId = (nextTTXTaskId++).toString();
|
||||||
var fontPath = path.join(ttxResourcesHome, taskId + ".otf");
|
const fontPath = path.join(ttxResourcesHome, taskId + ".otf");
|
||||||
var resultPath = path.join(ttxResourcesHome, taskId + ".ttx");
|
const resultPath = path.join(ttxResourcesHome, taskId + ".ttx");
|
||||||
|
|
||||||
fs.writeFileSync(fontPath, buffer);
|
fs.writeFileSync(fontPath, buffer);
|
||||||
runTtx(ttxResourcesHome, fontPath, registerOnCancel, function (err) {
|
runTtx(ttxResourcesHome, fontPath, registerOnCancel, function (err) {
|
||||||
|
Loading…
Reference in New Issue
Block a user