tor-browser

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

test_contextual_prompts.js (2019B)


      1 /* Any copyright is dedicated to the Public Domain.
      2 * http://creativecommons.org/publicdomain/zero/1.0/ */
      3 
      4 const { GenAI } = ChromeUtils.importESModule(
      5  "resource:///modules/GenAI.sys.mjs"
      6 );
      7 
      8 registerCleanupFunction(() =>
      9  Services.prefs.clearUserPref("browser.ml.chat.prompts.test")
     10 );
     11 
     12 const DEFAULT_CONTEXT = { provider: "" };
     13 async function promptCount(context = DEFAULT_CONTEXT) {
     14  return (await GenAI.getContextualPrompts(context)).length;
     15 }
     16 
     17 /**
     18 * Check prompts from prefs are used
     19 */
     20 add_task(async function test_prompt_prefs() {
     21  const origPrompts = await promptCount();
     22 
     23  Services.prefs.setStringPref("browser.ml.chat.prompts.test", "{}");
     24  Assert.equal(await promptCount(), origPrompts + 1, "Added a prompt");
     25 
     26  Services.prefs.setStringPref(
     27    "browser.ml.chat.prompts.test",
     28    JSON.stringify({ targeting: "false" })
     29  );
     30  Assert.equal(
     31    await promptCount(),
     32    origPrompts,
     33    "Prompt not added for targeting"
     34  );
     35 });
     36 
     37 /**
     38 * Check context is used for targeting
     39 */
     40 add_task(async function test_prompt_context() {
     41  Services.prefs.setStringPref(
     42    "browser.ml.chat.prompts.test",
     43    JSON.stringify({ targeting: "provider" })
     44  );
     45  const origPrompts = await promptCount();
     46 
     47  Assert.equal(
     48    await promptCount({ provider: "localhost" }),
     49    origPrompts + 1,
     50    "Added contextual prompt"
     51  );
     52 
     53  Assert.equal(
     54    await promptCount(),
     55    origPrompts,
     56    "Prompt not added for contextual targeting"
     57  );
     58 });
     59 
     60 /**
     61 * Check that prompts can be localized
     62 */
     63 add_task(async function test_prompt_l10n() {
     64  Services.prefs.setStringPref(
     65    "browser.ml.chat.prompts.test",
     66    JSON.stringify({
     67      l10nId: "genai-prompts-summarize",
     68      label: "bad",
     69      test: true,
     70    })
     71  );
     72  const custom = (await GenAI.getContextualPrompts(DEFAULT_CONTEXT)).find(
     73    prompt => prompt.id == null
     74  );
     75 
     76  Assert.ok(custom.test, "Found the custom prompt");
     77  Assert.notEqual(custom.label, "bad", "Localized label takes priority");
     78  Assert.ok(custom.value, "Got localized prompt");
     79 });