diff options
Diffstat (limited to 'toolkit/components/perfmonitoring/tests/browser/browser_addonPerformanceAlerts_2.js')
-rw-r--r-- | toolkit/components/perfmonitoring/tests/browser/browser_addonPerformanceAlerts_2.js | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/toolkit/components/perfmonitoring/tests/browser/browser_addonPerformanceAlerts_2.js b/toolkit/components/perfmonitoring/tests/browser/browser_addonPerformanceAlerts_2.js new file mode 100644 index 000000000..d39c38b1f --- /dev/null +++ b/toolkit/components/perfmonitoring/tests/browser/browser_addonPerformanceAlerts_2.js @@ -0,0 +1,25 @@ +"use strict"; + +/** + * Tests for PerformanceWatcher watching slow addons. + */ + +add_task(function* test_watch_addon_then_install_it() { + for (let topic of ["burnCPU", "promiseBurnContentCPU", "promiseBurnCPOW"]) { + let addonId = "addon:test_watch_addons_before_installing" + Math.random(); + let realListener = new AddonListener(addonId, (group, details) => { + if (group.addonId == addonId) { + return details.highestJank; + } + throw new Error(`I shouldn't have been called with addon ${group.addonId}`); + }); + + info("Now install the add-on, *after* having installed the listener"); + let addon = new AddonBurner(addonId); + + Assert.ok((yield addon.run(topic, 10, realListener)), `5. The real listener was triggered ${topic}`); + Assert.ok(realListener.result >= addon.jankThreshold, `5. jank is at least ${addon.jankThreshold/1000}ms (${realListener.result}µs) ${topic}`); + realListener.unregister(); + addon.dispose(); + } +}); |