123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- '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.');
|