Overview
| Comment: | [core][js] tests initialization |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | core | webext2 |
| Files: | files | file ages | folders |
| SHA3-256: |
af95395956e5de0d30625b1cd78b06ae |
| User & Date: | olr on 2017-08-03 11:41:31 |
| Other Links: | branch diff | manifest | tags |
Context
|
2017-08-04
| ||
| 05:17 | [core][js] try to remove some warnings check-in: 25be7eb67b user: olr tags: core, webext2 | |
|
2017-08-03
| ||
| 11:41 | [core][js] tests initialization check-in: af95395956 user: olr tags: core, webext2 | |
| 11:06 | [core][js] gc_engine initialization check-in: 4de2209cf9 user: olr tags: core, webext2 | |
Changes
Modified gc_core/js/lang_core/gc_engine.js from [85c1383912] to [4d4d4ec095].
| ︙ | ︙ | |||
276 277 278 279 280 281 282 |
reactivateRule: function (sRuleId) {
_aIgnoredRules.delete(sRuleId);
},
listRules: function (sFilter=null) {
// generator: returns tuple (sOption, sLineId, sRuleId)
try {
| | | | 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 |
reactivateRule: function (sRuleId) {
_aIgnoredRules.delete(sRuleId);
},
listRules: function (sFilter=null) {
// generator: returns tuple (sOption, sLineId, sRuleId)
try {
for ([sOption, lRuleGroup] of this._getRules(true)) {
for ([_, _, sLineId, sRuleId, _, _] of lRuleGroup) {
if (!sFilter || sRuleId.test(sFilter)) {
yield [sOption, sLineId, sRuleId];
}
}
}
for ([sOption, lRuleGroup] of this._getRules(false)) {
for ([_, _, sLineId, sRuleId, _, _] of lRuleGroup) {
if (!sFilter || sRuleId.test(sFilter)) {
yield [sOption, sLineId, sRuleId];
}
}
}
}
|
| ︙ | ︙ |
Modified gc_core/js/tests.js from [373a8fcfff] to [c744b064be].
1 2 3 4 5 | // JavaScript "use strict"; | | > | < | 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 |
// JavaScript
"use strict";
if (typeof(require) !== 'undefined') {
var helpers = require("resource://grammalecte/helpers.js");
}
class TestGrammarChecking {
constructor (gce) {
this.gce = gce;
this._aRuleTested = new Set();
};
* testParse (bDebug=false) {
const t0 = Date.now();
let sURL = (typeof(browser) !== 'undefined') ? browser.extension.getURL("grammalecte/"+this.gce.lang+"/tests_data.json") : "resource://grammalecte/"+this.gce.lang+"/tests_data.json";
const aData = JSON.parse(helpers.loadFile(sURL)).aData;
let nInvalid = 0
let nTotal = 0
let sErrorText;
let sSugg;
let sExpectedErrors;
let sTextToCheck;
let sFoundErrors;
|
| ︙ | ︙ | |||
76 77 78 79 80 81 82 |
}
catch (e) {
helpers.logerror(e);
}
if (bShowUntested) {
i = 0;
| | | 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
}
catch (e) {
helpers.logerror(e);
}
if (bShowUntested) {
i = 0;
for (let [sOpt, sLineId, sRuleId] of this.gce.listRules()) {
if (!this._aRuleTested.has(sLineId) && !/^[0-9]+[sp]$|^[pd]_/.test(sRuleId)) {
sUntestedRules += sRuleId + ", ";
i += 1;
}
}
if (i > 0) {
yield sUntestedRules + "\n[" + i.toString() + " untested rules]";
|
| ︙ | ︙ | |||
122 123 124 125 126 127 128 |
return " ".repeat(sLine.length);
};
_getFoundErrors (sLine, bDebug, sOption) {
try {
let aErrs = [];
if (sOption) {
| | | | 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 |
return " ".repeat(sLine.length);
};
_getFoundErrors (sLine, bDebug, sOption) {
try {
let aErrs = [];
if (sOption) {
this.gce.setOption(sOption, true);
aErrs = this.gce.parse(sLine, "FR", bDebug);
this.gce.setOption(sOption, false);
} else {
aErrs = this.gce.parse(sLine, "FR", bDebug);
}
let sRes = " ".repeat(sLine.length);
let sListErr = "";
for (let dErr of aErrs) {
sRes = sRes.slice(0, dErr["nStart"]) + "~".repeat(dErr["nEnd"] - dErr["nStart"]) + sRes.slice(dErr["nEnd"]);
|
| ︙ | ︙ |
Modified gc_lang/fr/webext/gce_worker.js from [1c20e4bba6] to [172934d86f].
| ︙ | ︙ | |||
17 18 19 20 21 22 23 |
— Firefox 54 – behind the dom.moduleScripts.enabled setting in about:config.
— Edge 15 – behind the Experimental JavaScript Features setting in about:flags.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export
*/
| < < < < < < < < < < < < < < < < | | | | | | | | | | | | | | | | | | | | | < | < | < | < | 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 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
— Firefox 54 – behind the dom.moduleScripts.enabled setting in about:config.
— Edge 15 – behind the Experimental JavaScript Features setting in about:flags.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export
*/
let oTokenizer = null;
let oLxg = null;
function loadGrammarChecker (sGCOptions="", sContext="JavaScript") {
if (gc_engine === null) {
try {
gc_engine = require("resource://grammalecte/fr/gc_engine.js");
helpers = require("resource://grammalecte/helpers.js");
text = require("resource://grammalecte/text.js");
tkz = require("resource://grammalecte/tokenizer.js");
lxg = require("resource://grammalecte/fr/lexicographe.js");
oTokenizer = new tkz.Tokenizer("fr");
helpers.setLogOutput(console.log);
gc_engine.load(sContext);
oDict = gc_engine.getDictionary();
oLxg = new lxg.Lexicographe(oDict);
if (sGCOptions !== "") {
gc_engine.setOptions(helpers.objectToMap(JSON.parse(sGCOptions)));
}
// we always retrieve options from the gc_engine, for setOptions filters obsolete options
return gc_engine.getOptions()._toString();
}
catch (e) {
console.log("# Error: " + e.fileName + "\n" + e.name + "\nline: " + e.lineNumber + "\n" + e.message);
}
}
}
function parse (sText, sLang, bDebug, bContext) {
let aGrammErr = gc_engine.parse(sText, sLang, bDebug, bContext);
return JSON.stringify(aGrammErr);
}
function parseAndSpellcheck (sText, sLang, bDebug, bContext) {
let aGrammErr = gc_engine.parse(sText, sLang, bDebug, bContext);
let aSpellErr = oTokenizer.getSpellingErrors(sText, oDict);
return JSON.stringify({ aGrammErr: aGrammErr, aSpellErr: aSpellErr });
}
function getOptions () {
return gc_engine.getOptions()._toString();
}
function getDefaultOptions () {
return gc_engine.getDefaultOptions()._toString();
}
function setOptions (sGCOptions) {
gc_engine.setOptions(helpers.objectToMap(JSON.parse(sGCOptions)));
return gc_engine.getOptions()._toString();
}
function setOption (sOptName, bValue) {
gc_engine.setOptions(new Map([ [sOptName, bValue] ]));
return gc_engine.getOptions()._toString();
}
function resetOptions () {
gc_engine.resetOptions();
return gc_engine.getOptions()._toString();
}
function fullTests (sGCOptions='{"nbsp":true, "esp":true, "unit":true, "num":true}') {
if (!gc_engine || !oDict) {
return "# Error: grammar checker or dictionary not loaded."
}
let dMemoOptions = gc_engine.getOptions();
if (sGCOptions) {
gc_engine.setOptions(helpers.objectToMap(JSON.parse(sGCOptions)));
}
let oTest = new TestGrammarChecking(gc_engine);
for (let sRes of oTest.testParse()) {
helpers.echo(sRes+"\n");
}
gc_engine.setOptions(dMemoOptions);
}
// Lexicographer
function getListOfElements (sText) {
try {
|
| ︙ | ︙ | |||
146 147 148 149 150 151 152 153 |
function handleMessage (oRequest, xSender, sendResponse) {
console.log(`[background] received: ${oRequest.content}`);
sendResponse({response: "response from background script"});
}
browser.runtime.onMessage.addListener(handleMessage);
| > > > > > > > > > > > > > > > > > > | 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 |
function handleMessage (oRequest, xSender, sendResponse) {
console.log(`[background] received: ${oRequest.content}`);
sendResponse({response: "response from background script"});
}
browser.runtime.onMessage.addListener(handleMessage);
helpers.echo("START");
helpers.echo(conj.getConj("devenir", ":E", ":2s"));
helpers.echo(mfsp.getMasForm("emmerdeuse", true));
helpers.echo(mfsp.getMasForm("pointilleuse", false));
helpers.echo(phonet.getSimil("est"));
let oDict = new IBDAWG("French.json");
helpers.echo(oDict.getMorph("merde"));
gc_engine.load("JavaScript");
let aRes = gc_engine.parse("Je suit...");
for (let oErr of aRes) {
helpers.echo(text.getReadableError(oErr));
}
//fullTests();
|
Modified gc_lang/fr/webext/manifest.json from [b861237771] to [b03a0d0ed3].
| ︙ | ︙ | |||
39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
"grammalecte/fr/conj.js",
"grammalecte/fr/mfsp.js",
"grammalecte/fr/phonet.js",
"grammalecte/fr/cregex.js",
"grammalecte/fr/gc_options.js",
"grammalecte/fr/gc_rules.js",
"grammalecte/fr/gc_engine.js",
"gce_worker.js"
]
},
"web_accessible_resources": [
"grammalecte/_dictionaries/French.json",
"grammalecte/fr/conj_data.json",
"grammalecte/fr/mfsp_data.json",
| > | 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
"grammalecte/fr/conj.js",
"grammalecte/fr/mfsp.js",
"grammalecte/fr/phonet.js",
"grammalecte/fr/cregex.js",
"grammalecte/fr/gc_options.js",
"grammalecte/fr/gc_rules.js",
"grammalecte/fr/gc_engine.js",
"grammalecte/tests.js",
"gce_worker.js"
]
},
"web_accessible_resources": [
"grammalecte/_dictionaries/French.json",
"grammalecte/fr/conj_data.json",
"grammalecte/fr/mfsp_data.json",
|
| ︙ | ︙ |