tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

font-asserts.js (1437B)


      1 'use strict';
      2 
      3 function assert_font_equals(actualFont, expectedFont) {
      4  assert_equals(
      5      actualFont.postscriptName, expectedFont.postscriptName,
      6      `${actualFont.postscriptName}: postscriptName should match`);
      7  assert_equals(
      8      actualFont.fullName, expectedFont.fullName,
      9      `${actualFont.postscriptName}: fullName should match`);
     10  assert_equals(
     11      actualFont.family, expectedFont.family,
     12      `${actualFont.postscriptName}: family should match`);
     13  assert_equals(
     14      actualFont.style, expectedFont.style,
     15      `${actualFont.postscriptName}: style should match`);
     16 }
     17 
     18 function assert_font_has_tables(fontName, actualTables, expectedTables) {
     19  for (const expectedTable of expectedTables) {
     20    assert_equals(
     21        expectedTable.length, 4, 'Table names are always 4 characters long.');
     22    assert_true(
     23        actualTables.has(expectedTable),
     24        `Font ${fontName} did not have required table ${expectedTable}.`);
     25    assert_greater_than(
     26        actualTables.get(expectedTable).size, 0,
     27        `Font ${fontName} has table ${expectedTable} of size 0.`);
     28  }
     29 }
     30 
     31 function assert_version_info(versionTag) {
     32  // Spec: https://docs.microsoft.com/en-us/typography/opentype/spec/otff#organization-of-an-opentype-font
     33  assert_true(versionTag === '\x00\x01\x00\x00' ||
     34      versionTag === 'true' ||
     35      versionTag === 'typ1' ||
     36      versionTag === 'OTTO',
     37      `Invalid sfnt version tag: ${versionTag}`);
     38 }