all da files
This commit is contained in:
		
							
								
								
									
										209
									
								
								node_modules/filed/test/testdump-1
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										209
									
								
								node_modules/filed/test/testdump-1
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,209 @@
 | 
			
		||||
var filed = require('../main')
 | 
			
		||||
  , server = require('./server')
 | 
			
		||||
  , fs = require('fs')
 | 
			
		||||
  , path = require('path')
 | 
			
		||||
  , assert = require('assert')
 | 
			
		||||
  , request = require('request')
 | 
			
		||||
  , test1buffer = ''
 | 
			
		||||
  , testfile = path.join(__dirname, 'test.js')
 | 
			
		||||
  , writefile = path.join(__dirname, 'testdump-')
 | 
			
		||||
  , cleanup = []
 | 
			
		||||
  , validations = []
 | 
			
		||||
  , port = 9090
 | 
			
		||||
  , i = 0
 | 
			
		||||
  , url = 'http://localhost:'+port
 | 
			
		||||
  ;
 | 
			
		||||
 | 
			
		||||
while (i < 50) {
 | 
			
		||||
  try {fs.unlinkSync(writefile+i)}
 | 
			
		||||
  catch (e) {}
 | 
			
		||||
  i += 1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function FileValidator (path) {
 | 
			
		||||
  this.path = path
 | 
			
		||||
  this.buffers = []
 | 
			
		||||
  this.len = 0
 | 
			
		||||
  this.writable = true
 | 
			
		||||
}
 | 
			
		||||
FileValidator.prototype.write = function (chunk) {
 | 
			
		||||
  this.buffers.push(chunk)
 | 
			
		||||
  this.len += chunk.length
 | 
			
		||||
}
 | 
			
		||||
FileValidator.prototype.end = function () {
 | 
			
		||||
  var body = new Buffer(this.len)
 | 
			
		||||
  var i = 0
 | 
			
		||||
  this.buffers.forEach(function (chunk) {
 | 
			
		||||
    chunk.copy(body, i, 0, chunk.length)
 | 
			
		||||
    i += chunk.length
 | 
			
		||||
  })
 | 
			
		||||
  var f = fs.readFileSync(this.path)
 | 
			
		||||
  assert.equal(body.length, f.length)
 | 
			
		||||
  assert.deepEqual(body, f)
 | 
			
		||||
}
 | 
			
		||||
FileValidator.prototype.on = function () {}
 | 
			
		||||
FileValidator.prototype.removeListener = function () {}
 | 
			
		||||
FileValidator.prototype.emit = function () {}
 | 
			
		||||
 | 
			
		||||
function equalSync (f1, f2) {
 | 
			
		||||
  f1 = fs.readFileSync(f1)
 | 
			
		||||
  f2 = fs.readFileSync(f2)
 | 
			
		||||
  assert.equal(f1.length, f2.length)
 | 
			
		||||
  assert.deepEqual(f1, f2)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Test reading
 | 
			
		||||
filed(testfile).pipe(new FileValidator(testfile))
 | 
			
		||||
 | 
			
		||||
// Test writing
 | 
			
		||||
 | 
			
		||||
function testwrites () {
 | 
			
		||||
  var x = filed(writefile+1)
 | 
			
		||||
    , y = fs.createReadStream(testfile)
 | 
			
		||||
    ;
 | 
			
		||||
  y.pipe(x)
 | 
			
		||||
  x.on('end', function () {
 | 
			
		||||
    setTimeout(function () {
 | 
			
		||||
      equalSync(writefile+1, testfile)
 | 
			
		||||
      console.log("Passed writing files")
 | 
			
		||||
    }, 1000)
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
testwrites()
 | 
			
		||||
 | 
			
		||||
function testhttp () {
 | 
			
		||||
  // Test HTTP use cases
 | 
			
		||||
  var s = server()
 | 
			
		||||
  s.on('/test-req', function (req, resp) {
 | 
			
		||||
    // Take a request and write it, do not send filed to the response
 | 
			
		||||
    req.pipe(filed(writefile+2))
 | 
			
		||||
    req.on('end', function () {
 | 
			
		||||
      resp.writeHead(201)
 | 
			
		||||
      resp.end()
 | 
			
		||||
      setTimeout(function () {
 | 
			
		||||
        equalSync(writefile+2, testfile)
 | 
			
		||||
        console.log("Passed PUT file with pipe req only")
 | 
			
		||||
      }, 1000)
 | 
			
		||||
    })
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  s.on('/test-req-resp', function (req, resp) {
 | 
			
		||||
    // Take a request and write it and pipe filed to the response
 | 
			
		||||
    var x = filed(writefile+3)
 | 
			
		||||
    req.pipe(x)
 | 
			
		||||
    x.pipe(resp)
 | 
			
		||||
    req.on('end', function () {
 | 
			
		||||
      setTimeout(function () {
 | 
			
		||||
        equalSync(writefile+3, testfile)
 | 
			
		||||
        console.log("Passed PUT file with pipe req and resp")
 | 
			
		||||
      }, 1000)
 | 
			
		||||
    })
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  s.on('/test-resp', function (req, resp) {
 | 
			
		||||
    // Send a file to an HTTP response
 | 
			
		||||
    filed(testfile).pipe(resp)
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  var fullpipe = function (req, resp) {
 | 
			
		||||
    var x = filed(testfile)
 | 
			
		||||
    req.pipe(x)
 | 
			
		||||
    x.pipe(resp)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  s.on('/test-etags-wo', function (req, resp) {
 | 
			
		||||
    fullpipe(req, resp)
 | 
			
		||||
  })
 | 
			
		||||
  s.on('/test-etags-with', function (req, resp) {
 | 
			
		||||
    fullpipe(req, resp)
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  s.on('/test-lastmodified-wo', function (req, resp) {
 | 
			
		||||
    fullpipe(req, resp)
 | 
			
		||||
  })
 | 
			
		||||
  s.on('/test-lastmodified-with', function (req, resp) {
 | 
			
		||||
    fullpipe(req, resp)
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  s.on('/test-index', function (req, resp) {
 | 
			
		||||
    var x = filed(__dirname)
 | 
			
		||||
    x.pipe(resp)
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  s.on('/test-index-full', function (req, resp) {
 | 
			
		||||
    var x = filed(__dirname)
 | 
			
		||||
    req.pipe(x)
 | 
			
		||||
    x.pipe(resp)
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  s.on('/test-not-found', function (req, resp) {
 | 
			
		||||
    var x = filed(__dirname + "/there-is-no-such-file-here.no-extension")
 | 
			
		||||
    req.pipe(x)
 | 
			
		||||
    x.pipe(resp)
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  s.listen(port, function () {
 | 
			
		||||
 | 
			
		||||
    fs.createReadStream(testfile).pipe(request.put(url+'/test-req'))
 | 
			
		||||
 | 
			
		||||
    fs.createReadStream(testfile).pipe(request.put(url+'/test-req-resp', function (e, resp) {
 | 
			
		||||
      assert.equal(resp.statusCode, 201)
 | 
			
		||||
      assert.equal(resp.headers['content-length'], '0')
 | 
			
		||||
    }))
 | 
			
		||||
 | 
			
		||||
    var x = request.get(url+'/test-resp', function (e, resp) {
 | 
			
		||||
      if (e) throw e
 | 
			
		||||
      assert.equal(resp.statusCode, 200)
 | 
			
		||||
      assert.equal(resp.headers['content-type'], 'text/javascript')
 | 
			
		||||
      console.log("Passed GET file without piping request")
 | 
			
		||||
    })
 | 
			
		||||
    x.pipe(new FileValidator(testfile))
 | 
			
		||||
 | 
			
		||||
    request.get(url+'/test-etags-wo', function (e, resp, body) {
 | 
			
		||||
      if (e) throw e
 | 
			
		||||
      if (resp.statusCode !== 200) throw new Error('Status code is not 200 it is '+resp.statusCode)
 | 
			
		||||
      request.get({url:url+'/test-etags-with', headers:{'if-none-match':resp.headers.etag}}, function (e, resp) {
 | 
			
		||||
        if (e) throw e
 | 
			
		||||
        if (resp.statusCode !== 304) throw new Error('Status code is not 304 it is '+resp.statusCode)
 | 
			
		||||
        console.log("Passed GET with etag")
 | 
			
		||||
      })
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
    request.get(url+'/test-lastmodified-wo', function (e, resp, body) {
 | 
			
		||||
      if (e) throw e
 | 
			
		||||
      if (resp.statusCode !== 200) throw new Error('Status code is not 200 it is '+resp.statusCode)
 | 
			
		||||
      request.get({url:url+'/test-lastmodified-with', headers:{'if-modified-since':resp.headers['last-modified']}}, function (e, resp) {
 | 
			
		||||
        if (e) throw e
 | 
			
		||||
        if (resp.statusCode !== 304) throw new Error('Status code is not 304 it is '+resp.statusCode)
 | 
			
		||||
        console.log("Passed GET with if-modified-since")
 | 
			
		||||
      })
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
    request.get(url+'/test-index', function (e, resp, body) {
 | 
			
		||||
      if (e) throw e
 | 
			
		||||
      if (resp.statusCode !== 200) throw new Error('Status code is not 200 it is '+resp.statusCode)
 | 
			
		||||
      assert.equal(resp.headers['content-type'], 'text/html')
 | 
			
		||||
      assert.equal(body, fs.readFileSync(path.join(__dirname, 'index.html')).toString())
 | 
			
		||||
      console.log("Passed GET of directory index")
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
    request.get(url+'/test-index-full', function (e, resp, body) {
 | 
			
		||||
      if (e) throw e
 | 
			
		||||
      if (resp.statusCode !== 200) throw new Error('Status code is not 200 it is '+resp.statusCode)
 | 
			
		||||
      assert.equal(resp.headers['content-type'], 'text/html')
 | 
			
		||||
      assert.equal(body, fs.readFileSync(path.join(__dirname, 'index.html')).toString())
 | 
			
		||||
      console.log("Passed GET of directory index, full pipe")
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
    request.get(url+'/test-not-found', function (e, resp, body) {
 | 
			
		||||
      if (e) throw e
 | 
			
		||||
      if (resp.statusCode !== 404) throw new Error('Status code is not 404 it is '+resp.statusCode)
 | 
			
		||||
      console.log("Passed Not Found produces 404")
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
testhttp()
 | 
			
		||||
 | 
			
		||||
process.on('exit', function () {console.log('All tests passed.')})
 | 
			
		||||
		Reference in New Issue
	
	Block a user