| 'use strict'; |
| |
| function assert_font_equals(actualFont, expectedFont) { |
| assert_equals( |
| actualFont.postscriptName, expectedFont.postscriptName, |
| `${actualFont.postscriptName}: postscriptName should match`); |
| assert_equals( |
| actualFont.fullName, expectedFont.fullName, |
| `${actualFont.postscriptName}: fullName should match`); |
| assert_equals( |
| actualFont.family, expectedFont.family, |
| `${actualFont.postscriptName}: family should match`); |
| assert_equals( |
| actualFont.style, expectedFont.style, |
| `${actualFont.postscriptName}: style should match`); |
| } |
| |
| function assert_font_has_tables(fontName, actualTables, expectedTables) { |
| for (const expectedTable of expectedTables) { |
| assert_equals( |
| expectedTable.length, 4, 'Table names are always 4 characters long.'); |
| assert_true( |
| actualTables.has(expectedTable), |
| `Font ${fontName} did not have required table ${expectedTable}.`); |
| assert_greater_than( |
| actualTables.get(expectedTable).size, 0, |
| `Font ${fontName} has table ${expectedTable} of size 0.`); |
| } |
| } |
| |
| function assert_version_info(versionTag) { |
| // Spec: https://docs.microsoft.com/en-us/typography/opentype/spec/otff#organization-of-an-opentype-font |
| assert_true(versionTag === '\x00\x01\x00\x00' || |
| versionTag === 'true' || |
| versionTag === 'typ1' || |
| versionTag === 'OTTO', |
| `Invalid sfnt version tag: ${versionTag}`); |
| } |