76 lines
2.0 KiB
JavaScript
76 lines
2.0 KiB
JavaScript
(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')());
|
|
}
|
|
|
|
})();
|