1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-29 15:47:57 +02:00
pdf.js/test/font
Jonas Jenwald 839e23f5c2 Send disableFontFace and fontExtraProperties as part of the exported font-data
These options are needed in the `FontFaceObject` class, and indirectly in `FontLoader` as well, which means that we currently need to pass them around manually in the API.
Given that the options are (obviously) available on the worker-thread, it's very easy to just provide them when creating `Font`-instances and then send them as part of the exported font-data. This way we're able to simplify the code (primarily on the main-thread), and note that `Font`-instances even had a `disableFontFace`-field already (but it wasn't properly initialized).
2025-02-24 09:34:48 +01:00
..
font_core_spec.js Replace done callbacks in the font-tests with async/await instead 2021-04-19 13:26:39 +02:00
font_fpgm_spec.js Send disableFontFace and fontExtraProperties as part of the exported font-data 2025-02-24 09:34:48 +01:00
font_os2_spec.js Send disableFontFace and fontExtraProperties as part of the exported font-data 2025-02-24 09:34:48 +01:00
font_post_spec.js Send disableFontFace and fontExtraProperties as part of the exported font-data 2025-02-24 09:34:48 +01:00
font_test.html Update the page title/favicon of the test runner HTML files 2024-12-22 14:08:56 +01:00
fontutils.js Simplify the decodeFontData/encodeFontData font-test helper functions 2022-02-25 11:40:03 +01:00
jasmine-boot.js Move the reporter file to the test root folder 2024-12-22 14:08:56 +01:00
README.md Use Python 3.13 in the GitHub workflows 2024-11-12 20:59:01 +01:00
ttxdriver.mjs Convert the TTX driver code to promises 2024-04-05 13:34:54 +02:00

Font tests

The font tests check if PDF.js can read font data correctly. For validation the ttx tool (from the Python fonttools library) is used that can convert font data to an XML format that we can easily use for assertions in the tests. In the font tests we let PDF.js read font data and pass the PDF.js-interpreted font data through ttx to check its correctness. The font tests are successful if PDF.js can successfully read the font data and ttx can successfully read the PDF.js-interpreted font data back, proving that PDF.js does not apply any transformations that break the font data.

Running the font tests

The font tests are run on GitHub Actions using the workflow defined in .github/workflows/font_tests.yml, but it is also possible to run the font tests locally. The current stable versions of the following dependencies are required to be installed on the system:

The recommended way of installing fonttools is using pip in a virtual environment because it avoids having to do a system-wide installation and therefore improves isolation, but any other way of installing fonttools that makes ttx available in the PATH environment variable also works.

Using the virtual environment approach the font tests can be run locally by creating and sourcing a virtual environment with fonttools installed in it before running the font tests:

python3 -m venv venv
source venv/bin/activate
pip install fonttools
npx gulp fonttest