add test for redirection

This commit is contained in:
jomo 2015-04-25 22:50:31 +02:00
parent d981b34d0b
commit 23080370b2

View File

@ -220,7 +220,7 @@ describe("Crafatar", function() {
// throws Exception when default headers are not in res.headers // throws Exception when default headers are not in res.headers
function assert_headers(res) { function assert_headers(res) {
assert(res.headers["content-type"]); assert(res.headers["content-type"]);
assert(res.headers["response-time"]); assert("" + res.headers["response-time"]);
assert(res.headers["x-request-id"]); assert(res.headers["x-request-id"]);
assert.equal(res.headers["access-control-allow-origin"], "*"); assert.equal(res.headers["access-control-allow-origin"], "*");
assert.equal(res.headers["cache-control"], "max-age=" + config.browser_cache_time + ", public"); assert.equal(res.headers["cache-control"], "max-age=" + config.browser_cache_time + ", public");
@ -302,6 +302,17 @@ describe("Crafatar", function() {
etag: '"steve"', etag: '"steve"',
crc32: 2172290550 crc32: 2172290550
}, },
"avatar with not existing username defaulting to alex": {
url: "http://localhost:3000/avatars/0?size=16&default=alex",
etag: '"alex"',
crc32: 2968787440
},
"avatar with not existing username defaulting to url": {
url: "http://localhost:3000/avatars/0?size=16&default=http://example.com",
etag: undefined,
crc32: 0,
redirect: "http://example.com"
},
"helm avatar with existing username": { "helm avatar with existing username": {
url: "http://localhost:3000/avatars/jeb_?size=16&helm", url: "http://localhost:3000/avatars/jeb_?size=16&helm",
etag: '"a846b82963"', etag: '"a846b82963"',
@ -312,6 +323,17 @@ describe("Crafatar", function() {
etag: '"steve"', etag: '"steve"',
crc32: 2172290550 crc32: 2172290550
}, },
"helm avatar with not existing username defaulting to alex": {
url: "http://localhost:3000/avatars/0?size=16&helm&default=alex",
etag: '"alex"',
crc32: 2968787440
},
"helm avatar with not existing username defaulting to url": {
url: "http://localhost:3000/avatars/0?size=16&helm&default=http://example.com",
etag: undefined,
crc32: 0,
redirect: "http://example.com"
},
"avatar with existing uuid": { "avatar with existing uuid": {
url: "http://localhost:3000/avatars/853c80ef3c3749fdaa49938b674adae6?size=16", url: "http://localhost:3000/avatars/853c80ef3c3749fdaa49938b674adae6?size=16",
etag: '"a846b82963"', etag: '"a846b82963"',
@ -322,6 +344,17 @@ describe("Crafatar", function() {
etag: '"steve"', etag: '"steve"',
crc32: 2172290550 crc32: 2172290550
}, },
"avatar with not existing uuid defaulting to alex": {
url: "http://localhost:3000/avatars/00000000000000000000000000000000?size=16&default=alex",
etag: '"alex"',
crc32: 2968787440
},
"avatar with not existing uuid defaulting to url": {
url: "http://localhost:3000/avatars/00000000000000000000000000000000?size=16&default=http://example.com",
etag: undefined,
crc32: 0,
redirect: "http://example.com"
},
"helm avatar with existing uuid": { "helm avatar with existing uuid": {
url: "http://localhost:3000/avatars/853c80ef3c3749fdaa49938b674adae6?size=16&helm", url: "http://localhost:3000/avatars/853c80ef3c3749fdaa49938b674adae6?size=16&helm",
etag: '"a846b82963"', etag: '"a846b82963"',
@ -332,6 +365,17 @@ describe("Crafatar", function() {
etag: '"steve"', etag: '"steve"',
crc32: 2172290550 crc32: 2172290550
}, },
"helm avatar with not existing uuid defaulting to alex": {
url: "http://localhost:3000/avatars/00000000000000000000000000000000?size=16&helm&default=alex",
etag: '"alex"',
crc32: 2968787440
},
"helm avatar with not existing uuid defaulting to url": {
url: "http://localhost:3000/avatars/00000000000000000000000000000000?size=16&helm&default=http://example.com",
etag: undefined,
crc32: 0,
redirect: "http://example.com"
},
"cape with existing username": { "cape with existing username": {
url: "http://localhost:3000/capes/jeb_", url: "http://localhost:3000/capes/jeb_",
etag: '"3f688e0e69"', etag: '"3f688e0e69"',
@ -342,6 +386,17 @@ describe("Crafatar", function() {
etag: undefined, etag: undefined,
crc32: 0 crc32: 0
}, },
"cape with not existing username defaulting to alex": {
url: "http://localhost:3000/capes/0?default=alex",
etag: undefined,
crc32: 0
},
"cape with not existing username defaulting to url": {
url: "http://localhost:3000/capes/0?default=http://example.com",
etag: undefined,
crc32: 0,
redirect: "http://example.com"
},
"cape with existing uuid": { "cape with existing uuid": {
url: "http://localhost:3000/capes/853c80ef3c3749fdaa49938b674adae6", url: "http://localhost:3000/capes/853c80ef3c3749fdaa49938b674adae6",
etag: '"3f688e0e69"', etag: '"3f688e0e69"',
@ -352,6 +407,17 @@ describe("Crafatar", function() {
etag: undefined, etag: undefined,
crc32: 0 crc32: 0
}, },
"cape with not existing uuid defaulting to alex": {
url: "http://localhost:3000/capes/00000000000000000000000000000000?default=alex",
etag: undefined,
crc32: 0
},
"cape with not existing uuid defaulting to url": {
url: "http://localhost:3000/capes/00000000000000000000000000000000?default=http://example.com",
etag: undefined,
crc32: 0,
redirect: "http://example.com"
},
"skin with existing username": { "skin with existing username": {
url: "http://localhost:3000/skins/jeb_", url: "http://localhost:3000/skins/jeb_",
etag: '"a846b82963"', etag: '"a846b82963"',
@ -362,6 +428,17 @@ describe("Crafatar", function() {
etag: '"steve"', etag: '"steve"',
crc32: 3033070999 crc32: 3033070999
}, },
"skin with not existing username defaulting to alex": {
url: "http://localhost:3000/skins/0?default=alex",
etag: '"alex"',
crc32: 777408988
},
"skin with not existing username defaulting to url": {
url: "http://localhost:3000/skins/0?default=http://example.com",
etag: undefined,
crc32: 0,
redirect: "http://example.com"
},
"skin with existing uuid": { "skin with existing uuid": {
url: "http://localhost:3000/skins/853c80ef3c3749fdaa49938b674adae6", url: "http://localhost:3000/skins/853c80ef3c3749fdaa49938b674adae6",
etag: '"a846b82963"', etag: '"a846b82963"',
@ -372,6 +449,17 @@ describe("Crafatar", function() {
etag: '"steve"', etag: '"steve"',
crc32: 3033070999 crc32: 3033070999
}, },
"skin with not existing uuid defaulting to alex": {
url: "http://localhost:3000/skins/00000000000000000000000000000000?default=alex",
etag: '"alex"',
crc32: 777408988
},
"skin with not existing uuid defaulting to url": {
url: "http://localhost:3000/skins/00000000000000000000000000000000?default=http://example.com",
etag: undefined,
crc32: 0,
redirect: "http://example.com"
},
"head render with existing username": { "head render with existing username": {
url: "http://localhost:3000/renders/head/jeb_?scale=2", url: "http://localhost:3000/renders/head/jeb_?scale=2",
etag: '"a846b82963"', etag: '"a846b82963"',
@ -382,6 +470,17 @@ describe("Crafatar", function() {
etag: '"steve"', etag: '"steve"',
crc32: 3356822684 crc32: 3356822684
}, },
"head render with not existing username defaulting to alex": {
url: "http://localhost:3000/renders/head/0?scale=2&default=alex",
etag: '"alex"',
crc32: 1133025464
},
"head render with not existing username defaulting to url": {
url: "http://localhost:3000/renders/head/0?scale=2&default=http://example.com",
etag: undefined,
crc32: 0,
redirect: "http://example.com"
},
"helm head render with existing username": { "helm head render with existing username": {
url: "http://localhost:3000/renders/head/jeb_?scale=2&helm", url: "http://localhost:3000/renders/head/jeb_?scale=2&helm",
etag: '"a846b82963"', etag: '"a846b82963"',
@ -392,6 +491,17 @@ describe("Crafatar", function() {
etag: '"steve"', etag: '"steve"',
crc32: 349655416 crc32: 349655416
}, },
"helm head render with not existing username defaulting to alex": {
url: "http://localhost:3000/renders/head/0?scale=2&helm&default=alex",
etag: '"alex"',
crc32: 4031806631
},
"helm head render with not existing username defaulting to url": {
url: "http://localhost:3000/renders/head/0?scale=2&helm&default=http://example.com",
etag: undefined,
crc32: 0,
redirect: "http://example.com"
},
"head render with existing uuid": { "head render with existing uuid": {
url: "http://localhost:3000/renders/head/853c80ef3c3749fdaa49938b674adae6?scale=2", url: "http://localhost:3000/renders/head/853c80ef3c3749fdaa49938b674adae6?scale=2",
etag: '"a846b82963"', etag: '"a846b82963"',
@ -402,6 +512,17 @@ describe("Crafatar", function() {
etag: '"steve"', etag: '"steve"',
crc32: 3356822684 crc32: 3356822684
}, },
"head render with not existing uuid defaulting to alex": {
url: "http://localhost:3000/renders/head/00000000000000000000000000000000?scale=2&default=alex",
etag: '"alex"',
crc32: 1133025464
},
"head render with not existing uuid defaulting to url": {
url: "http://localhost:3000/renders/head/00000000000000000000000000000000?scale=2&default=http://example.com",
etag: undefined,
crc32: 0,
redirect: "http://example.com"
},
"helm head render with existing uuid": { "helm head render with existing uuid": {
url: "http://localhost:3000/renders/head/853c80ef3c3749fdaa49938b674adae6?scale=2&helm", url: "http://localhost:3000/renders/head/853c80ef3c3749fdaa49938b674adae6?scale=2&helm",
etag: '"a846b82963"', etag: '"a846b82963"',
@ -412,6 +533,17 @@ describe("Crafatar", function() {
etag: '"steve"', etag: '"steve"',
crc32: 1255390784 crc32: 1255390784
}, },
"helm head render with not existing uuid defaulting to alex": {
url: "http://localhost:3000/avatars/00000000000000000000000000000000?scale=2&helm&default=alex",
etag: '"alex"',
crc32: 2283463177
},
"helm head render with not existing uuid defaulting to url": {
url: "http://localhost:3000/avatars/00000000000000000000000000000000?scale=2&helm&default=http://example.com",
etag: undefined,
crc32: 0,
redirect: "http://example.com"
},
"body render with existing username": { "body render with existing username": {
url: "http://localhost:3000/renders/body/jeb_?scale=2", url: "http://localhost:3000/renders/body/jeb_?scale=2",
etag: '"a846b82963"', etag: '"a846b82963"',
@ -422,6 +554,17 @@ describe("Crafatar", function() {
etag: '"steve"', etag: '"steve"',
crc32: 216470159 crc32: 216470159
}, },
"body render with not existing username defaulting to alex": {
url: "http://localhost:3000/renders/body/0?scale=2&default=alex",
etag: '"alex"',
crc32: 1873964761
},
"body render with not existing username defaulting to url": {
url: "http://localhost:3000/renders/body/0?scale=2&default=http://example.com",
etag: undefined,
crc32: 0,
redirect: "http://example.com"
},
"helm body render with existing username": { "helm body render with existing username": {
url: "http://localhost:3000/renders/body/jeb_?scale=2&helm", url: "http://localhost:3000/renders/body/jeb_?scale=2&helm",
etag: '"a846b82963"', etag: '"a846b82963"',
@ -432,6 +575,17 @@ describe("Crafatar", function() {
etag: '"steve"', etag: '"steve"',
crc32: 1991273336 crc32: 1991273336
}, },
"helm body render with not existing username defaulting to alex": {
url: "http://localhost:3000/renders/body/0?scale=2&helm&default=alex",
etag: '"alex"',
crc32: 1201672813
},
"helm body render with not existing username defaulting to url": {
url: "http://localhost:3000/renders/body/0?scale=2&helm&default=http://example.com",
etag: undefined,
crc32: 0,
redirect: "http://example.com"
},
"body render with existing uuid": { "body render with existing uuid": {
url: "http://localhost:3000/renders/body/853c80ef3c3749fdaa49938b674adae6?scale=2", url: "http://localhost:3000/renders/body/853c80ef3c3749fdaa49938b674adae6?scale=2",
etag: '"a846b82963"', etag: '"a846b82963"',
@ -442,6 +596,17 @@ describe("Crafatar", function() {
etag: '"steve"', etag: '"steve"',
crc32: 216470159 crc32: 216470159
}, },
"body render with not existing uuid defaulting to alex": {
url: "http://localhost:3000/renders/body/00000000000000000000000000000000?scale=2&default=alex",
etag: '"alex"',
crc32: 1873964761
},
"body render with not existing uuid defaulting to url": {
url: "http://localhost:3000/renders/body/00000000000000000000000000000000?scale=2&default=http://example.com",
etag: undefined,
crc32: 0,
redirect: "http://example.com"
},
"helm body render with existing uuid": { "helm body render with existing uuid": {
url: "http://localhost:3000/renders/body/853c80ef3c3749fdaa49938b674adae6?scale=2&helm", url: "http://localhost:3000/renders/body/853c80ef3c3749fdaa49938b674adae6?scale=2&helm",
etag: '"a846b82963"', etag: '"a846b82963"',
@ -452,20 +617,32 @@ describe("Crafatar", function() {
etag: '"steve"', etag: '"steve"',
crc32: 1991273336 crc32: 1991273336
}, },
"helm body render with not existing uuid defaulting to alex": {
url: "http://localhost:3000/renders/body/00000000000000000000000000000000?scale=2&helm&default=alex",
etag: '"alex"',
crc32: 1201672813
},
"helm body render with not existing uuid defaulting to url": {
url: "http://localhost:3000/renders/body/00000000000000000000000000000000?scale=2&helm&default=http://example.com",
etag: undefined,
crc32: 0,
redirect: "http://example.com"
},
}; };
for (var description in locations) { for (var description in locations) {
var location = locations[description]; var location = locations[description];
(function(location) { (function(location) {
it("should return correct HTTP response for " + description, function(done) { it("should return correct HTTP response for " + description, function(done) {
request.get(location.url, function(error, res, body) { request.get(location.url, {followRedirect: false}, function(error, res, body) {
assert.ifError(error); assert.ifError(error);
assert_headers(res); assert_headers(res);
assert(res.headers["x-storage-type"]); assert(res.headers["x-storage-type"]);
assert.strictEqual(res.headers["etag"], location.etag); assert.strictEqual(res.headers["etag"], location.etag);
assert.strictEqual(crc(body), location.crc32); assert.strictEqual(crc(body), location.crc32);
assert.strictEqual(res.headers["location"], location.redirect);
if (location.etag === undefined) { if (location.etag === undefined) {
assert.strictEqual(res.statusCode, 404); assert.strictEqual(res.statusCode, location.redirect ? 307 : 404);
assert.strictEqual(res.headers["content-type"], "text/plain"); assert.strictEqual(res.headers["content-type"], "text/plain");
done(); done();
} else { } else {