summaryrefslogtreecommitdiff
path: root/src/node_modules/md5/test.js
diff options
context:
space:
mode:
authorMinteck <contact@minteck.org>2021-12-21 16:52:28 +0100
committerMinteck <contact@minteck.org>2021-12-21 16:52:28 +0100
commit46e43f4bde4a35785b4997b81e86cd19f046b69b (patch)
treec53c2f826f777f9d6b2d249dab556feb72a6c3a6 /src/node_modules/md5/test.js
downloadlangdetect-46e43f4bde4a35785b4997b81e86cd19f046b69b.tar.gz
langdetect-46e43f4bde4a35785b4997b81e86cd19f046b69b.tar.bz2
langdetect-46e43f4bde4a35785b4997b81e86cd19f046b69b.zip
Commit
Diffstat (limited to 'src/node_modules/md5/test.js')
-rw-r--r--src/node_modules/md5/test.js75
1 files changed, 75 insertions, 0 deletions
diff --git a/src/node_modules/md5/test.js b/src/node_modules/md5/test.js
new file mode 100644
index 0000000..db78c25
--- /dev/null
+++ b/src/node_modules/md5/test.js
@@ -0,0 +1,75 @@
+var md5 = require('./md5.js');
+var assert = require('assert');
+
+describe('md5', function () {
+
+ it('should throw an error for an undefined value', function() {
+ assert.throws(function() {
+ md5(undefined);
+ });
+ });
+
+ it('should allow the hashing of the string `undefined`', function() {
+ assert.equal('5e543256c480ac577d30f76f9120eb74', md5('undefined'));
+ });
+
+ it('should throw an error for `null`', function() {
+ assert.throws(function() {
+ md5(null);
+ });
+ });
+
+ it('should return the expected MD5 hash for "message"', function() {
+ assert.equal('78e731027d8fd50ed642340b7c9a63b3', md5('message'));
+ });
+
+ it('should not return the same hash for random numbers twice', function() {
+ var msg1 = Math.floor((Math.random() * 100000) + 1) + (new Date).getTime();
+ var msg2 = Math.floor((Math.random() * 100000) + 1) + (new Date).getTime();
+
+ if (msg1 !== msg2) {
+ assert.notEqual(md5(msg1), md5(msg2));
+ } else {
+ assert.equal(md5(msg1), md5(msg1));
+ }
+ });
+
+ it('should support Node.js Buffers', function() {
+ var buffer = new Buffer('message áßäöü', 'utf8');
+
+ assert.equal(md5(buffer), md5('message áßäöü'));
+ })
+
+ it('should be able to use a binary encoded string', function() {
+ var hash1 = md5('abc', { asString: true });
+ var hash2 = md5(hash1 + 'a', { asString: true, encoding : 'binary' });
+ var hash3 = md5(hash1 + 'a', { encoding : 'binary' });
+ assert.equal(hash3, '131f0ac52813044f5110e4aec638c169');
+ });
+
+ it('should support Uint8Array', function() {
+ // Polyfills
+ if (!Array.from) {
+ Array.from = function(src, fn) {
+ var result = new Array(src.length);
+ for (var i = 0; i < src.length; ++i)
+ result[i] = fn(src[i]);
+ return result;
+ };
+ }
+ if (!Uint8Array.from) {
+ Uint8Array.from = function(src) {
+ var result = new Uint8Array(src.length);
+ for (var i = 0; i < src.length; ++i)
+ result[i] = src[i];
+ return result;
+ };
+ }
+
+ var message = 'foobarbaz';
+ var u8arr = Uint8Array.from(
+ Array.from(message, function(c) { return c.charCodeAt(0); }));
+ var u8aHash = md5(u8arr);
+ assert.equal(u8aHash, md5(message));
+ });
+});