adding check and test for deflate algo
This commit is contained in:
@ -147,7 +147,8 @@ HttpConnector.prototype.request = function (params, cb) {
|
|||||||
cb(err);
|
cb(err);
|
||||||
} else {
|
} else {
|
||||||
response = Buffer.concat(buffers);
|
response = Buffer.concat(buffers);
|
||||||
if (headers['content-encoding'] && headers['content-encoding'].match(/gzip/i)) {
|
var zipHdr = headers['content-encoding'];
|
||||||
|
if (zipHdr && (zipHdr.match(/gzip/i) || zipHdr.match(/deflate/i))) {
|
||||||
zlib.unzip(response, function(gzErr, uncompressedResponse) {
|
zlib.unzip(response, function(gzErr, uncompressedResponse) {
|
||||||
if(gzErr) {
|
if(gzErr) {
|
||||||
err = gzErr;
|
err = gzErr;
|
||||||
|
|||||||
@ -304,11 +304,15 @@ describe('Http Connector', function () {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('collects the whole request body (compressed)', function (done) {
|
it('collects the whole request body (gzip compressed)', function (done) {
|
||||||
var server = nock('http://esjs.com:9200');
|
var server = nock('http://esjs.com:9200');
|
||||||
var con = new HttpConnection(new Host('http://esjs.com:9200'));
|
var con = new HttpConnection(new Host('http://esjs.com:9200'));
|
||||||
var body = '{ "USER": "doc" }';
|
var elements = [];
|
||||||
zlib.deflate(body, function(err, compressedBody) {
|
for(var i = 0; i < 500; i++) {
|
||||||
|
elements.push({ "USER": "doc" });
|
||||||
|
}
|
||||||
|
var body = JSON.stringify(elements);
|
||||||
|
zlib.gzip(body, function(err, compressedBody) {
|
||||||
server
|
server
|
||||||
.get('/users/1')
|
.get('/users/1')
|
||||||
.reply(200, compressedBody, {'Content-Encoding': 'gzip'});
|
.reply(200, compressedBody, {'Content-Encoding': 'gzip'});
|
||||||
@ -326,6 +330,32 @@ describe('Http Connector', function () {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('collects the whole request body (deflate compressed)', function (done) {
|
||||||
|
var server = nock('http://esjs.com:9200');
|
||||||
|
var con = new HttpConnection(new Host('http://esjs.com:9200'));
|
||||||
|
var elements = [];
|
||||||
|
for(var i = 0; i < 500; i++) {
|
||||||
|
elements.push({ "USER": "doc" });
|
||||||
|
}
|
||||||
|
var body = JSON.stringify(elements);
|
||||||
|
zlib.deflate(body, function(err, compressedBody) {
|
||||||
|
server
|
||||||
|
.get('/users/1')
|
||||||
|
.reply(200, compressedBody, {'Content-Encoding': 'deflate'});
|
||||||
|
|
||||||
|
con.request({
|
||||||
|
method: 'GET',
|
||||||
|
path: '/users/1'
|
||||||
|
}, function (err, resp, status) {
|
||||||
|
expect(err).to.be(undefined);
|
||||||
|
expect(resp).to.eql(body);
|
||||||
|
expect(status).to.eql(200);
|
||||||
|
server.done();
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
it('Can handle uncompress errors', function (done) {
|
it('Can handle uncompress errors', function (done) {
|
||||||
var server = nock('http://esjs.com:9200');
|
var server = nock('http://esjs.com:9200');
|
||||||
var con = new HttpConnection(new Host('http://esjs.com:9200'));
|
var con = new HttpConnection(new Host('http://esjs.com:9200'));
|
||||||
|
|||||||
Reference in New Issue
Block a user