summaryrefslogtreecommitdiffstats
path: root/toolkit/components/backgroundtasks/tests/xpcshell/test_backgroundtask_localization.js
blob: e61ea50f098e5f0135068a6b8dd651215bfcd58c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*-
 * vim: sw=4 ts=4 sts=4 et
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

// Disable `xpc::IsInAutomation()` so that we don't generate fatal
// Localization errors.
Services.prefs.setBoolPref(
  "security.turn_off_all_security_so_that_viruses_can_take_over_this_computer",
  false
);

async function doOne(resource, id) {
  let l10n = new Localization([resource], true);
  let value = await l10n.formatValue(id);
  Assert.ok(value, `${id} from ${resource} is not null: ${value}`);

  let exitCode = await do_backgroundtask("localization", {
    extraArgs: [resource, id, value],
  });
  Assert.equal(0, exitCode);
}

add_task(async function test_localization() {
  // Verify that the `l10n-registry` category is processed and that localization
  // works as expected in background tasks.  We can use any FTL resource and
  // string identifier here as long as the value is short and can be passed as a
  // command line argument safely (i.e., is ASCII).

  // One from toolkit/.
  await doOne("toolkit/global/commonDialog.ftl", "common-dialog-title-system");
  if (AppConstants.MOZ_APP_NAME == "thunderbird") {
    // And one from messenger/.
    await doOne("messenger/messenger.ftl", "no-reply-title");
  } else {
    // And one from browser/.
    await doOne("browser/pageInfo.ftl", "not-set-date");
  }
});