LCOV - code coverage report
 
Current view: directory - /home/trostler/JUTE/backend/nodejute/jute/actions - common.js (source / functions) Found Hit Coverage
Test: lcov.info Lines: 22 21 95.45 %
Date: Tue Aug 09 09:37:35 GMT-07:00 2011 Functions: 5 5 100.0 %
Colors: not hit hit
 
 


             1          : /*
             2          : Copyright (c) 2011, Yahoo! Inc.
             3          : All rights reserved.
             4          : 
             5          : Redistribution and use of this software in source and binary forms, 
             6          : with or without modification, are permitted provided that the following 
             7          : conditions are met:
             8          : 
             9          : * Redistributions of source code must retain the above
            10          :   copyright notice, this list of conditions and the
            11          :   following disclaimer.
            12          : 
            13          : * Redistributions in binary form must reproduce the above
            14          :   copyright notice, this list of conditions and the
            15          :   following disclaimer in the documentation and/or other
            16          :   materials provided with the distribution.
            17          : 
            18          : * Neither the name of Yahoo! Inc. nor the names of its
            19          :   contributors may be used to endorse or promote products
            20          :   derived from this software without specific prior
            21          :   written permission of Yahoo! Inc.
            22          : 
            23          : THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS 
            24          : IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 
            25          : TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 
            26          : PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
            27          : OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
            28          : SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
            29          : LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 
            30          : DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 
            31          : THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
            32          : (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
            33          : OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
            34          : */
            35          : 
            36          : 
            37        1 : module.exports = {
            38          :     Create:  function(hub) {
            39        1 :         return {
            40          :             browserName: function(req) {
            41        2 :                 return [req.headers['user-agent'], req.connection.remoteAddress].join('---');
            42          :             },
            43          : 
            44          :             makeSaneNames: function(browser) {
            45        2 :                 var names = browser.split('---'),
            46          :                     filename = names[0],
            47          :                     ip = names[1],
            48          :                     pkgname
            49          :                 ;
            50          : 
            51          :                 // Get rid of funny chars
            52        2 :                 filename = filename.replace(/[\/;]/g, '');
            53        2 :                 filename = filename.replace(/[^A-Za-z0-9-]/g, '_');
            54          : 
            55          :                 // Make a Hudson happy package name
            56        2 :                 pkgname = filename.replace(/\./g, '');
            57        2 :                 pkgname = pkgname.replace(/_+/g, '.');
            58          : 
            59        2 :                 return [ filename, pkgname ];
            60          :             },
            61          : 
            62          :             dumpFile: function(vars, dataKey, filename, component) {
            63        1 :                 var baseOutputDir = hub.config.outputDir,
            64          :                     path          = require('path'),
            65          :                     dir           = path.join(baseOutputDir, (this.makeSaneNames(component))[0]);
            66        1 :                     data          = vars[dataKey],
            67          :                     fullFile      = path.join(dir, filename),
            68          :                     fs            = require('fs')
            69          :                 ;
            70          : 
            71        1 :                 hub.emit(hub.LOG, hub.INFO, "Dumping " + fullFile);
            72          : 
            73          :                 // Any one of these can toss cookies!!!
            74        1 :                 try {
            75          :                     // This will complain if dir already exists
            76          :                     //     And we KNOW we can already make dirs here
            77        1 :                     fs.mkdirSync(dir, 0777);
            78          :                 } catch(e) {}
            79          : 
            80        1 :                 try {
            81        1 :                     var fd = fs.openSync(fullFile, 'w')
            82        1 :                     fs.writeSync(fd, data, 0, 'utf8');
            83        1 :                     fs.closeSync(fd)
            84        1 :                     return [ fullFile, dir ];
            85          :                 } catch(e) {
            86        0 :                     hub.emit(hub.LOG, hub.ERROR, "Error dumping file: " + e);
            87          :                 }
            88          :             },
            89          :             failedTests: function(filename) {
            90        3 :                 var fs = require('fs'),
            91          :                     file = fs.readFileSync(filename, 'utf8');
            92          : 
            93        3 :                 return file.match(/failures="[1-9]/);
            94          :             }
            95          :         };
            96          :     }
            97          : };
            98          : 


      

 
Generated by: YUI Test