Fixed tests for octal operations.

This commit is contained in:
n1474335 2017-04-05 22:00:06 +01:00
parent a36c9ca339
commit 5f85bff315
5 changed files with 88 additions and 7 deletions

View file

@ -212,7 +212,7 @@ const Utils = {
* @returns {string}
*/
printable: function(str, preserveWs) {
if (window && window.app && !window.app.options.treatAsUtf8) {
if (typeof window !== "undefined" && window.app && !window.app.options.treatAsUtf8) {
str = Utils.byteArrayToChars(Utils.strToByteArray(str));
}
@ -388,8 +388,9 @@ const Utils = {
var wordArray = CryptoJS.enc.Utf8.parse(str),
byteArray = Utils.wordArrayToByteArray(wordArray);
if (window && str.length !== wordArray.sigBytes)
if (typeof window !== "undefined" && str.length !== wordArray.sigBytes) {
window.app.options.attemptHighlight = false;
}
return byteArray;
},
@ -440,7 +441,7 @@ const Utils = {
var wordArray = new CryptoJS.lib.WordArray.init(words, byteArray.length),
str = CryptoJS.enc.Utf8.stringify(wordArray);
if (window && str.length !== wordArray.sigBytes)
if (typeof window !== "undefined" && str.length !== wordArray.sigBytes)
window.app.options.attemptHighlight = false;
return str;
} catch (err) {

View file

@ -455,7 +455,7 @@ const OperationConfig = {
]
},
"From Octal": {
description: "Converts a octal byte string back into its raw value.<br><br>e.g. <code>316 223 316 265 316 271 316 254 40 317 203 316 277 317 205</code> becomes the UTF-8 encoded string <code>Γειά σου</code>",
description: "Converts an octal byte string back into its raw value.<br><br>e.g. <code>316 223 316 265 316 271 316 254 40 317 203 316 277 317 205</code> becomes the UTF-8 encoded string <code>Γειά σου</code>",
run: ByteRepr.runFromOct,
highlight: false,
highlightReverse: false,

View file

@ -56,7 +56,7 @@ const ByteRepr = {
/**
* To Oct operation.
* To Octal operation.
*
* @author Matt C [matt@artemisbot.pw]
* @param {byteArray} input
@ -65,11 +65,12 @@ const ByteRepr = {
*/
runToOct: function(input, args) {
var delim = Utils.charRep[args[0] || "Space"];
return input.map(val => parseInt(Utils.bin(val), 2).toString(8)).join(delim);
return input.map(val => val.toString(8)).join(delim);
},
/**
* From Oct operation.
* From Octal operation.
*
* @author Matt C [matt@artemisbot.pw]
* @param {string} input
@ -82,6 +83,7 @@ const ByteRepr = {
return input.split(delim).map(val => parseInt(val, 8));
},
/**
* @constant
* @default

View file

@ -12,6 +12,7 @@ import "babel-polyfill";
import TestRegister from "./TestRegister.js";
import "./tests/operations/Base58.js";
import "./tests/operations/ByteRepr.js";
import "./tests/operations/Compress.js";
import "./tests/operations/FlowControl.js";
import "./tests/operations/MorseCode.js";

View file

@ -0,0 +1,77 @@
/**
* ByteRepr tests.
*
* @author Matt C [matt@artemisbot.pw]
* @copyright Crown Copyright 2017
* @license Apache-2.0
*/
import TestRegister from "../../TestRegister.js";
TestRegister.addTests([
{
name: "To Octal: nothing",
input: "",
expectedOutput: "",
recipeConfig: [
{
"op": "To Octal",
"args": ["Space"]
}
]
},
{
name: "From Octal: nothing",
input: "",
expectedOutput: "",
recipeConfig: [
{
"op": "From Octal",
"args": ["Space"]
}
]
},
{
name: "To Octal: hello world",
input: "hello world", // [104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100],
expectedOutput: "150 145 154 154 157 40 167 157 162 154 144",
recipeConfig: [
{
"op": "To Octal",
"args": ["Space"]
}
]
},
{
name: "From Octal: hello world",
input: "150 145 154 154 157 40 167 157 162 154 144",
expectedOutput: "hello world",
recipeConfig: [
{
"op": "From Octal",
"args": ["Space"]
}
]
},
{
name: "To Octal: Γειά σου",
input: "Γειά σου", //[206,147,206,181,206,185,206,172,32,207,131,206,191,207,133],
expectedOutput: "316 223 316 265 316 271 316 254 40 317 203 316 277 317 205",
recipeConfig: [
{
"op": "To Octal",
"args": ["Space"]
}
]
},
{
name: "From Octal: Γειά σου",
input: "316 223 316 265 316 271 316 254 40 317 203 316 277 317 205",
expectedOutput: "Γειά σου",
recipeConfig: [
{
"op": "From Octal",
"args": ["Space"]
}
]
},
]);