| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 | var lessTest = require('./less-test'),    lessTester = lessTest(),    path = require('path'),    stylize = require('../lib/less-node/lessc-helper').stylize,    nock = require('nock');console.log('\n' + stylize('Less', 'underline') + '\n');var testMap = [    [{        // TODO: Change this to rewriteUrls: 'all' once the relativeUrls option is removed        relativeUrls: true,        silent: true,        javascriptEnabled: true    }, '_main/'],    [{}, 'namespacing/'],    [{        math: 'parens'    }, 'math/strict/'],    [{        math: 'parens-division'    }, 'math/parens-division/'],    [{        math: 'always'    }, 'math/always/'],    // Use legacy strictMath: true here to demonstrate it still works    [{strictMath: true, strictUnits: true, javascriptEnabled: true}, '../errors/eval/',        lessTester.testErrors, null],    [{strictMath: true, strictUnits: true, javascriptEnabled: true}, '../errors/parse/',        lessTester.testErrors, null],    [{math: 'strict', strictUnits: true, javascriptEnabled: true}, 'js-type-errors/',        lessTester.testTypeErrors, null],    [{math: 'strict', strictUnits: true, javascriptEnabled: false}, 'no-js-errors/',        lessTester.testErrors, null],    [{math: 'strict', dumpLineNumbers: 'comments'}, 'debug/', null,        function(name) { return name + '-comments'; }],    [{math: 'strict', dumpLineNumbers: 'mediaquery'}, 'debug/', null,        function(name) { return name + '-mediaquery'; }],    [{math: 'strict', dumpLineNumbers: 'all'}, 'debug/', null,        function(name) { return name + '-all'; }],    // TODO: Change this to rewriteUrls: false once the relativeUrls option is removed    [{math: 'strict', relativeUrls: false, rootpath: 'folder (1)/'}, 'static-urls/'],    [{math: 'strict', compress: true}, 'compression/'],    [{math: 0, strictUnits: true}, 'units/strict/'],    [{math: 0, strictUnits: false}, 'units/no-strict/'],    [{math: 'strict', strictUnits: true, sourceMap: true, globalVars: true }, 'sourcemaps/',        lessTester.testSourcemap, null, null,        function(filename, type, baseFolder) {            if (type === 'vars') {                return path.join(baseFolder, filename) + '.json';            }            return path.join('test/sourcemaps', filename) + '.json';        }],    [{math: 'strict', strictUnits: true, globalVars: true }, '_main/import/json/',        lessTester.testImports, null, true,        function(filename, type, baseFolder) {            return path.join(baseFolder, filename) + '.json';        }],    [{math: 'strict', strictUnits: true, sourceMap: {sourceMapFileInline: true}},        'sourcemaps-empty/', lessTester.testEmptySourcemap],    [{math: 'strict', strictUnits: true, sourceMap: {disableSourcemapAnnotation: true}},        'sourcemaps-disable-annotation/', lessTester.testSourcemapWithoutUrlAnnotation],    [{math: 'strict', strictUnits: true, sourceMap: true},        'sourcemaps-variable-selector/', lessTester.testSourcemapWithVariableInSelector],    [{globalVars: true, banner: '/**\n  * Test\n  */\n'}, 'globalVars/',        null, null, null, function(name, type, baseFolder) { return path.join(baseFolder, name) + '.json'; }],    [{modifyVars: true}, 'modifyVars/',        null, null, null, function(name, type, baseFolder) { return path.join(baseFolder, name) + '.json'; }],    [{urlArgs: '424242'}, 'url-args/'],    [{rewriteUrls: 'all'}, 'rewrite-urls-all/'],    [{rewriteUrls: 'local'}, 'rewrite-urls-local/'],    [{rootpath: 'http://example.com/assets/css/', rewriteUrls: 'all'}, 'rootpath-rewrite-urls-all/'],    [{rootpath: 'http://example.com/assets/css/', rewriteUrls: 'local'}, 'rootpath-rewrite-urls-local/'],    [{paths: ['data/', '_main/import/']}, 'include-path/'],    [{paths: 'data/'}, 'include-path-string/'],    [{plugin: 'test/plugins/postprocess/'}, 'postProcessorPlugin/'],    [{plugin: 'test/plugins/preprocess/'}, 'preProcessorPlugin/'],    [{plugin: 'test/plugins/visitor/'}, 'visitorPlugin/'],    [{plugin: 'test/plugins/filemanager/'}, 'filemanagerPlugin/'],    [{math: 0}, '3rd-party/'],    [{ processImports: false }, 'process-imports/']];testMap.forEach(function(args) {    lessTester.runTestSet.apply(lessTester, args)});lessTester.testSyncronous({syncImport: true}, '_main/import');lessTester.testSyncronous({syncImport: true}, '_main/plugin');lessTester.testSyncronous({syncImport: true}, 'math/strict/css');lessTester.testNoOptions();lessTester.testDisablePluginRule();lessTester.testJSImport();lessTester.finished();(() => {    // Create new tester, since tests are not independent and tests    // above modify tester in a way that breaks remote imports.    lessTester = lessTest();    var scope = nock('https://example.com')        .get('/redirect.less').query(true)        .reply(301, null, { location: '/target.less' })        .get('/target.less').query(true)        .reply(200);    lessTester.runTestSet(        {},        'import-redirect/',        lessTester.testImportRedirect(scope)    );    lessTester.finished();})();
 |