Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
Eran Hammer committed Jan 19, 2014
1 parent 4b31899 commit e02016d
Show file tree
Hide file tree
Showing 3 changed files with 70 additions and 109 deletions.
1 change: 0 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@
},
"devDependencies": {
"lab": "1.x.x",
"request": "2.30.x",
"handlebars": "1.2.x",
"jade": "1.0.x",
"hapi-plugin-test": "2.x.x",
Expand Down
177 changes: 70 additions & 107 deletions test/integration/gzip.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

var Lab = require('lab');
var Zlib = require('zlib');
var Request = require('request');
var Nipple = require('nipple');
var Hapi = require('../..');


Expand All @@ -26,6 +26,9 @@ describe('Payload', function () {
var uri = '';
var message = { 'msg': 'This message is going to be gzipped.' };
var badMessage = '{ gzip this is just wrong }';
var data = '{"test":"true"}';
var zdata = null;
var ddata = null;

var postHandler = {
method: 'POST',
Expand All @@ -43,7 +46,7 @@ describe('Payload', function () {
path: '/',
handler: function (request, reply) {

reply('{"test":"true"}');
reply(data);
}
};

Expand All @@ -54,7 +57,17 @@ describe('Payload', function () {
server.start(function () {

uri = 'http://localhost:' + server.info.port;
done();

Zlib.gzip(new Buffer(data), function (err, zipped) {

zdata = zipped.toString();

Zlib.deflate(new Buffer(data), function (err, deflated) {

ddata = deflated.toString();
done();
});
});
});
});

Expand Down Expand Up @@ -157,190 +170,140 @@ describe('Payload', function () {

it('returns a gzip response on a post request when accept-encoding: gzip is requested', function (done) {

var rawBody = '{"test":"true"}';

Zlib.gzip(new Buffer(rawBody), function (err, zippedBody) {
Nipple.post(uri, { headers: { 'accept-encoding': 'gzip' }, payload: data }, function (err, res, body) {

Request.post({ url: uri, headers: { 'accept-encoding': 'gzip' }, body: rawBody }, function (err, res, body) {

expect(body).to.equal(zippedBody.toString());
done();
});
expect(err).to.not.exist;
expect(body).to.equal(zdata);
done();
});
});

it('returns a gzip response on a get request when accept-encoding: gzip is requested', function (done) {

var rawBody = '{"test":"true"}';

Request.get({ url: uri, headers: { 'accept-encoding': 'gzip' } }, function (err, res, body) {

Zlib.gzip(rawBody, function (err, zippedBody) {
Nipple.get(uri, { headers: { 'accept-encoding': 'gzip' } }, function (err, res, body) {

expect(body).to.equal(zippedBody.toString());
done();
});
expect(err).to.not.exist;
expect(body).to.equal(zdata);
done();
});
});

it('returns a gzip response on a post request when accept-encoding: * is requested', function (done) {

var rawBody = '{"test":"true"}';

Zlib.gzip(new Buffer(rawBody), function (err, zippedBody) {
Nipple.post(uri, { headers: { 'accept-encoding': '*' }, payload: data }, function (err, res, body) {

Request.post({ url: uri, headers: { 'accept-encoding': '*' }, body: rawBody }, function (err, res, body) {

expect(body).to.equal(zippedBody.toString());
done();
});
expect(err).to.not.exist;
expect(body).to.equal(zdata);
done();
});
});

it('returns a gzip response on a get request when accept-encoding: * is requested', function (done) {

var rawBody = '{"test":"true"}';

Request.get({ url: uri, headers: { 'accept-encoding': '*' } }, function (err, res, body) {
Nipple.get(uri, { headers: { 'accept-encoding': '*' } }, function (err, res, body) {

Zlib.gzip(rawBody, function (err, zippedBody) {

expect(body).to.equal(zippedBody.toString());
done();
});
expect(err).to.not.exist;
expect(body).to.equal(zdata);
done();
});
});

it('returns a deflate response on a post request when accept-encoding: deflate is requested', function (done) {

var rawBody = '{"test":"true"}';
Nipple.post(uri, { headers: { 'accept-encoding': 'deflate' }, payload: data }, function (err, res, body) {

Zlib.deflate(new Buffer(rawBody), function (err, zippedBody) {

Request.post({ url: uri, headers: { 'accept-encoding': 'deflate' }, body: rawBody }, function (err, res, body) {

expect(body).to.equal(zippedBody.toString());
done();
});
expect(err).to.not.exist;
expect(body).to.equal(ddata);
done();
});
});

it('returns a deflate response on a get request when accept-encoding: deflate is requested', function (done) {

var rawBody = '{"test":"true"}';

Request.get({ url: uri, headers: { 'accept-encoding': 'deflate' } }, function (err, res, body) {
Nipple.get(uri, { headers: { 'accept-encoding': 'deflate' } }, function (err, res, body) {

Zlib.deflate(rawBody, function (err, zippedBody) {

expect(body).to.equal(zippedBody.toString());
done();
});
expect(err).to.not.exist;
expect(body).to.equal(ddata);
done();
});
});

it('returns a gzip response on a post request when accept-encoding: gzip,q=1; deflate,q=.5 is requested', function (done) {

var rawBody = '{"test":"true"}';

Zlib.gzip(new Buffer(rawBody), function (err, zippedBody) {
Nipple.post(uri, { headers: { 'accept-encoding': 'gzip,q=1; deflate,q=.5' }, payload: data }, function (err, res, body) {

Request.post({ url: uri, headers: { 'accept-encoding': 'gzip,q=1; deflate,q=.5' }, body: rawBody }, function (err, res, body) {

expect(body).to.equal(zippedBody.toString());
done();
});
expect(err).to.not.exist;
expect(body).to.equal(zdata);
done();
});
});

it('returns a gzip response on a get request when accept-encoding: gzip,q=1; deflate,q=.5 is requested', function (done) {

var rawBody = '{"test":"true"}';

Request.get({ url: uri, headers: { 'accept-encoding': 'gzip,q=1; deflate,q=.5' } }, function (err, res, body) {

Zlib.gzip(rawBody, function (err, zippedBody) {
Nipple.get(uri, { headers: { 'accept-encoding': 'gzip,q=1; deflate,q=.5' } }, function (err, res, body) {

expect(body).to.equal(zippedBody.toString());
done();
});
expect(err).to.not.exist;
expect(body).to.equal(zdata);
done();
});
});

it('returns a deflate response on a post request when accept-encoding: deflate,q=1; gzip,q=.5 is requested', function (done) {

var rawBody = '{"test":"true"}';

Zlib.deflate(new Buffer(rawBody), function (err, zippedBody) {
Nipple.post(uri, { headers: { 'accept-encoding': 'deflate,q=1; gzip,q=.5' }, payload: data }, function (err, res, body) {

Request.post({ url: uri, headers: { 'accept-encoding': 'deflate,q=1; gzip,q=.5' }, body: rawBody }, function (err, res, body) {

expect(body).to.equal(zippedBody.toString());
done();
});
expect(err).to.not.exist;
expect(body).to.equal(ddata);
done();
});
});

it('returns a deflate response on a get request when accept-encoding: deflate,q=1; gzip,q=.5 is requested', function (done) {

var rawBody = '{"test":"true"}';
Nipple.get(uri, { headers: { 'accept-encoding': 'deflate,q=1; gzip,q=.5' } }, function (err, res, body) {

Request.get({ url: uri, headers: { 'accept-encoding': 'deflate,q=1; gzip,q=.5' } }, function (err, res, body) {

Zlib.deflate(rawBody, function (err, zippedBody) {

expect(body).to.equal(zippedBody.toString());
done();
});
expect(err).to.not.exist;
expect(body).to.equal(ddata);
done();
});
});

it('returns a gzip response on a post request when accept-encoding: deflate, gzip is requested', function (done) {

var rawBody = '{"test":"true"}';
Nipple.post(uri, { headers: { 'accept-encoding': 'deflate, gzip' }, payload: data }, function (err, res, body) {

Zlib.gzip(new Buffer(rawBody), function (err, zippedBody) {

Request.post({ url: uri, headers: { 'accept-encoding': 'deflate, gzip' }, body: rawBody }, function (err, res, body) {

expect(body).to.equal(zippedBody.toString());
done();
});
expect(err).to.not.exist;
expect(body).to.equal(zdata);
done();
});
});

it('returns a gzip response on a get request when accept-encoding: deflate, gzip is requested', function (done) {

var rawBody = '{"test":"true"}';

Request.get({ url: uri, headers: { 'accept-encoding': 'deflate, gzip' } }, function (err, res, body) {
Nipple.get(uri, { headers: { 'accept-encoding': 'deflate, gzip' } }, function (err, res, body) {

Zlib.gzip(rawBody, function (err, zippedBody) {

expect(body).to.equal(zippedBody.toString());
done();
});
expect(err).to.not.exist;
expect(body).to.equal(zdata);
done();
});
});

it('returns an identity response on a post request when accept-encoding is missing', function (done) {

var rawBody = '{"test":"true"}';
Nipple.post(uri, { payload: data }, function (err, res, body) {

Request.post({ url: uri, headers: {}, body: rawBody }, function (err, res, body) {

expect(body).to.equal(rawBody);
expect(err).to.not.exist;
expect(body).to.equal(data);
done();
});
});

it('returns an identity response on a get request when accept-encoding is missing', function (done) {

var rawBody = '{"test":"true"}';

Request.get({ url: uri, headers: {} }, function (err, res, body) {
Nipple.get(uri, {}, function (err, res, body) {

expect(body).to.equal(rawBody);
expect(err).to.not.exist;
expect(body.toString()).to.equal(data);
done();
});
});
Expand Down
1 change: 0 additions & 1 deletion test/integration/payload.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
// Load modules

var Lab = require('lab');
var Request = require('request');
var Nipple = require('nipple');
var Fs = require('fs');
var Http = require('http');
Expand Down

0 comments on commit e02016d

Please sign in to comment.