Source code

Revision control

Copy as Markdown

Other Tools

browser.test.runTests([
/**
* Tests `browser.idle.queryState`.
*/
async function testIdleQueryState() {
const state = await browser.idle.queryState(60);
browser.test.assertTrue(
['active', 'idle', 'locked'].includes(state),
`Query state should return a valid state, got: ${state}`);
},
/**
* Tests `browser.idle.setDetectionInterval`.
*/
function testIdleSetDetectionInterval() {
browser.idle.setDetectionInterval(30);
},
/**
* Tests `browser.idle.onStateChanged` listener registration.
* Note: There is currently no way to mock or force system idle states in WPT,
* so we verify that listener registration and removal succeed without error.
*/
function testIdleOnStateChanged() {
const listener = (newState) => {};
browser.idle.onStateChanged.addListener(listener);
browser.idle.onStateChanged.removeListener(listener);
},
/**
* Tests `browser.idle.queryState` error cases.
*/
function testIdleQueryStateErrorCases() {
// Verify it throws on invalid argument types.
browser.test.assertThrows(() => browser.idle.queryState('invalid'));
// Verify it throws when interval is less than the minimum (15).
browser.test.assertThrows(() => browser.idle.queryState(10));
},
/**
* Tests `browser.idle.setDetectionInterval` error cases.
*/
function testIdleSetDetectionIntervalErrorCases() {
// Verify it throws on invalid argument types.
browser.test.assertThrows(() =>
browser.idle.setDetectionInterval('invalid'));
// Verify it throws when interval is less than the minimum (15).
browser.test.assertThrows(() => browser.idle.setDetectionInterval(10));
}
]);