Bug:Fix file validation issue
[vnfsdk/refrepo.git] / vnfmarket / src / main / webapp / vnfmarket / node_modules / log4js / test / categoryFilter-test.js
1 'use strict';
2
3 var vows = require('vows')
4 , fs = require('fs')
5 , assert = require('assert')
6 , EOL = require('os').EOL || '\n';
7
8 function remove(filename) {
9   try {
10     fs.unlinkSync(filename);
11   } catch (e) {
12     //doesn't really matter if it failed
13   }
14 }
15
16 vows.describe('log4js categoryFilter').addBatch({
17   'appender': {
18     topic: function() {
19
20       var log4js = require('../lib/log4js'), logEvents = [], webLogger, appLogger;
21       log4js.clearAppenders();
22       var appender = require('../lib/appenders/categoryFilter')
23         .appender(
24           ['app'],
25           function(evt) { logEvents.push(evt); }
26         );
27       log4js.addAppender(appender, ["app","web"]);
28
29       webLogger = log4js.getLogger("web");
30       appLogger = log4js.getLogger("app");
31
32       webLogger.debug('This should get logged');
33       appLogger.debug('This should not');
34       webLogger.debug('Hello again');
35       log4js.getLogger('db').debug('This shouldn\'t be included by the appender anyway');
36
37       return logEvents;
38     },
39     'should only pass matching category' : function(logEvents) {
40       assert.equal(logEvents.length, 2);
41       assert.equal(logEvents[0].data[0], 'This should get logged');
42       assert.equal(logEvents[1].data[0], 'Hello again');
43     }
44   },
45
46   'configure': {
47     topic: function() {
48       var log4js = require('../lib/log4js')
49       , logger, weblogger;
50
51       remove(__dirname + '/categoryFilter-web.log');
52       remove(__dirname + '/categoryFilter-noweb.log');
53
54       log4js.configure('test/with-categoryFilter.json');
55       logger = log4js.getLogger("app");
56       weblogger = log4js.getLogger("web");
57
58       logger.info('Loading app');
59       logger.debug('Initialising indexes');
60       weblogger.info('00:00:00 GET / 200');
61       weblogger.warn('00:00:00 GET / 500');
62       //wait for the file system to catch up
63       setTimeout(this.callback, 500);
64     },
65     'tmp-tests.log': {
66       topic: function() {
67         fs.readFile(__dirname + '/categoryFilter-noweb.log', 'utf8', this.callback);
68       },
69       'should contain all log messages': function(contents) {
70         var messages = contents.trim().split(EOL);
71         assert.deepEqual(messages, ['Loading app','Initialising indexes']);
72       }
73     },
74     'tmp-tests-web.log': {
75       topic: function() {
76         fs.readFile(__dirname + '/categoryFilter-web.log','utf8',this.callback);
77       },
78       'should contain only error and warning log messages': function(contents) {
79         var messages = contents.trim().split(EOL);
80         assert.deepEqual(messages, ['00:00:00 GET / 200','00:00:00 GET / 500']);
81       }
82     }
83   }
84 }).export(module);