Browse Source

Add tests, however non-functional due to lack of File in Node

Also add jimp to package.json
Matt C 6 years ago
parent
commit
18693d2471

+ 12 - 31
package-lock.json

@@ -4805,8 +4805,7 @@
         "code-point-at": {
         "code-point-at": {
           "version": "1.1.0",
           "version": "1.1.0",
           "bundled": true,
           "bundled": true,
-          "dev": true,
-          "optional": true
+          "dev": true
         },
         },
         "concat-map": {
         "concat-map": {
           "version": "0.0.1",
           "version": "0.0.1",
@@ -4817,8 +4816,7 @@
         "console-control-strings": {
         "console-control-strings": {
           "version": "1.1.0",
           "version": "1.1.0",
           "bundled": true,
           "bundled": true,
-          "dev": true,
-          "optional": true
+          "dev": true
         },
         },
         "core-util-is": {
         "core-util-is": {
           "version": "1.0.2",
           "version": "1.0.2",
@@ -4948,7 +4946,6 @@
           "version": "1.0.0",
           "version": "1.0.0",
           "bundled": true,
           "bundled": true,
           "dev": true,
           "dev": true,
-          "optional": true,
           "requires": {
           "requires": {
             "number-is-nan": "^1.0.0"
             "number-is-nan": "^1.0.0"
           }
           }
@@ -4971,14 +4968,12 @@
         "minimist": {
         "minimist": {
           "version": "0.0.8",
           "version": "0.0.8",
           "bundled": true,
           "bundled": true,
-          "dev": true,
-          "optional": true
+          "dev": true
         },
         },
         "minipass": {
         "minipass": {
           "version": "2.2.4",
           "version": "2.2.4",
           "bundled": true,
           "bundled": true,
           "dev": true,
           "dev": true,
-          "optional": true,
           "requires": {
           "requires": {
             "safe-buffer": "^5.1.1",
             "safe-buffer": "^5.1.1",
             "yallist": "^3.0.0"
             "yallist": "^3.0.0"
@@ -4997,7 +4992,6 @@
           "version": "0.5.1",
           "version": "0.5.1",
           "bundled": true,
           "bundled": true,
           "dev": true,
           "dev": true,
-          "optional": true,
           "requires": {
           "requires": {
             "minimist": "0.0.8"
             "minimist": "0.0.8"
           }
           }
@@ -5078,8 +5072,7 @@
         "number-is-nan": {
         "number-is-nan": {
           "version": "1.0.1",
           "version": "1.0.1",
           "bundled": true,
           "bundled": true,
-          "dev": true,
-          "optional": true
+          "dev": true
         },
         },
         "object-assign": {
         "object-assign": {
           "version": "4.1.1",
           "version": "4.1.1",
@@ -5091,7 +5084,6 @@
           "version": "1.4.0",
           "version": "1.4.0",
           "bundled": true,
           "bundled": true,
           "dev": true,
           "dev": true,
-          "optional": true,
           "requires": {
           "requires": {
             "wrappy": "1"
             "wrappy": "1"
           }
           }
@@ -5213,7 +5205,6 @@
           "version": "1.0.2",
           "version": "1.0.2",
           "bundled": true,
           "bundled": true,
           "dev": true,
           "dev": true,
-          "optional": true,
           "requires": {
           "requires": {
             "code-point-at": "^1.0.0",
             "code-point-at": "^1.0.0",
             "is-fullwidth-code-point": "^1.0.0",
             "is-fullwidth-code-point": "^1.0.0",
@@ -5471,7 +5462,7 @@
       "dependencies": {
       "dependencies": {
         "pify": {
         "pify": {
           "version": "2.3.0",
           "version": "2.3.0",
-          "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
           "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
           "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
           "dev": true
           "dev": true
         }
         }
@@ -7198,11 +7189,6 @@
         "verror": "1.10.0"
         "verror": "1.10.0"
       }
       }
     },
     },
-    "jsqr": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/jsqr/-/jsqr-1.1.1.tgz",
-      "integrity": "sha512-FVoMU2ncTyjaOqN/vwvDnZ7jaAVvFzM3LK3vG3jvQZFWJQlAwJ1XTCOgAEKo+4Rkd6ydMXTTvqGV/4w5VunmTw=="
-    },
     "jsrsasign": {
     "jsrsasign": {
       "version": "8.0.12",
       "version": "8.0.12",
       "resolved": "https://registry.npmjs.org/jsrsasign/-/jsrsasign-8.0.12.tgz",
       "resolved": "https://registry.npmjs.org/jsrsasign/-/jsrsasign-8.0.12.tgz",
@@ -8038,7 +8024,7 @@
       "dependencies": {
       "dependencies": {
         "semver": {
         "semver": {
           "version": "5.3.0",
           "version": "5.3.0",
-          "resolved": "http://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
           "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
           "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
           "dev": true
           "dev": true
         }
         }
@@ -8908,7 +8894,7 @@
       "dependencies": {
       "dependencies": {
         "async": {
         "async": {
           "version": "1.5.2",
           "version": "1.5.2",
-          "resolved": "http://registry.npmjs.org/async/-/async-1.5.2.tgz",
+          "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
           "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
           "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
           "dev": true
           "dev": true
         }
         }
@@ -9444,11 +9430,6 @@
       "resolved": "https://registry.npmjs.org/purepack/-/purepack-1.0.4.tgz",
       "resolved": "https://registry.npmjs.org/purepack/-/purepack-1.0.4.tgz",
       "integrity": "sha1-CGKC/ZOShfWGZLqam7oxzbFlzNI="
       "integrity": "sha1-CGKC/ZOShfWGZLqam7oxzbFlzNI="
     },
     },
-    "qr-image": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmjs.org/qr-image/-/qr-image-3.2.0.tgz",
-      "integrity": "sha1-n6gpW+rlDEoUnPn5CaHbRkqGcug="
-    },
     "qs": {
     "qs": {
       "version": "6.5.2",
       "version": "6.5.2",
       "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
       "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
@@ -9729,7 +9710,7 @@
       "dependencies": {
       "dependencies": {
         "jsesc": {
         "jsesc": {
           "version": "0.5.0",
           "version": "0.5.0",
-          "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+          "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
           "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
           "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
           "dev": true
           "dev": true
         }
         }
@@ -9780,7 +9761,7 @@
         },
         },
         "htmlparser2": {
         "htmlparser2": {
           "version": "3.3.0",
           "version": "3.3.0",
-          "resolved": "http://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz",
+          "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz",
           "integrity": "sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4=",
           "integrity": "sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4=",
           "dev": true,
           "dev": true,
           "requires": {
           "requires": {
@@ -9792,7 +9773,7 @@
         },
         },
         "readable-stream": {
         "readable-stream": {
           "version": "1.0.34",
           "version": "1.0.34",
-          "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
           "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
           "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
           "dev": true,
           "dev": true,
           "requires": {
           "requires": {
@@ -12442,14 +12423,14 @@
       "dependencies": {
       "dependencies": {
         "async": {
         "async": {
           "version": "1.0.0",
           "version": "1.0.0",
-          "resolved": "http://registry.npmjs.org/async/-/async-1.0.0.tgz",
+          "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz",
           "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=",
           "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=",
           "dev": true,
           "dev": true,
           "optional": true
           "optional": true
         },
         },
         "colors": {
         "colors": {
           "version": "1.0.3",
           "version": "1.0.3",
-          "resolved": "http://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
+          "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
           "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=",
           "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=",
           "dev": true,
           "dev": true,
           "optional": true
           "optional": true

+ 1 - 0
package.json

@@ -92,6 +92,7 @@
     "exif-parser": "^0.1.12",
     "exif-parser": "^0.1.12",
     "file-saver": "^2.0.0-rc.4",
     "file-saver": "^2.0.0-rc.4",
     "highlight.js": "^9.13.1",
     "highlight.js": "^9.13.1",
+    "jimp": "^0.6.0",
     "jquery": "^3.3.1",
     "jquery": "^3.3.1",
     "js-crc": "^0.2.0",
     "js-crc": "^0.2.0",
     "js-sha3": "^0.8.0",
     "js-sha3": "^0.8.0",

+ 1 - 1
src/core/Utils.mjs

@@ -855,7 +855,7 @@ class Utils {
                 let dataURI = "data:";
                 let dataURI = "data:";
                 dataURI += type + ";";
                 dataURI += type + ";";
                 dataURI += "base64," + toBase64(buff);
                 dataURI += "base64," + toBase64(buff);
-                return "<img src='" + dataURI + "'>";
+                return "<img style='max-width: 100%;' src='" + dataURI + "'>";
             } else {
             } else {
                 return `<pre>${Utils.escapeHtml(Utils.arrayBufferToStr(buff.buffer))}</pre>`;
                 return `<pre>${Utils.escapeHtml(Utils.arrayBufferToStr(buff.buffer))}</pre>`;
             }
             }

+ 3 - 3
src/core/operations/SplitColourChannels.mjs

@@ -64,7 +64,7 @@ class SplitColourChannels extends Operation {
                         ]).getBufferAsync(jimp.MIME_PNG);
                         ]).getBufferAsync(jimp.MIME_PNG);
                     resolve(new File([new Uint8Array((await split).values())], "red.png", {type: "image/png"}));
                     resolve(new File([new Uint8Array((await split).values())], "red.png", {type: "image/png"}));
                 } catch (err) {
                 } catch (err) {
-                    reject(new OperationError("Could not split red channel."));
+                    reject(new OperationError(`Could not split red channel: ${err}`));
                 }
                 }
             });
             });
             const green = new Promise(async (resolve, reject) => {
             const green = new Promise(async (resolve, reject) => {
@@ -76,7 +76,7 @@ class SplitColourChannels extends Operation {
                         ]).getBufferAsync(jimp.MIME_PNG);
                         ]).getBufferAsync(jimp.MIME_PNG);
                     resolve(new File([new Uint8Array((await split).values())], "green.png", {type: "image/png"}));
                     resolve(new File([new Uint8Array((await split).values())], "green.png", {type: "image/png"}));
                 } catch (err) {
                 } catch (err) {
-                    reject(new OperationError("Could not split green channel."));
+                    reject(new OperationError(`Could not split green channel: ${err}`));
                 }
                 }
             });
             });
             const blue = new Promise(async (resolve, reject) => {
             const blue = new Promise(async (resolve, reject) => {
@@ -88,7 +88,7 @@ class SplitColourChannels extends Operation {
                         ]).getBufferAsync(jimp.MIME_PNG);
                         ]).getBufferAsync(jimp.MIME_PNG);
                     resolve(new File([new Uint8Array((await split).values())], "blue.png", {type: "image/png"}));
                     resolve(new File([new Uint8Array((await split).values())], "blue.png", {type: "image/png"}));
                 } catch (err) {
                 } catch (err) {
-                    reject(new OperationError("Could not split blue channel."));
+                    reject(new OperationError(`Could not split blue channel: ${err}`));
                 }
                 }
             });
             });
             return await Promise.all([red, green, blue]);
             return await Promise.all([red, green, blue]);

+ 1 - 0
test/index.mjs

@@ -73,6 +73,7 @@ import "./tests/operations/SeqUtils";
 import "./tests/operations/SetDifference";
 import "./tests/operations/SetDifference";
 import "./tests/operations/SetIntersection";
 import "./tests/operations/SetIntersection";
 import "./tests/operations/SetUnion";
 import "./tests/operations/SetUnion";
+import "./tests/operations/SplitColourChannels";
 import "./tests/operations/StrUtils";
 import "./tests/operations/StrUtils";
 import "./tests/operations/SymmetricDifference";
 import "./tests/operations/SymmetricDifference";
 import "./tests/operations/TextEncodingBruteForce";
 import "./tests/operations/TextEncodingBruteForce";

File diff suppressed because it is too large
+ 10 - 0
test/tests/operations/SplitColourChannels.mjs


Some files were not shown because too many files changed in this diff