tor-browser

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

test_formatting.js (1510B)


      1 /* Any copyright is dedicated to the Public Domain.
      2   http://creativecommons.org/publicdomain/zero/1.0/ */
      3 
      4 add_task(async function () {
      5  Assert.ok("console" in this);
      6 
      7  const tests = [
      8    // Plain value.
      9    [[42], ["42"]],
     10 
     11    // Integers.
     12    [["%d", 42], ["42"]],
     13    [["%i", 42], ["42"]],
     14    [["c%iao", 42], ["c42ao"]],
     15 
     16    // Floats.
     17    [["%2.4f", 42], ["42.0000"]],
     18    [["%2.2f", 42], ["42.00"]],
     19    [["%1.2f", 42], ["42.00"]],
     20    [["a%3.2fb", 42], ["a42.00b"]],
     21    [["%f", NaN], ["NaN"]],
     22 
     23    // Strings
     24    [["%s", 42], ["42"]],
     25 
     26    // Empty values.
     27    [
     28      ["", 42],
     29      ["", "42"],
     30    ],
     31    [
     32      ["", 42],
     33      ["", "42"],
     34    ],
     35  ];
     36 
     37  let p = new Promise(resolve => {
     38    let t = 0;
     39 
     40    function consoleListener() {
     41      addConsoleStorageListener(this);
     42    }
     43 
     44    consoleListener.prototype = {
     45      observe(aSubject) {
     46        let test = tests[t++];
     47 
     48        let obj = aSubject.wrappedJSObject;
     49        Assert.equal(
     50          obj.arguments.length,
     51          test[1].length,
     52          "Same number of arguments"
     53        );
     54        for (let i = 0; i < test[1].length; ++i) {
     55          Assert.equal(
     56            "" + obj.arguments[i],
     57            test[1][i],
     58            "Message received: " + test[1][i]
     59          );
     60        }
     61 
     62        if (t === tests.length) {
     63          removeConsoleStorageListener(this);
     64          resolve();
     65        }
     66      },
     67    };
     68 
     69    new consoleListener();
     70  });
     71 
     72  tests.forEach(test => {
     73    console.log(...test[0]);
     74  });
     75 
     76  await p;
     77 });