]> gerrit.simantics Code Review - simantics/district.git/blobdiff - 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
diff --git a/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/npm-registry-client/test/lib/server.js b/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/npm-registry-client/test/lib/server.js
new file mode 100644 (file)
index 0000000..06bebdc
--- /dev/null
@@ -0,0 +1,60 @@
+// a fake registry server.
+
+var http = require('http')
+var server = http.createServer(handler)
+var port = server.port = process.env.PORT || 1337
+var assert = require('assert')
+server.listen(port)
+
+module.exports = server
+
+server._expect = {}
+
+function handler (req, res) {
+  req.connection.setTimeout(1000)
+
+  // If we got authorization, make sure it's the right password.
+  if (req.headers.authorization && req.headers.authorization.match(/^Basic/)) {
+    var auth = req.headers.authorization.replace(/^Basic /, '')
+    auth = new Buffer(auth, 'base64').toString('utf8')
+    assert.equal(auth, 'username:%1234@asdf%')
+  }
+
+  var u = '* ' + req.url
+  var mu = req.method + ' ' + req.url
+
+  var k = server._expect[mu] ? mu : server._expect[u] ? u : null
+  if (!k) throw Error('unexpected request: ' + req.method + ' ' + req.url)
+
+  var fn = server._expect[k].shift()
+  if (!fn) throw Error('unexpected request: ' + req.method + ' ' + req.url)
+
+  this.log.info('fake-registry', Object.keys(server._expect).map(function (k) {
+    return [k, server._expect[k].length]
+  }).reduce(function (acc, kv) {
+    acc[kv[0]] = kv[1]
+    return acc
+  }, {}))
+
+  res.json = json
+  fn(req, res)
+}
+
+function json (o) {
+  this.setHeader('content-type', 'application/json')
+  this.end(JSON.stringify(o))
+}
+
+// this log is meanto to be overridden
+server.log = require('npmlog')
+
+server.expect = function (method, u, fn) {
+  if (typeof u === 'function') {
+    fn = u
+    u = method
+    method = '*'
+  }
+  u = method + ' ' + u
+  server._expect[u] = server._expect[u] || []
+  server._expect[u].push(fn)
+}