Merge branch 'master' into feature-extract-files
commit
fd07b89028
|
@ -9,6 +9,6 @@ trim_trailing_whitespace = true
|
||||||
indent_style = space
|
indent_style = space
|
||||||
indent_size = 4
|
indent_size = 4
|
||||||
|
|
||||||
[{package.json,.travis.yml}]
|
[{package.json,.travis.yml,nightwatch.json}]
|
||||||
indent_style = space
|
indent_style = space
|
||||||
indent_size = 2
|
indent_size = 2
|
||||||
|
|
|
@ -87,6 +87,15 @@
|
||||||
"no-var": "error",
|
"no-var": "error",
|
||||||
"prefer-const": "error"
|
"prefer-const": "error"
|
||||||
},
|
},
|
||||||
|
"overrides": [
|
||||||
|
{
|
||||||
|
"files": "tests/**/*",
|
||||||
|
"rules": {
|
||||||
|
"no-unused-expressions": "off",
|
||||||
|
"no-console": "off"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
"globals": {
|
"globals": {
|
||||||
"$": false,
|
"$": false,
|
||||||
"jQuery": false,
|
"jQuery": false,
|
||||||
|
|
|
@ -9,4 +9,5 @@ docs/*
|
||||||
src/core/config/modules/*
|
src/core/config/modules/*
|
||||||
src/core/config/OperationConfig.json
|
src/core/config/OperationConfig.json
|
||||||
src/core/operations/index.mjs
|
src/core/operations/index.mjs
|
||||||
|
tests/browser/output/*
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
language: node_js
|
language: node_js
|
||||||
node_js:
|
node_js:
|
||||||
- node
|
- node
|
||||||
|
addons:
|
||||||
|
chrome: stable
|
||||||
install: npm install
|
install: npm install
|
||||||
before_script:
|
before_script:
|
||||||
- npm install -g grunt
|
- npm install -g grunt
|
||||||
|
@ -10,6 +12,7 @@ script:
|
||||||
- grunt docs
|
- grunt docs
|
||||||
- grunt node
|
- grunt node
|
||||||
- grunt prod --msg="$COMPILE_MSG"
|
- grunt prod --msg="$COMPILE_MSG"
|
||||||
|
- xvfb-run --server-args="-screen 0 1200x800x24" grunt testui
|
||||||
before_deploy:
|
before_deploy:
|
||||||
- grunt exec:sitemap
|
- grunt exec:sitemap
|
||||||
- grunt copy:ghPages
|
- grunt copy:ghPages
|
||||||
|
|
|
@ -2,6 +2,9 @@
|
||||||
All major and minor version changes will be documented in this file. Details of patch-level version changes can be found in [commit messages](https://github.com/gchq/CyberChef/commits/master).
|
All major and minor version changes will be documented in this file. Details of patch-level version changes can be found in [commit messages](https://github.com/gchq/CyberChef/commits/master).
|
||||||
|
|
||||||
|
|
||||||
|
### [8.19.0] - 2018-12-30
|
||||||
|
- UI test suite added to confirm that the app loads correctly in a reasonable time and that various operations from each module can be run [@n1474335] | [#458]
|
||||||
|
|
||||||
### [8.18.0] - 2018-12-26
|
### [8.18.0] - 2018-12-26
|
||||||
- 'Split Colour Channels' operation added [@artemisbot] | [#449]
|
- 'Split Colour Channels' operation added [@artemisbot] | [#449]
|
||||||
|
|
||||||
|
@ -85,6 +88,7 @@ All major and minor version changes will be documented in this file. Details of
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[8.19.0]: https://github.com/gchq/CyberChef/releases/tag/v8.19.0
|
||||||
[8.18.0]: https://github.com/gchq/CyberChef/releases/tag/v8.18.0
|
[8.18.0]: https://github.com/gchq/CyberChef/releases/tag/v8.18.0
|
||||||
[8.17.0]: https://github.com/gchq/CyberChef/releases/tag/v8.17.0
|
[8.17.0]: https://github.com/gchq/CyberChef/releases/tag/v8.17.0
|
||||||
[8.16.0]: https://github.com/gchq/CyberChef/releases/tag/v8.16.0
|
[8.16.0]: https://github.com/gchq/CyberChef/releases/tag/v8.16.0
|
||||||
|
@ -155,3 +159,4 @@ All major and minor version changes will be documented in this file. Details of
|
||||||
[#446]: https://github.com/gchq/CyberChef/pull/446
|
[#446]: https://github.com/gchq/CyberChef/pull/446
|
||||||
[#448]: https://github.com/gchq/CyberChef/pull/448
|
[#448]: https://github.com/gchq/CyberChef/pull/448
|
||||||
[#449]: https://github.com/gchq/CyberChef/pull/449
|
[#449]: https://github.com/gchq/CyberChef/pull/449
|
||||||
|
[#458]: https://github.com/gchq/CyberChef/pull/458
|
||||||
|
|
41
Gruntfile.js
41
Gruntfile.js
|
@ -30,8 +30,12 @@ module.exports = function (grunt) {
|
||||||
["clean:node", "clean:config", "exec:generateConfig", "webpack:node", "chmod:build"]);
|
["clean:node", "clean:config", "exec:generateConfig", "webpack:node", "chmod:build"]);
|
||||||
|
|
||||||
grunt.registerTask("test",
|
grunt.registerTask("test",
|
||||||
"A task which runs all the tests in test/tests.",
|
"A task which runs all the operation tests in the tests directory.",
|
||||||
["exec:generateConfig", "exec:tests"]);
|
["exec:generateConfig", "exec:opTests"]);
|
||||||
|
|
||||||
|
grunt.registerTask("testui",
|
||||||
|
"A task which runs all the UI tests in the tests directory. The prod task must already have been run.",
|
||||||
|
["connect:prod", "exec:browserTests"]);
|
||||||
|
|
||||||
grunt.registerTask("docs",
|
grunt.registerTask("docs",
|
||||||
"Compiles documentation in the /docs directory.",
|
"Compiles documentation in the /docs directory.",
|
||||||
|
@ -67,6 +71,7 @@ module.exports = function (grunt) {
|
||||||
grunt.loadNpmTasks("grunt-exec");
|
grunt.loadNpmTasks("grunt-exec");
|
||||||
grunt.loadNpmTasks("grunt-accessibility");
|
grunt.loadNpmTasks("grunt-accessibility");
|
||||||
grunt.loadNpmTasks("grunt-concurrent");
|
grunt.loadNpmTasks("grunt-concurrent");
|
||||||
|
grunt.loadNpmTasks("grunt-contrib-connect");
|
||||||
|
|
||||||
|
|
||||||
// Project configuration
|
// Project configuration
|
||||||
|
@ -144,11 +149,11 @@ module.exports = function (grunt) {
|
||||||
options: {
|
options: {
|
||||||
configFile: "./.eslintrc.json"
|
configFile: "./.eslintrc.json"
|
||||||
},
|
},
|
||||||
configs: ["*.js"],
|
configs: ["*.{js,mjs}"],
|
||||||
core: ["src/core/**/*.{js,mjs}", "!src/core/vendor/**/*", "!src/core/operations/legacy/**/*"],
|
core: ["src/core/**/*.{js,mjs}", "!src/core/vendor/**/*", "!src/core/operations/legacy/**/*"],
|
||||||
web: ["src/web/**/*.{js,mjs}"],
|
web: ["src/web/**/*.{js,mjs}"],
|
||||||
node: ["src/node/**/*.{js,mjs}"],
|
node: ["src/node/**/*.{js,mjs}"],
|
||||||
tests: ["test/**/*.{js,mjs}"],
|
tests: ["tests/**/*.{js,mjs}"],
|
||||||
},
|
},
|
||||||
jsdoc: {
|
jsdoc: {
|
||||||
options: {
|
options: {
|
||||||
|
@ -246,19 +251,6 @@ module.exports = function (grunt) {
|
||||||
}),
|
}),
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
tests: {
|
|
||||||
mode: "development",
|
|
||||||
target: "node",
|
|
||||||
entry: "./test/index.mjs",
|
|
||||||
externals: [NodeExternals()],
|
|
||||||
output: {
|
|
||||||
filename: "index.js",
|
|
||||||
path: __dirname + "/build/test"
|
|
||||||
},
|
|
||||||
plugins: [
|
|
||||||
new webpack.DefinePlugin(BUILD_CONSTANTS)
|
|
||||||
]
|
|
||||||
},
|
|
||||||
node: {
|
node: {
|
||||||
mode: "production",
|
mode: "production",
|
||||||
target: "node",
|
target: "node",
|
||||||
|
@ -320,6 +312,14 @@ module.exports = function (grunt) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
connect: {
|
||||||
|
prod: {
|
||||||
|
options: {
|
||||||
|
port: 8000,
|
||||||
|
base: "build/prod/"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
copy: {
|
copy: {
|
||||||
ghPages: {
|
ghPages: {
|
||||||
options: {
|
options: {
|
||||||
|
@ -399,8 +399,11 @@ module.exports = function (grunt) {
|
||||||
"echo '--- Config scripts finished. ---\n'"
|
"echo '--- Config scripts finished. ---\n'"
|
||||||
].join(";")
|
].join(";")
|
||||||
},
|
},
|
||||||
tests: {
|
opTests: {
|
||||||
command: "node --experimental-modules --no-warnings --no-deprecation test/index.mjs"
|
command: "node --experimental-modules --no-warnings --no-deprecation tests/operations/index.mjs"
|
||||||
|
},
|
||||||
|
browserTests: {
|
||||||
|
command: "./node_modules/.bin/nightwatch --env prod,inline"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
{
|
||||||
|
"src_folders": ["tests/browser"],
|
||||||
|
"output_folder": "tests/browser/output",
|
||||||
|
|
||||||
|
"test_settings": {
|
||||||
|
|
||||||
|
"default": {
|
||||||
|
"launch_url": "http://localhost:8080",
|
||||||
|
"webdriver": {
|
||||||
|
"start_process": true,
|
||||||
|
"server_path": "./node_modules/.bin/chromedriver",
|
||||||
|
"port": 9515,
|
||||||
|
"log_path": false
|
||||||
|
},
|
||||||
|
"desiredCapabilities": {
|
||||||
|
"browserName": "chrome"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"dev": {
|
||||||
|
"launch_url": "http://localhost:8080"
|
||||||
|
},
|
||||||
|
|
||||||
|
"prod": {
|
||||||
|
"launch_url": "http://localhost:8000/index.html"
|
||||||
|
},
|
||||||
|
|
||||||
|
"inline": {
|
||||||
|
"launch_url": "http://localhost:8000/cyberchef.htm"
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "cyberchef",
|
"name": "cyberchef",
|
||||||
"version": "8.18.1",
|
"version": "8.19.0",
|
||||||
"description": "The Cyber Swiss Army Knife for encryption, encoding, compression and data analysis.",
|
"description": "The Cyber Swiss Army Knife for encryption, encoding, compression and data analysis.",
|
||||||
"author": "n1474335 <n1474335@gmail.com>",
|
"author": "n1474335 <n1474335@gmail.com>",
|
||||||
"homepage": "https://gchq.github.io/CyberChef",
|
"homepage": "https://gchq.github.io/CyberChef",
|
||||||
|
@ -35,6 +35,7 @@
|
||||||
"autoprefixer": "^9.3.1",
|
"autoprefixer": "^9.3.1",
|
||||||
"babel-loader": "^8.0.4",
|
"babel-loader": "^8.0.4",
|
||||||
"bootstrap": "^4.1.3",
|
"bootstrap": "^4.1.3",
|
||||||
|
"chromedriver": "^2.45.0",
|
||||||
"colors": "^1.3.2",
|
"colors": "^1.3.2",
|
||||||
"css-loader": "^1.0.1",
|
"css-loader": "^1.0.1",
|
||||||
"eslint": "^5.8.0",
|
"eslint": "^5.8.0",
|
||||||
|
@ -46,6 +47,7 @@
|
||||||
"grunt-chmod": "~1.1.1",
|
"grunt-chmod": "~1.1.1",
|
||||||
"grunt-concurrent": "^2.3.1",
|
"grunt-concurrent": "^2.3.1",
|
||||||
"grunt-contrib-clean": "~2.0.0",
|
"grunt-contrib-clean": "~2.0.0",
|
||||||
|
"grunt-contrib-connect": "^2.0.0",
|
||||||
"grunt-contrib-copy": "~1.0.0",
|
"grunt-contrib-copy": "~1.0.0",
|
||||||
"grunt-contrib-watch": "^1.1.0",
|
"grunt-contrib-watch": "^1.1.0",
|
||||||
"grunt-eslint": "^21.0.0",
|
"grunt-eslint": "^21.0.0",
|
||||||
|
@ -56,6 +58,7 @@
|
||||||
"imports-loader": "^0.8.0",
|
"imports-loader": "^0.8.0",
|
||||||
"ink-docstrap": "^1.3.2",
|
"ink-docstrap": "^1.3.2",
|
||||||
"jsdoc-babel": "^0.5.0",
|
"jsdoc-babel": "^0.5.0",
|
||||||
|
"nightwatch": "^1.0.17",
|
||||||
"node-sass": "^4.10.0",
|
"node-sass": "^4.10.0",
|
||||||
"postcss-css-variables": "^0.11.0",
|
"postcss-css-variables": "^0.11.0",
|
||||||
"postcss-import": "^12.0.1",
|
"postcss-import": "^12.0.1",
|
||||||
|
@ -133,6 +136,7 @@
|
||||||
"start": "grunt dev",
|
"start": "grunt dev",
|
||||||
"build": "grunt prod",
|
"build": "grunt prod",
|
||||||
"test": "grunt test",
|
"test": "grunt test",
|
||||||
|
"testui": "grunt testui",
|
||||||
"docs": "grunt docs",
|
"docs": "grunt docs",
|
||||||
"lint": "grunt lint",
|
"lint": "grunt lint",
|
||||||
"newop": "node --experimental-modules src/core/config/scripts/newOperation.mjs"
|
"newop": "node --experimental-modules src/core/config/scripts/newOperation.mjs"
|
||||||
|
|
|
@ -222,7 +222,7 @@ export default ${moduleName};
|
||||||
console.log(`\nNext steps:
|
console.log(`\nNext steps:
|
||||||
1. Add your operation to ${colors.green("src/core/config/Categories.json")}
|
1. Add your operation to ${colors.green("src/core/config/Categories.json")}
|
||||||
2. Write your operation code.
|
2. Write your operation code.
|
||||||
3. Write tests in ${colors.green("test/tests/operations/")}
|
3. Write tests in ${colors.green("tests/operations/tests/")}
|
||||||
4. Run ${colors.cyan("npm run lint")} and ${colors.cyan("npm run test")}
|
4. Run ${colors.cyan("npm run lint")} and ${colors.cyan("npm run test")}
|
||||||
5. Submit a Pull Request to get your operation added to the official CyberChef repository.`);
|
5. Submit a Pull Request to get your operation added to the official CyberChef repository.`);
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,182 @@
|
||||||
|
/**
|
||||||
|
* Tests to ensure that the app loads correctly in a reasonable time and that operations can be run.
|
||||||
|
*
|
||||||
|
* @author n1474335 [n1474335@gmail.com]
|
||||||
|
* @copyright Crown Copyright 2018
|
||||||
|
* @license Apache-2.0
|
||||||
|
*/
|
||||||
|
module.exports = {
|
||||||
|
before: browser => {
|
||||||
|
browser
|
||||||
|
.resizeWindow(1280, 800)
|
||||||
|
.url(browser.launchUrl);
|
||||||
|
},
|
||||||
|
|
||||||
|
"Loading screen": browser => {
|
||||||
|
// Check that the loading screen appears and then disappears within a reasonable time
|
||||||
|
browser
|
||||||
|
.waitForElementVisible("#preloader", 300)
|
||||||
|
.waitForElementNotPresent("#preloader", 10000);
|
||||||
|
},
|
||||||
|
|
||||||
|
"App loaded": browser => {
|
||||||
|
browser.useCss();
|
||||||
|
// Check that various important elements are loaded
|
||||||
|
browser.expect.element("#operations").to.be.visible;
|
||||||
|
browser.expect.element("#recipe").to.be.visible;
|
||||||
|
browser.expect.element("#input").to.be.present;
|
||||||
|
browser.expect.element("#output").to.be.present;
|
||||||
|
browser.expect.element(".op-list").to.be.present;
|
||||||
|
browser.expect.element("#rec-list").to.be.visible;
|
||||||
|
browser.expect.element("#controls").to.be.visible;
|
||||||
|
browser.expect.element("#input-text").to.be.visible;
|
||||||
|
browser.expect.element("#output-text").to.be.visible;
|
||||||
|
},
|
||||||
|
|
||||||
|
"Operations loaded": browser => {
|
||||||
|
browser.useXpath();
|
||||||
|
// Check that an operation in every category has been populated
|
||||||
|
browser.expect.element("//li[contains(@class, 'operation') and text()='To Base64']").to.be.present;
|
||||||
|
browser.expect.element("//li[contains(@class, 'operation') and text()='To Binary']").to.be.present;
|
||||||
|
browser.expect.element("//li[contains(@class, 'operation') and text()='AES Decrypt']").to.be.present;
|
||||||
|
browser.expect.element("//li[contains(@class, 'operation') and text()='PEM to Hex']").to.be.present;
|
||||||
|
browser.expect.element("//li[contains(@class, 'operation') and text()='Power Set']").to.be.present;
|
||||||
|
browser.expect.element("//li[contains(@class, 'operation') and text()='Parse IP range']").to.be.present;
|
||||||
|
browser.expect.element("//li[contains(@class, 'operation') and text()='Remove Diacritics']").to.be.present;
|
||||||
|
browser.expect.element("//li[contains(@class, 'operation') and text()='Sort']").to.be.present;
|
||||||
|
browser.expect.element("//li[contains(@class, 'operation') and text()='To UNIX Timestamp']").to.be.present;
|
||||||
|
browser.expect.element("//li[contains(@class, 'operation') and text()='Extract dates']").to.be.present;
|
||||||
|
browser.expect.element("//li[contains(@class, 'operation') and text()='Gzip']").to.be.present;
|
||||||
|
browser.expect.element("//li[contains(@class, 'operation') and text()='Keccak']").to.be.present;
|
||||||
|
browser.expect.element("//li[contains(@class, 'operation') and text()='JSON Beautify']").to.be.present;
|
||||||
|
browser.expect.element("//li[contains(@class, 'operation') and text()='Detect File Type']").to.be.present;
|
||||||
|
browser.expect.element("//li[contains(@class, 'operation') and text()='Play Media']").to.be.present;
|
||||||
|
browser.expect.element("//li[contains(@class, 'operation') and text()='Disassemble x86']").to.be.present;
|
||||||
|
browser.expect.element("//li[contains(@class, 'operation') and text()='Register']").to.be.present;
|
||||||
|
},
|
||||||
|
|
||||||
|
"Recipe can be run": browser => {
|
||||||
|
const toHex = "//li[contains(@class, 'operation') and text()='To Hex']";
|
||||||
|
const op = "#rec-list .operation .op-title";
|
||||||
|
|
||||||
|
// Check that operation is visible
|
||||||
|
browser
|
||||||
|
.useXpath()
|
||||||
|
.expect.element(toHex).to.be.visible;
|
||||||
|
|
||||||
|
// Add it to the recipe by double clicking
|
||||||
|
browser
|
||||||
|
.useXpath()
|
||||||
|
.moveToElement(toHex, 10, 10)
|
||||||
|
.useCss()
|
||||||
|
.waitForElementVisible(".popover-body", 1000)
|
||||||
|
.doubleClick();
|
||||||
|
|
||||||
|
// Confirm that it has been added to the recipe
|
||||||
|
browser
|
||||||
|
.useCss()
|
||||||
|
.waitForElementVisible(op)
|
||||||
|
.expect.element(op).text.to.contain("To Hex");
|
||||||
|
|
||||||
|
// Enter input
|
||||||
|
browser
|
||||||
|
.useCss()
|
||||||
|
.setValue("#input-text", "Don't Panic.")
|
||||||
|
.click("#bake");
|
||||||
|
|
||||||
|
// Check output
|
||||||
|
browser
|
||||||
|
.useCss()
|
||||||
|
.waitForElementNotVisible("#stale-indicator", 500)
|
||||||
|
.expect.element("#output-text").to.have.value.that.equals("44 6f 6e 27 74 20 50 61 6e 69 63 2e");
|
||||||
|
|
||||||
|
// Clear recipe
|
||||||
|
browser
|
||||||
|
.useCss()
|
||||||
|
.moveToElement(op, 10, 10)
|
||||||
|
.waitForElementNotPresent(".popover-body", 1000)
|
||||||
|
.click("#clr-recipe")
|
||||||
|
.waitForElementNotPresent(op);
|
||||||
|
},
|
||||||
|
|
||||||
|
"Test every module": browser => {
|
||||||
|
browser.useCss();
|
||||||
|
|
||||||
|
// BSON
|
||||||
|
loadOp("BSON deserialise", browser)
|
||||||
|
.waitForElementNotVisible("#output-loader", 5000);
|
||||||
|
|
||||||
|
// Ciphers
|
||||||
|
loadOp("AES Encrypt", browser)
|
||||||
|
.waitForElementNotVisible("#output-loader", 5000);
|
||||||
|
|
||||||
|
// Code
|
||||||
|
loadOp("XPath expression", browser)
|
||||||
|
.waitForElementNotVisible("#output-loader", 5000);
|
||||||
|
|
||||||
|
// Compression
|
||||||
|
loadOp("Gzip", browser)
|
||||||
|
.waitForElementNotVisible("#output-loader", 5000);
|
||||||
|
|
||||||
|
// Crypto
|
||||||
|
loadOp("MD5", browser)
|
||||||
|
.waitForElementNotVisible("#output-loader", 5000);
|
||||||
|
|
||||||
|
// Default
|
||||||
|
loadOp("Fork", browser)
|
||||||
|
.waitForElementNotVisible("#output-loader", 5000);
|
||||||
|
|
||||||
|
// Diff
|
||||||
|
loadOp("Diff", browser)
|
||||||
|
.waitForElementNotVisible("#output-loader", 5000);
|
||||||
|
|
||||||
|
// Encodings
|
||||||
|
loadOp("Encode text", browser)
|
||||||
|
.waitForElementNotVisible("#output-loader", 5000);
|
||||||
|
|
||||||
|
// Image
|
||||||
|
loadOp("Extract EXIF", browser)
|
||||||
|
.waitForElementNotVisible("#output-loader", 5000);
|
||||||
|
|
||||||
|
// PGP
|
||||||
|
loadOp("PGP Encrypt", browser)
|
||||||
|
.waitForElementNotVisible("#output-loader", 5000);
|
||||||
|
|
||||||
|
// PublicKey
|
||||||
|
loadOp("Hex to PEM", browser)
|
||||||
|
.waitForElementNotVisible("#output-loader", 5000);
|
||||||
|
|
||||||
|
// Regex
|
||||||
|
loadOp("Strings", browser)
|
||||||
|
.waitForElementNotVisible("#output-loader", 5000);
|
||||||
|
|
||||||
|
// Shellcode
|
||||||
|
loadOp("Disassemble x86", browser)
|
||||||
|
.waitForElementNotVisible("#output-loader", 5000);
|
||||||
|
|
||||||
|
// URL
|
||||||
|
loadOp("URL Encode", browser)
|
||||||
|
.waitForElementNotVisible("#output-loader", 5000);
|
||||||
|
|
||||||
|
// UserAgent
|
||||||
|
loadOp("Parse User Agent", browser)
|
||||||
|
.waitForElementNotVisible("#output-loader", 5000);
|
||||||
|
},
|
||||||
|
|
||||||
|
after: browser => {
|
||||||
|
browser.end();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clears the current recipe and loads a new operation.
|
||||||
|
*
|
||||||
|
* @param {string} opName
|
||||||
|
* @param {Browser} browser
|
||||||
|
*/
|
||||||
|
function loadOp(opName, browser) {
|
||||||
|
return browser
|
||||||
|
.useCss()
|
||||||
|
.click("#clr-recipe")
|
||||||
|
.urlHash("op=" + opName);
|
||||||
|
}
|
|
@ -8,7 +8,7 @@
|
||||||
* @copyright Crown Copyright 2017
|
* @copyright Crown Copyright 2017
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import Chef from "../src/core/Chef";
|
import Chef from "../../src/core/Chef";
|
||||||
|
|
||||||
(function() {
|
(function() {
|
||||||
/**
|
/**
|
|
@ -24,67 +24,67 @@ global.ENVIRONMENT_IS_WEB = function() {
|
||||||
};
|
};
|
||||||
|
|
||||||
import TestRegister from "./TestRegister";
|
import TestRegister from "./TestRegister";
|
||||||
import "./tests/operations/BCD";
|
import "./tests/BCD";
|
||||||
import "./tests/operations/BSON";
|
import "./tests/BSON";
|
||||||
import "./tests/operations/Base58";
|
import "./tests/Base58";
|
||||||
import "./tests/operations/Base64";
|
import "./tests/Base64";
|
||||||
import "./tests/operations/Base62";
|
import "./tests/Base62";
|
||||||
import "./tests/operations/BitwiseOp";
|
import "./tests/BitwiseOp";
|
||||||
import "./tests/operations/ByteRepr";
|
import "./tests/ByteRepr";
|
||||||
import "./tests/operations/CartesianProduct";
|
import "./tests/CartesianProduct";
|
||||||
import "./tests/operations/CharEnc";
|
import "./tests/CharEnc";
|
||||||
import "./tests/operations/Checksum";
|
import "./tests/Checksum";
|
||||||
import "./tests/operations/Ciphers";
|
import "./tests/Ciphers";
|
||||||
import "./tests/operations/Code";
|
import "./tests/Code";
|
||||||
import "./tests/operations/Comment";
|
import "./tests/Comment";
|
||||||
import "./tests/operations/Compress";
|
import "./tests/Compress";
|
||||||
import "./tests/operations/ConditionalJump";
|
import "./tests/ConditionalJump";
|
||||||
import "./tests/operations/Crypt";
|
import "./tests/Crypt";
|
||||||
import "./tests/operations/CSV";
|
import "./tests/CSV";
|
||||||
import "./tests/operations/DateTime";
|
import "./tests/DateTime";
|
||||||
import "./tests/operations/ExtractEmailAddresses";
|
import "./tests/ExtractEmailAddresses";
|
||||||
import "./tests/operations/Fork";
|
import "./tests/Fork";
|
||||||
import "./tests/operations/FromDecimal";
|
import "./tests/FromDecimal";
|
||||||
import "./tests/operations/FromGeohash";
|
import "./tests/FromGeohash";
|
||||||
import "./tests/operations/Hash";
|
import "./tests/Hash";
|
||||||
import "./tests/operations/HaversineDistance";
|
import "./tests/HaversineDistance";
|
||||||
import "./tests/operations/Hexdump";
|
import "./tests/Hexdump";
|
||||||
import "./tests/operations/Image";
|
import "./tests/Image";
|
||||||
import "./tests/operations/Jump";
|
import "./tests/Jump";
|
||||||
import "./tests/operations/JSONBeautify";
|
import "./tests/JSONBeautify";
|
||||||
import "./tests/operations/JSONMinify";
|
import "./tests/JSONMinify";
|
||||||
import "./tests/operations/JWTDecode";
|
import "./tests/JWTDecode";
|
||||||
import "./tests/operations/JWTSign";
|
import "./tests/JWTSign";
|
||||||
import "./tests/operations/JWTVerify";
|
import "./tests/JWTVerify";
|
||||||
import "./tests/operations/MS";
|
import "./tests/MS";
|
||||||
import "./tests/operations/Magic";
|
import "./tests/Magic";
|
||||||
import "./tests/operations/MorseCode";
|
import "./tests/MorseCode";
|
||||||
import "./tests/operations/NetBIOS";
|
import "./tests/NetBIOS";
|
||||||
import "./tests/operations/OTP";
|
import "./tests/OTP";
|
||||||
import "./tests/operations/PGP";
|
import "./tests/PGP";
|
||||||
import "./tests/operations/PHP";
|
import "./tests/PHP";
|
||||||
import "./tests/operations/ParseIPRange";
|
import "./tests/ParseIPRange";
|
||||||
import "./tests/operations/ParseQRCode";
|
import "./tests/ParseQRCode";
|
||||||
import "./tests/operations/PowerSet";
|
import "./tests/PowerSet";
|
||||||
import "./tests/operations/Regex";
|
import "./tests/Regex";
|
||||||
import "./tests/operations/Register";
|
import "./tests/Register";
|
||||||
import "./tests/operations/RemoveDiacritics";
|
import "./tests/RemoveDiacritics";
|
||||||
import "./tests/operations/Rotate";
|
import "./tests/Rotate";
|
||||||
import "./tests/operations/SeqUtils";
|
import "./tests/SeqUtils";
|
||||||
import "./tests/operations/SetDifference";
|
import "./tests/SetDifference";
|
||||||
import "./tests/operations/SetIntersection";
|
import "./tests/SetIntersection";
|
||||||
import "./tests/operations/SetUnion";
|
import "./tests/SetUnion";
|
||||||
import "./tests/operations/StrUtils";
|
import "./tests/StrUtils";
|
||||||
import "./tests/operations/SymmetricDifference";
|
import "./tests/SymmetricDifference";
|
||||||
import "./tests/operations/TextEncodingBruteForce";
|
import "./tests/TextEncodingBruteForce";
|
||||||
import "./tests/operations/ToGeohash";
|
import "./tests/ToGeohash";
|
||||||
import "./tests/operations/TranslateDateTimeFormat";
|
import "./tests/TranslateDateTimeFormat";
|
||||||
import "./tests/operations/Magic";
|
import "./tests/Magic";
|
||||||
import "./tests/operations/ParseTLV";
|
import "./tests/ParseTLV";
|
||||||
import "./tests/operations/Media";
|
import "./tests/Media";
|
||||||
|
|
||||||
// Cannot test operations that use the File type yet
|
// Cannot test operations that use the File type yet
|
||||||
//import "./tests/operations/SplitColourChannels";
|
//import "./tests/SplitColourChannels";
|
||||||
|
|
||||||
let allTestsPassing = true;
|
let allTestsPassing = true;
|
||||||
const testStatusCounts = {
|
const testStatusCounts = {
|
|
@ -5,7 +5,7 @@
|
||||||
* @copyright Crown Copyright 2017
|
* @copyright Crown Copyright 2017
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -6,7 +6,7 @@
|
||||||
* @copyright Crown Copyright 2018
|
* @copyright Crown Copyright 2018
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -6,7 +6,7 @@
|
||||||
* @copyright Crown Copyright 2017
|
* @copyright Crown Copyright 2017
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -7,7 +7,7 @@
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -6,7 +6,7 @@
|
||||||
* @copyright Crown Copyright 2018
|
* @copyright Crown Copyright 2018
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
const ALL_BYTES = [
|
const ALL_BYTES = [
|
||||||
"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
|
"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
|
|
@ -5,7 +5,7 @@
|
||||||
* @copyright Crown Copyright 2017
|
* @copyright Crown Copyright 2017
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -5,7 +5,7 @@
|
||||||
* @copyright Crown Copyright 2017
|
* @copyright Crown Copyright 2017
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
const ALL_BYTES = [
|
const ALL_BYTES = [
|
||||||
"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
|
"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
|
|
@ -6,7 +6,7 @@
|
||||||
* @copyright Crown Copyright 2018
|
* @copyright Crown Copyright 2018
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
const EXAMPLE_CSV = `A,B,C,D,E,F\r
|
const EXAMPLE_CSV = `A,B,C,D,E,F\r
|
||||||
1,2,3,4,5,6\r
|
1,2,3,4,5,6\r
|
|
@ -6,7 +6,7 @@
|
||||||
* @copyright Crown Copyright 2018
|
* @copyright Crown Copyright 2018
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -5,7 +5,7 @@
|
||||||
* @copyright Crown Copyright 2017
|
* @copyright Crown Copyright 2017
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -5,7 +5,7 @@
|
||||||
* @copyright Crown Copyright 2018
|
* @copyright Crown Copyright 2018
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
const BASIC_STRING = "The ships hung in the sky in much the same way that bricks don't.";
|
const BASIC_STRING = "The ships hung in the sky in much the same way that bricks don't.";
|
||||||
const UTF8_STR = "ნუ პანიკას";
|
const UTF8_STR = "ნუ პანიკას";
|
|
@ -7,7 +7,7 @@
|
||||||
* @copyright Crown Copyright 2018
|
* @copyright Crown Copyright 2018
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
|
@ -7,7 +7,7 @@
|
||||||
* @copyright Crown Copyright 2017
|
* @copyright Crown Copyright 2017
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
const JSON_TEST_DATA = {
|
const JSON_TEST_DATA = {
|
||||||
"store": {
|
"store": {
|
|
@ -6,7 +6,7 @@
|
||||||
* @copyright Crown Copyright 2018
|
* @copyright Crown Copyright 2018
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
const ALL_BYTES = [
|
const ALL_BYTES = [
|
||||||
"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
|
"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
|
|
@ -5,7 +5,7 @@
|
||||||
* @copyright Crown Copyright 2017
|
* @copyright Crown Copyright 2017
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -6,7 +6,7 @@
|
||||||
* @copyright Crown Copyright 2018
|
* @copyright Crown Copyright 2018
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -6,7 +6,7 @@
|
||||||
* @copyright Crown Copyright 2018
|
* @copyright Crown Copyright 2018
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
/**
|
/**
|
|
@ -6,7 +6,7 @@
|
||||||
* @copyright Crown Copyright 2017
|
* @copyright Crown Copyright 2017
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -5,7 +5,7 @@
|
||||||
* @copyright Crown Copyright 2017
|
* @copyright Crown Copyright 2017
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -6,7 +6,7 @@
|
||||||
* @copyright Crown Copyright 2018
|
* @copyright Crown Copyright 2018
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -5,7 +5,7 @@
|
||||||
* @copyright Crown Copyright 2018
|
* @copyright Crown Copyright 2018
|
||||||
* @licence Apache-2.0
|
* @licence Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -5,7 +5,7 @@
|
||||||
* @copyright Crown Copyright 2018
|
* @copyright Crown Copyright 2018
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -5,7 +5,7 @@
|
||||||
* @copyright Crown Copyright 2017
|
* @copyright Crown Copyright 2017
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -5,7 +5,7 @@
|
||||||
* @copyright Crown Copyright 2018
|
* @copyright Crown Copyright 2018
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -6,7 +6,7 @@
|
||||||
* @copyright Crown Copyright 2018
|
* @copyright Crown Copyright 2018
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
const ALL_BYTES = [
|
const ALL_BYTES = [
|
||||||
"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
|
"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
|
|
@ -7,7 +7,7 @@
|
||||||
* @copyright Crown Copyright 2017
|
* @copyright Crown Copyright 2017
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -6,7 +6,7 @@
|
||||||
* @copyright Crown Copyright 2018
|
* @copyright Crown Copyright 2018
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -6,7 +6,7 @@
|
||||||
* @copyright Crown Copyright 2018
|
* @copyright Crown Copyright 2018
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -6,7 +6,7 @@
|
||||||
* @copyright Crown Copyright 2018
|
* @copyright Crown Copyright 2018
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
const outputObject = JSON.stringify({
|
const outputObject = JSON.stringify({
|
||||||
String: "SomeString",
|
String: "SomeString",
|
|
@ -6,7 +6,7 @@
|
||||||
* @copyright Crown Copyright 2018
|
* @copyright Crown Copyright 2018
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
const inputObject = JSON.stringify({
|
const inputObject = JSON.stringify({
|
||||||
String: "SomeString",
|
String: "SomeString",
|
|
@ -6,7 +6,7 @@
|
||||||
* @copyright Crown Copyright 2018
|
* @copyright Crown Copyright 2018
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
const outputObject = JSON.stringify({
|
const outputObject = JSON.stringify({
|
||||||
String: "SomeString",
|
String: "SomeString",
|
|
@ -6,7 +6,7 @@
|
||||||
* @copyright Crown Copyright 2018
|
* @copyright Crown Copyright 2018
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -5,7 +5,7 @@
|
||||||
* @copyright Crown Copyright 2017
|
* @copyright Crown Copyright 2017
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -6,7 +6,7 @@
|
||||||
* @copyright Crown Copyright 2018
|
* @copyright Crown Copyright 2018
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
|
@ -4,7 +4,7 @@
|
||||||
* @copyright Crown Copyright 2018
|
* @copyright Crown Copyright 2018
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -6,7 +6,7 @@
|
||||||
* @copyright Crown Copyright 2017
|
* @copyright Crown Copyright 2017
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -6,7 +6,7 @@
|
||||||
* @copyright Crown Copyright 2017
|
* @copyright Crown Copyright 2017
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -6,7 +6,7 @@
|
||||||
* @copyright Crown Copyright 2017
|
* @copyright Crown Copyright 2017
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -5,7 +5,7 @@
|
||||||
* @copyright Crown Copyright 2018
|
* @copyright Crown Copyright 2018
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
const ASCII_TEXT = "A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools.";
|
const ASCII_TEXT = "A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools.";
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -5,7 +5,7 @@
|
||||||
* @copyright Crown Copyright 2017
|
* @copyright Crown Copyright 2017
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -5,7 +5,7 @@
|
||||||
* @copyright Crown Copyright 2018
|
* @copyright Crown Copyright 2018
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -6,7 +6,7 @@
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -6,7 +6,7 @@
|
||||||
* @copyright Crown Copyright 2018
|
* @copyright Crown Copyright 2018
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -5,7 +5,7 @@
|
||||||
* @copyright Crown Copyright 2017
|
* @copyright Crown Copyright 2017
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -6,7 +6,7 @@
|
||||||
* @copyright Crown Copyright 2018
|
* @copyright Crown Copyright 2018
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -5,7 +5,7 @@
|
||||||
* @copyright Crown Copyright 2017
|
* @copyright Crown Copyright 2017
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -6,7 +6,7 @@
|
||||||
* @copyright Crown Copyright 2018
|
* @copyright Crown Copyright 2018
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
|
@ -5,7 +5,7 @@
|
||||||
* @copyright Copyright 2017
|
* @copyright Copyright 2017
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -6,7 +6,7 @@
|
||||||
* @copyright Crown Copyright 2018
|
* @copyright Crown Copyright 2018
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -6,7 +6,7 @@
|
||||||
* @copyright Crown Copyright 2018
|
* @copyright Crown Copyright 2018
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -6,7 +6,7 @@
|
||||||
* @copyright Crown Copyright 2018
|
* @copyright Crown Copyright 2018
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
File diff suppressed because one or more lines are too long
|
@ -5,7 +5,7 @@
|
||||||
* @copyright Crown Copyright 2017
|
* @copyright Crown Copyright 2017
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -6,7 +6,7 @@
|
||||||
* @copyright Crown Copyright 2018
|
* @copyright Crown Copyright 2018
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -6,7 +6,7 @@
|
||||||
* @copyright Crown Copyright 2018
|
* @copyright Crown Copyright 2018
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -5,7 +5,7 @@
|
||||||
* @copyright Crown Copyright 2018
|
* @copyright Crown Copyright 2018
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
|
@ -6,7 +6,7 @@
|
||||||
* @copyright Crown Copyright 2018
|
* @copyright Crown Copyright 2018
|
||||||
* @license Apache-2.0
|
* @license Apache-2.0
|
||||||
*/
|
*/
|
||||||
import TestRegister from "../../TestRegister";
|
import TestRegister from "../TestRegister";
|
||||||
|
|
||||||
TestRegister.addTests([
|
TestRegister.addTests([
|
||||||
{
|
{
|
Loading…
Reference in New Issue