mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-31 17:38:48 +00:00
react app
This commit is contained in:
89
react-app/node_modules/json5/test/parse.js
generated
vendored
Normal file
89
react-app/node_modules/json5/test/parse.js
generated
vendored
Normal file
@@ -0,0 +1,89 @@
|
||||
// parse.js
|
||||
// Tests parse(). See readme.txt for details.
|
||||
|
||||
var assert = require('assert');
|
||||
var FS = require('fs');
|
||||
var JSON5 = require('..');
|
||||
var Path = require('path');
|
||||
|
||||
// Test JSON5.parse() by comparing its output for each case with either the
|
||||
// native JSON.parse() or ES5 strict-mode eval(). See readme.txt for details.
|
||||
// For eval(), remember to wrap the input in parentheses before eval()'ing,
|
||||
// since {...} is ambiguous in JavaScript. Also ensure the parentheses are on
|
||||
// lines of their own, to support inline comments.
|
||||
|
||||
// TODO More test cases, and ones that test specific features and edge cases.
|
||||
// Mozilla's test cases are a great inspiration and reference here:
|
||||
// http://mxr.mozilla.org/mozilla-central/source/js/src/tests/ecma_5/JSON/
|
||||
|
||||
var dirsPath = Path.resolve(__dirname, 'parse-cases');
|
||||
var dirs = FS.readdirSync(dirsPath);
|
||||
|
||||
function createTest(fileName, dir) {
|
||||
var ext = Path.extname(fileName);
|
||||
var filePath = Path.join(dirsPath, dir, fileName);
|
||||
var str = FS.readFileSync(filePath, 'utf8');
|
||||
|
||||
function parseJSON5() {
|
||||
return JSON5.parse(str);
|
||||
}
|
||||
|
||||
function parseJSON() {
|
||||
return JSON.parse(str);
|
||||
}
|
||||
|
||||
function parseES5() {
|
||||
return eval('"use strict"; (\n' + str + '\n)');
|
||||
}
|
||||
|
||||
exports[dir][fileName] = function test() {
|
||||
switch (ext) {
|
||||
case '.json':
|
||||
assert.deepEqual(parseJSON5(), parseJSON(),
|
||||
'Expected parsed JSON5 to equal parsed JSON.');
|
||||
break;
|
||||
case '.json5':
|
||||
assert.throws(parseJSON, // test validation
|
||||
'Test case bug: expected JSON parsing to fail.');
|
||||
// Need special case for NaN as NaN != NaN
|
||||
if ( fileName === 'nan.json5' ) {
|
||||
assert.equal( isNaN( parseJSON5() ), isNaN( parseES5() ),
|
||||
'Expected parsed JSON5 to equal parsed ES5.');
|
||||
}
|
||||
else {
|
||||
assert.deepEqual( parseJSON5(), parseES5(),
|
||||
'Expected parsed JSON5 to equal parsed ES5.');
|
||||
}
|
||||
break;
|
||||
case '.js':
|
||||
assert.throws(parseJSON, // test validation
|
||||
'Test case bug: expected JSON parsing to fail.');
|
||||
assert.doesNotThrow(parseES5, // test validation
|
||||
'Test case bug: expected ES5 parsing not to fail.');
|
||||
assert.throws(parseJSON5,
|
||||
'Expected JSON5 parsing to fail.');
|
||||
break;
|
||||
case '.txt':
|
||||
assert.throws(parseES5, // test validation
|
||||
'Test case bug: expected ES5 parsing to fail.');
|
||||
assert.throws(parseJSON5,
|
||||
'Expected JSON5 parsing to fail.');
|
||||
break;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
dirs.forEach(function (dir) {
|
||||
// create a test suite for this group of tests:
|
||||
exports[dir] = {};
|
||||
|
||||
// skip the TODO directory -- these tests are expected to fail:
|
||||
if (dir === 'todo') {
|
||||
return;
|
||||
}
|
||||
|
||||
// otherwise create a test for each file in this group:
|
||||
FS.readdirSync(Path.join(dirsPath, dir)).forEach(function (file) {
|
||||
createTest(file, dir);
|
||||
});
|
||||
});
|
Reference in New Issue
Block a user