aboutsummaryrefslogtreecommitdiff
path: root/node_modules/tsscmp/test/unit/index.js
blob: 03354234a34220aac40dba7912bcd6d5bcc2d2b0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
'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.');