blob: e21733ce7f1afc8410899d1b5e58d56ec642c43c [file] [log] [blame]
'use strict';
font_access_test(async t => {
const fonts = await navigator.fonts.query({persistentAccess: true});
const expectedFonts = await filterEnumeration(
fonts, getEnumerationTestSet({labelFilter: [TEST_SIZE_CATEGORY.small]}));
const additionalExpectedTables = getMoreExpectedTables(expectedFonts);
for (const f of expectedFonts) {
const data = await f.blob();
assert_not_equals(data.size, 0, 'Returned Blob size slot is populated.');
const buf = await data.arrayBuffer();
assert_not_equals(buf.length, 0, 'Returned ArrayBuffer is not empty.');
assert_equals(data.type, 'application/octet-stream', 'Returned Blob is of type octet-stream.');
const parsedData = await parseFontData(data);
assert_not_equals(parsedData.version, 'UNKNOWN', 'SFNT version is a known type.');
assert_not_equals(parsedData.tables.size, 0, "Should not have tables of size zero.");
assert_font_has_tables(f.postscriptName, parsedData.tables, BASE_TABLES);
if (f.postscriptName in additionalExpectedTables) {
assert_font_has_tables(f.postscriptName,
parsedData.tables,
additionalExpectedTables[f.postscriptName]);
}
}
}, 'blob(): fonts have expected tables that are not empty');