tor-browser

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

test_NimbusRolloutMessageProvider.js (1319B)


      1 /* Any copyright is dedicated to the Public Domain.
      2   http://creativecommons.org/publicdomain/zero/1.0/ */
      3 
      4 const { NimbusRolloutMessageProvider } = ChromeUtils.importESModule(
      5  "resource://testing-common/NimbusRolloutMessageProvider.sys.mjs"
      6 );
      7 
      8 const MESSAGE_VALIDATORS = {};
      9 let EXPERIMENT_VALIDATOR;
     10 
     11 add_setup(async function setup() {
     12  const validators = await makeValidators();
     13 
     14  EXPERIMENT_VALIDATOR = validators.experimentValidator;
     15  Object.assign(MESSAGE_VALIDATORS, validators.messageValidators);
     16 });
     17 
     18 add_task(function test_NimbusRolloutMessageProvider() {
     19  const messages = NimbusRolloutMessageProvider.getMessages();
     20 
     21  for (const message of messages) {
     22    const validator = MESSAGE_VALIDATORS[message.template];
     23    Assert.notStrictEqual(
     24      typeof validator,
     25      "undefined",
     26      typeof validator !== "undefined"
     27        ? `Schema validator found for ${message.template}`
     28        : `No schema validator found for template ${message.template} of message ${message?.id}. Please update this test to add one.`
     29    );
     30 
     31    assertValidates(
     32      validator,
     33      message,
     34      `Message ${message.id} validates as ${message.template} template`
     35    );
     36    assertValidates(
     37      EXPERIMENT_VALIDATOR,
     38      message,
     39      `Message ${message.id} validates as a MessagingExperiment`
     40    );
     41  }
     42 });