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
 | |
| 				})
 | |
| 			}
 | |
| 		})
 | |
| 	})
 | |
| }) |