Skip to content

Commit afe1959

Browse files
author
Alex Ivashchenko
committed
Made https test local. Updated deps.
1 parent 09633fa commit afe1959

8 files changed

Lines changed: 64 additions & 33 deletions

File tree

package.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"author": "Felix Geisendörfer <[email protected]> (http://debuggable.com/)",
33
"name": "form-data",
44
"description": "A module to create readable \"multipart/form-data\" streams. Can be used to submit forms and file uploads to other web applications.",
5-
"version": "1.0.0-rc0",
5+
"version": "1.0.0-rc1",
66
"repository": {
77
"type": "git",
88
"url": "git://github.com/felixge/node-form-data.git"
@@ -15,9 +15,9 @@
1515
"node": ">= 0.10"
1616
},
1717
"dependencies": {
18-
"async": "~0.9.0",
19-
"combined-stream": "~0.0.4",
20-
"mime-types": "~2.0.3"
18+
"async": "^1.2.1",
19+
"combined-stream": "^1.0.3",
20+
"mime-types": "^2.1.1"
2121
},
2222
"licenses": [
2323
{
@@ -26,9 +26,9 @@
2626
}
2727
],
2828
"devDependencies": {
29-
"fake": "~0.2.2",
30-
"far": "~0.0.7",
31-
"formidable": "~1.0.14",
32-
"request": "~2.36.0"
29+
"fake": "^0.2.2",
30+
"far": "^0.0.7",
31+
"formidable": "^1.0.17",
32+
"request": "^2.57.0"
3333
}
3434
}

test/common.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,4 @@ common.fake = require('fake');
1414
common.port = 8432;
1515

1616
common.staticPort = 9432;
17+
common.httpsPort = 9443;

test/fixture/cert.pem

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIB5jCCAZACCQD/wXFVwpLS+jANBgkqhkiG9w0BAQUFADB6MQswCQYDVQQGEwJV
3+
UzELMAkGA1UECBMCQ0ExEjAQBgNVBAcTCVBhbG8gQWx0bzERMA8GA1UEChMIRm9y
4+
bURhdGExFDASBgNVBAMTC0FsZXggSW5kaWdvMSEwHwYJKoZIhvcNAQkBFhJpYW1A
5+
YWxleGluZGlnby5jb20wHhcNMTUwNjEzMDcxNTQ3WhcNNDIxMDI4MDcxNTQ3WjB6
6+
MQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExEjAQBgNVBAcTCVBhbG8gQWx0bzER
7+
MA8GA1UEChMIRm9ybURhdGExFDASBgNVBAMTC0FsZXggSW5kaWdvMSEwHwYJKoZI
8+
hvcNAQkBFhJpYW1AYWxleGluZGlnby5jb20wXDANBgkqhkiG9w0BAQEFAANLADBI
9+
AkEAswvOBQq8RWt3sOR4z4ak/3mkwaoVSzqiFF2DNXQpVSGyV9kgguotXkmLaI2c
10+
J7qAeVkDlRerDZVQafGazw6djwIDAQABMA0GCSqGSIb3DQEBBQUAA0EAGlVyp9sJ
11+
uV3Axo4FNkGN4BVFMfPShJzvvPZZ7BwNOIwdK5lS6Ah7YgkjnEhc7IwuqHQqzngs
12+
UwyLalyXFRhIbw==
13+
-----END CERTIFICATE-----

test/fixture/key.pem

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
-----BEGIN RSA PRIVATE KEY-----
2+
MIIBOQIBAAJBALMLzgUKvEVrd7DkeM+GpP95pMGqFUs6ohRdgzV0KVUhslfZIILq
3+
LV5Ji2iNnCe6gHlZA5UXqw2VUGnxms8OnY8CAwEAAQJAYf2n96J0gBndG/cvF4U9
4+
cIUG4udPWCjy4+p6ERtOM8Se8zlez4bv+FSO5nRkVBIsuM/hlYeWNi1itqqqbFkq
5+
YQIhAN3vq+tuknOtgt7heQbaY/coMPfdI08eyfE3DsTveRz1AiEAzobkpkU00DiU
6+
mrEGLLHexGRzioYSI0AMUJTMuwtS/fMCIHi5A3p4Vh+odXTJjyzkJNZvvVtGpgtG
7+
wzB784O6g9X1AiAeUzJJs8nAdT5kxG+KqodyQOmyQmNxZ5snTeIN6OjDvwIgVBaJ
8+
FoVTTx4YEg9JOIKkE4qL/V4bPpqSDU+720lKWSw=
9+
-----END RSA PRIVATE KEY-----
Lines changed: 11 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,34 @@
11
var common = require('../common');
22
var assert = common.assert;
33
var FormData = require(common.dir.lib + '/form_data');
4-
var correctSocket = 'npmjs.org:443';
54

65
// testing default https port
76

87
// check params as string
9-
testRequest('https://npmjs.org/');
8+
testRequest('https://localhost:'+common.httpsPort+'/');
109

1110
// check params as object
12-
testRequest({protocol: 'https:', hostname: 'npmjs.org', pathname: '/'});
11+
testRequest({protocol: 'https:', hostname: 'localhost', port: common.httpsPort, pathname: '/'});
1312

1413
// --- Santa's little helpers
1514

1615
function testRequest(params)
1716
{
1817
var form;
19-
var request;
20-
var sockets;
2118

2219
form = new FormData();
2320

24-
// break getLength – prevent submit() from actually submitting
25-
form.getLength = function(){};
21+
form.submit(params, function(err, res)
22+
{
23+
if (err) {
24+
throw err;
25+
}
2626

27-
request = form.submit(params);
27+
assert.strictEqual(res.statusCode, 200);
28+
assert.strictEqual(res.headers['x-success'], 'OK');
2829

29-
sockets = Object.keys(request.agent.sockets);
30-
31-
assert.equal(sockets.length, 1);
32-
33-
// in 0.10 it's "nodomain:443"
34-
// in 0.11 it's "nodomain:443::::::::"
35-
assert.equal(correctSocket, sockets[0].substr(0, correctSocket.length));
36-
37-
// stop here
38-
request.abort();
39-
40-
request.on('error', function(err){
41-
assert.equal(err.code, 'ECONNRESET');
30+
// unstuck new streams
31+
res.resume();
4232
});
4333

44-
return request;
4534
}

test/run.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ far.add(__dirname);
1111
far.include(/test-.*\.js$/);
1212

1313
// start static server for all tests
14-
static(function(staticServer)
14+
static(function()
1515
{
1616
far.execute();
1717
});

test/static.js

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,23 @@
11
// serves static files
22
var http = require('http');
3+
var https = require('https');
34
var fs = require('fs');
45
var path = require('path');
56
var mime = require('mime-types');
67
var common = require('./common');
78

9+
// make it work with self-signed
10+
process.env.NODE_TLS_REJECT_UNAUTHORIZED = 0;
11+
12+
var httpsOptions = {
13+
key: fs.readFileSync(path.join(__dirname, './fixture/key.pem')),
14+
cert: fs.readFileSync(path.join(__dirname, './fixture/cert.pem'))
15+
};
16+
817
module.exports = function(callback) {
9-
var server = http.createServer(function(req, res) {
18+
19+
// create http server
20+
var httpServer = http.createServer(function(req, res) {
1021

1122
var target = path.join(common.dir.fixture, req.url);
1223
var stat = fs.statSync(target);
@@ -18,5 +29,13 @@ module.exports = function(callback) {
1829

1930
fs.createReadStream(target).pipe(res);
2031
});
21-
server.listen(common.staticPort, callback.bind(undefined, server));
32+
33+
// create https server
34+
var httpsServer = https.createServer(httpsOptions, function(req, res) {
35+
res.writeHead(200, {'x-success': 'OK'});
36+
res.end('Great Success');
37+
});
38+
39+
// dirty&simple
40+
httpServer.listen(common.staticPort, httpsServer.listen.bind(httpsServer, common.httpsPort, callback.bind(undefined, httpServer, httpsServer)));
2241
};

test/tmp/.empty

Whitespace-only changes.

0 commit comments

Comments
 (0)