chore(common/web): add four additional test cases wrt VisualKeyboard version and null values

This commit is contained in:
Dr Mark C. Sinclair 2024-12-05 11:56:00 +00:00
parent 27b7fc33a2
commit 7a19de8b86

View file

@ -50,51 +50,122 @@ describe('Test of KVK-File-Writer', () => {
const binary: BUILDER_KVK_FILE = writer['build'](vk);
checkBuilderKvkFile(binary, vk);
});
it('does not take account of the VisualKeyboard version', () => {
const vk = initVisualKeyboard([
initVisualKeyboardKey(0),
initVisualKeyboardKey(1),
initVisualKeyboardKey(2),
],
(BUILDER_KVK_HEADER_VERSION + 0x0100),
BUILDER_KVK_HEADER_FLAGS.kvkhNone,
"associatedKeyboard",
DEFAULT_KVK_FONT,
DEFAULT_KVK_FONT,
undefined,
);
const writer = new KvkFileWriter;
const binary: BUILDER_KVK_FILE = writer['build'](vk);
checkBuilderKvkFile(binary, vk);
});
// it('can handle a null associatedKeyboard', () => {
// const vk = initVisualKeyboard([
// initVisualKeyboardKey(0),
// initVisualKeyboardKey(1),
// initVisualKeyboardKey(2),
// ],
// BUILDER_KVK_HEADER_FLAGS.kvkhNone,
// null,
// DEFAULT_KVK_FONT,
// DEFAULT_KVK_FONT,
// );
// initVisualKeyboardKey(0),
// initVisualKeyboardKey(1),
// initVisualKeyboardKey(2),
// ],
// undefined,
// BUILDER_KVK_HEADER_FLAGS.kvkhNone,
// null,
// DEFAULT_KVK_FONT,
// DEFAULT_KVK_FONT,
// undefined,
// );
// const writer = new KvkFileWriter;
// const binary: BUILDER_KVK_FILE = writer['build'](vk);
// checkBuilderKvkFile(binary, vk);
// });
// it('can handle a null ansiFont name', () => {
// const vk = initVisualKeyboard([
// initVisualKeyboardKey(0),
// initVisualKeyboardKey(1),
// initVisualKeyboardKey(2),
// ],
// BUILDER_KVK_HEADER_FLAGS.kvkhNone,
// "associatedKeyboard",
// { name: null, size: -12 },
// DEFAULT_KVK_FONT,
// );
// initVisualKeyboardKey(0),
// initVisualKeyboardKey(1),
// initVisualKeyboardKey(2),
// ],
// undefined,
// BUILDER_KVK_HEADER_FLAGS.kvkhNone,
// "associatedKeyboard",
// { name: null, size: -12 },
// DEFAULT_KVK_FONT,
// undefined,
// );
// const writer = new KvkFileWriter;
// const binary: BUILDER_KVK_FILE = writer['build'](vk);
// checkBuilderKvkFile(binary, vk);
// });
// it('can handle a null unicodeFont name', () => {
// const vk = initVisualKeyboard([
// initVisualKeyboardKey(0),
// initVisualKeyboardKey(1),
// initVisualKeyboardKey(2),
// ],
// BUILDER_KVK_HEADER_FLAGS.kvkhNone,
// "associatedKeyboard",
// DEFAULT_KVK_FONT,
// { name: null, size: -12 },
// );
// initVisualKeyboardKey(0),
// initVisualKeyboardKey(1),
// initVisualKeyboardKey(2),
// ],
// undefined,
// BUILDER_KVK_HEADER_FLAGS.kvkhNone,
// "associatedKeyboard",
// DEFAULT_KVK_FONT,
// { name: null, size: -12 },
// undefined,
// );
// const writer = new KvkFileWriter;
// const binary: BUILDER_KVK_FILE = writer['build'](vk);
// checkBuilderKvkFile(binary, vk);
// });
it('can handle a null vkey', () => {
const vk = initVisualKeyboard([
initVisualKeyboardKey(
null,
BUILDER_KVK_KEY_FLAGS.kvkkBitmap,
BUILDER_KVK_SHIFT_STATE.KVKS_NORMAL,
"text",
null,
),
initVisualKeyboardKey(1),
initVisualKeyboardKey(2),
]);
const writer = new KvkFileWriter;
const binary: BUILDER_KVK_FILE = writer['build'](vk);
checkBuilderKvkFile(binary, vk);
});
it('can handle a null key flags', () => {
const vk = initVisualKeyboard([
initVisualKeyboardKey(
0,
null,
BUILDER_KVK_SHIFT_STATE.KVKS_NORMAL,
"text",
null,
),
initVisualKeyboardKey(1),
initVisualKeyboardKey(2),
]);
const writer = new KvkFileWriter;
const binary: BUILDER_KVK_FILE = writer['build'](vk);
checkBuilderKvkFile(binary, vk);
});
it('can handle a null key shift', () => {
const vk = initVisualKeyboard([
initVisualKeyboardKey(
0,
BUILDER_KVK_KEY_FLAGS.kvkkBitmap,
null,
"text",
null,
),
initVisualKeyboardKey(1),
initVisualKeyboardKey(2),
]);
const writer = new KvkFileWriter;
const binary: BUILDER_KVK_FILE = writer['build'](vk);
checkBuilderKvkFile(binary, vk);
});
it('can handle a null key text', () => {
const vk = initVisualKeyboard([
initVisualKeyboardKey(
@ -163,33 +234,35 @@ describe('Test of KVK-File-Writer', () => {
function initVisualKeyboard(
vkks: VisualKeyboardKey[],
version: number = undefined,
flags: BUILDER_KVK_HEADER_FLAGS = BUILDER_KVK_HEADER_FLAGS.kvkhNone,
associatedKeyboard: string = "associatedKeyboard",
ansiFont: VisualKeyboardFont = DEFAULT_KVK_FONT,
unicodeFont: VisualKeyboardFont = DEFAULT_KVK_FONT,
underlyingLayout: string = undefined,
): VisualKeyboard {
const vkh = {
// version?: number,
version: version,
flags: flags,
associatedKeyboard: associatedKeyboard,
ansiFont: ansiFont,
unicodeFont: unicodeFont,
// underlyingLayout?: string,
underlyingLayout: underlyingLayout,
};
return { header: vkh, keys: vkks };
};
function initVisualKeyboardKey(
index: number,
vkey: number,
flags: BUILDER_KVK_KEY_FLAGS = BUILDER_KVK_KEY_FLAGS.kvkkBitmap,
shift: BUILDER_KVK_SHIFT_STATE = BUILDER_KVK_SHIFT_STATE.KVKS_NORMAL,
text: string = "text",
bitmap: number[] = null,
): VisualKeyboardKey {
const vkk: VisualKeyboardKey = {
vkey: vkey,
flags: flags,
shift: shift,
vkey: index,
text: text,
bitmap: bitmap ? new Uint8Array(bitmap) : null,
};