66 lines
No EOL
1.5 KiB
JavaScript
66 lines
No EOL
1.5 KiB
JavaScript
'use strict';
|
|
|
|
// The OpenType spec mentions that the follow tables are required for a font to
|
|
// function correctly. We'll have all the tables listed except for OS/2, which
|
|
// is not present in all fonts on Mac OS.
|
|
// https://docs.microsoft.com/en-us/typography/opentype/spec/otff#font-tables
|
|
const BASE_TABLES = [
|
|
'cmap',
|
|
'head',
|
|
'hhea',
|
|
'hmtx',
|
|
'maxp',
|
|
'name',
|
|
'post',
|
|
];
|
|
|
|
const MAC_FONTS = new Map([
|
|
['Monaco', {
|
|
postscriptName: 'Monaco',
|
|
fullName: 'Monaco',
|
|
family: 'Monaco',
|
|
style: 'Regular',
|
|
}],
|
|
['Menlo-Regular', {
|
|
postscriptName: 'Menlo-Regular',
|
|
fullName: 'Menlo Regular',
|
|
family: 'Menlo',
|
|
style: 'Regular',
|
|
}],
|
|
]);
|
|
|
|
const WIN_FONTS = new Map([
|
|
['Verdana', {
|
|
postscriptName: 'Verdana',
|
|
fullName: 'Verdana',
|
|
family: 'Verdana',
|
|
style: 'Regular',
|
|
}],
|
|
]);
|
|
|
|
const LINUX_FONTS = new Map([
|
|
['Ahem', {
|
|
postscriptName: 'Ahem',
|
|
fullName: 'Ahem',
|
|
family: 'Ahem',
|
|
style: 'Regular',
|
|
}],
|
|
]);
|
|
|
|
// Returns a map of known system fonts, mapping a font's postscript name to
|
|
// FontData.
|
|
function getTestData() {
|
|
let output = undefined;
|
|
if (navigator.platform.indexOf("Win") !== -1) {
|
|
output = WIN_FONTS;
|
|
} else if (navigator.platform.indexOf("Mac") !== -1) {
|
|
output = MAC_FONTS;
|
|
} else if (navigator.platform.indexOf("Linux") !== -1) {
|
|
output = LINUX_FONTS;
|
|
}
|
|
|
|
assert_not_equals(
|
|
output, undefined, 'Cannot get test set due to unsupported platform.');
|
|
|
|
return output;
|
|
} |