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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
/**
* Tests if font preview is generated correctly
*/
add_task(async function () {
const { monitor } = await initNetMonitor(FONTS_URL + "?name=fonts", {
requestCount: 1,
});
info("Starting test... ");
const { document, store, windowRequire } = monitor.panelWin;
const Actions = windowRequire("devtools/client/netmonitor/src/actions/index");
store.dispatch(Actions.batchEnable(false));
// Reload the page to get the font request
const waitForRequests = waitForNetworkEvents(monitor, 3);
await reloadBrowser();
await waitForRequests;
const wait = waitForDOMIfNeeded(
document,
"#response-panel .response-font[src^='data:']"
);
const requests = document.querySelectorAll(
".request-list-item .requests-list-status"
);
// Check first font request
clickElement(requests[1], monitor);
clickOnSidebarTab(document, "response");
await wait;
ok(true, "Font preview is shown");
const tabpanel = document.querySelector("#response-panel");
let image = tabpanel.querySelector(".response-font");
await once(image, "load");
ok(
image.complete && image.naturalHeight !== 0,
"Font preview got generated correctly"
);
let fontData = document.querySelectorAll(".tabpanel-summary-value");
is(fontData[0].textContent, "Ostrich Sans Medium", "Font name is correct");
// "font/ttf" is returned on Linux, which is the expected MIME type, though
// "application/octet-stream" is also accepted which is returned on Windows and MacOS.
ok(
["font/ttf", "application/octet-stream"].includes(fontData[1].textContent),
"MIME type is correct"
);
// Check second font request
clickElement(requests[2], monitor);
await waitForDOM(document, "#response-panel .response-font[src^='data:']");
image = tabpanel.querySelector(".response-font");
await once(image, "load");
ok(
image.complete && image.naturalHeight !== 0,
"Font preview got generated correctly"
);
fontData = document.querySelectorAll(".tabpanel-summary-value");
is(fontData[0].textContent, "Ostrich Sans Black", "Font name is correct");
// Actually expected is "font/ttf", though "application/octet-stream" is
// ok as well and obviously returned when running the test locally.
ok(
["font/ttf", "application/octet-stream"].includes(fontData[1].textContent),
"MIME type is correct"
);
await teardown(monitor);
});
|