tor-browser

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

test_ASRouter_getTargetingParameters.js (1555B)


      1 /* Any copyright is dedicated to the Public Domain.
      2 * http://creativecommons.org/publicdomain/zero/1.0/
      3 */
      4 
      5 "use strict";
      6 
      7 const { ASRouter } = ChromeUtils.importESModule(
      8  "resource:///modules/asrouter/ASRouter.sys.mjs"
      9 );
     10 
     11 add_task(async function nested_objects() {
     12  const target = {
     13    get foo() {
     14      return Promise.resolve("foo");
     15    },
     16    baz: {
     17      get qux() {
     18        return Promise.resolve("qux");
     19      },
     20      get corge() {
     21        return {
     22          get grault() {
     23            return Promise.resolve("grault");
     24          },
     25        };
     26      },
     27    },
     28  };
     29 
     30  const params = await ASRouter.getTargetingParameters(target);
     31  Assert.deepEqual(
     32    params,
     33    {
     34      foo: "foo",
     35      baz: {
     36        qux: "qux",
     37        corge: {
     38          grault: "grault",
     39        },
     40      },
     41    },
     42    "getTargetingParameters should resolve nested promises"
     43  );
     44 });
     45 
     46 add_task(async function arrays() {
     47  const target = {
     48    foo: [1, 2, 3],
     49    bar: [Promise.resolve(1), Promise.resolve(2), Promise.resolve(3)],
     50    baz: Promise.resolve([1, 2, 3]),
     51    qux: Promise.resolve([
     52      Promise.resolve(1),
     53      Promise.resolve(2),
     54      Promise.resolve(3),
     55    ]),
     56    quux: Promise.resolve({
     57      corge: [Promise.resolve(1), 2, 3],
     58    }),
     59  };
     60 
     61  const params = await ASRouter.getTargetingParameters(target);
     62  Assert.deepEqual(
     63    params,
     64    {
     65      foo: [1, 2, 3],
     66      bar: [1, 2, 3],
     67      baz: [1, 2, 3],
     68      qux: [1, 2, 3],
     69      quux: { corge: [1, 2, 3] },
     70    },
     71    "getEnvironmentSnapshot should resolve arrays correctly"
     72  );
     73 });