Skip to content

Commit

Permalink
Node.js integration tests: upgrade to Express 4.16
Browse files Browse the repository at this point in the history
  • Loading branch information
FooBarWidget committed Apr 1, 2018
1 parent 0af5232 commit 89408cf
Show file tree
Hide file tree
Showing 3 changed files with 341 additions and 483 deletions.
9 changes: 4 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
{
"__comment__": [
"Indicate Passenger dependencies on Node modules here, and use it to regenerate npm-shrinkwrap.json via 'npm shrinkwrap'."
],
"name": "passenger",
"version": "0.0.0",
"description": "A fast and robust web server and application server for Ruby, Python and Node.js",
Expand All @@ -11,12 +8,14 @@
"babel-loader": "^7.0.0",
"babel-preset-env": "^1.5.2",
"babel-preset-react": "^6.24.1",
"body-parser": "^1.18.2",
"css-loader": "^0.28.4",
"express": "^3.4.8",
"express": "^4.16.3",
"extract-text-webpack-plugin": "^2.1.2",
"jquery": "^3.2.1",
"mocha": "^1.15.1",
"multer": "^1.3.0",
"preact": "^8.1.0",
"jquery": "^3.2.1",
"should": "^2.0.1",
"sinon": "^1.7.3",
"style-loader": "^0.18.2",
Expand Down
84 changes: 42 additions & 42 deletions test/stub/node/app.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
var fs = require('fs');
var url = require('url');
var express = require('express');
var bodyParser = require('body-parser');
var multer = require('multer');
var app = express();
var bodyParser = express.bodyParser();

var urlencodedParser = bodyParser.urlencoded({ extended: false });
var upload = multer({ storage: multer.memoryStorage() });
var router = express.Router();

function textResponse(res, content) {
content = String(content);
Expand All @@ -20,29 +25,23 @@ function fileExists(filename) {
}
}

if (process.env.PASSENGER_BASE_URI) {
app.use(process.env.PASSENGER_BASE_URI, app.router);
}

app.all('/', function(req, res) {
router.route('/').all(function(req, res) {
if (fileExists("front_page.txt")) {
textResponse(res, fs.readFileSync("front_page.txt"));
} else {
textResponse(res, "front page");
}
});

app.all('/parameters', function(req, res) {
bodyParser(req, res, function() {
var first = req.query.first || req.body.first;
var second = req.query.second || req.body.second;
textResponse(res, "Method: " + req.method + "\n" +
"First: " + first + "\n" +
"Second: " + second + "\n")
});
router.route('/parameters').all(urlencodedParser, function(req, res) {
var first = req.query.first || req.body.first;
var second = req.query.second || req.body.second;
textResponse(res, "Method: " + req.method + "\n" +
"First: " + first + "\n" +
"Second: " + second + "\n")
});

app.all('/chunked', function(req, res) {
router.route('/chunked').all(function(req, res) {
res.setHeader("Content-Type", "text/plain");
res.setHeader("Transfer-Encoding", "chunked");
res.write("chunk1\n");
Expand All @@ -51,11 +50,11 @@ app.all('/chunked', function(req, res) {
res.end();
});

app.all('/pid', function(req, res) {
router.route('/pid').all(function(req, res) {
textResponse(res, process.pid);
});

app.all(/^\/env/, function(req, res) {
router.route(/^\/env/).all(function(req, res) {
var result = [];
var requestUri = req.url;
var urlParts = url.parse(req.url);
Expand All @@ -80,44 +79,44 @@ app.all(/^\/env/, function(req, res) {
textResponse(res, result.join("\n") + "\n");
});

app.all('/touch_file', function(req, res) {
bodyParser(req, res, function() {
var filename = req.query.file || req.body.file;
fs.writeFileSync(filename, "");
textResponse(res, "ok")
});
router.route('/touch_file').all(urlencodedParser, function(req, res) {
var filename = req.query.file || req.body.file;
fs.writeFileSync(filename, "");
textResponse(res, "ok")
});

app.all('/extra_header', function(req, res) {
router.route('/extra_header').all(function(req, res) {
res.setHeader("Content-Type", "text/html");
res.setHeader("Content-Length", "2");
res.setHeader("X-Foo", "Bar");
res.end("ok");
});

app.all('/cached', function(req, res) {
router.route('/cached').all(function(req, res) {
textResponse(res, "This is the uncached version of /cached");
});

app.all('/upload_with_params', function(req, res) {
bodyParser(req, res, function() {
var name1 = req.query.name1 || req.body.name1;
var name2 = req.query.name2 || req.body.name2;
var data = req.body.data ? new Buffer(req.body.data) : fs.readFileSync(req.files.data.path);
var preamble = new Buffer(
"name 1 = " + name1 + "\n" +
"name 2 = " + name2 + "\n" +
"data = ");

res.setHeader("Content-Type", "text/plain");
res.setHeader("Transfer-Encoding", "chunked");
res.write(preamble);
res.write(data);
res.end();
});
router.route('/upload_with_params').all(
urlencodedParser,
upload.single('data'),
function(req, res)
{
var name1 = req.query.name1 || req.body.name1;
var name2 = req.query.name2 || req.body.name2;
var data = req.body.data ? new Buffer(req.body.data) : req.file.buffer;
var preamble = new Buffer(
"name 1 = " + name1 + "\n" +
"name 2 = " + name2 + "\n" +
"data = ");

res.setHeader("Content-Type", "text/plain");
res.setHeader("Transfer-Encoding", "chunked");
res.write(preamble);
res.write(data);
res.end();
});

app.all('/raw_upload_to_file', function(req, res) {
router.route('/raw_upload_to_file').all(function(req, res) {
var filename = req.headers['x-output'];
var stream = fs.createWriteStream(filename);
req.on('data', function(data) {
Expand All @@ -130,4 +129,5 @@ app.all('/raw_upload_to_file', function(req, res) {
});
});

app.use(process.env.PASSENGER_BASE_URI || '/', router);
app.listen(3000);
Loading

0 comments on commit 89408cf

Please sign in to comment.