]> gerrit.simantics Code Review - simantics/district.git/blob - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/npm-registry-client/test/lib/server.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / node_modules / npm-registry-client / test / lib / server.js
1 // a fake registry server.
2
3 var http = require('http')
4 var server = http.createServer(handler)
5 var port = server.port = process.env.PORT || 1337
6 var assert = require('assert')
7 server.listen(port)
8
9 module.exports = server
10
11 server._expect = {}
12
13 function handler (req, res) {
14   req.connection.setTimeout(1000)
15
16   // If we got authorization, make sure it's the right password.
17   if (req.headers.authorization && req.headers.authorization.match(/^Basic/)) {
18     var auth = req.headers.authorization.replace(/^Basic /, '')
19     auth = new Buffer(auth, 'base64').toString('utf8')
20     assert.equal(auth, 'username:%1234@asdf%')
21   }
22
23   var u = '* ' + req.url
24   var mu = req.method + ' ' + req.url
25
26   var k = server._expect[mu] ? mu : server._expect[u] ? u : null
27   if (!k) throw Error('unexpected request: ' + req.method + ' ' + req.url)
28
29   var fn = server._expect[k].shift()
30   if (!fn) throw Error('unexpected request: ' + req.method + ' ' + req.url)
31
32   this.log.info('fake-registry', Object.keys(server._expect).map(function (k) {
33     return [k, server._expect[k].length]
34   }).reduce(function (acc, kv) {
35     acc[kv[0]] = kv[1]
36     return acc
37   }, {}))
38
39   res.json = json
40   fn(req, res)
41 }
42
43 function json (o) {
44   this.setHeader('content-type', 'application/json')
45   this.end(JSON.stringify(o))
46 }
47
48 // this log is meanto to be overridden
49 server.log = require('npmlog')
50
51 server.expect = function (method, u, fn) {
52   if (typeof u === 'function') {
53     fn = u
54     u = method
55     method = '*'
56   }
57   u = method + ' ' + u
58   server._expect[u] = server._expect[u] || []
59   server._expect[u].push(fn)
60 }