Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

"use strict";
const { XPCOMUtils } = ChromeUtils.importESModule(
"resource://gre/modules/XPCOMUtils.sys.mjs"
);
XPCOMUtils.defineLazyServiceGetter(
this,
"spellCheck",
"@mozilla.org/spellchecker/engine;1",
"mozISpellCheckingEngine"
);
const nsFile = Components.Constructor(
"@mozilla.org/file/local;1",
"nsIFile",
"initWithPath"
);
add_task(async function () {
let prof = do_get_profile();
let basePath = PathUtils.join(prof.path, "\u263a", "dictionaries");
let baseDir = nsFile(basePath);
await IOUtils.makeDirectory(basePath, { createAncestors: true });
let dicPath = PathUtils.join(basePath, "dict.dic");
let affPath = PathUtils.join(basePath, "dict.aff");
const WORD = "Flehgragh";
await IOUtils.writeUTF8(dicPath, `1\n${WORD}\n`);
await IOUtils.writeUTF8(affPath, "");
spellCheck.loadDictionariesFromDir(baseDir);
spellCheck.dictionaries = ["dict"];
ok(
spellCheck.check(WORD),
"Dictionary should have been loaded from a unicode path"
);
});