1 | var concat = require('simple-concat')
|
2 | var get = require('../')
|
3 | var http = require('http')
|
4 | var selfSignedHttps = require('self-signed-https')
|
5 | var test = require('tape')
|
6 |
|
7 | test('simple get', function (t) {
|
8 | t.plan(5)
|
9 |
|
10 | var server = http.createServer(function (req, res) {
|
11 | t.equal(req.url, '/path')
|
12 | res.statusCode = 200
|
13 | res.end('response')
|
14 | })
|
15 |
|
16 | server.listen(0, function () {
|
17 | var port = server.address().port
|
18 | get('http://localhost:' + port + '/path', function (err, res) {
|
19 | t.error(err)
|
20 | t.equal(res.statusCode, 200)
|
21 | concat(res, function (err, data) {
|
22 | t.error(err)
|
23 | t.equal(data.toString(), 'response')
|
24 | server.close()
|
25 | })
|
26 | })
|
27 | })
|
28 | })
|
29 |
|
30 | test('https', function (t) {
|
31 | t.plan(5)
|
32 |
|
33 | var server = selfSignedHttps(function (req, res) {
|
34 | t.equal(req.url, '/path')
|
35 | res.statusCode = 200
|
36 | res.end('response')
|
37 | })
|
38 |
|
39 | server.listen(0, function () {
|
40 | var port = server.address().port
|
41 | get({
|
42 | url: 'https://localhost:' + port + '/path',
|
43 | rejectUnauthorized: false
|
44 | }, function (err, res) {
|
45 | t.error(err)
|
46 | t.equal(res.statusCode, 200)
|
47 | concat(res, function (err, data) {
|
48 | t.error(err)
|
49 | t.equal(data.toString(), 'response')
|
50 | server.close()
|
51 | })
|
52 | })
|
53 | })
|
54 | })
|
55 |
|
56 | test('simple get json', function (t) {
|
57 | t.plan(6)
|
58 |
|
59 | var server = http.createServer(function (req, res) {
|
60 | t.equal(req.url, '/path')
|
61 | t.equal(req.headers['accept'], 'application/json')
|
62 | res.statusCode = 200
|
63 | res.end('{"message":"response"}')
|
64 | })
|
65 |
|
66 | server.listen(0, function () {
|
67 | var port = server.address().port
|
68 | var opts = {
|
69 | url: 'http://localhost:' + port + '/path',
|
70 | json: true
|
71 | }
|
72 | get(opts, function (err, res) {
|
73 | t.error(err)
|
74 | t.equal(res.statusCode, 200)
|
75 | concat(res, function (err, data) {
|
76 | t.error(err)
|
77 | t.equal(data.toString(), '{"message":"response"}')
|
78 | server.close()
|
79 | })
|
80 | })
|
81 | })
|
82 | })
|
83 |
|
84 | test('HEAD request', function (t) {
|
85 | t.plan(3)
|
86 |
|
87 | var server = http.createServer(function (req, res) {
|
88 | t.equal(req.method, 'HEAD')
|
89 |
|
90 | res.setHeader('content-type', 'text/html; charset=utf-8')
|
91 | res.setHeader('content-encoding', 'gzip')
|
92 | res.setHeader('connection', 'close')
|
93 | res.statusCode = 200
|
94 | req.pipe(res)
|
95 | })
|
96 |
|
97 | server.listen(0, function () {
|
98 | var port = server.address().port
|
99 | var opts = {
|
100 | method: 'HEAD',
|
101 | url: 'http://localhost:' + port
|
102 | }
|
103 | get.head(opts, function (err, res) {
|
104 | t.error(err)
|
105 | t.equal(res.statusCode, 200)
|
106 | server.close()
|
107 | })
|
108 | })
|
109 | })
|
110 |
|
111 | test('timeout option', function (t) {
|
112 | t.plan(2)
|
113 |
|
114 | var server = http.createServer(function (req, res) {
|
115 | t.equal(req.url, '/path')
|
116 | setTimeout(function () {
|
117 |
|
118 | res.end('response')
|
119 | }, 2000)
|
120 | })
|
121 |
|
122 | server.listen(0, function () {
|
123 | var port = server.address().port
|
124 | get({
|
125 | url: 'http://localhost:' + port + '/path',
|
126 | timeout: 1000
|
127 | }, function (err, res) {
|
128 | t.ok(err instanceof Error)
|
129 | server.close()
|
130 | })
|
131 | })
|
132 | })
|