mirror of
				https://github.com/1disk/edp445.git
				synced 2024-08-14 22:47:02 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			75 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 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));
 | |
|   });
 | |
| });
 |