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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Test DocumentL10n in HTML environment</title>
<script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css">
<link rel="localization" href="crashreporter/aboutcrashes.ftl"/>
<script>
"use strict";
SimpleTest.waitForExplicitFinish();
is(document.l10n.ready && document.l10n.ready.then !== undefined, true,
"document.l10n.ready exists and is a Promise");
(async function() {
await document.l10n.ready;
const desc = document.getElementById("main-desc");
is(!!desc.textContent.length, true, "initial localization is applied");
const msg = await document.l10n.formatValue("id-heading");
is(!!msg.length, true, "value is formatted manually");
const label = document.getElementById("label1");
let l10nArgs = document.l10n.getAttributes(label);
is(l10nArgs.id, null, "id is null if not set");
SimpleTest.doesThrow(
() => {
const bad = {};
bad.bad = bad;
document.l10n.setAttributes(label, "date-crashed-heading", bad);
},
"an error is thrown for invalid args",
);
l10nArgs = document.l10n.getAttributes(label);
is(l10nArgs.id, null, "id is not set if args are invalid");
document.l10n.setAttributes(
label,
"date-crashed-heading",
{
name: "John",
}
);
ok(document.hasPendingL10nMutations, "Should have pending mutations");
l10nArgs = document.l10n.getAttributes(label);
is(l10nArgs.id, "date-crashed-heading", "id is set by setAttributes");
is(l10nArgs.args.name, "John", "args are set by setAttributes");
// Test for mutations applied.
document.addEventListener("L10nMutationsFinished", function() {
ok(!!label.textContent.length, "Should've applied translation");
ok(!document.hasPendingL10nMutations, "Should have no more pending mutations");
SimpleTest.finish();
}, { once: true });
})();
</script>
</head>
<body>
<h1 id="main-desc" data-l10n-id="crash-reports-title"></h1>
<p id="label1"></p>
</body>
</html>
|