mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-10 01:07:31 +09:00
61 lines
1.6 KiB
JavaScript
61 lines
1.6 KiB
JavaScript
/**
|
|
* What this is aimed to test:
|
|
*
|
|
* Expiration relies on an interval, that is user-preffable setting
|
|
* "places.history.expiration.interval_seconds".
|
|
* On pref change it will stop current interval timer and fire a new one,
|
|
* that will obey the new value.
|
|
* If the pref is set to a number <= 0 we will use the default value.
|
|
*/
|
|
|
|
// Default timer value for expiration in seconds. Must have same value as
|
|
// PREF_INTERVAL_SECONDS_NOTSET in nsPlacesExpiration.
|
|
const DEFAULT_TIMER_DELAY_SECONDS = 3 * 60;
|
|
|
|
// Sync this with the const value in the component.
|
|
const EXPIRE_AGGRESSIVITY_MULTIPLIER = 3;
|
|
|
|
var tests = [
|
|
|
|
// This test should be the first, so the interval won't be influenced by
|
|
// status of history.
|
|
{ desc: "Set interval to 1s.",
|
|
interval: 1,
|
|
expectedTimerDelay: 1
|
|
},
|
|
|
|
{ desc: "Set interval to a negative value.",
|
|
interval: -1,
|
|
expectedTimerDelay: DEFAULT_TIMER_DELAY_SECONDS
|
|
},
|
|
|
|
{ desc: "Set interval to 0.",
|
|
interval: 0,
|
|
expectedTimerDelay: DEFAULT_TIMER_DELAY_SECONDS
|
|
},
|
|
|
|
{ desc: "Set interval to a large value.",
|
|
interval: 100,
|
|
expectedTimerDelay: 100
|
|
},
|
|
|
|
];
|
|
|
|
add_task(function* test() {
|
|
// The pref should not exist by default.
|
|
Assert.throws(() => getInterval());
|
|
|
|
// Force the component, so it will start observing preferences.
|
|
force_expiration_start();
|
|
|
|
for (let currentTest of tests) {
|
|
print(currentTest.desc);
|
|
let promise = promiseTopicObserved("test-interval-changed");
|
|
setInterval(currentTest.interval);
|
|
let [, data] = yield promise;
|
|
Assert.equal(data, currentTest.expectedTimerDelay * EXPIRE_AGGRESSIVITY_MULTIPLIER);
|
|
}
|
|
|
|
clearInterval();
|
|
});
|
|
|