mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-08-26 17:28:38 +09:00
64 lines
2.2 KiB
HTML
64 lines
2.2 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<head>
|
|
<title>WebExtension test</title>
|
|
<script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
|
<script src="chrome://mochikit/content/tests/SimpleTest/SpawnTask.js"></script>
|
|
<script src="chrome://mochikit/content/tests/SimpleTest/ExtensionTestUtils.js"></script>
|
|
<script type="text/javascript" src="chrome_head.js"></script>
|
|
<script type="text/javascript" src="head.js"></script>
|
|
<link rel="stylesheet" href="chrome://mochikit/contents/tests/SimpleTest/test.css"/>
|
|
</head>
|
|
<body>
|
|
|
|
<script type="text/javascript">
|
|
"use strict";
|
|
|
|
const idleService = Cc["@mozilla.org/widget/idleservice;1"].getService(Ci.nsIIdleService);
|
|
|
|
add_task(function* testWithRealIdleService() {
|
|
function background() {
|
|
browser.test.onMessage.addListener((msg, ...args) => {
|
|
let detectionInterval = args[0];
|
|
if (msg == "addListener") {
|
|
browser.idle.queryState(detectionInterval).then(status => {
|
|
browser.test.assertEq("active", status, "Idle status is active");
|
|
});
|
|
browser.idle.setDetectionInterval(detectionInterval);
|
|
browser.idle.onStateChanged.addListener(newState => {
|
|
browser.test.assertEq("idle", newState, "listener fired with the expected state");
|
|
browser.test.sendMessage("listenerFired");
|
|
});
|
|
} else if (msg == "checkState") {
|
|
browser.idle.queryState(detectionInterval).then(status => {
|
|
browser.test.assertEq("idle", status, "Idle status is idle");
|
|
browser.test.notifyPass("idle");
|
|
});
|
|
}
|
|
});
|
|
}
|
|
|
|
let extension = ExtensionTestUtils.loadExtension({
|
|
background,
|
|
manifest: {
|
|
permissions: ["idle"],
|
|
},
|
|
});
|
|
|
|
yield extension.startup();
|
|
let idleTime = idleService.idleTime;
|
|
let detectionInterval = Math.max(Math.ceil(idleTime / 1000) + 2, 15);
|
|
info(`idleTime: ${idleTime}, detectionInterval: ${detectionInterval}`);
|
|
extension.sendMessage("addListener", detectionInterval);
|
|
info("Listener added");
|
|
yield extension.awaitMessage("listenerFired");
|
|
info("Listener fired");
|
|
extension.sendMessage("checkState", detectionInterval);
|
|
yield extension.awaitFinish("idle");
|
|
yield extension.unload();
|
|
});
|
|
|
|
</script>
|
|
|
|
</body>
|
|
</html>
|