Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

// META: script=/resources/testdriver.js
// META: script=/resources/testdriver-vendor.js
// META: script=resources/font-asserts.js
// META: script=resources/font-data.js
// META: script=resources/font-test-utils.js
// META: timeout=long
'use strict';
font_access_test(async t => {
const fonts = await self.queryLocalFonts();
// Fonts we know about. Not all expected fonts are included.
const testData = getTestData();
// Reduce down the size of results for testing purposes.
const filteredFonts = filterFonts(fonts, [...testData.keys()]);
for (const font of filteredFonts) {
const data = await font.blob();
assert_not_equals(data.size, 0, 'Blob has a positive size.');
assert_equals(
data.type, 'application/octet-stream',
'Returned Blob is of type octet-stream.');
const buffer = await data.arrayBuffer();
assert_not_equals(buffer.length, 0, 'Returned ArrayBuffer is not empty.');
const parsedData = await parseFontData(data);
assert_version_info(parsedData.versionTag);
assert_not_equals(
parsedData.tables.size, 0, 'Should not have tables of size zero.');
assert_font_has_tables(font.postscriptName, parsedData.tables, BASE_TABLES);
}
}, 'FontData.blob(): blob has expected format and parsable table data.');