browser_webconsole_telemetry_persist_toggle_changed.js (1646B)
1 /* Any copyright is dedicated to the Public Domain. 2 * http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 // Tests the log persistence telemetry event 5 6 "use strict"; 7 8 const { TelemetryTestUtils } = ChromeUtils.importESModule( 9 "resource://testing-common/TelemetryTestUtils.sys.mjs" 10 ); 11 12 const TEST_URI = `data:text/html,<!DOCTYPE html><meta charset=utf8><script> 13 console.log("test message"); 14 </script>`; 15 16 add_task(async function () { 17 // Let's reset the counts. 18 Services.telemetry.clearEvents(); 19 20 // Ensure no events have been logged 21 TelemetryTestUtils.assertNumberOfEvents(0); 22 23 const hud = await openNewTabAndConsole(TEST_URI); 24 25 // Toggle persistent logs - "true" 26 await toggleConsoleSetting( 27 hud, 28 ".webconsole-console-settings-menu-item-persistentLogs" 29 ); 30 await waitUntil( 31 () => hud.ui.wrapper.getStore().getState().ui.persistLogs === true 32 ); 33 34 // Toggle persistent logs - "false" 35 await toggleConsoleSetting( 36 hud, 37 ".webconsole-console-settings-menu-item-persistentLogs" 38 ); 39 await waitUntil( 40 () => hud.ui.wrapper.getStore().getState().ui.persistLogs === false 41 ); 42 43 const expectedEvents = [ 44 { 45 category: "devtools.main", 46 method: "persist_changed", 47 object: "webconsole", 48 value: "true", 49 }, 50 { 51 category: "devtools.main", 52 method: "persist_changed", 53 object: "webconsole", 54 value: "false", 55 }, 56 ]; 57 58 const filter = { 59 category: "devtools.main", 60 method: "persist_changed", 61 object: "webconsole", 62 }; 63 64 // Will compare filtered events to event list above 65 await TelemetryTestUtils.assertEvents(expectedEvents, filter); 66 });