mirror of
https://github.com/keymanapp/keyman.git
synced 2026-10-10 07:57:28 +00:00
feat(developer): kmc-convert undo use of unitTestEndpoints for 3 non-tested functions
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
This commit is contained in:
parent
49f610fc70
commit
79e2bde115
5 changed files with 24 additions and 29 deletions
|
|
@ -83,7 +83,7 @@ export class KeylayoutFileReader {
|
|||
/**
|
||||
* @returns true if valid, false if invalid
|
||||
*/
|
||||
private validate(source: Keylayout.KeylayoutXMLSourceFile, inputFilename: string): boolean {
|
||||
public validate(source: Keylayout.KeylayoutXMLSourceFile, inputFilename: string): boolean {
|
||||
if (!source) {
|
||||
this.callbacks.reportMessage(ConverterMessages.Error_UnableToReadFile({ inputFilename: inputFilename }));
|
||||
return false;
|
||||
|
|
@ -178,7 +178,6 @@ export class KeylayoutFileReader {
|
|||
findMapIndexinKeymap: this.findMapIndexinKeymap.bind(this),
|
||||
findIndexinKeymapSelect: this.findIndexinKeymapSelect.bind(this),
|
||||
checkForCorrespondingElements: this.checkForCorrespondingElements.bind(this),
|
||||
validate: this.validate.bind(this),
|
||||
boxArray: this.boxArray.bind(this),
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@ export class KeylayoutToKmnConverter {
|
|||
return null;
|
||||
}
|
||||
try {
|
||||
if (!KeylayoutReader.unitTestEndpoints.validate(jsonO, inputFilename)) {
|
||||
if (!KeylayoutReader.validate(jsonO, inputFilename)) {
|
||||
return null;
|
||||
}
|
||||
} catch (e: any) {
|
||||
|
|
@ -720,7 +720,7 @@ export class KeylayoutToKmnConverter {
|
|||
* @param keylayoutModifier the modifier string used in the .keylayout-file
|
||||
* @return true if the modifier can be used in keyman; false if not
|
||||
*/
|
||||
private isAcceptableKeymanModifier(keylayoutModifier: string): boolean {
|
||||
public isAcceptableKeymanModifier(keylayoutModifier: string): boolean {
|
||||
if (keylayoutModifier === null)
|
||||
return false;
|
||||
const modifierSingle = keylayoutModifier.toUpperCase().split(" ");
|
||||
|
|
@ -737,7 +737,7 @@ export class KeylayoutToKmnConverter {
|
|||
* @param pos Ukelele (=mac) keycodes
|
||||
* @return VK
|
||||
*/
|
||||
private mapUkeleleKeycodeToVK(pos: number): string {
|
||||
public mapUkeleleKeycodeToVK(pos: number): string {
|
||||
const vk = [
|
||||
"K_A" /* A */,
|
||||
"K_S" /* S */,
|
||||
|
|
@ -1056,13 +1056,9 @@ export class KeylayoutToKmnConverter {
|
|||
/** @internal */
|
||||
public unitTestEndpoints = {
|
||||
convert: this.convert.bind(this),
|
||||
|
||||
reviewRuleInputData: this.reviewRuleInputData.bind(this),
|
||||
createKmnModifier: this.createKmnModifier.bind(this),
|
||||
checkIfCapsIsUsed: this.checkIfCapsIsUsed.bind(this),
|
||||
isAcceptableKeymanModifier: this.isAcceptableKeymanModifier.bind(this),
|
||||
mapUkeleleKeycodeToVK: this.mapUkeleleKeycodeToVK.bind(this),
|
||||
|
||||
getActionIndexFromActionId: this.getActionIndexFromActionId.bind(this),
|
||||
getActionIdFromActionNext: this.getActionIdFromActionNext.bind(this),
|
||||
getModifierArrayFromKeyModifierArray: this.getModifierArrayFromKeyModifierArray.bind(this),
|
||||
|
|
|
|||
|
|
@ -325,7 +325,7 @@ export class KmnFileWriter {
|
|||
// lookup key nr of the key which is being processed
|
||||
let keyNr: number = 0;
|
||||
for (let j = 0; j <= KeylayoutToKmnConverter.MAX_KEY_IDENTIFIER; j++) {
|
||||
if (keylayoutKmnConverter.unitTestEndpoints.mapUkeleleKeycodeToVK(j) === uniqueDataRules[k].key) {
|
||||
if (keylayoutKmnConverter.mapUkeleleKeycodeToVK(j) === uniqueDataRules[k].key) {
|
||||
keyNr = j;
|
||||
break;
|
||||
}
|
||||
|
|
@ -653,7 +653,7 @@ export class KmnFileWriter {
|
|||
// if the dk is unavailable, the modifiers of the dependant C0 rule will get a warning 'unavailable superior rule '
|
||||
if (inObj.Dk_modifier) {
|
||||
|
||||
const mod_OK = new KeylayoutToKmnConverter(this.callbacks, this.options).unitTestEndpoints.isAcceptableKeymanModifier(inObj.Dk_modifier);
|
||||
const mod_OK = new KeylayoutToKmnConverter(this.callbacks, this.options).isAcceptableKeymanModifier(inObj.Dk_modifier);
|
||||
|
||||
if ((outMsg[1].lastIndexOf('unavailable modifier') < 0))
|
||||
outMsg[1] += (!mod_OK) ? 'unavailable modifier ' : '';
|
||||
|
|
@ -803,7 +803,7 @@ export class KmnFileWriter {
|
|||
// ------------------------- check unavailable modifiers -------------------------
|
||||
|
||||
if ((rule[index].ruleType === "C0") || (rule[index].ruleType === "C1")) {
|
||||
if (!keylayoutKmnConverter.unitTestEndpoints.isAcceptableKeymanModifier(rule[index].modifierKey)) {
|
||||
if (!keylayoutKmnConverter.isAcceptableKeymanModifier(rule[index].modifierKey)) {
|
||||
unavailableModiWarnings.compare_type = 'unav_C0_C1';
|
||||
unavailableModiWarnings.warningMessages = this.createWarningText(unavailableModiWarnings);
|
||||
}
|
||||
|
|
@ -811,7 +811,7 @@ export class KmnFileWriter {
|
|||
|
||||
|
||||
else if (rule[index].ruleType === "C2") {
|
||||
if (!keylayoutKmnConverter.unitTestEndpoints.isAcceptableKeymanModifier(rule[index].modifierDeadkey)) {
|
||||
if (!keylayoutKmnConverter.isAcceptableKeymanModifier(rule[index].modifierDeadkey)) {
|
||||
unavailableSuperiWarnings.compare_type = 'unav_C2';
|
||||
unavailableSuperiWarnings.dk_prefix = ['C', 'A'];
|
||||
unavailableSuperiWarnings.dk_id = [rule[index].idPrevDeadkey, rule[index].idDeadkey];
|
||||
|
|
@ -820,7 +820,7 @@ export class KmnFileWriter {
|
|||
unavailableSuperiWarnings.warningMessages = this.createWarningText(unavailableSuperiWarnings);
|
||||
}
|
||||
|
||||
if (!keylayoutKmnConverter.unitTestEndpoints.isAcceptableKeymanModifier(rule[index].modifierKey)) {
|
||||
if (!keylayoutKmnConverter.isAcceptableKeymanModifier(rule[index].modifierKey)) {
|
||||
unavailableModiWarnings.compare_type = 'unav_C2';
|
||||
unavailableModiWarnings.modifier = rule[index].modifierKey;
|
||||
unavailableModiWarnings.key = rule[index].key;
|
||||
|
|
@ -830,7 +830,7 @@ export class KmnFileWriter {
|
|||
|
||||
|
||||
else if (rule[index].ruleType === "C3") {
|
||||
if (!keylayoutKmnConverter.unitTestEndpoints.isAcceptableKeymanModifier(rule[index].modifierPrevDeadkey)) {
|
||||
if (!keylayoutKmnConverter.isAcceptableKeymanModifier(rule[index].modifierPrevDeadkey)) {
|
||||
unavailableSuperiWarnings.compare_type = 'unav_C3';
|
||||
unavailableSuperiWarnings.dk_prefix = ['A', 'B'];
|
||||
unavailableSuperiWarnings.dk_id = [rule[index].idPrevDeadkey, rule[index].idDeadkey];
|
||||
|
|
@ -841,7 +841,7 @@ export class KmnFileWriter {
|
|||
unavailableSuperiWarnings.warningMessages = this.createWarningText(unavailableSuperiWarnings, 2);
|
||||
}
|
||||
|
||||
if (!keylayoutKmnConverter.unitTestEndpoints.isAcceptableKeymanModifier(rule[index].modifierDeadkey)) {
|
||||
if (!keylayoutKmnConverter.isAcceptableKeymanModifier(rule[index].modifierDeadkey)) {
|
||||
unavailableSuperiWarnings.compare_type = 'unav_C3';
|
||||
unavailableSuperiWarnings.prevDk_modifier = rule[index].modifierPrevDeadkey;
|
||||
unavailableSuperiWarnings.prevDk_key = rule[index].prevDeadkey;
|
||||
|
|
@ -852,7 +852,7 @@ export class KmnFileWriter {
|
|||
unavailableSuperiWarnings.warningMessages = this.createWarningText(unavailableSuperiWarnings, 2);
|
||||
}
|
||||
|
||||
if (!keylayoutKmnConverter.unitTestEndpoints.isAcceptableKeymanModifier(rule[index].modifierKey)) {
|
||||
if (!keylayoutKmnConverter.isAcceptableKeymanModifier(rule[index].modifierKey)) {
|
||||
unavailableModiWarnings.compare_type = 'unav_C3';
|
||||
unavailableModiWarnings.modifier = rule[index].modifierKey;
|
||||
unavailableModiWarnings.key = rule[index].key;
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ describe('KeylayoutFileReader', function () {
|
|||
const sutR = new KeylayoutFileReader(compilerTestCallbacks);
|
||||
const inputFilename = makePathToFixture('../data/Test.keylayout');
|
||||
const result: Keylayout.KeylayoutXMLSourceFile | null = sutR.read(compilerTestCallbacks.loadFile(inputFilename));
|
||||
const validated = sutR.unitTestEndpoints.validate(result as Keylayout.KeylayoutXMLSourceFile, inputFilename);
|
||||
const validated = sutR.validate(result as Keylayout.KeylayoutXMLSourceFile, inputFilename);
|
||||
assert.isTrue(validated);
|
||||
});
|
||||
|
||||
|
|
@ -33,7 +33,7 @@ describe('KeylayoutFileReader', function () {
|
|||
const sutR = new KeylayoutFileReader(compilerTestCallbacks);
|
||||
const inputFilename = makePathToFixture('../data/Test_unknownTags.keylayout');
|
||||
const result: Keylayout.KeylayoutXMLSourceFile | null = sutR.read(compilerTestCallbacks.loadFile(inputFilename));
|
||||
const validated = sutR.unitTestEndpoints.validate(result as Keylayout.KeylayoutXMLSourceFile, inputFilename);
|
||||
const validated = sutR.validate(result as Keylayout.KeylayoutXMLSourceFile, inputFilename);
|
||||
assert.isFalse(validated);
|
||||
});
|
||||
|
||||
|
|
@ -41,33 +41,33 @@ describe('KeylayoutFileReader', function () {
|
|||
const sutR = new KeylayoutFileReader(compilerTestCallbacks);
|
||||
const inputFilename = makePathToFixture('../data/Test_additionalTags.keylayout');
|
||||
const result: Keylayout.KeylayoutXMLSourceFile | null = sutR.read(compilerTestCallbacks.loadFile(inputFilename));
|
||||
const validated = sutR.unitTestEndpoints.validate(result as Keylayout.KeylayoutXMLSourceFile, inputFilename);
|
||||
const validated = sutR.validate(result as Keylayout.KeylayoutXMLSourceFile, inputFilename);
|
||||
assert.isFalse(validated);
|
||||
});
|
||||
it('validate() should return false on inputfile with missing tags', async function () {
|
||||
const sutR = new KeylayoutFileReader(compilerTestCallbacks);
|
||||
const inputFilename = makePathToFixture('../data/Test_missingTags.keylayout');
|
||||
const result: Keylayout.KeylayoutXMLSourceFile | null = sutR.read(compilerTestCallbacks.loadFile(inputFilename));
|
||||
const validated = sutR.unitTestEndpoints.validate(result as Keylayout.KeylayoutXMLSourceFile, inputFilename);
|
||||
const validated = sutR.validate(result as Keylayout.KeylayoutXMLSourceFile, inputFilename);
|
||||
assert.isFalse(validated);
|
||||
});
|
||||
it('validate() should return false on no entries in action-when', async function () {
|
||||
const sutR = new KeylayoutFileReader(compilerTestCallbacks);
|
||||
const inputFilename = makePathToFixture('../data/Test_noActionWhen.keylayout');
|
||||
const result: Keylayout.KeylayoutXMLSourceFile | null = sutR.read(compilerTestCallbacks.loadFile(inputFilename));
|
||||
const validated = sutR.unitTestEndpoints.validate(result as Keylayout.KeylayoutXMLSourceFile, inputFilename);
|
||||
const validated = sutR.validate(result as Keylayout.KeylayoutXMLSourceFile, inputFilename);
|
||||
assert.isFalse(validated);
|
||||
});
|
||||
it('validate() should return false on null as input', async function () {
|
||||
const sutR = new KeylayoutFileReader(compilerTestCallbacks);
|
||||
const inputFilename = makePathToFixture('../data/Test_noActionWhen.keylayout');
|
||||
const validated = sutR.unitTestEndpoints.validate(null, inputFilename);
|
||||
const validated = sutR.validate(null, inputFilename);
|
||||
assert.isFalse(validated);
|
||||
});
|
||||
it('validate() should return false on undefined as input', async function () {
|
||||
const sutR = new KeylayoutFileReader(compilerTestCallbacks);
|
||||
const inputFilename = makePathToFixture('../data/Test_noActionWhen.keylayout');
|
||||
const validated = sutR.unitTestEndpoints.validate(undefined, inputFilename);
|
||||
const validated = sutR.validate(undefined, inputFilename);
|
||||
assert.isFalse(validated);
|
||||
});
|
||||
});
|
||||
|
|
@ -76,7 +76,7 @@ describe('KeylayoutFileReader', function () {
|
|||
const sutR = new KeylayoutFileReader(compilerTestCallbacks);
|
||||
const inputFilename = makePathToFixture('../data/Test_unknownTags.keylayout');
|
||||
const result: Keylayout.KeylayoutXMLSourceFile | null = sutR.read(compilerTestCallbacks.loadFile(inputFilename));
|
||||
const validated = sutR.unitTestEndpoints.validate(result as Keylayout.KeylayoutXMLSourceFile, inputFilename);
|
||||
const validated = sutR.validate(result as Keylayout.KeylayoutXMLSourceFile, inputFilename);
|
||||
assert.isFalse(validated);
|
||||
});
|
||||
|
||||
|
|
@ -84,7 +84,7 @@ describe('KeylayoutFileReader', function () {
|
|||
const sutR = new KeylayoutFileReader(compilerTestCallbacks);
|
||||
const inputFilename = makePathToFixture('../data/Test_additionalTags.keylayout');
|
||||
const result: Keylayout.KeylayoutXMLSourceFile | null = sutR.read(compilerTestCallbacks.loadFile(inputFilename));
|
||||
const validated = sutR.unitTestEndpoints.validate(result as Keylayout.KeylayoutXMLSourceFile, inputFilename);
|
||||
const validated = sutR.validate(result as Keylayout.KeylayoutXMLSourceFile, inputFilename);
|
||||
assert.isFalse(validated);
|
||||
});
|
||||
|
||||
|
|
@ -92,7 +92,7 @@ describe('KeylayoutFileReader', function () {
|
|||
const sutR = new KeylayoutFileReader(compilerTestCallbacks);
|
||||
const inputFilename = makePathToFixture('../data/Test_missingTags.keylayout');
|
||||
const result: Keylayout.KeylayoutXMLSourceFile | null = sutR.read(compilerTestCallbacks.loadFile(inputFilename));
|
||||
const validated = sutR.unitTestEndpoints.validate(result as Keylayout.KeylayoutXMLSourceFile, inputFilename);
|
||||
const validated = sutR.validate(result as Keylayout.KeylayoutXMLSourceFile, inputFilename);
|
||||
assert.isFalse(validated);
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -281,7 +281,7 @@ describe('KeylayoutToKmnConverter', function () {
|
|||
[null, false],
|
||||
].forEach(function (values) {
|
||||
it(("isAcceptableKeymanModifier(" + values[0] + ")").padEnd(38, " ") + ' should return ' + values[1], async function () {
|
||||
const result = sut.unitTestEndpoints.isAcceptableKeymanModifier(values[0] as string);
|
||||
const result = sut.isAcceptableKeymanModifier(values[0] as string);
|
||||
assert.equal(result, values[1]);
|
||||
});
|
||||
});
|
||||
|
|
@ -303,7 +303,7 @@ describe('KeylayoutToKmnConverter', function () {
|
|||
[, ''],
|
||||
].forEach(function (values) {
|
||||
it(("mapUkeleleKeycodeToVK(" + values[0] + ")").padEnd(26, " ") + "should return " + "'" + values[1] + "'", async function () {
|
||||
const result = sut.unitTestEndpoints.mapUkeleleKeycodeToVK(values[0] as number);
|
||||
const result = sut.mapUkeleleKeycodeToVK(values[0] as number);
|
||||
assert.equal(result, values[1]);
|
||||
});
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue