Skip to content

Instantly share code, notes, and snippets.

@josephwegner
Created May 4, 2015 20:44
Show Gist options
  • Save josephwegner/b5465b0253f4f625e51e to your computer and use it in GitHub Desktop.
Save josephwegner/b5465b0253f4f625e51e to your computer and use it in GitHub Desktop.
PingPong Tester
<html>
<head>
<title>PingPong Tester</title>
</head>
<body>
<form method="GET">
<label>Response Delay</label>
<br />
<input type="number" min="0" name="delay" value="{{delay}}" />
<br />
<br />
<label>Response Code</label>
<br />
<input type="number" min="200" max="700" name="code" value="{{code}}" />
<br />
<br />
<label>Response Message</label>
<br />
<textarea name="message" rows="10" cols="100">{{message}}</textarea>
<br />
<br />
<input type="submit" value="Update" />
</form>
</body>
</html>
var http = require('http');
var url = require('url');
var fs = require('fs');
var responseDelay = 0;
var responseCode = 200;
var responseMessage = JSON.stringify({success: true});
var app = http.createServer(function(req, res) {
var urlParts = url.parse(req.url, true);
if(urlParts.pathname === '/config') {
configResponse(urlParts, res);
} else {
pingpongResponse(res);
}
});
app.listen(3333);
console.log("PingPong Tester listening on localhost's port 3333");
var configResponse = function(urlParts, res) {
var updated = false;
if(urlParts.query.delay) {
responseDelay = parseInt(urlParts.query.delay);
updated = true;
}
if(urlParts.query.code) {
responseCode = parseInt(urlParts.query.code);
updated = true;
}
if(urlParts.query.message) {
responseMessage = urlParts.query.message
updated = true;
}
if(updated) {
console.log();
console.log('Response Settings Updated:');
console.log("Delay: "+responseDelay+"ms");
console.log("Code: "+responseCode);
console.log("Message:");
console.log(responseMessage);
}
var html = fs.readFileSync(__dirname + "/index.html", 'utf8')
.replace('{{delay}}', responseDelay)
.replace('{{code}}', responseCode)
.replace('{{message}}', responseMessage);
res.end(html);
};
var pingpongResponse = function(res) {
setTimeout(function() {
console.log("After a "+responseDelay+"ms delay, I'm responding with a "+responseCode);
res.statusCode = responseCode;
res.end(responseMessage);
}, responseDelay);
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment