123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- 'use strict';
- var assert = require('assert');
- var crypto = require('crypto');
- var hash = require('../index');
- var validSha1 = /^[0-9a-f]{40}$/i;
- var validBase64 = /^([A-Za-z0-9+\/]{4})*([A-Za-z0-9+\/==]{4})$/;
- describe('hash() without crypto.getHashes', function() {
- var getHashes_;
- beforeEach(function() {
- getHashes_ = crypto.getHashes;
- delete crypto.getHashes;
- });
-
- afterEach(function() {
- crypto.getHashes = getHashes_;
- });
-
- it('should work fine for SHA1', function() {
- assert.ok(validSha1.test(hash(42)), 'hash some value');
- assert.ok(validSha1.test(hash(NaN)), 'hash some value');
- });
- });
- describe('hash() without Duplex streams', function() {
- var createHash_;
- beforeEach(function() {
- createHash_ = crypto.createHash;
- crypto.createHash = function(algorithm) {
- var strm = createHash_(algorithm);
-
- return {
- update: strm.write.bind(strm),
- digest: strm.digest.bind(strm)
- };
- };
- });
-
- afterEach(function() {
- crypto.createHash = createHash_;
- });
-
- it('should work fine for SHA1 without .write()/.read()', function() {
- assert.ok(validSha1.test(hash(42)), 'hash some value');
- assert.ok(validSha1.test(hash(NaN)), 'hash some value');
- });
-
- it('should work fine for SHA1 without .write()/.read() with base64', function() {
- assert.ok(validBase64.test(hash(42, {encoding: 'base64'})), 'hash some value');
- assert.ok(validBase64.test(hash(NaN, {encoding: 'base64'})), 'hash some value');
- });
-
- if (typeof Buffer !== 'undefined') {
- it('should work fine for SHA1 without .write()/.read() with buffer', function() {
- assert.ok(Buffer.isBuffer(hash(42, {encoding: 'buffer'})), 'hash some value');
- assert.ok(Buffer.isBuffer(hash(NaN, {encoding: 'buffer'})), 'hash some value');
- });
- }
- });
|