diff options
Diffstat (limited to 'node_modules/twig/test-ext/test.original.js')
-rw-r--r-- | node_modules/twig/test-ext/test.original.js | 314 |
1 files changed, 0 insertions, 314 deletions
diff --git a/node_modules/twig/test-ext/test.original.js b/node_modules/twig/test-ext/test.original.js deleted file mode 100644 index 27304e2..0000000 --- a/node_modules/twig/test-ext/test.original.js +++ /dev/null @@ -1,314 +0,0 @@ -/*jshint node: true */ - -( function( ) { - "use strict"; - var fs = require( "fs" ), - path = require("path"), - twigPhpDir = "test-ext/twig.php", - - runTest = function( ) { - describe( "Twig original test ->", function( ) { - var - Twig = Twig || require("../twig"), - twig = twig || Twig.twig, - walk = function( dir, done ) { - var results = [], - list = fs.readdirSync( dir ), - i = 0; - - ( function next( ) { - var file = list[i++], - stat; - if ( !file ) { - return done( null, results ); - } - - file = dir + '/' + file; - stat = fs.statSync( file ); - if ( stat && stat.isDirectory( ) ) { - walk( file, function( err, res ) { - results = results.concat( res ); - next( ); - } ); - } else { - results.push( file ); - next( ); - } - } )( ); - }, - testFile = function( filepath ) { - var tmp = fs.readFileSync( filepath, "utf8" ), - tmp2 = tmp.split( /^--/gm ), - res = {}; - - tmp2.forEach( function( data ) { - if ( !data ) { - return; - } - - var name = ( "" + data.match( /^[A-Z]+--/ ) || "" ).replace( /--$/, '' ); - - if ( name ) { - res[ name ] = data.substring( name.length + 3 ).trim( ); - } - } ); - - res.filepath = filepath; - - return res; - }; - - walk( twigPhpDir + "/test", function( err, files ) { - var testFiles = []; - - files.forEach( function( filepath ) { - if ( filepath.substring( filepath.length - 5 ) === ".test" ) { - testFiles.push( testFile( filepath ) ); - } - } ); - - testFiles.forEach( function( data, idx ) { - var Tokenizer = require( "tokenizer" ), - t = new Tokenizer( ), - res, - str = data.DATA, - currentObject - ; - - if ( !data.DATA || data.DATA.match( /^class|\$|^date_default_timezone_set|new Twig|new SimpleXMLElement|new ArrayObject|new ArrayIterator/ ) ) { - if ( data.EXCEPTION ) { - it( data.filepath + " -> " + data.TEST.trim( ), function( ) { - try { - twig( { - "data" : data.TEMPLATE.trim( ) - } ) - .render( res ) - .trim( ); - } catch( exp ) { - return; - } - - throw "Should have thrown an exception: " + data.EXCEPTION; - } ); - } else { - it( data.filepath + " -> " + data.TEST.trim( ), function( ) { - throw "Unsupported"; - } ); - } - delete testFiles[ idx ]; - return; - } - - t.on( "token", function( token, type ) { - // console.log( token, type, res, currentObject ); - - var tmpObject, - match, - tmpLength, - tmpString, - parentObject, - i - ; - - if ( type === 'symbol' ) { - if ( token === "return" ) { - return; - } - } - - if ( type === "whitespace" ) { - return; - } - - if ( type === "semicolon" ) { - return; - } - - if ( type === 'array' ) { - if ( !currentObject ) { - - currentObject = { - "type" : "array", - "keys" : [], - "values" : [] - }; - } else { - tmpObject = currentObject; - currentObject = { - "type" : "array", - "keys" : [], - "values" : [], - "parent" : tmpObject - }; - } - - return; - } - - if ( type === "string" ) { - match = token.match( /^'(([^']*| \\')*)'$/ ); - if ( match && match[1] ) { - tmpString = match[1]; - } else { - match = token.match( /^"(([^"]*| \\")*)"$/ ); - if ( match && match[1] ) { - tmpString = match[1]; - } - } - - if ( tmpString ) { - currentObject.last_value = tmpString.replace( /\\n/g, "\n" ).replace( /\\r/g, "\r" ); - return; - } - } - - if ( type === "number" ) { - currentObject.last_value = parseFloat( token, 10 ); - return; - } - - if ( type === "comma" ) { - if ( currentObject.last_value ) { - if ( currentObject.type === "array" ) { - tmpLength = currentObject.values.length; - currentObject.keys.push( tmpLength ); - currentObject.values.push( currentObject.last_value ); - delete currentObject.last_value; - - return; - } else if ( currentObject.type === "object" ) { - currentObject.keys.push( currentObject.last_key ); - currentObject.values.push( currentObject.last_value ); - delete currentObject.last_key; - delete currentObject.last_value; - return; - } - } - } - - if ( type === "key-label" ) { - currentObject.type = "object"; - currentObject.last_key = currentObject.last_value; - delete currentObject.last_value; - - return; - } - - if ( type === "end-object" ) { - if ( currentObject.type === "array" ) { - if ( currentObject.last_value ) { - tmpLength = currentObject.values.length; - currentObject.keys.push( tmpLength ); - currentObject.values.push( currentObject.last_value ); - delete currentObject.last_value; - } - } else if ( currentObject.type === "object" ) { - if ( currentObject.last_key && currentObject.last_value ) { - currentObject.keys.push( currentObject.last_key ); - currentObject.values.push( currentObject.last_value ); - delete currentObject.last_key; - delete currentObject.last_value; - } - } - - if ( currentObject.type === "array" ) { - tmpObject = []; - } else if ( currentObject.type === "object" ) { - tmpObject = {}; - } - - for ( i = 0; i < currentObject.values.length; i+=1 ) { - tmpObject[ currentObject.keys[i] ] = currentObject.values[i]; - } - - if ( currentObject.parent ) { - parentObject = currentObject.parent; - delete currentObject.parent; - delete currentObject.last_key; - delete currentObject.last_value; - currentObject = parentObject; - currentObject.last_value = tmpObject; - } else { - res = tmpObject; - currentObject = undefined; - } - - return; - } - } ); - - t.on( "end", function( ) { - /* - if ( data.TEST.trim( ) === 'Twig supports the in operator' ) { - console.log( data.TEST.trim( ), res, data.DATA ); - console.log( "data.TEMPLATE" ); - console.log( data.TEMPLATE ); - console.log( data.TEMPLATE.substr( -1 ) ); - console.log( "data.EXPECT" ); - console.log( data.EXPECT ); - console.log( "data.RESULT" ); - console.log( - twig( { - "data" : data.TEMPLATE - } ) - .render( res ) - ); - } - */ - - it( data.filepath + " -> " + data.TEST.trim( ), function( ) { - twig( { - "data" : data.TEMPLATE.trim( ) - } ) - .render( res ) - .trim( ) - .should - .equal( data.EXPECT ); - } ); - } ); - - t.on( "error", function( err ) { - // console.log( err ); - } ); - - t.addRule( /^'([^']|\\')*'$/, 'string' ); - t.addRule( /^"([^"]|\\")*"$/, 'string' ); - t.addRule( /^'([^']|\\')*$/, 'maybe-string' ); - t.addRule( /^"([^"]|\\")*$/, 'maybe-string' ); - t.addRule( /^=$/, 'equal' ); - t.addRule( /^=>$/, 'key-label' ); - t.addRule( /^-\?\d+(\.\d+)?$/, 'number' ); - t.addRule( /^\d+$/, 'number' ); - t.addRule( /^\d+\.$/, 'maybe-float' ); - t.addRule( /^(true|false)$/, 'bool' ); - t.addRule( /^null$/, 'null' ); - t.addRule( /^array\s*\($/, 'array' ); - t.addRule( /^\($/, 'begin-object' ); - t.addRule( /^\)$/, 'end-object' ); - t.addRule( /^\[$/, 'begin-array' ); - t.addRule( /^\]$/, 'end-array' ); - t.addRule( /^,$/, 'comma' ); - t.addRule( /^'$/, 'ping' ); - t.addRule( /^;$/, 'semicolon' ); - t.addRule( /^"$/, 'double-ping' ); - t.addRule( /^\w+$/, "symbol" ); - t.addRule( /^(\s)+$/, 'whitespace' ); - - t.write( str + " " ); - t.end( ); - } ); - } ); - } ); - }, - - setup = function( ) { - var existsSync = fs.existsSync || path.existsSync; - - if ( existsSync( twigPhpDir ) ) { - runTest( ); - return; - } - }; - - setup( ); -} )( ); |