diff --git a/test/ringo/jsgi/response_test.js b/test/ringo/jsgi/response_test.js new file mode 100644 index 000000000..f2f3aebdc --- /dev/null +++ b/test/ringo/jsgi/response_test.js @@ -0,0 +1,170 @@ +var assert = require("assert"); + +var {JsgiResponse} = require("ringo/jsgi/response"); + +exports.setUp = exports.tearDown = function() {} + +exports.testHttpStatus = function () { + var res = new JsgiResponse(); + + var expected = new JsgiResponse({ + status: 200, + headers: { "content-type": "text/plain; charset=utf-8" }, + body: [""] + }); + + // test initial state + assert.deepEqual(res, expected); + + // Change status to 201 + res.setStatus(201); + expected.status = 201; + assert.deepEqual(res, expected); + + // Change status back to 200 + res.ok(); + expected.status = 200; + assert.deepEqual(res, expected); + + // Change status to 201 + res.created(); + expected.status = 201; + assert.deepEqual(res, expected); + + // Test other status codes + res.bad(); + expected.status = 400; + assert.deepEqual(res, expected); + + res.unauthorized(); + expected.status = 401; + assert.deepEqual(res, expected); + + res.forbidden(); + expected.status = 403; + assert.deepEqual(res, expected); + + res.notFound(); + expected.status = 404; + assert.deepEqual(res, expected); + + res.gone(); + expected.status = 410; + assert.deepEqual(res, expected); + + res.error(); + expected.status = 500; + assert.deepEqual(res, expected); + + res.unavailable(); + expected.status = 503; + assert.deepEqual(res, expected); + + res.notModified(); + expected.status = 304; + expected.headers = {}; + assert.deepEqual(res, expected); + + res.redirect("http://ringojs.org/"); + expected.status = 303 + expected.headers = { location: "http://ringojs.org/" }; + expected.body = ["See other: http://ringojs.org/"]; + assert.deepEqual(res, expected); +}; + +exports.testText = function () { + var res = new JsgiResponse(); + + var expected = new JsgiResponse({ + status: 200, + headers: { "content-type": "text/plain; charset=utf-8" }, + body: ["Hello World!", "1234"] + }); + + assert.deepEqual(res.text("Hello World!", 1234), expected); +}; + +exports.testHtml = function () { + var res = new JsgiResponse(); + + var expected = new JsgiResponse({ + status: 200, + headers: { "content-type": "text/html; charset=utf-8" }, + body: ["", "