55 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
var Buffer = require('buffer').Buffer
 | 
						|
var fs = require('fs')
 | 
						|
var test = require('tape')
 | 
						|
 | 
						|
var http = require('../..')
 | 
						|
 | 
						|
test('abort before response', function (t) {
 | 
						|
	var req = http.get('/basic.txt', function (res) {
 | 
						|
		t.fail('unexpected response')
 | 
						|
	})
 | 
						|
	req.abort()
 | 
						|
	t.end()
 | 
						|
})
 | 
						|
 | 
						|
test('abort on response', function (t) {
 | 
						|
	var req = http.get('/basic.txt', function (res) {
 | 
						|
		req.abort()
 | 
						|
		t.end()
 | 
						|
 | 
						|
		res.on('end', function () {
 | 
						|
			t.fail('unexpected end')
 | 
						|
		})
 | 
						|
 | 
						|
		res.on('data', function (data) {
 | 
						|
			t.fail('unexpected data')
 | 
						|
		})
 | 
						|
	})
 | 
						|
})
 | 
						|
 | 
						|
test('abort on data', function (t) {
 | 
						|
	var req = http.get('/browserify.png?copies=5', function (res) {
 | 
						|
		var firstData = true
 | 
						|
		var failOnData = false
 | 
						|
 | 
						|
		res.on('end', function () {
 | 
						|
			t.fail('unexpected end')
 | 
						|
		})
 | 
						|
 | 
						|
		res.on('data', function (data) {
 | 
						|
			if (failOnData)
 | 
						|
				t.fail('unexpected data')
 | 
						|
			else if (firstData) {
 | 
						|
				firstData = false
 | 
						|
				req.abort()
 | 
						|
				t.end()
 | 
						|
				process.nextTick(function () {
 | 
						|
					// Wait for any data that may have been queued
 | 
						|
					// in the stream before considering data events
 | 
						|
					// as errors
 | 
						|
					failOnData = true
 | 
						|
				})
 | 
						|
			}
 | 
						|
		})
 | 
						|
	})
 | 
						|
}) |