1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
//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
'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');
|