mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-21 15:57:31 +09:00
53 lines
2 KiB
JavaScript
53 lines
2 KiB
JavaScript
function run_test() {
|
|
const storage = Components.classes["@mozilla.org/consoleAPI-storage;1"]
|
|
.getService(Components.interfaces.nsIConsoleAPIStorage);
|
|
Components.utils.import("resource://gre/modules/Services.jsm");
|
|
storage.clearEvents();
|
|
try {
|
|
for (let i = 0; i < 3501; i++) {
|
|
storage.recordEvent("ring-test", "outer", { timeStamp: i });
|
|
if (i === 998 || i === 999 || i === 1000 || i === 1999 || i === 3500) {
|
|
let events = storage.getEvents("ring-test");
|
|
equal(events.length, Math.min(i + 1, 1000));
|
|
for (let j = 0; j < events.length; j++) {
|
|
equal(events[j].timeStamp, i + 1 - events.length + j);
|
|
}
|
|
events.length = 0;
|
|
equal(storage.getEvents("ring-test").length, Math.min(i + 1, 1000));
|
|
}
|
|
}
|
|
storage.recordEvent("other", "outer", { timeStamp: 2500.5 });
|
|
let all = storage.getEvents();
|
|
equal(all.length, 1001);
|
|
equal(all[0].timeStamp, 2500.5);
|
|
equal(all[1].timeStamp, 2501);
|
|
equal(all[1000].timeStamp, 3500);
|
|
|
|
let reentered = false;
|
|
let observer = {
|
|
observe(subject, topic, data) {
|
|
if (data === "ring-test" && !reentered) {
|
|
equal(storage.getEvents(data)[999].timeStamp, 3501);
|
|
reentered = true;
|
|
storage.recordEvent("ring-test", "outer", { timeStamp: 3502 });
|
|
}
|
|
}
|
|
};
|
|
Services.obs.addObserver(observer, "console-storage-cache-event", false);
|
|
try {
|
|
storage.recordEvent("ring-test", "outer", { timeStamp: 3501 });
|
|
} finally {
|
|
Services.obs.removeObserver(observer, "console-storage-cache-event");
|
|
}
|
|
equal(reentered, true);
|
|
equal(storage.getEvents("ring-test")[999].timeStamp, 3502);
|
|
storage.clearEvents("ring-test");
|
|
equal(storage.getEvents("ring-test").length, 0);
|
|
equal(storage.getEvents("other").length, 1);
|
|
storage.recordEvent("ring-test", "outer", { timeStamp: 4000 });
|
|
equal(storage.getEvents("ring-test")[0].timeStamp, 4000);
|
|
} finally {
|
|
storage.clearEvents();
|
|
}
|
|
equal(storage.getEvents().length, 0);
|
|
}
|