mirror of
https://github.com/azures04/crafatar.git
synced 2026-03-21 23:41:18 +01:00
Start http.server tests
This commit is contained in:
parent
8fc63a9903
commit
af421ecb49
41
server.js
41
server.js
@ -7,6 +7,7 @@ var http = require("http");
|
|||||||
var mime = require("mime");
|
var mime = require("mime");
|
||||||
var url = require("url");
|
var url = require("url");
|
||||||
var fs = require("fs");
|
var fs = require("fs");
|
||||||
|
var server = null;
|
||||||
|
|
||||||
var routes = {
|
var routes = {
|
||||||
index: require("./routes/index"),
|
index: require("./routes/index"),
|
||||||
@ -53,22 +54,22 @@ function requestHandler(req, res) {
|
|||||||
try {
|
try {
|
||||||
switch (local_path) {
|
switch (local_path) {
|
||||||
case "":
|
case "":
|
||||||
routes.index(request, res);
|
routes.index(request, res);
|
||||||
break;
|
break;
|
||||||
case "avatars":
|
case "avatars":
|
||||||
routes.avatars(request, res);
|
routes.avatars(request, res);
|
||||||
break;
|
break;
|
||||||
case "skins":
|
case "skins":
|
||||||
routes.skins(request, res);
|
routes.skins(request, res);
|
||||||
break;
|
break;
|
||||||
case "renders":
|
case "renders":
|
||||||
routes.renders(request, res);
|
routes.renders(request, res);
|
||||||
break;
|
break;
|
||||||
case "capes":
|
case "capes":
|
||||||
routes.capes(request, res);
|
routes.capes(request, res);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
asset_request(request, res);
|
asset_request(request, res);
|
||||||
}
|
}
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
var error = JSON.stringify(req.headers) + "\n" + e.stack;
|
var error = JSON.stringify(req.headers) + "\n" + e.stack;
|
||||||
@ -86,15 +87,27 @@ function requestHandler(req, res) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var boot = module.exports = function () {
|
var exp = {};
|
||||||
|
|
||||||
|
exp.boot = function(callback) {
|
||||||
var port = process.env.PORT || 3000;
|
var port = process.env.PORT || 3000;
|
||||||
var bind_ip = process.env.BIND || "127.0.0.1";
|
var bind_ip = process.env.BIND || "127.0.0.1";
|
||||||
console.log("Server running on http://" + bind_ip + ":" + port + "/");
|
console.log("Server running on http://" + bind_ip + ":" + port + "/");
|
||||||
http.createServer(requestHandler).listen(port, bind_ip);
|
server = http.createServer(requestHandler).listen(port, bind_ip, function() {
|
||||||
|
callback();
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
exp.close = function(callback) {
|
||||||
|
server.close(function() {
|
||||||
|
callback();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = exp;
|
||||||
|
|
||||||
if (require.main === module) {
|
if (require.main === module) {
|
||||||
boot();
|
exp.boot(function(){});
|
||||||
|
|
||||||
// cleaning worker
|
// cleaning worker
|
||||||
setInterval(clean.run, config.cleaning_interval * 1000);
|
setInterval(clean.run, config.cleaning_interval * 1000);
|
||||||
|
|||||||
65
test/test.js
65
test/test.js
@ -8,7 +8,8 @@ var config = require("../modules/config");
|
|||||||
var skins = require("../modules/skins");
|
var skins = require("../modules/skins");
|
||||||
var cache = require("../modules/cache");
|
var cache = require("../modules/cache");
|
||||||
var renders = require("../modules/renders");
|
var renders = require("../modules/renders");
|
||||||
var cleaner = require("../modules/cleaner");
|
var server = require("../server");
|
||||||
|
var request = require("request");
|
||||||
|
|
||||||
// we don't want tests to fail because of slow internet
|
// we don't want tests to fail because of slow internet
|
||||||
config.http_timeout *= 3;
|
config.http_timeout *= 3;
|
||||||
@ -33,7 +34,7 @@ var ids = [
|
|||||||
uuid.toLowerCase(),
|
uuid.toLowerCase(),
|
||||||
name.toLowerCase(),
|
name.toLowerCase(),
|
||||||
uuid.toUpperCase(),
|
uuid.toUpperCase(),
|
||||||
name.toUpperCase()
|
name.toUpperCase(),
|
||||||
];
|
];
|
||||||
|
|
||||||
describe("Crafatar", function() {
|
describe("Crafatar", function() {
|
||||||
@ -42,7 +43,6 @@ describe("Crafatar", function() {
|
|||||||
|
|
||||||
before(function() {
|
before(function() {
|
||||||
cache.get_redis().flushall();
|
cache.get_redis().flushall();
|
||||||
cleaner.run();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("UUID/username", function() {
|
describe("UUID/username", function() {
|
||||||
@ -330,4 +330,63 @@ describe("Crafatar", function() {
|
|||||||
});
|
});
|
||||||
})(id, id_type);
|
})(id, id_type);
|
||||||
}
|
}
|
||||||
|
describe("Server", function() {
|
||||||
|
before(function(done) {
|
||||||
|
server.boot(function() {
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Test the home page
|
||||||
|
it("should return a 200", function(done) {
|
||||||
|
request.get('http://localhost:3000', function(error, res, body) {
|
||||||
|
assert.equal(200, res.statusCode);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// invalid method, we only allow GET and HEAD requests
|
||||||
|
it("should return a 405", function(done) {
|
||||||
|
request.post('http://localhost:3000/avatars/Jake0oo0', function(error, res, body) {
|
||||||
|
assert.equal(405, res.statusCode);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should return a 422 (invalid scale)", function(done) {
|
||||||
|
var scale = config.max_scale + 1;
|
||||||
|
request.get('http://localhost:3000/avatars/Jake0oo0?scale=' + scale, function(error, res, body) {
|
||||||
|
assert.equal(422, res.statusCode);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should return a 422 (invalid uuid)", function(done) {
|
||||||
|
request.get('http://localhost:3000/avatars/thisisaninvaliduuid', function(error, res, body) {
|
||||||
|
assert.equal(422, res.statusCode);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should return a 422 (invalid size)", function(done) {
|
||||||
|
var size = config.max_size + 1;
|
||||||
|
request.get('http://localhost:3000/renders/Jake0oo0?size=' + size, function(error, res, body) {
|
||||||
|
assert.equal(422, res.statusCode);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should return a 301 (default image)", function(done) {
|
||||||
|
request.get('http://localhost:3000/renders/invalidjsvns?def=steve', function(error, res, body) {
|
||||||
|
assert.equal(301, res.statusCode);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
after(function(done) {
|
||||||
|
server.close(function() {
|
||||||
|
done();
|
||||||
|
})
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
Loading…
x
Reference in New Issue
Block a user