diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/.gitignore | 1 | ||||
-rw-r--r-- | tests/Makefile | 30 | ||||
-rwxr-xr-x | tests/javascript | 53 |
3 files changed, 83 insertions, 1 deletions
diff --git a/tests/.gitignore b/tests/.gitignore index 88e7c03..0562305 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -8,3 +8,4 @@ osx.* osx_name.* stdc stdc++ +node_modules/ diff --git a/tests/Makefile b/tests/Makefile index ccb3686..b7e2d3f 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -1,4 +1,4 @@ -TESTS := stdc stdc++ python2 python3 +TESTS := stdc stdc++ python2 python3 javascript check: $(TESTS) @set -e; for fn in $(TESTS); do \ @@ -78,7 +78,35 @@ osx.py: $(SOURCES) osx_name.py: $(SOURCES) $(GEN) --lang python2 name-table $(DATA) osx > $@ +javascript: node_modules/babel-core \ + node_modules/babel-plugin-transform-es2015-modules-commonjs \ + osx2win32.js osx2win32_name.js \ + osx2xkb.js osx2xkb_name.js \ + html2win32.js html2win32_name.js \ + osx.js osx_name.js +node_modules/babel-core: + npm install babel-core +node_modules/babel-plugin-transform-es2015-modules-commonjs: + npm install babel-plugin-transform-es2015-modules-commonjs +osx2win32.js: $(SOURCES) + $(GEN) --lang js code-map $(DATA) osx win32 > $@ +osx2win32_name.js: $(SOURCES) + $(GEN) --lang js name-map $(DATA) osx win32 > $@ +osx2xkb.js: $(SOURCES) + $(GEN) --lang js code-map $(DATA) osx xkb > $@ +osx2xkb_name.js: $(SOURCES) + $(GEN) --lang js name-map $(DATA) osx xkb > $@ +html2win32.js: $(SOURCES) + $(GEN) --lang js code-map $(DATA) html win32 > $@ +html2win32_name.js: $(SOURCES) + $(GEN) --lang js name-map $(DATA) html win32 > $@ +osx.js: $(SOURCES) + $(GEN) --lang js code-table $(DATA) osx > $@ +osx_name.js: $(SOURCES) + $(GEN) --lang js name-table $(DATA) osx > $@ + clean: + rm -rf node_modules rm -f osx2win32.* rm -f osx2win32_name.* rm -f osx2xkb.* diff --git a/tests/javascript b/tests/javascript new file mode 100755 index 0000000..5179db2 --- /dev/null +++ b/tests/javascript @@ -0,0 +1,53 @@ +#!/usr/bin/env node +/* + * Keycode Map Generator JavaScript Tests + * + * Copyright 2017 Pierre Ossman for Cendio AB + * + * This file is dual license under the terms of the GPLv2 or later + * and 3-clause BSD licenses. + */ + +"use strict"; + +var assert = require('assert'); +var babel = require('babel-core'); +var fs = require('fs'); + +function include(fn) { + var options = { + plugins: ["transform-es2015-modules-commonjs"] + }; + + var code = babel.transformFileSync(fn, options).code; + fs.writeFileSync("." + fn + "_nodejs.js", code); + var imp = require("./." + fn + "_nodejs.js"); + fs.unlinkSync("./." + fn + "_nodejs.js"); + + return imp +} + +var code_map_osx_to_win32 = include("osx2win32.js").default; +var name_map_osx_to_win32 = include("osx2win32_name.js").default; + +var code_map_osx_to_xkb = include("osx2xkb.js").default; +var name_map_osx_to_xkb = include("osx2xkb_name.js").default; + +var code_map_html_to_win32 = include("html2win32.js").default; +var name_map_html_to_win32 = include("html2win32_name.js").default; + +var code_table_osx = include("osx.js").default; +var name_table_osx = include("osx_name.js").default; + +assert.equal(code_map_osx_to_win32[0x1d], 0x30); +assert.equal(name_map_osx_to_win32[0x1d], "VK_0"); + +assert.equal(code_map_osx_to_xkb[0x1d], "AE10"); +assert.equal(name_map_osx_to_xkb[0x1d], "AE10"); + +assert.equal(code_map_html_to_win32["ControlLeft"], 0x11); +assert.equal(name_map_html_to_win32["ControlLeft"], "VK_CONTROL"); + +assert.equal(code_table_osx[0x1d], 0x3b); +assert.equal(name_table_osx[0x1d], "Control"); + |