70 lines
1.8 KiB
JavaScript
70 lines
1.8 KiB
JavaScript
|
'use strict';
|
||
|
|
||
|
var assert = require('assert');
|
||
|
var timeSafeCompare = require('../../lib/index');
|
||
|
|
||
|
process.on('error', function (e) {
|
||
|
console.log('caught: ' + e);
|
||
|
});
|
||
|
|
||
|
function testEqual(a, b) {
|
||
|
assert(timeSafeCompare(a, b));
|
||
|
|
||
|
// lets also do a parity check with the strict equal to operator
|
||
|
assert(a === b);
|
||
|
}
|
||
|
|
||
|
function testNotEqual(a, b) {
|
||
|
assert(!timeSafeCompare(a, b));
|
||
|
|
||
|
// lets also do a parity check with the strict not equal to operator
|
||
|
assert(a !== b);
|
||
|
}
|
||
|
|
||
|
// note: lets also make sure tsscmp can be inline replaced for any types -
|
||
|
// just incase if anyone is interested
|
||
|
|
||
|
// positive tests
|
||
|
testEqual('127e6fbfe24a750e72930c220a8e138275656b8e5d8f48a98c3c92df2caba935',
|
||
|
'127e6fbfe24a750e72930c220a8e138275656b8e5d8f48a98c3c92df2caba935',
|
||
|
'test ');
|
||
|
testEqual('a', 'a');
|
||
|
testEqual('', '');
|
||
|
testEqual(undefined, undefined);
|
||
|
testEqual(true, true);
|
||
|
testEqual(false, false);
|
||
|
(function () {
|
||
|
var a = { a: 1 };
|
||
|
testEqual(a, a);
|
||
|
})();
|
||
|
(function () {
|
||
|
function f1() { return 1; };
|
||
|
testEqual(f1, f1);
|
||
|
})();
|
||
|
|
||
|
// negative tests
|
||
|
testNotEqual('');
|
||
|
testNotEqual('a', 'b');
|
||
|
testNotEqual('a', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa');
|
||
|
testNotEqual('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'a');
|
||
|
testNotEqual('alpha', 'beta');
|
||
|
testNotEqual(false, true);
|
||
|
testNotEqual(false, undefined);
|
||
|
testNotEqual(function () { }, function () { });
|
||
|
testNotEqual({}, {});
|
||
|
testNotEqual({ a: 1 }, { a: 1 });
|
||
|
testNotEqual({ a: 1 }, { a: 2 });
|
||
|
testNotEqual([1, 2], [1, 2]);
|
||
|
testNotEqual([1, 2], [1, 2, 3]);
|
||
|
(function () {
|
||
|
var a = { p: 1 };
|
||
|
var b = { p: 1 };
|
||
|
testNotEqual(a, b);
|
||
|
})();
|
||
|
(function () {
|
||
|
function f1() { return 1; };
|
||
|
function f2() { return 1; };
|
||
|
testNotEqual(f1, f2);
|
||
|
})();
|
||
|
console.log('Success: all tests complete.');
|