test_utils.js (3359B)
1 /* Any copyright is dedicated to the Public Domain. 2 http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 "use strict"; 5 6 /** 7 * Tests the task creator `takeSnapshotAndCensus()` for the whole flow of 8 * taking a snapshot, and its sub-actions. Tests the formatNumber and 9 * formatPercent methods. 10 */ 11 12 const utils = require("resource://devtools/client/memory/utils.js"); 13 const { 14 snapshotState: states, 15 viewState, 16 } = require("resource://devtools/client/memory/constants.js"); 17 const { Preferences } = ChromeUtils.importESModule( 18 "resource://gre/modules/Preferences.sys.mjs" 19 ); 20 21 add_task(async function () { 22 const s1 = utils.createSnapshot({ view: { state: viewState.CENSUS } }); 23 const s2 = utils.createSnapshot({ view: { state: viewState.CENSUS } }); 24 equal( 25 s1.state, 26 states.SAVING, 27 "utils.createSnapshot() creates snapshot in saving state" 28 ); 29 Assert.notStrictEqual( 30 s1.id, 31 s2.id, 32 "utils.createSnapshot() creates snapshot with unique ids" 33 ); 34 35 const custom = { by: "internalType", then: { by: "count", bytes: true } }; 36 Preferences.set( 37 "devtools.memory.custom-census-displays", 38 JSON.stringify({ "My Display": custom }) 39 ); 40 41 equal( 42 utils.getCustomCensusDisplays()["My Display"].by, 43 custom.by, 44 "utils.getCustomCensusDisplays() returns custom displays" 45 ); 46 47 ok(true, "test formatNumber util functions"); 48 equal(utils.formatNumber(12), "12", "formatNumber returns 12 for 12"); 49 50 equal(utils.formatNumber(0), "0", "formatNumber returns 0 for 0"); 51 equal(utils.formatNumber(-0), "0", "formatNumber returns 0 for -0"); 52 equal(utils.formatNumber(+0), "0", "formatNumber returns 0 for +0"); 53 54 equal( 55 utils.formatNumber(1234567), 56 "1 234 567", 57 "formatNumber adds a space every 3rd digit" 58 ); 59 equal( 60 utils.formatNumber(12345678), 61 "12 345 678", 62 "formatNumber adds a space every 3rd digit" 63 ); 64 equal( 65 utils.formatNumber(123456789), 66 "123 456 789", 67 "formatNumber adds a space every 3rd digit" 68 ); 69 70 equal( 71 utils.formatNumber(12, true), 72 "+12", 73 "formatNumber can display number sign" 74 ); 75 equal( 76 utils.formatNumber(-12, true), 77 "-12", 78 "formatNumber can display number sign (negative)" 79 ); 80 81 ok(true, "test formatPercent util functions"); 82 equal(utils.formatPercent(12), "12%", "formatPercent returns 12% for 12"); 83 equal( 84 utils.formatPercent(12345), 85 "12 345%", 86 "formatPercent returns 12 345% for 12345" 87 ); 88 89 equal(utils.formatAbbreviatedBytes(12), "12B", "Formats bytes"); 90 equal(utils.formatAbbreviatedBytes(12345), "12KiB", "Formats kilobytes"); 91 equal(utils.formatAbbreviatedBytes(12345678), "11MiB", "Formats megabytes"); 92 equal( 93 utils.formatAbbreviatedBytes(12345678912), 94 "11GiB", 95 "Formats gigabytes" 96 ); 97 98 equal( 99 utils.hslToStyle(0.5, 0.6, 0.7), 100 "hsl(180,60%,70%)", 101 "hslToStyle converts an array to a style string" 102 ); 103 equal( 104 utils.hslToStyle(0, 0, 0), 105 "hsl(0,0%,0%)", 106 "hslToStyle converts an array to a style string" 107 ); 108 equal( 109 utils.hslToStyle(1, 1, 1), 110 "hsl(360,100%,100%)", 111 "hslToStyle converts an array to a style string" 112 ); 113 114 equal(utils.lerp(5, 7, 0), 5, "lerp return first number for 0"); 115 equal(utils.lerp(5, 7, 1), 7, "lerp return second number for 1"); 116 equal(utils.lerp(5, 7, 0.5), 6, "lerp interpolates the numbers for 0.5"); 117 });