浏览代码

Fixed tests for octal operations.

n1474335 8 年之前
父节点
当前提交
5f85bff315
共有 5 个文件被更改,包括 88 次插入7 次删除
  1. 4 3
      src/core/Utils.js
  2. 1 1
      src/core/config/OperationConfig.js
  3. 5 3
      src/core/operations/ByteRepr.js
  4. 1 0
      test/index.js
  5. 77 0
      test/tests/operations/ByteRepr.js

+ 4 - 3
src/core/Utils.js

@@ -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) {

+ 1 - 1
src/core/config/OperationConfig.js

@@ -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,

+ 5 - 3
src/core/operations/ByteRepr.js

@@ -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

+ 1 - 0
test/index.js

@@ -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";

+ 77 - 0
test/tests/operations/ByteRepr.js

@@ -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"]
+            }
+        ]
+    },
+]);