aboutsummaryrefslogtreecommitdiff
path: root/node_modules/tsscmp/test
diff options
context:
space:
mode:
authorHumairAK <humair88@hotmail.com>2016-07-21 06:24:24 +0000
committerHumairAK <humair88@hotmail.com>2016-07-21 06:24:24 +0000
commit2549ee68e435b77e7e07d3ea95363268cbfe9164 (patch)
tree8f48f6447a4377f1bc15ae7d73dbab3337044720 /node_modules/tsscmp/test
parentd694c1a73f77def42c17b58027f046bf9e1af809 (diff)
Added other dependencies for authentication, made minor adjustments to index.js, added templating for exams, will remove dependencie modules later, keep for now
Diffstat (limited to 'node_modules/tsscmp/test')
-rw-r--r--node_modules/tsscmp/test/benchmark/index.js30
-rw-r--r--node_modules/tsscmp/test/unit/index.js69
2 files changed, 99 insertions, 0 deletions
diff --git a/node_modules/tsscmp/test/benchmark/index.js b/node_modules/tsscmp/test/benchmark/index.js
new file mode 100644
index 0000000..fd93e42
--- /dev/null
+++ b/node_modules/tsscmp/test/benchmark/index.js
@@ -0,0 +1,30 @@
+'use strict';
+
+var timeSafeCompare = require('../../lib/index');
+
+function random(length) {
+
+ length = length || 32;
+ var result = "";
+ var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()-+/*[]{}-=\|;\':\"<>?,./";
+
+ for( var i=0; i < length; i++ ){
+ result += possible.charAt(Math.floor(Math.random() * possible.length));
+ }
+ return result;
+}
+
+function run(count) {
+ count = count || 100*1000;
+ console.log('benchmark count: ' + count/1000 + 'k');
+ console.time('benchmark');
+
+ while(count--){
+ timeSafeCompare(random(), random());
+ }
+ console.timeEnd('benchmark');
+}
+
+run(100000);
+
+module.exports = run;
diff --git a/node_modules/tsscmp/test/unit/index.js b/node_modules/tsscmp/test/unit/index.js
new file mode 100644
index 0000000..0335423
--- /dev/null
+++ b/node_modules/tsscmp/test/unit/index.js
@@ -0,0 +1,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.');