From 80c1f8864a4b2d66c9683f2dd9e1326932d7d847 Mon Sep 17 00:00:00 2001 From: Eberhard Beilharz Date: Thu, 11 Dec 2025 16:58:26 +0100 Subject: [PATCH 1/2] test(web): add baseline tests for .js keyboards Test-bot: skip --- .../baseline/k_000___null_keyboard.js | 1 + .../baseline/k_001___basic_input_unicodei.js | 1 + .../baseline/k_002___basic_input_unicode.js | 1 + common/test/keyboards/baseline/k_003___nul.js | 1 + .../baseline/k_004___basic_input__shift_2_.js | 1 + .../k_005___nul_with_initial_context.js | 1 + .../k_006___vkey_input__shift_ctrl_.js | 1 + .../baseline/k_007___vkey_input__ctrl_alt_.js | 1 + .../k_008___vkey_input__ctrl_alt_2_.js | 1 + .../test/keyboards/baseline/k_012___ralt.js | 1 + .../keyboards/baseline/k_013___deadkeys.js | 1 + .../k_014___groups_and_virtual_keys.js | 1 + .../test/keyboards/baseline/k_015___ralt_2.js | 1 + .../baseline/k_017___space_mnemonic_kbd.js | 1 + .../keyboards/baseline/k_018___nul_testing.js | 1 + .../baseline/k_019___multiple_deadkeys.js | 1 + .../k_020___deadkeys_and_backspace.js | 1 + .../keyboards/baseline/k_021___options.js | 1 + .../baseline/k_022___options_with_preset.js | 1 + .../baseline/k_023___options_with_save.js | 1 + .../k_024___options_with_save_and_preset.js | 1 + .../baseline/k_025___options_with_reset.js | 1 + .../baseline/k_026___system_stores.js | 1 + .../baseline/k_027___system_stores_2.js | 1 + common/test/keyboards/baseline/k_028___smp.js | 1 + .../test/keyboards/baseline/k_029___beep.js | 1 + .../baseline/k_030___multiple_groups.js | 1 + .../keyboards/baseline/k_031___caps_lock.js | 1 + .../baseline/k_032___caps_control.js | 1 + .../baseline/k_033___caps_always_off.js | 1 + .../k_034___options_double_set_reset.js | 1 + .../k_035___options_double_set_staged.js | 1 + .../k_036___options___double_reset_staged.js | 1 + .../k_037___options___double_reset.js | 1 + .../keyboards/baseline/k_038___punctkeys.js | 1 + .../baseline/k_039___generic_ctrlalt.js | 1 + .../baseline/k_040___long_context.js | 1 + .../k_041___long_context_and_deadkeys.js | 1 + ...k_042___long_context_and_split_deadkeys.js | 1 + .../baseline/k_043___output_and_keystroke.js | 1 + .../baseline/k_044___if_and_context.js | 1 + .../baseline/k_045___deadkey_and_context.js | 1 + .../baseline/k_046___deadkey_and_contextex.js | 1 + .../k_047___caps_always_off_initially_on.js | 1 + .../k_048___modifier_keys_keep_context.js | 1 + .../k_049___enter_invalidates_context.js | 1 + .../baseline/k_050___nul_and_context.js | 1 + .../baseline/k_051___if_and_context.js | 1 + .../baseline/k_052___nul_and_index.js | 1 + .../baseline/k_053___if_and_index.js | 1 + .../k_055___deadkey_cancelled_by_arrow.js | 1 + .../test/auto/e2e/baseline/baseline.tests.ts | 185 +++++++++++------- 52 files changed, 170 insertions(+), 66 deletions(-) create mode 100755 common/test/keyboards/baseline/k_000___null_keyboard.js create mode 100755 common/test/keyboards/baseline/k_001___basic_input_unicodei.js create mode 100755 common/test/keyboards/baseline/k_002___basic_input_unicode.js create mode 100755 common/test/keyboards/baseline/k_003___nul.js create mode 100755 common/test/keyboards/baseline/k_004___basic_input__shift_2_.js create mode 100755 common/test/keyboards/baseline/k_005___nul_with_initial_context.js create mode 100755 common/test/keyboards/baseline/k_006___vkey_input__shift_ctrl_.js create mode 100755 common/test/keyboards/baseline/k_007___vkey_input__ctrl_alt_.js create mode 100755 common/test/keyboards/baseline/k_008___vkey_input__ctrl_alt_2_.js create mode 100755 common/test/keyboards/baseline/k_012___ralt.js create mode 100755 common/test/keyboards/baseline/k_013___deadkeys.js create mode 100755 common/test/keyboards/baseline/k_014___groups_and_virtual_keys.js create mode 100755 common/test/keyboards/baseline/k_015___ralt_2.js create mode 100755 common/test/keyboards/baseline/k_017___space_mnemonic_kbd.js create mode 100755 common/test/keyboards/baseline/k_018___nul_testing.js create mode 100755 common/test/keyboards/baseline/k_019___multiple_deadkeys.js create mode 100755 common/test/keyboards/baseline/k_020___deadkeys_and_backspace.js create mode 100755 common/test/keyboards/baseline/k_021___options.js create mode 100755 common/test/keyboards/baseline/k_022___options_with_preset.js create mode 100755 common/test/keyboards/baseline/k_023___options_with_save.js create mode 100755 common/test/keyboards/baseline/k_024___options_with_save_and_preset.js create mode 100755 common/test/keyboards/baseline/k_025___options_with_reset.js create mode 100755 common/test/keyboards/baseline/k_026___system_stores.js create mode 100755 common/test/keyboards/baseline/k_027___system_stores_2.js create mode 100755 common/test/keyboards/baseline/k_028___smp.js create mode 100755 common/test/keyboards/baseline/k_029___beep.js create mode 100755 common/test/keyboards/baseline/k_030___multiple_groups.js create mode 100755 common/test/keyboards/baseline/k_031___caps_lock.js create mode 100755 common/test/keyboards/baseline/k_032___caps_control.js create mode 100755 common/test/keyboards/baseline/k_033___caps_always_off.js create mode 100755 common/test/keyboards/baseline/k_034___options_double_set_reset.js create mode 100755 common/test/keyboards/baseline/k_035___options_double_set_staged.js create mode 100755 common/test/keyboards/baseline/k_036___options___double_reset_staged.js create mode 100755 common/test/keyboards/baseline/k_037___options___double_reset.js create mode 100755 common/test/keyboards/baseline/k_038___punctkeys.js create mode 100755 common/test/keyboards/baseline/k_039___generic_ctrlalt.js create mode 100755 common/test/keyboards/baseline/k_040___long_context.js create mode 100755 common/test/keyboards/baseline/k_041___long_context_and_deadkeys.js create mode 100755 common/test/keyboards/baseline/k_042___long_context_and_split_deadkeys.js create mode 100755 common/test/keyboards/baseline/k_043___output_and_keystroke.js create mode 100755 common/test/keyboards/baseline/k_044___if_and_context.js create mode 100755 common/test/keyboards/baseline/k_045___deadkey_and_context.js create mode 100755 common/test/keyboards/baseline/k_046___deadkey_and_contextex.js create mode 100755 common/test/keyboards/baseline/k_047___caps_always_off_initially_on.js create mode 100755 common/test/keyboards/baseline/k_048___modifier_keys_keep_context.js create mode 100755 common/test/keyboards/baseline/k_049___enter_invalidates_context.js create mode 100755 common/test/keyboards/baseline/k_050___nul_and_context.js create mode 100755 common/test/keyboards/baseline/k_051___if_and_context.js create mode 100755 common/test/keyboards/baseline/k_052___nul_and_index.js create mode 100755 common/test/keyboards/baseline/k_053___if_and_index.js create mode 100755 common/test/keyboards/baseline/k_055___deadkey_cancelled_by_arrow.js diff --git a/common/test/keyboards/baseline/k_000___null_keyboard.js b/common/test/keyboards/baseline/k_000___null_keyboard.js new file mode 100755 index 00000000000..d22b7f3287d --- /dev/null +++ b/common/test/keyboards/baseline/k_000___null_keyboard.js @@ -0,0 +1 @@ +KeymanWeb.KR(new Keyboard_k_000___null_keyboard());function Keyboard_k_000___null_keyboard(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_000___null_keyboard";this.KN="000 - null keyboard";this.KMINVER="9.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0000;this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_001___basic_input_unicodei.js b/common/test/keyboards/baseline/k_001___basic_input_unicodei.js new file mode 100755 index 00000000000..2c6ff5d98aa --- /dev/null +++ b/common/test/keyboards/baseline/k_001___basic_input_unicodei.js @@ -0,0 +1 @@ +KeymanWeb.KR(new Keyboard_k_001___basic_input_unicodei());function Keyboard_k_001___basic_input_unicodei(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_001___basic_input_unicodei";this.KN="001 - basic input UnicodeI";this.KMINVER="6.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0010;this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16400,65)) {if(1){r=m=1;k.KO(0,t,"a");}}else if(k.KKM(e,16400,66)) {if(1){r=m=1;k.KO(0,t,"b");}}else if(k.KKM(e,16400,67)) {if(1){r=m=1;k.KO(0,t,"c");}}else if(k.KKM(e,16400,70)) {if(k.KCM(2,t,"DE",2)){r=m=1;k.KO(2,t,"def");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_002___basic_input_unicode.js b/common/test/keyboards/baseline/k_002___basic_input_unicode.js new file mode 100755 index 00000000000..660dbc905e8 --- /dev/null +++ b/common/test/keyboards/baseline/k_002___basic_input_unicode.js @@ -0,0 +1 @@ +KeymanWeb.KR(new Keyboard_k_002___basic_input_unicode());function Keyboard_k_002___basic_input_unicode(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_002___basic_input_unicode";this.KN="002 - basic input Unicode";this.KMINVER="6.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0010;this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16400,65)) {if(1){r=m=1;k.KO(0,t,"ก");}}else if(k.KKM(e,16400,66)) {if(1){r=m=1;k.KO(0,t,"ข");}}else if(k.KKM(e,16400,67)) {if(1){r=m=1;k.KO(0,t,"ฃ");}}else if(k.KKM(e,16400,70)) {if(k.KCM(2,t,"DE",2)){r=m=1;k.KO(2,t,"คฅฆ");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_003___nul.js b/common/test/keyboards/baseline/k_003___nul.js new file mode 100755 index 00000000000..8adf3b1c69d --- /dev/null +++ b/common/test/keyboards/baseline/k_003___nul.js @@ -0,0 +1 @@ +KeymanWeb.KR(new Keyboard_k_003___nul());function Keyboard_k_003___nul(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_003___nul";this.KN="003 - nul";this.KMINVER="6.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0000;this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16384,65)) {if(k.KN(0,t)){r=m=1;k.KO(0,t,"b");}else if(k.KCM(1,t,"b",1)){r=m=1;k.KO(1,t,"c");}else if(1){r=m=1;k.KO(0,t,"d");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_004___basic_input__shift_2_.js b/common/test/keyboards/baseline/k_004___basic_input__shift_2_.js new file mode 100755 index 00000000000..de9374fe920 --- /dev/null +++ b/common/test/keyboards/baseline/k_004___basic_input__shift_2_.js @@ -0,0 +1 @@ +KeymanWeb.KR(new Keyboard_k_004___basic_input__shift_2_());function Keyboard_k_004___basic_input__shift_2_(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_004___basic_input__shift_2_";this.KN="004 - basic input (shift 2)";this.KMINVER="6.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0010;this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16400,65)) {if(1){r=m=1;k.KO(0,t,"ก");}}else if(k.KKM(e,16400,66)) {if(1){r=m=1;k.KO(0,t,"ข");}}else if(k.KKM(e,16400,67)) {if(1){r=m=1;k.KO(0,t,"ฃ");}}else if(k.KKM(e,16400,70)) {if(k.KCM(2,t,"DE",2)){r=m=1;k.KO(2,t,"คฅฆ");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_005___nul_with_initial_context.js b/common/test/keyboards/baseline/k_005___nul_with_initial_context.js new file mode 100755 index 00000000000..114018d2f4b --- /dev/null +++ b/common/test/keyboards/baseline/k_005___nul_with_initial_context.js @@ -0,0 +1 @@ +KeymanWeb.KR(new Keyboard_k_005___nul_with_initial_context());function Keyboard_k_005___nul_with_initial_context(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_005___nul_with_initial_context";this.KN="005 - nul with initial context";this.KMINVER="6.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0000;this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16384,65)) {if(k.KN(0,t)){r=m=1;k.KO(0,t,"b");}else if(k.KCM(1,t,"b",1)){r=m=1;k.KO(1,t,"c");}else if(1){r=m=1;k.KO(0,t,"d");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_006___vkey_input__shift_ctrl_.js b/common/test/keyboards/baseline/k_006___vkey_input__shift_ctrl_.js new file mode 100755 index 00000000000..28e7b1525d3 --- /dev/null +++ b/common/test/keyboards/baseline/k_006___vkey_input__shift_ctrl_.js @@ -0,0 +1 @@ +KeymanWeb.KR(new Keyboard_k_006___vkey_input__shift_ctrl_());function Keyboard_k_006___vkey_input__shift_ctrl_(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_006___vkey_input__shift_ctrl_";this.KN="006 - vkey input (shift ctrl)";this.KMINVER="6.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0030;this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16432,65)) {if(1){r=m=1;k.KO(0,t,"ก");}}else if(k.KKM(e,16400,66)) {if(1){r=m=1;k.KO(0,t,"ข");}}else if(k.KKM(e,16432,67)) {if(1){r=m=1;k.KO(0,t,"ฃ");}}else if(k.KKM(e,16400,70)) {if(k.KCM(2,t,"DE",2)){r=m=1;k.KO(2,t,"คฅฆ");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_007___vkey_input__ctrl_alt_.js b/common/test/keyboards/baseline/k_007___vkey_input__ctrl_alt_.js new file mode 100755 index 00000000000..e4b0e5f291c --- /dev/null +++ b/common/test/keyboards/baseline/k_007___vkey_input__ctrl_alt_.js @@ -0,0 +1 @@ +KeymanWeb.KR(new Keyboard_k_007___vkey_input__ctrl_alt_());function Keyboard_k_007___vkey_input__ctrl_alt_(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_007___vkey_input__ctrl_alt_";this.KN="007 - vkey input (ctrl alt)";this.KMINVER="6.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0060;this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16480,65)) {if(1){r=m=1;k.KO(0,t,"ก");}}else if(k.KKM(e,16384,66)) {if(1){r=m=1;k.KO(0,t,"ข");}}else if(k.KKM(e,16480,67)) {if(1){r=m=1;k.KO(0,t,"ฃ");}}else if(k.KKM(e,16480,70)) {if(k.KCM(2,t,"de",2)){r=m=1;k.KO(2,t,"คฅฆ");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_008___vkey_input__ctrl_alt_2_.js b/common/test/keyboards/baseline/k_008___vkey_input__ctrl_alt_2_.js new file mode 100755 index 00000000000..11ca6ba19f4 --- /dev/null +++ b/common/test/keyboards/baseline/k_008___vkey_input__ctrl_alt_2_.js @@ -0,0 +1 @@ +KeymanWeb.KR(new Keyboard_k_008___vkey_input__ctrl_alt_2_());function Keyboard_k_008___vkey_input__ctrl_alt_2_(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_008___vkey_input__ctrl_alt_2_";this.KN="008 - vkey input (ctrl alt 2)";this.KMINVER="6.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0060;this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16480,65)) {if(1){r=m=1;k.KO(0,t,"ก");}}else if(k.KKM(e,16480,67)) {if(1){r=m=1;k.KO(0,t,"ฃ");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_012___ralt.js b/common/test/keyboards/baseline/k_012___ralt.js new file mode 100755 index 00000000000..5df180316b2 --- /dev/null +++ b/common/test/keyboards/baseline/k_012___ralt.js @@ -0,0 +1 @@ +KeymanWeb.KR(new Keyboard_k_012___ralt());function Keyboard_k_012___ralt(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_012___ralt";this.KN="012 - ralt";this.KMINVER="9.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0060;this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16384,65)) {if(1){r=m=1;k.KO(0,t,"ז");}}else if(k.KKM(e,16384,79)) {if(1){r=m=1;k.KO(0,t,"ר");}}else if(k.KKM(e,16480,65)) {if(1){r=m=1;k.KO(0,t,"b");}}else if(k.KKM(e,16480,79)) {if(1){r=m=1;k.KO(0,t,"c");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_013___deadkeys.js b/common/test/keyboards/baseline/k_013___deadkeys.js new file mode 100755 index 00000000000..377100493fe --- /dev/null +++ b/common/test/keyboards/baseline/k_013___deadkeys.js @@ -0,0 +1 @@ +KeymanWeb.KR(new Keyboard_k_013___deadkeys());function Keyboard_k_013___deadkeys(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_013___deadkeys";this.KN="013 - deadkeys";this.KMINVER="9.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0010;this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16400,54)) {if(1){r=m=1;k.KDO(0,t,0);}}else if(k.KKM(e,16384,65)) {if(k.KDM(0,t,0)){r=m=1;k.KO(0,t,"â");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_014___groups_and_virtual_keys.js b/common/test/keyboards/baseline/k_014___groups_and_virtual_keys.js new file mode 100755 index 00000000000..65d043fda04 --- /dev/null +++ b/common/test/keyboards/baseline/k_014___groups_and_virtual_keys.js @@ -0,0 +1 @@ +KeymanWeb.KR(new Keyboard_k_014___groups_and_virtual_keys());function Keyboard_k_014___groups_and_virtual_keys(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_014___groups_and_virtual_keys";this.KN="014 - groups and virtual keys";this.KMINVER="9.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0070;this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16416,50)) {if(1){r=m=1;k.KDO(0,t,0);}}else if(k.KKM(e,16448,50)) {if(1){r=m=1;k.KDO(0,t,0);}}else if(k.KKM(e,16400,50)) {if(1){r=m=1;k.KDO(0,t,1);}}else if(k.KKM(e,16384,65)) {if(1){r=m=1;k.KO(0,t,"α");}}if(m==1) {r=this.g1(t,e);m=2;}return r;};this.g1=function(t,e) {var k=KeymanWeb,r=1,m=0;if(k.KDM(1,t,0)&&k.KCM(1,t,"α",1)){m=1;k.KO(1,t,"ᾱ");}else if(k.KDM(1,t,1)&&k.KCM(1,t,"α",1)){m=1;k.KO(1,t,"ᾰ");}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_015___ralt_2.js b/common/test/keyboards/baseline/k_015___ralt_2.js new file mode 100755 index 00000000000..741a0871845 --- /dev/null +++ b/common/test/keyboards/baseline/k_015___ralt_2.js @@ -0,0 +1 @@ +KeymanWeb.KR(new Keyboard_k_015___ralt_2());function Keyboard_k_015___ralt_2(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_015___ralt_2";this.KN="015 - ralt 2";this.KMINVER="9.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0000;this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16384,65)) {if(k.KCM(1,t,"c",1)){r=m=1;k.KO(1,t,"cd");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_017___space_mnemonic_kbd.js b/common/test/keyboards/baseline/k_017___space_mnemonic_kbd.js new file mode 100755 index 00000000000..489675682d0 --- /dev/null +++ b/common/test/keyboards/baseline/k_017___space_mnemonic_kbd.js @@ -0,0 +1 @@ +KeymanWeb.KR(new Keyboard_k_017___space_mnemonic_kbd());function Keyboard_k_017___space_mnemonic_kbd(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_017___space_mnemonic_kbd";this.KN="017 - space mnemonic kbd";this.KMINVER="9.0";this.KV=null;this.KDU=0;this.KH='';this.KM=1;this.KBVER="1.0";this.KMBM=0x0000;this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16384,32)) {if(k.KCM(2,t,"ab",2)){r=m=1;k.KO(2,t,"X");}}else if(k.KKM(e,16384,100)) {if(k.KCM(2,t,"c ",2)){r=m=1;k.KO(2,t,"Y");}}else if(k.KKM(e,16384,101)) {if(k.KCM(2,t," d",2)){r=m=1;k.KO(2,t,"Z");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_018___nul_testing.js b/common/test/keyboards/baseline/k_018___nul_testing.js new file mode 100755 index 00000000000..09e69468dbf --- /dev/null +++ b/common/test/keyboards/baseline/k_018___nul_testing.js @@ -0,0 +1 @@ +KeymanWeb.KR(new Keyboard_k_018___nul_testing());function Keyboard_k_018___nul_testing(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_018___nul_testing";this.KN="018 - nul testing";this.KMINVER="9.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0000;this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16384,65)) {if(k.KN(0,t)){r=m=1;k.KO(0,t,"OK");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_019___multiple_deadkeys.js b/common/test/keyboards/baseline/k_019___multiple_deadkeys.js new file mode 100755 index 00000000000..4e928ab0a58 --- /dev/null +++ b/common/test/keyboards/baseline/k_019___multiple_deadkeys.js @@ -0,0 +1 @@ +KeymanWeb.KR(new Keyboard_k_019___multiple_deadkeys());function Keyboard_k_019___multiple_deadkeys(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_019___multiple_deadkeys";this.KN="019 - multiple deadkeys";this.KMINVER="9.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0000;this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16384,49)) {if(1){r=m=1;k.KDO(0,t,0);}}else if(k.KKM(e,16384,50)) {if(1){r=m=1;k.KO(0,t,"a");k.KDO(-1,t,1);}}else if(k.KKM(e,16384,51)) {if(1){r=m=1;k.KDO(0,t,2);k.KO(-1,t,"a");}}else if(k.KKM(e,16384,52)) {if(1){r=m=1;k.KDO(0,t,3);k.KDO(-1,t,4);}}else if(k.KKM(e,16384,53)) {if(1){r=m=1;k.KO(0,t,"a");k.KDO(-1,t,5);k.KDO(-1,t,6);}}else if(k.KKM(e,16384,54)) {if(1){r=m=1;k.KO(0,t,"a");k.KDO(-1,t,7);k.KDO(-1,t,8);k.KO(-1,t,"b");}}else if(k.KKM(e,16384,55)) {if(1){r=m=1;k.KDO(0,t,9);k.KDO(-1,t,10);k.KO(-1,t,"a");}}else if(k.KKM(e,16384,56)) {if(1){r=m=1;k.KDO(0,t,11);k.KDO(-1,t,12);k.KDO(-1,t,13);}}else if(k.KKM(e,16384,57)) {if(1){r=m=1;k.KO(0,t,"{");k.KDO(-1,t,14);k.KDO(-1,t,15);k.KO(-1,t,"}");k.KDO(-1,t,16);k.KDO(-1,t,17);}}else if(k.KKM(e,16384,88)) {if(k.KCM(2,t,"{",1)&&k.KDM(1,t,14)&&k.KDM(1,t,18)&&k.KCM(1,t,"}",1)&&k.KDM(0,t,19)&&k.KDM(0,t,20)){r=m=1;k.KO(2,t,"9=OK");}else if(k.KCM(2,t,"a",1)&&k.KDM(1,t,7)&&k.KDM(1,t,8)&&k.KCM(1,t,"b",1)){r=m=1;k.KO(2,t,"6=OK ");}else if(k.KDM(1,t,15)&&k.KCM(1,t,"}",1)&&k.KDM(0,t,16)&&k.KDM(0,t,17)){r=m=1;k.KDO(1,t,18);k.KO(-1,t,"}");k.KDO(-1,t,19);k.KDO(-1,t,20);}else if(k.KCM(1,t,"a",1)&&k.KDM(0,t,5)&&k.KDM(0,t,6)){r=m=1;k.KO(1,t,"5=OK ");}else if(k.KDM(1,t,9)&&k.KDM(1,t,10)&&k.KCM(1,t,"a",1)){r=m=1;k.KO(1,t,"7=OK ");}else if(k.KDM(0,t,11)&&k.KDM(0,t,12)&&k.KDM(0,t,13)){r=m=1;k.KO(0,t,"8=OK ");}else if(k.KCM(1,t,"a",1)&&k.KDM(0,t,1)){r=m=1;k.KO(1,t,"2=OK ");}else if(k.KDM(1,t,2)&&k.KCM(1,t,"a",1)){r=m=1;k.KO(1,t,"3=OK ");}else if(k.KDM(0,t,3)&&k.KDM(0,t,4)){r=m=1;k.KO(0,t,"4=OK ");}else if(k.KDM(1,t,9)&&k.KCM(1,t,"a",1)){r=m=1;k.KO(1,t,"7=Fail1 ");}else if(k.KDM(1,t,10)&&k.KCM(1,t,"a",1)){r=m=1;k.KO(1,t,"7=Fail2 ");}else if(k.KDM(0,t,11)&&k.KDM(0,t,12)){r=m=1;k.KO(0,t,"8=Fail4 ");}else if(k.KDM(0,t,11)&&k.KDM(0,t,13)){r=m=1;k.KO(0,t,"8=Fail5 ");}else if(k.KDM(0,t,12)&&k.KDM(0,t,13)){r=m=1;k.KO(0,t,"8=Fail6 ");}else if(k.KDM(0,t,0)){r=m=1;k.KO(0,t,"1=OK ");}else if(k.KDM(0,t,11)){r=m=1;k.KO(0,t,"8=Fail1 ");}else if(k.KDM(0,t,12)){r=m=1;k.KO(0,t,"8=Fail2 ");}else if(k.KDM(0,t,13)){r=m=1;k.KO(0,t,"8=Fail3 ");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_020___deadkeys_and_backspace.js b/common/test/keyboards/baseline/k_020___deadkeys_and_backspace.js new file mode 100755 index 00000000000..85742c0edd8 --- /dev/null +++ b/common/test/keyboards/baseline/k_020___deadkeys_and_backspace.js @@ -0,0 +1 @@ +KeymanWeb.KR(new Keyboard_k_020___deadkeys_and_backspace());function Keyboard_k_020___deadkeys_and_backspace(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_020___deadkeys_and_backspace";this.KN="020 - deadkeys and backspace";this.KMINVER="9.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0000;this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16384,8)) {if(k.KCM(2,t,"c",1)&&k.KDM(1,t,11)&&k.KCM(1,t,"d",1)){r=m=1;k.KO(2,t," ok");}else if(k.KCM(2,t,"cd",2)){r=m=1;k.KO(2,t," fail");}}else if(k.KKM(e,16384,49)) {if(1){r=m=1;k.KDO(0,t,0);}}else if(k.KKM(e,16384,50)) {if(1){r=m=1;k.KO(0,t,"a");k.KDO(-1,t,1);}}else if(k.KKM(e,16384,51)) {if(1){r=m=1;k.KDO(0,t,2);k.KO(-1,t,"a");}}else if(k.KKM(e,16384,52)) {if(1){r=m=1;k.KDO(0,t,3);k.KDO(-1,t,4);}}else if(k.KKM(e,16384,53)) {if(1){r=m=1;k.KO(0,t,"a");k.KDO(-1,t,5);k.KDO(-1,t,6);k.KO(-1,t,"b");}}else if(k.KKM(e,16384,54)) {if(1){r=m=1;k.KO(0,t,"a");k.KDO(-1,t,7);k.KDO(-1,t,8);k.KO(-1,t,"b");k.KDO(-1,t,9);k.KDO(-1,t,10);}}else if(k.KKM(e,16384,55)) {if(1){r=m=1;k.KO(0,t,"c");k.KDO(-1,t,11);k.KO(-1,t,"de");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_021___options.js b/common/test/keyboards/baseline/k_021___options.js new file mode 100755 index 00000000000..8d0463e8219 --- /dev/null +++ b/common/test/keyboards/baseline/k_021___options.js @@ -0,0 +1 @@ +if(typeof keyman === 'undefined') {console.log('Keyboard requires KeymanWeb 10.0 or later');if(typeof tavultesoft !== 'undefined') tavultesoft.keymanweb.util.alert("This keyboard requires KeymanWeb 10.0 or later");} else {KeymanWeb.KR(new Keyboard_k_021___options());}function Keyboard_k_021___options(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_021___options";this.KN="021 - options";this.KMINVER="10.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0000;this.s5=KeymanWeb.KLOAD(this.KI,"foo","0");this.s8="1";this.s9="0";this.s10="1";this.s11="0";this.KVER="16.0.138.0";this.KVS=['s5'];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16384,48)) {if(1){r=m=1;k.KDC(0,t);this.s5=this.s11;}}else if(k.KKM(e,16384,49)) {if(1){r=m=1;k.KDC(0,t);this.s5=this.s10;}}else if(k.KKM(e,16384,65)) {if(this.s5===this.s8){r=m=1;k.KDC(0,t);k.KO(-1,t,"foo.");}else if(this.s5===this.s9){r=m=1;k.KDC(0,t);k.KO(-1,t,"no foo.");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_022___options_with_preset.js b/common/test/keyboards/baseline/k_022___options_with_preset.js new file mode 100755 index 00000000000..2e85641ef38 --- /dev/null +++ b/common/test/keyboards/baseline/k_022___options_with_preset.js @@ -0,0 +1 @@ +if(typeof keyman === 'undefined') {console.log('Keyboard requires KeymanWeb 10.0 or later');if(typeof tavultesoft !== 'undefined') tavultesoft.keymanweb.util.alert("This keyboard requires KeymanWeb 10.0 or later");} else {KeymanWeb.KR(new Keyboard_k_022___options_with_preset());}function Keyboard_k_022___options_with_preset(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_022___options_with_preset";this.KN="022 - options with preset";this.KMINVER="10.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0000;this.s5=KeymanWeb.KLOAD(this.KI,"foo","0");this.s8="1";this.s9="0";this.s10="1";this.s11="0";this.KVER="16.0.138.0";this.KVS=['s5'];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16384,48)) {if(1){r=m=1;k.KDC(0,t);this.s5=this.s11;k.KSAVE("foo",this.s5);}}else if(k.KKM(e,16384,49)) {if(1){r=m=1;k.KDC(0,t);this.s5=this.s10;k.KSAVE("foo",this.s5);}}else if(k.KKM(e,16384,65)) {if(this.s5===this.s8){r=m=1;k.KDC(0,t);k.KO(-1,t,"foo.");}else if(this.s5===this.s9){r=m=1;k.KDC(0,t);k.KO(-1,t,"no foo.");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_023___options_with_save.js b/common/test/keyboards/baseline/k_023___options_with_save.js new file mode 100755 index 00000000000..39fc6dba75a --- /dev/null +++ b/common/test/keyboards/baseline/k_023___options_with_save.js @@ -0,0 +1 @@ +if(typeof keyman === 'undefined') {console.log('Keyboard requires KeymanWeb 10.0 or later');if(typeof tavultesoft !== 'undefined') tavultesoft.keymanweb.util.alert("This keyboard requires KeymanWeb 10.0 or later");} else {KeymanWeb.KR(new Keyboard_k_023___options_with_save());}function Keyboard_k_023___options_with_save(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_023___options_with_save";this.KN="023 - options with save";this.KMINVER="10.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0000;this.s5=KeymanWeb.KLOAD(this.KI,"foo","0");this.s8="1";this.s9="0";this.s10="1";this.s11="0";this.KVER="16.0.138.0";this.KVS=['s5'];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16384,48)) {if(1){r=m=1;k.KDC(0,t);this.s5=this.s11;}}else if(k.KKM(e,16384,49)) {if(1){r=m=1;k.KDC(0,t);this.s5=this.s10;}}else if(k.KKM(e,16384,50)) {if(1){r=m=1;k.KDC(0,t);k.KSAVE("foo",this.s5);}}else if(k.KKM(e,16384,65)) {if(this.s5===this.s8){r=m=1;k.KDC(0,t);k.KO(-1,t,"foo.");}else if(this.s5===this.s9){r=m=1;k.KDC(0,t);k.KO(-1,t,"no foo.");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_024___options_with_save_and_preset.js b/common/test/keyboards/baseline/k_024___options_with_save_and_preset.js new file mode 100755 index 00000000000..81152ece466 --- /dev/null +++ b/common/test/keyboards/baseline/k_024___options_with_save_and_preset.js @@ -0,0 +1 @@ +if(typeof keyman === 'undefined') {console.log('Keyboard requires KeymanWeb 10.0 or later');if(typeof tavultesoft !== 'undefined') tavultesoft.keymanweb.util.alert("This keyboard requires KeymanWeb 10.0 or later");} else {KeymanWeb.KR(new Keyboard_k_024___options_with_save_and_preset());}function Keyboard_k_024___options_with_save_and_preset(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_024___options_with_save_and_preset";this.KN="024 - options with save and preset";this.KMINVER="10.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0000;this.s5=KeymanWeb.KLOAD(this.KI,"foo","0");this.s8="1";this.s9="0";this.s10="1";this.s11="0";this.s12="0";this.KVER="16.0.138.0";this.KVS=['s5'];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16384,48)) {if(1){r=m=1;k.KDC(0,t);this.s5=this.s11;}}else if(k.KKM(e,16384,49)) {if(1){r=m=1;k.KDC(0,t);this.s5=this.s10;}}else if(k.KKM(e,16384,50)) {if(this.s5===this.s12){r=m=1;k.KDC(0,t);k.KSAVE("foo",this.s5);}}else if(k.KKM(e,16384,65)) {if(this.s5===this.s8){r=m=1;k.KDC(0,t);k.KO(-1,t,"foo.");}else if(this.s5===this.s9){r=m=1;k.KDC(0,t);k.KO(-1,t,"no foo.");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_025___options_with_reset.js b/common/test/keyboards/baseline/k_025___options_with_reset.js new file mode 100755 index 00000000000..e8a48164b00 --- /dev/null +++ b/common/test/keyboards/baseline/k_025___options_with_reset.js @@ -0,0 +1 @@ +if(typeof keyman === 'undefined') {console.log('Keyboard requires KeymanWeb 10.0 or later');if(typeof tavultesoft !== 'undefined') tavultesoft.keymanweb.util.alert("This keyboard requires KeymanWeb 10.0 or later");} else {KeymanWeb.KR(new Keyboard_k_025___options_with_reset());}function Keyboard_k_025___options_with_reset(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_025___options_with_reset";this.KN="025 - options with reset";this.KMINVER="10.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0000;this.s5=KeymanWeb.KLOAD(this.KI,"foo","0");this.s8="1";this.s9="0";this.s10="1";this.s11="0";this.KVER="16.0.138.0";this.KVS=['s5'];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16384,48)) {if(1){r=m=1;k.KDC(0,t);this.s5=this.s11;}}else if(k.KKM(e,16384,49)) {if(1){r=m=1;k.KDC(0,t);this.s5=this.s10;}}else if(k.KKM(e,16384,51)) {if(1){r=m=1;k.KDC(0,t);this.s5=k.KLOAD(this.KI,"foo","0");}}else if(k.KKM(e,16384,65)) {if(this.s5===this.s8){r=m=1;k.KDC(0,t);k.KO(-1,t,"foo.");}else if(this.s5===this.s9){r=m=1;k.KDC(0,t);k.KO(-1,t,"no foo.");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_026___system_stores.js b/common/test/keyboards/baseline/k_026___system_stores.js new file mode 100755 index 00000000000..b49711fb248 --- /dev/null +++ b/common/test/keyboards/baseline/k_026___system_stores.js @@ -0,0 +1 @@ +if(typeof keyman === 'undefined') {console.log('Keyboard requires KeymanWeb 10.0 or later');if(typeof tavultesoft !== 'undefined') tavultesoft.keymanweb.util.alert("This keyboard requires KeymanWeb 10.0 or later");} else {KeymanWeb.KR(new Keyboard_k_026___system_stores());}function Keyboard_k_026___system_stores(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_026___system_stores";this.KN="026 - system stores";this.KMINVER="10.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0000;this.s5="1234567890";this.s6="abcdefghij";this.s9="windows";this.s10="desktop";this.s11="hardware";this.s12="native";this.s13="en-US";this.s14="kbdus.dll";this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16384,48)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"platform-fail.");}}else if(k.KKM(e,16384,49)) {if(k.KIFS(31,this.s9,t)){r=m=1;k.KDC(0,t);k.KO(-1,t,"windows.");}else if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"platform-fail.");}}else if(k.KKM(e,16384,50)) {if(k.KIFS(31,this.s10,t)){r=m=1;k.KDC(0,t);k.KO(-1,t,"desktop.");}else if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"platform-fail.");}}else if(k.KKM(e,16384,51)) {if(k.KIFS(31,this.s11,t)){r=m=1;k.KDC(0,t);k.KO(-1,t,"hardware.");}else if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"platform-fail.");}}else if(k.KKM(e,16384,52)) {if(k.KIFS(31,this.s12,t)){r=m=1;k.KDC(0,t);k.KO(-1,t,"native.");}else if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"platform-fail.");}}else if(k.KKM(e,16384,53)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"platform-fail.");}}else if(k.KKM(e,16384,54)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"platform-fail.");}}else if(k.KKM(e,16384,55)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"platform-fail.");}}else if(k.KKM(e,16384,56)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"platform-fail.");}}else if(k.KKM(e,16384,57)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"platform-fail.");}}else if(k.KKM(e,16384,65)) {if(k.KIFS(32,this.s13,t)){r=m=1;k.KDC(0,t);k.KO(-1,t,"en-US.");}else if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"baselayout-fail.");}}else if(k.KKM(e,16384,66)) {if(k.KIFS(32,this.s14,t)){r=m=1;k.KDC(0,t);k.KO(-1,t,"kbdus.dll.");}else if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"baselayout-fail.");}}else if(k.KKM(e,16384,67)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"baselayout-fail.");}}else if(k.KKM(e,16384,68)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"baselayout-fail.");}}else if(k.KKM(e,16384,69)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"baselayout-fail.");}}else if(k.KKM(e,16384,70)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"baselayout-fail.");}}else if(k.KKM(e,16384,71)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"baselayout-fail.");}}else if(k.KKM(e,16384,72)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"baselayout-fail.");}}else if(k.KKM(e,16384,73)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"baselayout-fail.");}}else if(k.KKM(e,16384,74)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"baselayout-fail.");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_027___system_stores_2.js b/common/test/keyboards/baseline/k_027___system_stores_2.js new file mode 100755 index 00000000000..47da49cf681 --- /dev/null +++ b/common/test/keyboards/baseline/k_027___system_stores_2.js @@ -0,0 +1 @@ +if(typeof keyman === 'undefined') {console.log('Keyboard requires KeymanWeb 10.0 or later');if(typeof tavultesoft !== 'undefined') tavultesoft.keymanweb.util.alert("This keyboard requires KeymanWeb 10.0 or later");} else {KeymanWeb.KR(new Keyboard_k_027___system_stores_2());}function Keyboard_k_027___system_stores_2(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_027___system_stores_2";this.KN="027 - system stores 2";this.KMINVER="10.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0000;this.s5="1234567890";this.s6="abcdefghij";this.s9="linux";this.s10="desktop";this.s11="hardware";this.s12="native";this.s13="fr-FR";this.s14="kbdfr.dll";this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16384,48)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"platform-fail.");}}else if(k.KKM(e,16384,49)) {if(k.KIFS(31,this.s9,t)){r=m=1;k.KDC(0,t);k.KO(-1,t,"linux.");}else if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"platform-fail.");}}else if(k.KKM(e,16384,50)) {if(k.KIFS(31,this.s10,t)){r=m=1;k.KDC(0,t);k.KO(-1,t,"desktop.");}else if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"platform-fail.");}}else if(k.KKM(e,16384,51)) {if(k.KIFS(31,this.s11,t)){r=m=1;k.KDC(0,t);k.KO(-1,t,"hardware.");}else if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"platform-fail.");}}else if(k.KKM(e,16384,52)) {if(k.KIFS(31,this.s12,t)){r=m=1;k.KDC(0,t);k.KO(-1,t,"native.");}else if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"platform-fail.");}}else if(k.KKM(e,16384,53)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"platform-fail.");}}else if(k.KKM(e,16384,54)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"platform-fail.");}}else if(k.KKM(e,16384,55)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"platform-fail.");}}else if(k.KKM(e,16384,56)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"platform-fail.");}}else if(k.KKM(e,16384,57)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"platform-fail.");}}else if(k.KKM(e,16384,65)) {if(k.KIFS(32,this.s13,t)){r=m=1;k.KDC(0,t);k.KO(-1,t,"fr-FR.");}else if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"baselayout-fail.");}}else if(k.KKM(e,16384,66)) {if(k.KIFS(32,this.s14,t)){r=m=1;k.KDC(0,t);k.KO(-1,t,"kbdfr.dll.");}else if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"baselayout-fail.");}}else if(k.KKM(e,16384,67)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"baselayout-fail.");}}else if(k.KKM(e,16384,68)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"baselayout-fail.");}}else if(k.KKM(e,16384,69)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"baselayout-fail.");}}else if(k.KKM(e,16384,70)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"baselayout-fail.");}}else if(k.KKM(e,16384,71)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"baselayout-fail.");}}else if(k.KKM(e,16384,72)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"baselayout-fail.");}}else if(k.KKM(e,16384,73)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"baselayout-fail.");}}else if(k.KKM(e,16384,74)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"baselayout-fail.");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_028___smp.js b/common/test/keyboards/baseline/k_028___smp.js new file mode 100755 index 00000000000..236cd0e638e --- /dev/null +++ b/common/test/keyboards/baseline/k_028___smp.js @@ -0,0 +1 @@ +if(typeof keyman === 'undefined') {console.log('Keyboard requires KeymanWeb 10.0 or later');if(typeof tavultesoft !== 'undefined') tavultesoft.keymanweb.util.alert("This keyboard requires KeymanWeb 10.0 or later");} else {KeymanWeb.KR(new Keyboard_k_028___smp());}function Keyboard_k_028___smp(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_028___smp";this.KN="028 - smp";this.KMINVER="10.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0000;this.KS=1;this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16384,49)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"🙂");}}else if(k.KKM(e,16384,50)) {if(k.KFCM(1,t,['🙂'])){r=m=1;k.KDC(1,t);k.KO(-1,t,"🙂hi😀");}}else if(k.KKM(e,16384,51)) {if(k.KFCM(1,t,['😀'])){r=m=1;k.KDC(1,t);k.KO(-1,t,"x");}}else if(k.KKM(e,16384,52)) {if(k.KFCM(4,t,['🙂','h','i','x'])){r=m=1;k.KDC(4,t);k.KO(-1,t,"😁y");}}else if(k.KKM(e,16384,53)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"𐌳");r=this.g1(t,e);m=2;}}return r;};this.g1=function(t,e) {var k=KeymanWeb,r=1,m=0;if(k.KFCM(1,t,['𐌳'])){m=1;k.KDC(1,t);k.KO(-1,t,"x");}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_029___beep.js b/common/test/keyboards/baseline/k_029___beep.js new file mode 100755 index 00000000000..7862cedc629 --- /dev/null +++ b/common/test/keyboards/baseline/k_029___beep.js @@ -0,0 +1 @@ +if(typeof keyman === 'undefined') {console.log('Keyboard requires KeymanWeb 10.0 or later');if(typeof tavultesoft !== 'undefined') tavultesoft.keymanweb.util.alert("This keyboard requires KeymanWeb 10.0 or later");} else {KeymanWeb.KR(new Keyboard_k_029___beep());}function Keyboard_k_029___beep(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_029___beep";this.KN="029 - beep";this.KMINVER="10.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0000;this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16384,49)) {if(1){r=m=1;k.KDC(0,t);k.KB(t);}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_030___multiple_groups.js b/common/test/keyboards/baseline/k_030___multiple_groups.js new file mode 100755 index 00000000000..4eeb812c493 --- /dev/null +++ b/common/test/keyboards/baseline/k_030___multiple_groups.js @@ -0,0 +1 @@ +if(typeof keyman === 'undefined') {console.log('Keyboard requires KeymanWeb 10.0 or later');if(typeof tavultesoft !== 'undefined') tavultesoft.keymanweb.util.alert("This keyboard requires KeymanWeb 10.0 or later");} else {KeymanWeb.KR(new Keyboard_k_030___multiple_groups());}function Keyboard_k_030___multiple_groups(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_030___multiple_groups";this.KN="030 - multiple groups";this.KMINVER="10.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0000;this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16384,49)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"a");}}else if(k.KKM(e,16384,50)) {if(k.KFCM(1,t,['b'])){r=m=1;k.KDC(1,t);k.KO(-1,t,"b");r=this.g2(t,e);m=2;}}if(m==1) {k.KDC(-1,t);r=this.g1(t,e);m=2;}return r;};this.g1=function(t,e) {var k=KeymanWeb,r=1,m=0;if(k.KFCM(1,t,['a'])){m=1;k.KDC(1,t);k.KO(-1,t,"b");}return r;};this.g2=function(t,e) {var k=KeymanWeb,r=1,m=0;if(k.KFCM(1,t,['b'])){m=1;k.KDC(1,t);k.KO(-1,t,"abc");}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_031___caps_lock.js b/common/test/keyboards/baseline/k_031___caps_lock.js new file mode 100755 index 00000000000..d3147ae65e0 --- /dev/null +++ b/common/test/keyboards/baseline/k_031___caps_lock.js @@ -0,0 +1 @@ +if(typeof keyman === 'undefined') {console.log('Keyboard requires KeymanWeb 10.0 or later');if(typeof tavultesoft !== 'undefined') tavultesoft.keymanweb.util.alert("This keyboard requires KeymanWeb 10.0 or later");} else {KeymanWeb.KR(new Keyboard_k_031___caps_lock());}function Keyboard_k_031___caps_lock(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_031___caps_lock";this.KN="031 - caps lock";this.KMINVER="10.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0310;this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16400,51)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"pass.");}}else if(k.KKM(e,16896,49)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"fail.");}}else if(k.KKM(e,16640,49)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"pass.");}}else if(k.KKM(e,16384,51)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"fail.");}}else if(k.KKM(e,16912,50)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"fail.");}}else if(k.KKM(e,16656,50)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"pass.");}}else if(k.KKM(e,16400,65)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"pass.");}}else if(k.KKM(e,16400,66)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"fail.");}}else if(k.KKM(e,16384,65)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"fail.");}}else if(k.KKM(e,16384,66)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"pass.");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_032___caps_control.js b/common/test/keyboards/baseline/k_032___caps_control.js new file mode 100755 index 00000000000..d8afdda31d8 --- /dev/null +++ b/common/test/keyboards/baseline/k_032___caps_control.js @@ -0,0 +1 @@ +if(typeof keyman === 'undefined') {console.log('Keyboard requires KeymanWeb 10.0 or later');if(typeof tavultesoft !== 'undefined') tavultesoft.keymanweb.util.alert("This keyboard requires KeymanWeb 10.0 or later");} else {KeymanWeb.KR(new Keyboard_k_032___caps_control());}function Keyboard_k_032___caps_control(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_032___caps_control";this.KN="032 - caps control";this.KMINVER="10.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0310;this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16912,51)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"fail.");}}else if(k.KKM(e,16656,51)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"pass.");}}else if(k.KKM(e,16640,49)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"fail.");}}else if(k.KKM(e,16896,49)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"pass.");}}else if(k.KKM(e,16896,50)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"fail.");}}else if(k.KKM(e,16640,50)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"pass.");}}else if(k.KKM(e,16640,52)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"fail.");}}else if(k.KKM(e,16896,52)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"pass.");}}else if(k.KKM(e,16896,53)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"fail.");}}else if(k.KKM(e,16640,53)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"pass.");}}else if(k.KKM(e,16896,54)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"fail.");}}else if(k.KKM(e,16640,54)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"pass.");}}else if(k.KKM(e,16640,55)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"fail.");}}else if(k.KKM(e,16896,55)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"pass.");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_033___caps_always_off.js b/common/test/keyboards/baseline/k_033___caps_always_off.js new file mode 100755 index 00000000000..da223fb088e --- /dev/null +++ b/common/test/keyboards/baseline/k_033___caps_always_off.js @@ -0,0 +1 @@ +if(typeof keyman === 'undefined') {console.log('Keyboard requires KeymanWeb 10.0 or later');if(typeof tavultesoft !== 'undefined') tavultesoft.keymanweb.util.alert("This keyboard requires KeymanWeb 10.0 or later");} else {KeymanWeb.KR(new Keyboard_k_033___caps_always_off());}function Keyboard_k_033___caps_always_off(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_033___caps_always_off";this.KN="033 - caps always off";this.KMINVER="10.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0300;this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16640,49)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"fail.");}}else if(k.KKM(e,16896,49)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"pass.");}}else if(k.KKM(e,16640,50)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"fail.");}}else if(k.KKM(e,16896,50)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"pass.");}}else if(k.KKM(e,16640,51)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"fail.");}}else if(k.KKM(e,16896,51)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"pass.");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_034___options_double_set_reset.js b/common/test/keyboards/baseline/k_034___options_double_set_reset.js new file mode 100755 index 00000000000..b8e2dba019d --- /dev/null +++ b/common/test/keyboards/baseline/k_034___options_double_set_reset.js @@ -0,0 +1 @@ +if(typeof keyman === 'undefined') {console.log('Keyboard requires KeymanWeb 10.0 or later');if(typeof tavultesoft !== 'undefined') tavultesoft.keymanweb.util.alert("This keyboard requires KeymanWeb 10.0 or later");} else {KeymanWeb.KR(new Keyboard_k_034___options_double_set_reset());}function Keyboard_k_034___options_double_set_reset(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_034___options_double_set_reset";this.KN="034 - options double set reset";this.KMINVER="10.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0000;this.s5=KeymanWeb.KLOAD(this.KI,"foo","0");this.s8="1";this.s9="2";this.s10="3";this.s11="2";this.s12="3";this.s13="0";this.KVER="16.0.138.0";this.KVS=['s5'];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16384,65)) {if(this.s5===this.s8){r=m=1;k.KDC(0,t);k.KO(-1,t,"foo.");this.s5=this.s9;this.s5=k.KLOAD(this.KI,"foo","0");this.s5=this.s10;this.s5=k.KLOAD(this.KI,"foo","0");}else if(this.s5===this.s11){r=m=1;k.KDC(0,t);k.KO(-1,t,"bar.");}else if(this.s5===this.s12){r=m=1;k.KDC(0,t);k.KO(-1,t,"baz.");}else if(this.s5===this.s13){r=m=1;k.KDC(0,t);k.KO(-1,t,"no foo.");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_035___options_double_set_staged.js b/common/test/keyboards/baseline/k_035___options_double_set_staged.js new file mode 100755 index 00000000000..8d7f0a57a6c --- /dev/null +++ b/common/test/keyboards/baseline/k_035___options_double_set_staged.js @@ -0,0 +1 @@ +if(typeof keyman === 'undefined') {console.log('Keyboard requires KeymanWeb 10.0 or later');if(typeof tavultesoft !== 'undefined') tavultesoft.keymanweb.util.alert("This keyboard requires KeymanWeb 10.0 or later");} else {KeymanWeb.KR(new Keyboard_k_035___options_double_set_staged());}function Keyboard_k_035___options_double_set_staged(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_035___options_double_set_staged";this.KN="035 - options double set staged";this.KMINVER="10.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0000;this.s5=KeymanWeb.KLOAD(this.KI,"foo","0");this.s8="1";this.s9="2";this.s10="3";this.s11="2";this.s12="3";this.s13="0";this.KVER="16.0.138.0";this.KVS=['s5'];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16384,65)) {if(this.s5===this.s8){r=m=1;k.KDC(0,t);k.KO(-1,t,"foo.");this.s5=this.s9;}else if(this.s5===this.s11){r=m=1;k.KDC(0,t);k.KO(-1,t,"bar.");}else if(this.s5===this.s12){r=m=1;k.KDC(0,t);k.KO(-1,t,"baz.");}else if(this.s5===this.s13){r=m=1;k.KDC(0,t);k.KO(-1,t,"no foo.");}}else if(k.KKM(e,16384,66)) {if(1){r=m=1;k.KDC(0,t);this.s5=k.KLOAD(this.KI,"foo","0");}}else if(k.KKM(e,16384,67)) {if(1){r=m=1;k.KDC(0,t);this.s5=this.s10;}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_036___options___double_reset_staged.js b/common/test/keyboards/baseline/k_036___options___double_reset_staged.js new file mode 100755 index 00000000000..9427fcf1683 --- /dev/null +++ b/common/test/keyboards/baseline/k_036___options___double_reset_staged.js @@ -0,0 +1 @@ +if(typeof keyman === 'undefined') {console.log('Keyboard requires KeymanWeb 10.0 or later');if(typeof tavultesoft !== 'undefined') tavultesoft.keymanweb.util.alert("This keyboard requires KeymanWeb 10.0 or later");} else {KeymanWeb.KR(new Keyboard_k_036___options___double_reset_staged());}function Keyboard_k_036___options___double_reset_staged(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_036___options___double_reset_staged";this.KN="036 - options - double reset staged";this.KMINVER="10.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0000;this.s5=KeymanWeb.KLOAD(this.KI,"foo","0");this.s8="1";this.s9="2";this.s10="2";this.s11="0";this.KVER="16.0.138.0";this.KVS=['s5'];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16384,65)) {if(this.s5===this.s8){r=m=1;k.KDC(0,t);k.KO(-1,t,"foo.");this.s5=this.s9;}else if(this.s5===this.s10){r=m=1;k.KDC(0,t);k.KO(-1,t,"bar.");}else if(this.s5===this.s11){r=m=1;k.KDC(0,t);k.KO(-1,t,"no foo.");}}else if(k.KKM(e,16384,66)) {if(1){r=m=1;k.KDC(0,t);this.s5=k.KLOAD(this.KI,"foo","0");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_037___options___double_reset.js b/common/test/keyboards/baseline/k_037___options___double_reset.js new file mode 100755 index 00000000000..a4e26a633f5 --- /dev/null +++ b/common/test/keyboards/baseline/k_037___options___double_reset.js @@ -0,0 +1 @@ +if(typeof keyman === 'undefined') {console.log('Keyboard requires KeymanWeb 10.0 or later');if(typeof tavultesoft !== 'undefined') tavultesoft.keymanweb.util.alert("This keyboard requires KeymanWeb 10.0 or later");} else {KeymanWeb.KR(new Keyboard_k_037___options___double_reset());}function Keyboard_k_037___options___double_reset(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_037___options___double_reset";this.KN="037 - options - double reset";this.KMINVER="10.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0000;this.s5=KeymanWeb.KLOAD(this.KI,"foo","0");this.s8="1";this.s9="2";this.s10="2";this.s11="0";this.KVER="16.0.138.0";this.KVS=['s5'];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16384,65)) {if(this.s5===this.s8){r=m=1;k.KDC(0,t);k.KO(-1,t,"foo.");this.s5=this.s9;this.s5=k.KLOAD(this.KI,"foo","0");this.s5=k.KLOAD(this.KI,"foo","0");}else if(this.s5===this.s10){r=m=1;k.KDC(0,t);k.KO(-1,t,"bar.");}else if(this.s5===this.s11){r=m=1;k.KDC(0,t);k.KO(-1,t,"no foo.");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_038___punctkeys.js b/common/test/keyboards/baseline/k_038___punctkeys.js new file mode 100755 index 00000000000..8992c4c2945 --- /dev/null +++ b/common/test/keyboards/baseline/k_038___punctkeys.js @@ -0,0 +1 @@ +KeymanWeb.KR(new Keyboard_k_038___punctkeys());function Keyboard_k_038___punctkeys(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_038___punctkeys";this.KN="038 - punctkeys";this.KMINVER="6.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0000;this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16384,226)) {if(k.KCM(1,t,"a",1)){r=m=1;k.KO(1,t,"p");}}else if(k.KKM(e,16384,222)) {if(k.KCM(1,t,"a",1)){r=m=1;k.KO(1,t,"o");}}else if(k.KKM(e,16384,188)) {if(k.KCM(1,t,"a",1)){r=m=1;k.KO(1,t,"g");}}else if(k.KKM(e,16384,189)) {if(k.KCM(1,t,"a",1)){r=m=1;k.KO(1,t,"h");}}else if(k.KKM(e,16384,190)) {if(k.KCM(1,t,"a",1)){r=m=1;k.KO(1,t,"i");}}else if(k.KKM(e,16384,191)) {if(k.KCM(1,t,"a",1)){r=m=1;k.KO(1,t,"j");}}else if(k.KKM(e,16384,186)) {if(k.KCM(1,t,"a",1)){r=m=1;k.KO(1,t,"e");}}else if(k.KKM(e,16384,187)) {if(k.KCM(1,t,"a",1)){r=m=1;k.KO(1,t,"f");}}else if(k.KKM(e,16384,219)) {if(k.KCM(1,t,"a",1)){r=m=1;k.KO(1,t,"l");}}else if(k.KKM(e,16384,220)) {if(k.KCM(1,t,"a",1)){r=m=1;k.KO(1,t,"m");}}else if(k.KKM(e,16384,221)) {if(k.KCM(1,t,"a",1)){r=m=1;k.KO(1,t,"n");}}else if(k.KKM(e,16384,192)) {if(k.KCM(1,t,"a",1)){r=m=1;k.KO(1,t,"k");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_039___generic_ctrlalt.js b/common/test/keyboards/baseline/k_039___generic_ctrlalt.js new file mode 100755 index 00000000000..014fc69a24c --- /dev/null +++ b/common/test/keyboards/baseline/k_039___generic_ctrlalt.js @@ -0,0 +1 @@ +KeymanWeb.KR(new Keyboard_k_039___generic_ctrlalt());function Keyboard_k_039___generic_ctrlalt(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_039___generic_ctrlalt";this.KN="039 - generic ctrlalt";this.KMINVER="6.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0060;this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16416,66)) {if(k.KCM(1,t,"a",1)){r=m=1;k.KO(1,t,"b");}}else if(k.KKM(e,16448,67)) {if(k.KCM(1,t,"a",1)){r=m=1;k.KO(1,t,"c");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_040___long_context.js b/common/test/keyboards/baseline/k_040___long_context.js new file mode 100755 index 00000000000..39d43abebc5 --- /dev/null +++ b/common/test/keyboards/baseline/k_040___long_context.js @@ -0,0 +1 @@ +KeymanWeb.KR(new Keyboard_k_040___long_context());function Keyboard_k_040___long_context(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_040___long_context";this.KN="040 - long context";this.KMINVER="6.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0000;this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16384,32)) {if(1){r=m=1;k.KO(0,t," ");}}else if(k.KKM(e,16384,70)) {if(k.KCM(1,t," ",1)){r=m=1;k.KO(1,t," ");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_041___long_context_and_deadkeys.js b/common/test/keyboards/baseline/k_041___long_context_and_deadkeys.js new file mode 100755 index 00000000000..86542bbac7b --- /dev/null +++ b/common/test/keyboards/baseline/k_041___long_context_and_deadkeys.js @@ -0,0 +1 @@ +KeymanWeb.KR(new Keyboard_k_041___long_context_and_deadkeys());function Keyboard_k_041___long_context_and_deadkeys(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_041___long_context_and_deadkeys";this.KN="041 - long context and deadkeys";this.KMINVER="6.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0000;this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16384,49)) {if(k.KDM(60,t,0)&&k.KCM(60,t,"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefgh",60)){r=m=1;k.KO(-1,t,"1");}}else if(k.KKM(e,16384,50)) {if(k.KCM(63,t,"\x08\x01abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefgh1",63)){r=m=1;k.KO(63,t,"FAIL TEST 2");}else if(k.KCM(62,t,"\x01abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefgh1",62)){r=m=1;k.KO(62,t,"FAIL TEST 2");}else if(k.KCM(61,t,"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefgh1",61)){r=m=1;k.KO(-1,t,"2");}}else if(k.KKM(e,16384,51)) {if(k.KCM(64,t,"\x08\x01abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefgh12",64)){r=m=1;k.KO(64,t,"FAIL TEST 3");}else if(k.KCM(63,t,"\x01abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefgh12",63)){r=m=1;k.KO(63,t,"FAIL TEST 3");}else if(k.KCM(62,t,"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefgh12",62)){r=m=1;k.KO(62,t,"abcdefghijklmnopqrstuvwxyz123");}}else if(k.KKM(e,16384,52)) {if(k.KDM(29,t,0)&&k.KCM(29,t,"abcdefghijklmnopqrstuvwxyz123",29)){r=m=1;k.KO(29,t,"PASS");}}else if(k.KKM(e,16384,90)) {if(1){r=m=1;k.KDO(0,t,0);k.KO(-1,t,"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefgh");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_042___long_context_and_split_deadkeys.js b/common/test/keyboards/baseline/k_042___long_context_and_split_deadkeys.js new file mode 100755 index 00000000000..da7e2138ff2 --- /dev/null +++ b/common/test/keyboards/baseline/k_042___long_context_and_split_deadkeys.js @@ -0,0 +1 @@ +KeymanWeb.KR(new Keyboard_k_042___long_context_and_split_deadkeys());function Keyboard_k_042___long_context_and_split_deadkeys(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_042___long_context_and_split_deadkeys";this.KN="042 - long context and split deadkeys";this.KMINVER="6.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0000;this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16384,32)) {if(k.KCM(64,t,"\x01abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijk",64)){r=m=1;k.KO(64,t,"FAIL");}else if(k.KDM(63,t,0)&&k.KCM(63,t,"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijk",63)){r=m=1;k.KO(63,t,"UNEXPECTED");}}else if(k.KKM(e,16384,49)) {if(k.KCM(61,t,"defghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijk ",61)){r=m=1;k.KO(61,t,"def");}}else if(k.KKM(e,16384,50)) {if(k.KDM(6,t,0)&&k.KCM(6,t,"abcdef",6)){r=m=1;k.KO(6,t,"PASS");}}else if(k.KKM(e,16384,90)) {if(1){r=m=1;k.KDO(0,t,0);k.KO(-1,t,"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijk");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_043___output_and_keystroke.js b/common/test/keyboards/baseline/k_043___output_and_keystroke.js new file mode 100755 index 00000000000..3e6941c7db0 --- /dev/null +++ b/common/test/keyboards/baseline/k_043___output_and_keystroke.js @@ -0,0 +1 @@ +if(typeof keyman === 'undefined') {console.log('Keyboard requires KeymanWeb 10.0 or later');if(typeof tavultesoft !== 'undefined') tavultesoft.keymanweb.util.alert("This keyboard requires KeymanWeb 10.0 or later");} else {KeymanWeb.KR(new Keyboard_k_043___output_and_keystroke());}function Keyboard_k_043___output_and_keystroke(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_043___output_and_keystroke";this.KN="043 - output and keystroke";this.KMINVER="10.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0000;this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16384,49)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"a");}}else if(k.KKM(e,16384,50)) {if(k.KFCM(1,t,['b'])){r=m=1;k.KDC(1,t);k.KO(-1,t,"b");r=this.g2(t,e);m=2;}}else if(k.KKM(e,16384,51)) {if(k.KFCM(3,t,['a','b','c'])){r=m=1;k.KDC(3,t);k.KO(-1,t,"a");k.KO(-1,t,"bd");r=this.g3(t,e);m=2;}}if(m==1) {k.KDC(-1,t);r=this.g1(t,e);m=2;}return r;};this.g1=function(t,e) {var k=KeymanWeb,r=1,m=0;if(k.KFCM(1,t,['a'])){m=1;k.KDC(1,t);k.KO(-1,t,"b");}return r;};this.g2=function(t,e) {var k=KeymanWeb,r=1,m=0;if(k.KFCM(1,t,['b'])){m=1;k.KDC(1,t);k.KO(-1,t,"abc");}return r;};this.g3=function(t,e) {var k=KeymanWeb,r=0,m=0;return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_044___if_and_context.js b/common/test/keyboards/baseline/k_044___if_and_context.js new file mode 100755 index 00000000000..c08dc3c67c4 --- /dev/null +++ b/common/test/keyboards/baseline/k_044___if_and_context.js @@ -0,0 +1 @@ +if(typeof keyman === 'undefined') {console.log('Keyboard requires KeymanWeb 10.0 or later');if(typeof tavultesoft !== 'undefined') tavultesoft.keymanweb.util.alert("This keyboard requires KeymanWeb 10.0 or later");} else {KeymanWeb.KR(new Keyboard_k_044___if_and_context());}function Keyboard_k_044___if_and_context(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_044___if_and_context";this.KN="044 - if and context";this.KMINVER="10.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0000;this.s6=KeymanWeb.KLOAD(this.KI,"nfc","0");this.s7="ae";this.s9="0";this.KVER="16.0.138.0";this.KVS=['s6'];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16384,65)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"exay");}}else if(k.KKM(e,16384,66)) {if(k.KFCM(4,t,[{t:'a',a:this.s7},'x',{t:'a',a:this.s7},'y'])&&this.s6===this.s9){r=m=1;k.KDC(4,t);k.KIO(-1,this.s7,1,t);k.KO(-1,t,"x");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_045___deadkey_and_context.js b/common/test/keyboards/baseline/k_045___deadkey_and_context.js new file mode 100755 index 00000000000..750277ccbe6 --- /dev/null +++ b/common/test/keyboards/baseline/k_045___deadkey_and_context.js @@ -0,0 +1 @@ +if(typeof keyman === 'undefined') {console.log('Keyboard requires KeymanWeb 10.0 or later');if(typeof tavultesoft !== 'undefined') tavultesoft.keymanweb.util.alert("This keyboard requires KeymanWeb 10.0 or later");} else {KeymanWeb.KR(new Keyboard_k_045___deadkey_and_context());}function Keyboard_k_045___deadkey_and_context(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_045___deadkey_and_context";this.KN="045 - deadkey and context";this.KMINVER="10.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0010;this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16400,191)) {if(k.KFCM(7,t,['<',{t:'d',d:0},'a',{t:'d',d:1},'b',{t:'d',d:2},'>'])){r=m=1;k.KDC(7,t);k.KO(-1,t,"correct");}}else if(k.KKM(e,16384,89)) {if(1){r=m=1;k.KDC(0,t);k.KDO(-1,t,0);k.KO(-1,t,"a");k.KDO(-1,t,1);k.KO(-1,t,"b");k.KDO(-1,t,2);}}else if(k.KKM(e,16384,90)) {if(k.KFCM(5,t,[{t:'d',d:0},'a',{t:'d',d:1},'b',{t:'d',d:2}])){r=m=1;k.KDC(5,t);k.KO(-1,t,"<");k.KDO(-1,t,0);k.KO(-1,t,"a");k.KDO(-1,t,1);k.KO(-1,t,"b");k.KDO(-1,t,2);k.KO(-1,t,">");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_046___deadkey_and_contextex.js b/common/test/keyboards/baseline/k_046___deadkey_and_contextex.js new file mode 100755 index 00000000000..45dc72f186d --- /dev/null +++ b/common/test/keyboards/baseline/k_046___deadkey_and_contextex.js @@ -0,0 +1 @@ +if(typeof keyman === 'undefined') {console.log('Keyboard requires KeymanWeb 10.0 or later');if(typeof tavultesoft !== 'undefined') tavultesoft.keymanweb.util.alert("This keyboard requires KeymanWeb 10.0 or later");} else {KeymanWeb.KR(new Keyboard_k_046___deadkey_and_contextex());}function Keyboard_k_046___deadkey_and_contextex(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_046___deadkey_and_contextex";this.KN="046 - deadkey and contextex";this.KMINVER="10.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0010;this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16400,191)) {if(k.KFCM(3,t,['<',{t:'d',d:0},'>'])){r=m=1;k.KDC(3,t);k.KO(-1,t,"correct");}}else if(k.KKM(e,16400,77)) {if(k.KFCM(5,t,[{t:'d',d:0},'a',{t:'d',d:1},'b',{t:'d',d:2}])){r=m=1;k.KDC(5,t);k.KO(-1,t,"<");k.KDO(-1,t,0);k.KO(-1,t,">");}}else if(k.KKM(e,16384,89)) {if(1){r=m=1;k.KDC(0,t);k.KDO(-1,t,0);k.KO(-1,t,"a");k.KDO(-1,t,1);k.KO(-1,t,"b");k.KDO(-1,t,2);}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_047___caps_always_off_initially_on.js b/common/test/keyboards/baseline/k_047___caps_always_off_initially_on.js new file mode 100755 index 00000000000..3775e99174d --- /dev/null +++ b/common/test/keyboards/baseline/k_047___caps_always_off_initially_on.js @@ -0,0 +1 @@ +if(typeof keyman === 'undefined') {console.log('Keyboard requires KeymanWeb 10.0 or later');if(typeof tavultesoft !== 'undefined') tavultesoft.keymanweb.util.alert("This keyboard requires KeymanWeb 10.0 or later");} else {KeymanWeb.KR(new Keyboard_k_047___caps_always_off_initially_on());}function Keyboard_k_047___caps_always_off_initially_on(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_047___caps_always_off_initially_on";this.KN="047 - caps always off initially on";this.KMINVER="10.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0300;this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16640,49)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"fail.");}}else if(k.KKM(e,16896,49)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"pass.");}}else if(k.KKM(e,16640,50)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"fail.");}}else if(k.KKM(e,16896,50)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"pass.");}}else if(k.KKM(e,16640,51)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"fail.");}}else if(k.KKM(e,16896,51)) {if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"pass.");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_048___modifier_keys_keep_context.js b/common/test/keyboards/baseline/k_048___modifier_keys_keep_context.js new file mode 100755 index 00000000000..5b171674cfe --- /dev/null +++ b/common/test/keyboards/baseline/k_048___modifier_keys_keep_context.js @@ -0,0 +1 @@ +KeymanWeb.KR(new Keyboard_k_048___modifier_keys_keep_context());function Keyboard_k_048___modifier_keys_keep_context(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_048___modifier_keys_keep_context";this.KN="048 - modifier keys keep context";this.KMINVER="9.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0000;this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16384,65)) {if(1){r=m=1;k.KO(0,t,"a");}}else if(k.KKM(e,16384,66)) {if(k.KCM(1,t,"a",1)){r=m=1;k.KO(1,t,"pass.");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_049___enter_invalidates_context.js b/common/test/keyboards/baseline/k_049___enter_invalidates_context.js new file mode 100755 index 00000000000..fdc476f8918 --- /dev/null +++ b/common/test/keyboards/baseline/k_049___enter_invalidates_context.js @@ -0,0 +1 @@ +if(typeof keyman === 'undefined') {console.log('Keyboard requires KeymanWeb 10.0 or later');if(typeof tavultesoft !== 'undefined') tavultesoft.keymanweb.util.alert("This keyboard requires KeymanWeb 10.0 or later");} else {KeymanWeb.KR(new Keyboard_k_049___enter_invalidates_context());}function Keyboard_k_049___enter_invalidates_context(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_049___enter_invalidates_context";this.KN="049 - enter_invalidates_context";this.KMINVER="10.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0000;this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16384,67)) {if(k.KFCM(2,t,['a','b'])){r=m=1;k.KDC(2,t);k.KO(-1,t,"abd");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_050___nul_and_context.js b/common/test/keyboards/baseline/k_050___nul_and_context.js new file mode 100755 index 00000000000..4d29aa66854 --- /dev/null +++ b/common/test/keyboards/baseline/k_050___nul_and_context.js @@ -0,0 +1 @@ +if(typeof keyman === 'undefined') {console.log('Keyboard requires KeymanWeb 10.0 or later');if(typeof tavultesoft !== 'undefined') tavultesoft.keymanweb.util.alert("This keyboard requires KeymanWeb 10.0 or later");} else {KeymanWeb.KR(new Keyboard_k_050___nul_and_context());}function Keyboard_k_050___nul_and_context(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_050___nul_and_context";this.KN="050 - nul_and_context";this.KMINVER="10.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0000;this.s5="mnpqrstv";this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16384,66)) {if(k.KFCM(2,t,[{t:'n'},{t:'a',a:this.s5}])){r=m=1;k.KDC(1,t);k.KO(-1,t,"2");k.KIO(-1,this.s5,1,t);k.KO(-1,t,"3");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_051___if_and_context.js b/common/test/keyboards/baseline/k_051___if_and_context.js new file mode 100755 index 00000000000..b43ca031c48 --- /dev/null +++ b/common/test/keyboards/baseline/k_051___if_and_context.js @@ -0,0 +1 @@ +if(typeof keyman === 'undefined') {console.log('Keyboard requires KeymanWeb 10.0 or later');if(typeof tavultesoft !== 'undefined') tavultesoft.keymanweb.util.alert("This keyboard requires KeymanWeb 10.0 or later");} else {KeymanWeb.KR(new Keyboard_k_051___if_and_context());}function Keyboard_k_051___if_and_context(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_051___if_and_context";this.KN="051 - if_and_context";this.KMINVER="10.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0000;this.s5="mnpqrstv";this.s6=KeymanWeb.KLOAD(this.KI,"ifx","1");this.s9="1";this.KVER="16.0.138.0";this.KVS=['s6'];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16384,68)) {if(k.KFCM(1,t,[{t:'a',a:this.s5}])&&this.s6===this.s9){r=m=1;k.KDC(1,t);k.KO(-1,t,"4");k.KIO(-1,this.s5,1,t);k.KO(-1,t,"5");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_052___nul_and_index.js b/common/test/keyboards/baseline/k_052___nul_and_index.js new file mode 100755 index 00000000000..1094d1b56ae --- /dev/null +++ b/common/test/keyboards/baseline/k_052___nul_and_index.js @@ -0,0 +1 @@ +if(typeof keyman === 'undefined') {console.log('Keyboard requires KeymanWeb 10.0 or later');if(typeof tavultesoft !== 'undefined') tavultesoft.keymanweb.util.alert("This keyboard requires KeymanWeb 10.0 or later");} else {KeymanWeb.KR(new Keyboard_k_052___nul_and_index());}function Keyboard_k_052___nul_and_index(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_052___nul_and_index";this.KN="052 - nul_and_index";this.KMINVER="10.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0000;this.s5="mnpqrstv";this.s6="MNPQRSTV";this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16384,66)) {if(k.KFCM(2,t,[{t:'n'},{t:'a',a:this.s5}])){r=m=1;k.KDC(1,t);k.KO(-1,t,"2");k.KIO(-1,this.s6,1,t);k.KO(-1,t,"3");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_053___if_and_index.js b/common/test/keyboards/baseline/k_053___if_and_index.js new file mode 100755 index 00000000000..eb1710226be --- /dev/null +++ b/common/test/keyboards/baseline/k_053___if_and_index.js @@ -0,0 +1 @@ +if(typeof keyman === 'undefined') {console.log('Keyboard requires KeymanWeb 10.0 or later');if(typeof tavultesoft !== 'undefined') tavultesoft.keymanweb.util.alert("This keyboard requires KeymanWeb 10.0 or later");} else {KeymanWeb.KR(new Keyboard_k_053___if_and_index());}function Keyboard_k_053___if_and_index(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_053___if_and_index";this.KN="053 - if_and_index";this.KMINVER="10.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0000;this.s5="mnpqrstv";this.s6="MNPQRSTV";this.s7=KeymanWeb.KLOAD(this.KI,"ifx","1");this.s10="1";this.KVER="16.0.138.0";this.KVS=['s7'];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16384,68)) {if(k.KFCM(1,t,[{t:'a',a:this.s5}])&&this.s7===this.s10){r=m=1;k.KDC(1,t);k.KO(-1,t,"4");k.KIO(-1,this.s6,1,t);k.KO(-1,t,"5");}}return r;};} \ No newline at end of file diff --git a/common/test/keyboards/baseline/k_055___deadkey_cancelled_by_arrow.js b/common/test/keyboards/baseline/k_055___deadkey_cancelled_by_arrow.js new file mode 100755 index 00000000000..e6913c358e4 --- /dev/null +++ b/common/test/keyboards/baseline/k_055___deadkey_cancelled_by_arrow.js @@ -0,0 +1 @@ +if(typeof keyman === 'undefined') {console.log('Keyboard requires KeymanWeb 10.0 or later');if(typeof tavultesoft !== 'undefined') tavultesoft.keymanweb.util.alert("This keyboard requires KeymanWeb 10.0 or later");} else {KeymanWeb.KR(new Keyboard_k_055___deadkey_cancelled_by_arrow());}function Keyboard_k_055___deadkey_cancelled_by_arrow(){this._v=(typeof keyman!="undefined"&&typeof keyman.version=="string")?parseInt(keyman.version,10):9;this.KI="Keyboard_k_055___deadkey_cancelled_by_arrow";this.KN="050 - deadkey cancelled by arrow";this.KMINVER="10.0";this.KV=null;this.KDU=0;this.KH='';this.KM=0;this.KBVER="1.0";this.KMBM=0x0010;this.KVER="16.0.138.0";this.KVS=[];this.gs=function(t,e) {return this.g0(t,e);};this.gs=function(t,e) {return this.g0(t,e);};this.g0=function(t,e) {var k=KeymanWeb,r=0,m=0;if(k.KKM(e,16400,54)) {if(1){r=m=1;k.KDC(0,t);k.KDO(-1,t,0);}}else if(k.KKM(e,16384,69)) {if(k.KFCM(1,t,[{t:'d',d:0}])){r=m=1;k.KDC(1,t);k.KO(-1,t,"FAIL.");}else if(1){r=m=1;k.KDC(0,t);k.KO(-1,t,"PASS.");}}return r;};} \ No newline at end of file diff --git a/web/src/test/auto/e2e/baseline/baseline.tests.ts b/web/src/test/auto/e2e/baseline/baseline.tests.ts index 543c0bf1dc0..8a9994fb04a 100644 --- a/web/src/test/auto/e2e/baseline/baseline.tests.ts +++ b/web/src/test/auto/e2e/baseline/baseline.tests.ts @@ -22,88 +22,141 @@ function KeymanRoot(): string { } // Tests that are not supported in Web due to missing functionality -const testsToSkip = new Map([ - ['k_038___punctkeys.kmn', 'Playwright does not support 102nd key'] -]); +const testsToSkip = { + 'all': new Map([ + ['k_038___punctkeys.kmn', 'Playwright does not support 102nd key'] + ]), + '.kmx': new Map([ + ]), + '.js': new Map([ + ['k_054___nul_and_contextex.kmn', 'contextex is not supported in context() match in Web'] + ]), +}; // Tests that should work but fail due to not-yet implemented functionality -// TODO-web-core: fix these tests -const testsToFix = [ - 'k_000___null_keyboard.kmn', - 'k_006___vkey_input__shift_ctrl_.kmn', - 'k_007___vkey_input__ctrl_alt_.kmn', - 'k_008___vkey_input__ctrl_alt_2_.kmn', - 'k_012___ralt.kmn', - 'k_014___groups_and_virtual_keys.kmn', - 'k_015___ralt_2.kmn', - 'k_022___options_with_preset.kmn', - 'k_024___options_with_save_and_preset.kmn', - 'k_025___options_with_reset.kmn', - 'k_026___system_stores.kmn', - 'k_027___system_stores_2.kmn', - 'k_028___smp.kmn', - 'k_031___caps_lock.kmn', - 'k_032___caps_control.kmn', - 'k_034___options_double_set_reset.kmn', - 'k_035___options_double_set_staged.kmn', - 'k_036___options___double_reset_staged.kmn', - 'k_037___options___double_reset.kmn', - 'k_039___generic_ctrlalt.kmn', - 'k_049___enter_invalidates_context.kmn', - 'k_055___deadkey_cancelled_by_arrow.kmn', -]; +const testsToFix = { + // TODO-web-core: fix these tests + '.kmx': [ + 'k_000___null_keyboard.kmn', + 'k_006___vkey_input__shift_ctrl_.kmn', + 'k_007___vkey_input__ctrl_alt_.kmn', + 'k_008___vkey_input__ctrl_alt_2_.kmn', + 'k_012___ralt.kmn', + 'k_014___groups_and_virtual_keys.kmn', + 'k_015___ralt_2.kmn', // kmx only + 'k_022___options_with_preset.kmn', + 'k_024___options_with_save_and_preset.kmn', + 'k_025___options_with_reset.kmn', + 'k_026___system_stores.kmn', + 'k_027___system_stores_2.kmn', + 'k_028___smp.kmn', // kmx only + 'k_031___caps_lock.kmn', + 'k_032___caps_control.kmn', + 'k_034___options_double_set_reset.kmn', + 'k_035___options_double_set_staged.kmn', + 'k_036___options___double_reset_staged.kmn', + 'k_037___options___double_reset.kmn', + 'k_039___generic_ctrlalt.kmn', + 'k_049___enter_invalidates_context.kmn', + 'k_055___deadkey_cancelled_by_arrow.kmn', + ], + // TODO: fix these tests (#15342) + '.js': [ + 'k_000___null_keyboard.kmn', + 'k_006___vkey_input__shift_ctrl_.kmn', + 'k_007___vkey_input__ctrl_alt_.kmn', + 'k_008___vkey_input__ctrl_alt_2_.kmn', + 'k_012___ralt.kmn', + 'k_014___groups_and_virtual_keys.kmn', + 'k_022___options_with_preset.kmn', + 'k_024___options_with_save_and_preset.kmn', + 'k_025___options_with_reset.kmn', + 'k_026___system_stores.kmn', + 'k_027___system_stores_2.kmn', + 'k_031___caps_lock.kmn', + 'k_032___caps_control.kmn', + 'k_034___options_double_set_reset.kmn', + 'k_035___options_double_set_staged.kmn', + 'k_036___options___double_reset_staged.kmn', + 'k_037___options___double_reset.kmn', + 'k_039___generic_ctrlalt.kmn', + 'k_041___long_context_and_deadkeys.kmn', // js only + 'k_042___long_context_and_split_deadkeys.kmn', // js only + 'k_049___enter_invalidates_context.kmn', + 'k_050___nul_and_context.kmn', // js only + 'k_052___nul_and_index.kmn', // js only + 'k_055___deadkey_cancelled_by_arrow.kmn', + ] +}; test.describe('Baseline tests', () => { const testDir = '/common/test/keyboards/baseline'; // Find all k_*.kmn files in testDir const files = fs.readdirSync(KeymanRoot() + testDir).filter(f => f.match(/^k_.*\.kmn$/)); - for (const file of files) { - test(file, async ({ page }) => { - const kmxFile = file.replace(/\.kmn$/, '.kmx'); - const testSource = new KmxTestSource(); - const result = testSource.loadSource(path.join(KeymanRoot(), testDir, file)); - if (result !== 0) { - throw new Error(`Error loading KMX test source ${file} at line ${result}`); - } + for (const ext of ['.kmx', '.js']) { + test.describe(`${ext} tests`, () => { + for (const file of files) { + test(file, async ({ page }) => { + // Setup + test.info().annotations.push({ type: 'name', description: test.info().title }); - // Setup - test.info().annotations.push({ type: 'name', description: test.info().title }); - test.info().annotations.push({ type: 'description', description: testSource.description }); + const kbdFile = file.replace(/\.kmn$/, ext); + if (!fs.existsSync(path.join(KeymanRoot(), testDir, kbdFile))) { + const msg = `Skipping ${file} test - ${ext} file doesn't exist`; + console.log(msg); + test.skip(true, msg); + return; + } - if (testsToSkip.has(file)) { - const msg = `Skipping ${file} test - ${testsToSkip.get(file)}`; - console.log(msg); - test.skip(true, msg); - return; - } + const testSource = new KmxTestSource(); + const result = testSource.loadSource(path.join(KeymanRoot(), testDir, file)); + if (result !== 0) { + throw new Error(`Error loading ${ext} test source ${file} at line ${result}`); + } - if (testsToFix.includes(file)) { - const msg = `Skipping ${file} test - requires not-yet implemented functionality`; - console.log(msg); - test.fixme(true, msg); - return; - } + test.info().annotations.push({ type: 'description', description: testSource.description }); - await page.goto(`http://localhost:3000/src/test/auto/e2e/baseline/baseline.tests.html?keyboard=${testDir}/${kmxFile}`); - await page.evaluate(async () => { await window.KmwLoaded; }); - const textarea = page.locator('#inputarea'); - await textarea.click(); + if (testsToSkip[ext].has(file)) { + const msg = `Skipping ${file} test - ${testsToSkip[ext].get(file)}`; + console.log(msg); + test.skip(true, msg); + return; + } + if (testsToSkip['all'].has(file)) { + const msg = `Skipping ${file} test - ${testsToSkip['all'].get(file)}`; + console.log(msg); + test.skip(true, msg); + return; + } + if (testsToFix[ext].includes(file)) { + const msg = `Skipping ${file} test - requires not-yet implemented functionality`; + console.log(msg); + test.fixme(true, msg); + return; + } - // TODO-web-core: set options from test source - // TODO-web-core: set capslock state + await page.goto(`http://localhost:3000/src/test/auto/e2e/baseline/baseline.tests.html?keyboard=${testDir}/${kbdFile}`); + await page.evaluate(async () => { await window.KmwLoaded; }); + const textarea = page.locator('#inputarea'); + await textarea.click(); - // set context - if (testSource.context) { - await textarea.fill(testSource.context); - } + // TODO-web-core: set options from test source + // TODO-web-core: set capslock state - // type keys - await pressKeys(page, testSource.keys); + // set context + if (testSource.context) { + await textarea.fill(testSource.context); + } - // verify output - await expect(textarea).toHaveValue(testSource.expected, { timeout: 500 }); - }); + // type keys + await pressKeys(page, testSource.keys); + + // verify output + await expect(textarea).toHaveValue(testSource.expected, { timeout: 500 }); + }); + } + }); } }); \ No newline at end of file From 5f2e72749a13f0a370efcd2af3931502013899ab Mon Sep 17 00:00:00 2001 From: Eberhard Beilharz Date: Tue, 6 Jan 2026 17:43:27 +0100 Subject: [PATCH 2/2] test(web): address code review comments --- web/src/test/auto/e2e/baseline/baseline.tests.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/src/test/auto/e2e/baseline/baseline.tests.ts b/web/src/test/auto/e2e/baseline/baseline.tests.ts index 8a9994fb04a..489927762bc 100644 --- a/web/src/test/auto/e2e/baseline/baseline.tests.ts +++ b/web/src/test/auto/e2e/baseline/baseline.tests.ts @@ -58,7 +58,7 @@ const testsToFix = { 'k_037___options___double_reset.kmn', 'k_039___generic_ctrlalt.kmn', 'k_049___enter_invalidates_context.kmn', - 'k_055___deadkey_cancelled_by_arrow.kmn', + 'k_055___deadkey_cancelled_by_arrow.kmn', // Keyman Engine for Web does not interpret arrow keys - #15397 ], // TODO: fix these tests (#15342) '.js': [ @@ -85,7 +85,7 @@ const testsToFix = { 'k_049___enter_invalidates_context.kmn', 'k_050___nul_and_context.kmn', // js only 'k_052___nul_and_index.kmn', // js only - 'k_055___deadkey_cancelled_by_arrow.kmn', + 'k_055___deadkey_cancelled_by_arrow.kmn', // Keyman Engine for Web does not interpret arrow keys - #15397 ] };