text: // 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)
  }
  