Bug:Fix file validation issue
[vnfsdk/refrepo.git] / vnfmarket / src / main / webapp / vnfmarket / node_modules / log4js / test / nolog-test.js
1 "use strict";
2 var vows = require('vows')
3 , assert = require('assert')
4 , util   = require('util')
5 , EE     = require('events').EventEmitter
6 , levels = require('../lib/levels');
7
8 function MockLogger() {
9
10   var that = this;
11   this.messages = [];
12
13   this.log = function(level, message, exception) {
14     that.messages.push({ level: level, message: message });
15   };
16
17   this.isLevelEnabled = function(level) {
18     return level.isGreaterThanOrEqualTo(that.level);
19   };
20
21   this.level = levels.TRACE;
22
23 }
24
25 function MockRequest(remoteAddr, method, originalUrl) {
26
27   this.socket = { remoteAddress: remoteAddr };
28   this.originalUrl = originalUrl;
29   this.method = method;
30   this.httpVersionMajor = '5';
31   this.httpVersionMinor = '0';
32   this.headers = {};
33 }
34
35 function MockResponse(statusCode) {
36   var r = this;
37   this.statusCode = statusCode;
38
39   this.end = function(chunk, encoding) {
40       r.emit('finish');
41   };
42 }
43 util.inherits(MockResponse, EE);
44
45 vows.describe('log4js connect logger').addBatch({
46   'getConnectLoggerModule': {
47     topic: function() {
48       var clm = require('../lib/connect-logger');
49       return clm;
50     },
51
52     'should return a "connect logger" factory' : function(clm) {
53       assert.isObject(clm);
54     },
55
56     'nolog String' : {
57       topic: function(clm) {
58         var ml = new MockLogger();
59         var cl = clm.connectLogger(ml, { nolog: "\\.gif" });
60         return {cl: cl, ml: ml};
61       },
62
63       'check unmatch url request': {
64         topic: function(d){
65           var req = new MockRequest('my.remote.addr', 'GET', 'http://url/hoge.png'); // not gif
66           var res = new MockResponse(200);
67           var cb  = this.callback;
68           d.cl(req, res, function() { });
69           res.end('chunk', 'encoding');
70           setTimeout(function() {
71               cb(null, d.ml.messages);
72           },10);
73         },
74         'check message': function(messages){
75           assert.isArray(messages);
76           assert.equal(messages.length, 1);
77           assert.ok(levels.INFO.isEqualTo(messages[0].level));
78           assert.include(messages[0].message, 'GET');
79           assert.include(messages[0].message, 'http://url');
80           assert.include(messages[0].message, 'my.remote.addr');
81           assert.include(messages[0].message, '200');
82           messages.pop();
83         }
84       },
85
86       'check match url request': {
87         topic: function(d) {
88           var req = new MockRequest('my.remote.addr', 'GET', 'http://url/hoge.gif'); // gif
89           var res = new MockResponse(200);
90           var cb  = this.callback;
91           d.cl(req, res, function() { });
92           res.end('chunk', 'encoding');
93           setTimeout(function() {
94               cb(null, d.ml.messages);
95           },10);
96         },
97         'check message': function(messages) {
98           assert.isArray(messages);
99           assert.equal(messages.length, 0);
100         }
101       }
102     },
103
104     'nolog Strings' : {
105       topic: function(clm) {
106         var ml = new MockLogger();
107         var cl = clm.connectLogger(ml, {nolog: "\\.gif|\\.jpe?g"});
108         return {cl: cl, ml: ml};
109       },
110
111       'check unmatch url request (png)': {
112         topic: function(d){
113           var req = new MockRequest('my.remote.addr', 'GET', 'http://url/hoge.png'); // not gif
114           var res = new MockResponse(200);
115           var cb  = this.callback;
116           d.cl(req, res, function() { });
117           res.end('chunk', 'encoding');
118           setTimeout(function() {
119             cb(null, d.ml.messages);
120           }, 10);
121         },
122         'check message': function(messages){
123           assert.isArray(messages);
124           assert.equal(messages.length, 1);
125           assert.ok(levels.INFO.isEqualTo(messages[0].level));
126           assert.include(messages[0].message, 'GET');
127           assert.include(messages[0].message, 'http://url');
128           assert.include(messages[0].message, 'my.remote.addr');
129           assert.include(messages[0].message, '200');
130           messages.pop();
131         }
132       },
133
134       'check match url request (gif)': {
135         topic: function(d) {
136           var req = new MockRequest('my.remote.addr', 'GET', 'http://url/hoge.gif'); // gif
137           var res = new MockResponse(200);
138           var cb  = this.callback;
139           d.cl(req, res, function() { });
140           res.end('chunk', 'encoding');
141           setTimeout(function() {
142             cb(null, d.ml.messages);
143           }, 10);
144         },
145         'check message': function(messages) {
146           assert.isArray(messages);
147           assert.equal(messages.length, 0);
148         }
149       },
150       'check match url request (jpeg)': {
151         topic: function(d) {
152           var req = new MockRequest('my.remote.addr', 'GET', 'http://url/hoge.jpeg'); // gif
153           var res = new MockResponse(200);
154           var cb  = this.callback;
155           d.cl(req, res, function() { });
156           res.end('chunk', 'encoding');
157           setTimeout(function() {
158             cb(null, d.ml.messages);
159           }, 10);
160         },
161         'check message': function(messages) {
162           assert.isArray(messages);
163           assert.equal(messages.length, 0);
164         }
165       }
166     },
167     'nolog Array<String>' : {
168       topic: function(clm) {
169         var ml = new MockLogger();
170         var cl = clm.connectLogger(ml, {nolog: ["\\.gif", "\\.jpe?g"]});
171         return {cl: cl, ml: ml};
172       },
173
174       'check unmatch url request (png)': {
175         topic: function(d){
176           var req = new MockRequest('my.remote.addr', 'GET', 'http://url/hoge.png'); // not gif
177           var res = new MockResponse(200);
178           var cb  = this.callback;
179           d.cl(req, res, function() { });
180           res.end('chunk', 'encoding');
181           setTimeout(function() {
182             cb(null, d.ml.messages);
183           }, 10);
184         },
185         'check message': function(messages){
186           assert.isArray(messages);
187           assert.equal(messages.length, 1);
188           assert.ok(levels.INFO.isEqualTo(messages[0].level));
189           assert.include(messages[0].message, 'GET');
190           assert.include(messages[0].message, 'http://url');
191           assert.include(messages[0].message, 'my.remote.addr');
192           assert.include(messages[0].message, '200');
193           messages.pop();
194         }
195       },
196
197       'check match url request (gif)': {
198         topic: function(d) {
199           var req = new MockRequest('my.remote.addr', 'GET', 'http://url/hoge.gif'); // gif
200           var res = new MockResponse(200);
201           var cb  = this.callback;
202           d.cl(req, res, function() { });
203           res.end('chunk', 'encoding');
204           setTimeout(function() {
205             cb(null, d.ml.messages);
206           }, 10);
207         },
208         'check message': function(messages) {
209           assert.isArray(messages);
210           assert.equal(messages.length, 0);
211         }
212       },
213
214       'check match url request (jpeg)': {
215         topic: function(d) {
216           var req = new MockRequest('my.remote.addr', 'GET', 'http://url/hoge.jpeg'); // gif
217           var res = new MockResponse(200);
218           var cb  = this.callback;
219           d.cl(req, res, function() { });
220           res.end('chunk', 'encoding');
221           setTimeout(function() {
222             cb(null, d.ml.messages);
223           }, 10);
224         },
225         'check message': function(messages) {
226           assert.isArray(messages);
227           assert.equal(messages.length, 0);
228         }
229       },
230     },
231     'nolog RegExp' : {
232       topic: function(clm) {
233         var ml = new MockLogger();
234         var cl = clm.connectLogger(ml, {nolog: /\.gif|\.jpe?g/});
235         return {cl: cl, ml: ml};
236       },
237
238       'check unmatch url request (png)': {
239         topic: function(d){
240           var req = new MockRequest('my.remote.addr', 'GET', 'http://url/hoge.png'); // not gif
241           var res = new MockResponse(200);
242           var cb  = this.callback;
243           d.cl(req, res, function() { });
244           res.end('chunk', 'encoding');
245           setTimeout(function() {
246             cb(null, d.ml.messages);
247           }, 10);
248         },
249         'check message': function(messages){
250           assert.isArray(messages);
251           assert.equal(messages.length, 1);
252           assert.ok(levels.INFO.isEqualTo(messages[0].level));
253           assert.include(messages[0].message, 'GET');
254           assert.include(messages[0].message, 'http://url');
255           assert.include(messages[0].message, 'my.remote.addr');
256           assert.include(messages[0].message, '200');
257           messages.pop();
258         }
259       },
260
261       'check match url request (gif)': {
262         topic: function(d) {
263           var req = new MockRequest('my.remote.addr', 'GET', 'http://url/hoge.gif'); // gif
264           var res = new MockResponse(200);
265           var cb  = this.callback;
266           d.cl(req, res, function() { });
267           res.end('chunk', 'encoding');
268           setTimeout(function() {
269             cb(null, d.ml.messages);
270           }, 10);
271         },
272         'check message': function(messages) {
273           assert.isArray(messages);
274           assert.equal(messages.length, 0);
275         }
276       },
277
278       'check match url request (jpeg)': {
279         topic: function(d) {
280           var req = new MockRequest('my.remote.addr', 'GET', 'http://url/hoge.jpeg'); // gif
281           var res = new MockResponse(200);
282           var cb  = this.callback;
283           d.cl(req, res, function() { });
284           res.end('chunk', 'encoding');
285           setTimeout(function() {
286             cb(null, d.ml.messages); 
287           }, 10);
288         },
289         'check message': function(messages) {
290           assert.isArray(messages);
291           assert.equal(messages.length, 0);
292         }
293       }
294     }
295   }
296
297 }).export(module);