Esempio n. 1
0
 proxy.addFilter(function(httpData, next){
     if(bOpenUrl === true){
         var responseContent = httpData.responseContent;
         if(httpData.responseCode === 200 &&
             responseContent !== undefined &&
             httpData.responseType === 'js' &&
             pagerun.isMatchUrl(httpData.url, include)
             ){
                 // beautify the js code
                 if(beautify === true){
                     var syntax = esprima.parse(responseContent, { raw: true, tokens: true, range: true, comment: true });
                     syntax = escodegen.attachComments(syntax, syntax.comments, syntax.tokens);
                     responseContent = escodegen.generate(syntax, 
                         {
                             comment: true,
                             format: {
                                 indent: {
                                     style: '  '
                                 },
                                 quotes: 'single'
                             }
                         }
                     );
                 }
                 httpData.responseContent = jscover.instrument(responseContent, httpData.url);
         }
     }
     next();
 });
module.exports = function(source) {
  if (this.cacheable) {
    this.cacheable();
  }
  var relative= path.relative(process.cwd(),this.resourcePath);
  return jscover.instrument(source, relative);
};
Esempio n. 3
0
function instrument(code, moduleName, res, next) {
    try {
        res.end(jscover.instrument(code, moduleName + '.js', {
            excludeHeader: true
        }));
    } catch (e) {
        next(e);
    }
}
Esempio n. 4
0
function instrument(code, moduleName, res, next) {
    try {
        res.setHeader('Content-Type', 'application/x-javascript');
        res.end(jscover.instrument(code, moduleName + '.js', {
            excludeHeader: true
        }));
    } catch (e) {
        next(e);
    }
}
Esempio n. 5
0
 proxy.addFilter(function(httpData, next, end){
     if(httpData.type === 'request'){
         // disable server cache
         var requestHeaders = httpData.requestHeaders;
         delete requestHeaders['if-none-match'];
         delete requestHeaders['if-modified-since'];
         // hosts
         var newHost = mapHosts[httpData.hostname];
         if(newHost !== undefined){
             httpData.hostname = newHost;
         }
     }
     else{
         // disable browser cache
         var responseHeaders = httpData.responseHeaders;
         if(responseHeaders !== undefined){
             responseHeaders['cache-control'] = 'no-cache, must-revalidate';
             responseHeaders['pragma'] = 'no-cache';
         }
         var url = httpData.url;
         var responseContent = httpData.responseContent;
         if(httpData.responseCode === 200
             && httpData.responseType === 'js'
             && responseContent !== undefined){
             // adapter for test runner
             var match = url.match(/(mocha|jasmine|qunit|yuitest)(\-[^\/]+?)?\.js(\?|$)/i);
             if(match !== null){
                 var testType = match[1];
                 var jsBridgeContent = fs.readFileSync(clientPath + '/bridge.js').toString();
                 var jsAdapterContent = fs.readFileSync(clientPath + '/adapter-'+testType+'.js').toString();
                 responseContent = responseContent + jsBridgeContent + jsAdapterContent;
             }
             // jscoverage
             else if(checkUrlInclude(url, coverageInclude, coverageExclude)){
                 if(coverageBeautify){
                     try{
                         var syntax = esprima.parse(responseContent, { raw: true, tokens: true, range: true, comment: true });
                         syntax = escodegen.attachComments(syntax, syntax.comments, syntax.tokens);
                         responseContent = escodegen.generate(syntax, 
                             {
                                 comment: true,
                                 format: {
                                     indent: {
                                         style: '  '
                                     },
                                     quotes: 'single'
                                 }
                             }
                         );
                     }
                     catch(e){}
                 }
                 var arrSource = responseContent.split(/\r?\n/);
                 mapJsCoverageSource[url] = arrSource;
                 try{
                     responseContent = jscover.instrument(responseContent, url);
                 }
                 catch(e){}
             }
             httpData.responseContent = responseContent;
         }
     }
     next();
 });