<!DOCTYPE html>
<html>
<body>
<script src="../../resources/js-test-pre.js"></script>
<script>
description("Tests that DOM timers are throttled in low power mode.");
jsTestIsAsync = true;

let i = 0;
const maxNestingLevel = 5;

let lowPowerModeEnabled = true;
debug("Enabling low power mode");
evalAndLog("internals.setLowPowerModeEnabled(true)");

const timerHandle = setInterval(function() {
    i++;
    debug("* Nesting: " + i);
    if (i >= maxNestingLevel && lowPowerModeEnabled)
        shouldBeTrue("internals.isTimerThrottled(timerHandle)");
    else
        shouldBeFalse("internals.isTimerThrottled(timerHandle)");

    if (i == maxNestingLevel + 1) {
        debug("");
        debug("Disabling low power mode");
        lowPowerModeEnabled = false;
        evalAndLog("internals.setLowPowerModeEnabled(false)");
    }

    if (i == 10) {
        clearInterval(timerHandle);
        finishJSTest();
    }
}, 10);
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>
