tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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 });