tor-browser

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

test_count.html (2650B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <meta charset="utf-8">
      5  <title>Test for count/countReset in console</title>
      6  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      7  <script src="head.js"></script>
      8  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
      9 </head>
     10 <body>
     11  <script type="application/javascript">
     12 
     13 SimpleTest.waitForExplicitFinish();
     14 
     15 function ConsoleListener() {
     16  addConsoleStorageListener(this);
     17 }
     18 
     19 ConsoleListener.prototype = {
     20  observe(aSubject) {
     21    let obj = aSubject.wrappedJSObject;
     22    if (obj.arguments[0] != "test") {
     23      return;
     24    }
     25 
     26    if (!this._cb) {
     27      ok(false, "Callback not set!");
     28      return;
     29    }
     30 
     31    if (!this._cb(obj)) {
     32      return;
     33    }
     34 
     35    this._cb = null;
     36    this._resolve();
     37  },
     38 
     39  shutdown() {
     40    removeConsoleStorageListener(this);
     41  },
     42 
     43  waitFor(cb) {
     44    return new Promise(resolve => {
     45      this._cb = SpecialPowers.wrapCallback(cb);
     46      this._resolve = resolve;
     47    });
     48  },
     49 };
     50 
     51 let listener = new ConsoleListener();
     52 
     53 async function runTest() {
     54  // First count.
     55  let cl = listener.waitFor(obj => {
     56    return ("counter" in obj) &&
     57           ("label" in obj.counter) &&
     58           obj.counter.label == "test" &&
     59           obj.counter.count == 1;
     60  });
     61  console.count("test");
     62  await cl;
     63  ok(true, "Console.count == 1 received!");
     64 
     65  // Second count.
     66  cl = listener.waitFor(obj => {
     67    return ("counter" in obj) &&
     68           ("label" in obj.counter) &&
     69           obj.counter.label == "test" &&
     70           obj.counter.count == 2;
     71  });
     72  console.count("test");
     73  await cl;
     74  ok(true, "Console.count == 2 received!");
     75 
     76  // Counter reset.
     77  cl = listener.waitFor(obj => {
     78    return ("counter" in obj) &&
     79           ("label" in obj.counter) &&
     80           obj.counter.label == "test" &&
     81           obj.counter.count == 0;
     82  });
     83  console.countReset("test");
     84  await cl;
     85  ok(true, "Console.countReset == 0 received!");
     86 
     87  // Counter reset with error.
     88  cl = listener.waitFor(obj => {
     89    return ("counter" in obj) &&
     90           ("label" in obj.counter) &&
     91           obj.counter.label == "test" &&
     92           obj.counter.error == "counterDoesntExist";
     93  });
     94  console.countReset("test");
     95  await cl;
     96  ok(true, "Console.countReset with error received!");
     97 
     98  // First again!
     99  cl = listener.waitFor(obj => {
    100    return ("counter" in obj) &&
    101           ("label" in obj.counter) &&
    102           obj.counter.label == "test" &&
    103           obj.counter.count == 1;
    104  });
    105  console.count("test");
    106  await cl;
    107  ok(true, "Console.count == 1 received!");
    108 }
    109 
    110 runTest().then(() => {
    111  listener.shutdown();
    112  SimpleTest.finish();
    113 });
    114 
    115  </script>
    116 </body>
    117 </html>