| // 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 => { |
| // Fonts we know about. Not all expected fonts are included. |
| const testData = getTestData(); |
| |
| // Get the system fonts. |
| const fonts = await self.queryLocalFonts(); |
| assert_true(Array.isArray(fonts), 'Result of query() should be an Array'); |
| assert_greater_than_equal(fonts.length, 1, 'Need a least one font'); |
| |
| fonts.forEach(font => { |
| assert_true( |
| font instanceof FontData, 'Results should be FontData instances'); |
| |
| // Verify properties and types. |
| assert_equals(typeof font.postscriptName, 'string'); |
| assert_true( |
| font.postscriptName.split('').every(c => (' ' <= c && c < '\x7f')), |
| `postscriptName should be printable ASCII: "${font.postscriptName}"`); |
| assert_equals(typeof font.fullName, 'string', 'fullName attribute type'); |
| assert_equals(typeof font.family, 'string', 'family attribute type'); |
| assert_equals(typeof font.style, 'string', 'style attribute type'); |
| |
| // If the sample test data contains the returned system font, |
| // then verify the values of FontData. |
| const expectedFont = testData.get(font.postscriptName); |
| if (expectedFont) { |
| assert_font_equals(font, expectedFont); |
| } |
| }); |
| }, 'queryLocalFonts(): FontData property types and values'); |