summaryrefslogtreecommitdiffstats
path: root/intl/l10n/test/test_missing_variables.js
diff options
context:
space:
mode:
Diffstat (limited to 'intl/l10n/test/test_missing_variables.js')
-rw-r--r--intl/l10n/test/test_missing_variables.js35
1 files changed, 35 insertions, 0 deletions
diff --git a/intl/l10n/test/test_missing_variables.js b/intl/l10n/test/test_missing_variables.js
new file mode 100644
index 0000000000..8c05f7f94f
--- /dev/null
+++ b/intl/l10n/test/test_missing_variables.js
@@ -0,0 +1,35 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+// Disable `xpc::IsInAutomation()` so that missing variables don't throw
+// errors.
+Services.prefs.setBoolPref(
+ "security.turn_off_all_security_so_that_viruses_can_take_over_this_computer",
+ false
+);
+
+/**
+ * The following test demonstrates crashing behavior.
+ */
+add_task(function test_missing_variables() {
+ const l10nReg = new L10nRegistry();
+
+ const fs = [
+ { path: "/localization/en-US/browser/test.ftl", source: "welcome-message = Welcome { $user }\n" }
+ ]
+ const locales = ["en-US"];
+ const source = L10nFileSource.createMock("test", "app", locales, "/localization/{locale}", fs);
+ l10nReg.registerSources([source]);
+ const l10n = new Localization(["/browser/test.ftl"], true, l10nReg, locales);
+
+ {
+ const [message] = l10n.formatValuesSync([{ id: "welcome-message", args: { user: "Greg" } }]);
+ equal(message, "Welcome Greg");
+ }
+
+ {
+ // This will crash in debug builds.
+ const [message] = l10n.formatValuesSync([{ id: "welcome-message" }]);
+ equal(message, "Welcome {$user}");
+ }
+});