welp..fix

This commit is contained in:
Jake 2015-02-11 19:31:05 -06:00
parent 5a06e99643
commit 20d8b281bd
3 changed files with 135 additions and 136 deletions

View File

@ -1,7 +1,6 @@
language: node_js language: node_js
node_js: node_js:
- "0.10" - "0.10"
- "0.12"
before_script: before_script:
- cp "modules/config.example.js" "modules/config.js" - cp "modules/config.example.js" "modules/config.js"
before_install: before_install:

View File

@ -45,12 +45,9 @@ module.exports = function(req, res) {
userId = userId.replace(/-/g, ""); userId = userId.replace(/-/g, "");
logging.log(rid + "userid: " + userId); logging.log(rid + "userid: " + userId);
console.log("THIS WAS CALLED")
try { try {
console.log("TRIED")
helpers.get_avatar(rid, userId, helm, size, function(err, status, image, hash) { helpers.get_avatar(rid, userId, helm, size, function(err, status, image, hash) {
console.log("I DID RUN COVERALLS!!")
logging.log(rid + "storage type: " + human_status[status]); logging.log(rid + "storage type: " + human_status[status]);
if (err) { if (err) {
logging.error(rid + err); logging.error(rid + err);
@ -76,7 +73,6 @@ module.exports = function(req, res) {
} }
}); });
} catch(e) { } catch(e) {
console.log("FAILED")
logging.error(rid + "error: " + e.stack); logging.error(rid + "error: " + e.stack);
handle_default(rid, 500, -1, userId); handle_default(rid, 500, -1, userId);
} }

View File

@ -31,10 +31,10 @@ function getRandomInt(min, max) {
} }
var ids = [ var ids = [
uuid.toLowerCase(), uuid.toLowerCase(),
name.toLowerCase(), name.toLowerCase(),
name.toUpperCase(), name.toUpperCase(),
uuid.toUpperCase(), uuid.toUpperCase(),
]; ];
describe("Crafatar", function() { describe("Crafatar", function() {
@ -101,7 +101,7 @@ describe("Crafatar", function() {
}); });
}); });
}); });
describe("Avatar", function() { describe("Avatar", function() {
// profile "Alex" - hoping it'll never have a skin // profile "Alex" - hoping it'll never have a skin
var alex_uuid = "ec561538f3fd461daff5086b22154bce"; var alex_uuid = "ec561538f3fd461daff5086b22154bce";
// profile "Steven" (Steve doesn't exist) - hoping it'll never have a skin // profile "Steven" (Steve doesn't exist) - hoping it'll never have a skin
@ -125,62 +125,62 @@ describe("Crafatar", function() {
done(); done();
}); });
}); });
describe("Errors", function() { describe("Errors", function() {
it("should time out on uuid info download", function(done) { it("should time out on uuid info download", function(done) {
var original_timeout = config.http_timeout; var original_timeout = config.http_timeout;
config.http_timeout = 1; config.http_timeout = 1;
networking.get_profile(rid, "069a79f444e94726a5befca90e38aaf5", function(err, profile) { networking.get_profile(rid, "069a79f444e94726a5befca90e38aaf5", function(err, profile) {
assert.strictEqual(err.code, "ETIMEDOUT"); assert.strictEqual(err.code, "ETIMEDOUT");
config.http_timeout = original_timeout; config.http_timeout = original_timeout;
done(); done();
});
}); });
it("should time out on username info download", function(done) { });
var original_timeout = config.http_timeout; it("should time out on username info download", function(done) {
config.http_timeout = 1; var original_timeout = config.http_timeout;
networking.get_username_url(rid, "jomo", 0, function(err, url) { config.http_timeout = 1;
assert.strictEqual(err.code, "ETIMEDOUT"); networking.get_username_url(rid, "jomo", 0, function(err, url) {
config.http_timeout = original_timeout; assert.strictEqual(err.code, "ETIMEDOUT");
done(); config.http_timeout = original_timeout;
}); done();
}); });
it("should time out on skin download", function(done) { });
var original_timeout = config.http_timeout; it("should time out on skin download", function(done) {
config.http_timeout = 1; var original_timeout = config.http_timeout;
networking.get_from(rid, "http://textures.minecraft.net/texture/477be35554684c28bdeee4cf11c591d3c88afb77e0b98da893fd7bc318c65184", function(body, res, error) { config.http_timeout = 1;
assert.strictEqual(error.code, "ETIMEDOUT"); networking.get_from(rid, "http://textures.minecraft.net/texture/477be35554684c28bdeee4cf11c591d3c88afb77e0b98da893fd7bc318c65184", function(body, res, error) {
config.http_timeout = original_timeout; assert.strictEqual(error.code, "ETIMEDOUT");
done(); config.http_timeout = original_timeout;
}); done();
}); });
it("should not find the skin", function(done) { });
assert.doesNotThrow(function() { it("should not find the skin", function(done) {
networking.get_from(rid, "http://textures.minecraft.net/texture/this-does-not-exist", function(img, response, err) { assert.doesNotThrow(function() {
networking.get_from(rid, "http://textures.minecraft.net/texture/this-does-not-exist", function(img, response, err) {
assert.strictEqual(err, null); // no error here, but it shouldn't throw exceptions assert.strictEqual(err, null); // no error here, but it shouldn't throw exceptions
done(); done();
}); });
});
});
it("should ignore file updates on invalid files", function(done) {
assert.doesNotThrow(function() {
cache.update_timestamp(rid, "0123456789abcdef0123456789abcdef", "invalid-file.png");
});
done();
});
it("should not find the file", function(done) {
skins.open_skin(rid, "non/existant/path", function(err, img) {
assert.notStrictEqual(err, null);
done();
});
}); });
}); });
it("should ignore file updates on invalid files", function(done) {
describe("Server", function() { assert.doesNotThrow(function() {
before(function(done) { cache.update_timestamp(rid, "0123456789abcdef0123456789abcdef", "invalid-file.png");
server.boot(function() {
done();
});
}); });
done();
});
it("should not find the file", function(done) {
skins.open_skin(rid, "non/existant/path", function(err, img) {
assert.notStrictEqual(err, null);
done();
});
});
});
describe("Server", function() {
before(function(done) {
server.boot(function() {
done();
});
});
// Test the home page // Test the home page
it("should return a 200 (home page)", function(done) { it("should return a 200 (home page)", function(done) {
@ -240,38 +240,42 @@ describe("Crafatar", function() {
var locations = ["avatars", "capes", "skins", "renders/head"] var locations = ["avatars", "capes", "skins", "renders/head"]
for (var l in locations) { for (var l in locations) {
var location = locations[l]; var location = locations[l];
it("should return a 200 (valid input " + location + ")", function(done) { (function(location) {
request.get("http://localhost:3000/" + location + "/Jake0oo0", function(error, res, body) { if (location !== "capes") {
assert.equal(200, res.statusCode); it("should return a 200 (valid input " + location + ")", function(done) {
done(); request.get("http://localhost:3000/" + location + "/Jake0oo0", function(error, res, body) {
assert.equal(200, res.statusCode);
done();
});
})
}
it("should return a 422 (invalid id " + location + ")", function(done) {
request.get("http://localhost:3000/" + location + "/thisisaninvaliduuid", function(error, res, body) {
assert.equal(422, res.statusCode);
done();
});
}); });
}); })(location);
it("should return a 422 (invalid id " + location + ")", function(done) {
request.get("http://localhost:3000/" + location + "/thisisaninvaliduuid", function(error, res, body) {
assert.equal(422, res.statusCode);
done();
});
});
} }
// testing all paths for default images //testing all paths for default images
locations = ["avatars", "capes", "skins"] locations = ["avatars", "skins"]
for (var l in locations) { for (var l in locations) {
var location = locations[l]; var location = locations[l];
it("should return a 404 (default steve image " + location + ")", function(done) { (function(location) {
request.get("http://localhost:3000/" + location + "/invalidjsvns?default=steve", function(error, res, body) { it("should return a 404 (default steve image " + location + ")", function(done) {
assert.equal(404, res.statusCode); request.get("http://localhost:3000/" + location + "/invalidjsvns?default=steve", function(error, res, body) {
done(); assert.equal(404, res.statusCode);
done();
});
}); });
}); it("should return a 200 (default external image " + location + ")", function(done) {
request.get("http://localhost:3000/" + location + "/invalidjsvns?default=https%3A%2F%2Fi.imgur.com%2FocJVWAc.png", function(error, res, body) {
it("should return a 200 (default external image " + location + ")", function(done) { assert.equal(200, res.statusCode);
request.get("http://localhost:3000/" + location + "/invalidjsvns?default=https%3A%2F%2Fi.imgur.com%2FocJVWAc.png", function(error, res, body) { done();
assert.equal(200, res.statusCode); });
done();
}); });
}); })(location);
} }
after(function(done) { after(function(done) {
@ -379,61 +383,61 @@ describe("Crafatar", function() {
} }
}); });
describe("Networking: Skin", function() { describe("Networking: Skin", function() {
it("should not fail (uuid)", function(done) { it("should not fail (uuid)", function(done) {
helpers.get_skin(rid, id, function(err, hash, img) { helpers.get_skin(rid, id, function(err, hash, img) {
assert.strictEqual(err, null); assert.strictEqual(err, null);
done(); done();
}); });
}); });
});
describe("Networking: Render", function() {
it("should not fail (full body)", function(done) {
helpers.get_render(rid, id, 6, true, true, function(err, hash, img) {
assert.strictEqual(err, null);
done();
});
});
it("should not fail (only head)", function(done) {
helpers.get_render(rid, id, 6, true, false, function(err, hash, img) {
assert.strictEqual(err, null);
done();
});
});
});
describe("Networking: Cape", function() {
it("should not fail (possible cape)", function(done) {
helpers.get_cape(rid, id, function(err, hash, img) {
assert.strictEqual(err, null);
done();
});
});
});
describe("Errors", function() {
before(function() {
cache.get_redis().flushall();
});
if (id_type == "uuid") {
it("uuid should be rate limited", function(done) {
networking.get_profile(rid, id, function(err, profile) {
assert.strictEqual(profile.error, "TooManyRequestsException");
done();
}); });
});
describe("Networking: Render", function() { } else {
it("should not fail (full body)", function(done) { it("username should NOT be rate limited (username)", function(done) {
helpers.get_render(rid, id, 6, true, true, function(err, hash, img) { helpers.get_avatar(rid, id, false, 160, function(err, status, image) {
assert.strictEqual(err, null); assert.strictEqual(err, null);
done(); done();
});
});
it("should not fail (only head)", function(done) {
helpers.get_render(rid, id, 6, true, false, function(err, hash, img) {
assert.strictEqual(err, null);
done();
});
});
}); });
});
describe("Networking: Cape", function() {
it("should not fail (possible cape)", function(done) {
helpers.get_cape(rid, id, function(err, hash, img) {
assert.strictEqual(err, null);
done();
});
});
});
describe("Errors", function() {
before(function() {
cache.get_redis().flushall();
});
if (id_type == "uuid") {
it("uuid should be rate limited", function(done) {
networking.get_profile(rid, id, function(err, profile) {
assert.strictEqual(profile.error, "TooManyRequestsException");
done();
});
});
} else {
it("username should NOT be rate limited (username)", function(done) {
helpers.get_avatar(rid, id, false, 160, function(err, status, image) {
assert.strictEqual(err, null);
done();
});
});
}
});
})(id, id_type);
} }
});
})(id, id_type);
}
}); });