diff options
Diffstat (limited to 'widget/tests/system_font_changes.xhtml')
-rw-r--r-- | widget/tests/system_font_changes.xhtml | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/widget/tests/system_font_changes.xhtml b/widget/tests/system_font_changes.xhtml new file mode 100644 index 0000000000..1cef650015 --- /dev/null +++ b/widget/tests/system_font_changes.xhtml @@ -0,0 +1,63 @@ +<?xml version="1.0"?> + +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> + +<?xml-stylesheet href="chrome://global/skin" type="text/css"?> + +<window id="system_font_changes_window" + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" + width="300" + height="300" + onload="start();"> + +<span id="target" style="font:menu">Hello world</span> + +<script type="application/javascript"><![CDATA[ + function is(condition, message) { + window.arguments[0].SimpleTest.is(condition, message); + } + function registerCleanupFunction(func) { + window.arguments[0].SimpleTest.registerCleanupFunction(func); + } + + async function waitForFrame() { + return new Promise(resolve => { + requestAnimationFrame(resolve); + }); + } + + let windowUtils = window.windowUtils; + async function start() { + await waitForFrame(); + + const originalSystemFont = windowUtils.systemFont; + registerCleanupFunction(() => { + windowUtils.systemFont = originalSystemFont; + }); + + windowUtils.systemFont = 'Sans 11'; + is(windowUtils.systemFont, 'Sans 11'); + + // Wait for two frames for the safety since the notification for system + // font changes is asynchronously processed. + await waitForFrame(); + await waitForFrame(); + + const target = document.getElementById('target'); + is(getComputedStyle(target).fontFamily, 'Sans'); + + windowUtils.systemFont = 'Serif 11'; + is(windowUtils.systemFont, 'Serif 11'); + + await waitForFrame(); + await waitForFrame(); + + is(getComputedStyle(target).fontFamily, 'Serif'); + + window.close(); + window.arguments[0].SimpleTest.finish(); + } +]]></script> +</window> |