(function() { function Tests(ASSERT, SHA1, UTIL) { describe('sha1', function() { it('should digest the empty string', function() { var md = SHA1.create(); ASSERT.equal( md.digest().toHex(), 'da39a3ee5e6b4b0d3255bfef95601890afd80709'); }); it('should digest "abc"', function() { var md = SHA1.create(); md.update('abc'); ASSERT.equal( md.digest().toHex(), 'a9993e364706816aba3e25717850c26c9cd0d89d'); }); it('should digest "The quick brown fox jumps over the lazy dog"', function() { var md = SHA1.create(); md.update('The quick brown fox jumps over the lazy dog'); ASSERT.equal( md.digest().toHex(), '2fd4e1c67a2d28fced849ee1bb76e7391b93eb12'); }); it('should digest "c\'\u00e8"', function() { var md = SHA1.create(); md.update("c\'\u00e8", 'utf8'); ASSERT.equal( md.digest().toHex(), '98c9a3f804daa73b68a5660d032499a447350c0d'); }); it('should digest "THIS IS A MESSAGE"', function() { var md = SHA1.create(); md.start(); md.update('THIS IS '); md.update('A MESSAGE'); // do twice to check continuing digest ASSERT.equal( md.digest().toHex(), '5f24f4d6499fd2d44df6c6e94be8b14a796c071d'); ASSERT.equal( md.digest().toHex(), '5f24f4d6499fd2d44df6c6e94be8b14a796c071d'); }); it('should digest a long message', function() { // Note: might be too slow on old browsers var md = SHA1.create(); md.update(UTIL.fillString('a', 1000000)); ASSERT.equal( md.digest().toHex(), '34aa973cd4c4daa4f61eeb2bdbad27316534016f'); }); }); } // check for AMD if(typeof define === 'function') { define([ 'forge/sha1', 'forge/util' ], function(SHA1, UTIL) { Tests( // Global provided by test harness ASSERT, SHA1(), UTIL() ); }); } else if(typeof module === 'object' && module.exports) { // assume NodeJS Tests( require('assert'), require('../../js/sha1')(), require('../../js/util')()); } })();