|
|
@@ -1,43 +1,12 @@
|
|
|
'use strict';
|
|
|
|
|
|
-exports.a2zString = ['a','b','c','d','e','f','g','h','i','j','k','l','m',
|
|
|
- 'n','o','p','q','r','s','t','u','v','w','x','y','z'];
|
|
|
-exports.alnumString = exports.a2zString.concat(['0','1','2','3','4','5','6','7','8','9']);
|
|
|
-exports.queryString = exports.alnumString.concat(['+','%','&','.','*','-','_']);
|
|
|
-exports.base64String = exports.alnumString.concat(['+','/','=']).concat(
|
|
|
- exports.a2zString.map(function(c) {
|
|
|
- return c.toUpperCase();
|
|
|
- })
|
|
|
-);
|
|
|
-// schemas supported by the whatwg-url library
|
|
|
-exports.schemas = ['ftp','gopher','http','https','ws','wss'];
|
|
|
-exports.supportedLanguages = ['de', 'es', 'fr', 'it', 'no', 'pl', 'pt', 'oc', 'ru', 'sl', 'zh'];
|
|
|
-exports.mimeTypes = ['image/png', 'application/octet-stream'];
|
|
|
-
|
|
|
+// testing prerequisites
|
|
|
global.jsc = require('jsverify');
|
|
|
global.jsdom = require('jsdom-global');
|
|
|
global.cleanup = global.jsdom();
|
|
|
global.fs = require('fs');
|
|
|
|
|
|
-/**
|
|
|
- * character to HTML entity lookup table
|
|
|
- *
|
|
|
- * @see {@link https://github.com/janl/mustache.js/blob/master/mustache.js#L60}
|
|
|
- */
|
|
|
-var entityMap = {
|
|
|
- '&': '&',
|
|
|
- '<': '<',
|
|
|
- '>': '>',
|
|
|
- '"': '"',
|
|
|
- "'": ''',
|
|
|
- '/': '/',
|
|
|
- '`': '`',
|
|
|
- '=': '='
|
|
|
- },
|
|
|
- logFile = fs.createWriteStream('test.log'),
|
|
|
- mimeFile = fs.createReadStream('/etc/mime.types'),
|
|
|
- mimeLine = '';
|
|
|
-
|
|
|
+// application libraries to test
|
|
|
global.$ = global.jQuery = require('./jquery-3.1.1');
|
|
|
global.sjcl = require('./sjcl-1.0.6');
|
|
|
global.Base64 = require('./base64-2.1.9').Base64;
|
|
|
@@ -51,6 +20,38 @@ global.DOMPurify = require('./purify.min');
|
|
|
require('./bootstrap-3.3.7');
|
|
|
require('./privatebin');
|
|
|
|
|
|
+// internal variables
|
|
|
+var a2zString = ['a','b','c','d','e','f','g','h','i','j','k','l','m',
|
|
|
+ 'n','o','p','q','r','s','t','u','v','w','x','y','z'],
|
|
|
+ alnumString = a2zString.concat(['0','1','2','3','4','5','6','7','8','9']),
|
|
|
+ queryString = alnumString.concat(['+','%','&','.','*','-','_']),
|
|
|
+ base64String = alnumString.concat(['+','/','=']).concat(
|
|
|
+ a2zString.map(function(c) {
|
|
|
+ return c.toUpperCase();
|
|
|
+ })
|
|
|
+ ),
|
|
|
+ schemas = ['ftp','gopher','http','https','ws','wss'],
|
|
|
+ supportedLanguages = ['de', 'es', 'fr', 'it', 'no', 'pl', 'pt', 'oc', 'ru', 'sl', 'zh'],
|
|
|
+ mimeTypes = ['image/png', 'application/octet-stream'],
|
|
|
+ /**
|
|
|
+ * character to HTML entity lookup table
|
|
|
+ *
|
|
|
+ * @see {@link https://github.com/janl/mustache.js/blob/master/mustache.js#L60}
|
|
|
+ */
|
|
|
+ entityMap = {
|
|
|
+ '&': '&',
|
|
|
+ '<': '<',
|
|
|
+ '>': '>',
|
|
|
+ '"': '"',
|
|
|
+ "'": ''',
|
|
|
+ '/': '/',
|
|
|
+ '`': '`',
|
|
|
+ '=': '='
|
|
|
+ },
|
|
|
+ logFile = fs.createWriteStream('test.log'),
|
|
|
+ mimeFile = fs.createReadStream('/etc/mime.types'),
|
|
|
+ mimeLine = '';
|
|
|
+
|
|
|
// redirect console messages to log file
|
|
|
console.info = console.warn = console.error = function () {
|
|
|
logFile.write(Array.prototype.slice.call(arguments).join('') + '\n');
|
|
|
@@ -87,10 +88,12 @@ function parseMime(line) {
|
|
|
line = line.substring(0, index);
|
|
|
}
|
|
|
if (line.length > 0) {
|
|
|
- exports.mimeTypes.push(line);
|
|
|
+ mimeTypes.push(line);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+// common testing helper functions
|
|
|
+
|
|
|
/**
|
|
|
* convert all applicable characters to HTML entities
|
|
|
*
|
|
|
@@ -107,3 +110,28 @@ exports.htmlEntities = function(str) {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
+// provides random lowercase characters from a to z
|
|
|
+exports.jscA2zString = function() {
|
|
|
+ return jsc.elements(a2zString);
|
|
|
+}
|
|
|
+
|
|
|
+// provides random lowercase alpha numeric characters (a to z and 0 to 9)
|
|
|
+exports.jscAlnumString = function() {
|
|
|
+ return jsc.elements(alnumString);
|
|
|
+}
|
|
|
+
|
|
|
+// provides random characters allowed in GET queries
|
|
|
+exports.jscQueryString = function() {
|
|
|
+ return jsc.elements(queryString);
|
|
|
+}
|
|
|
+
|
|
|
+// provides a random URL schema supported by the whatwg-url library
|
|
|
+exports.jscSchemas = function() {
|
|
|
+ return jsc.elements(schemas);
|
|
|
+}
|
|
|
+
|
|
|
+// provides a random supported language string
|
|
|
+exports.jscSupportedLanguages = function() {
|
|
|
+ return jsc.elements(supportedLanguages);
|
|
|
+}
|
|
|
+
|