Blame view

node_modules/stream-http/test/browser/abort.js 1.09 KB
aaac7fed   liuqimichale   add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
  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
  				})
  			}
  		})
  	})
  })