2023-10-03 11:14:36 +08:00
|
|
|
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
|
|
|
|
})
|
|
|
|
}
|
|
|
|
})
|
|
|
|
})
|
2023-09-25 15:58:56 +08:00
|
|
|
})
|