// 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.');