diff --git a/lib/node-get/node-get.js b/lib/node-get/node-get.js index f1a8d22..c9b5a4a 100644 --- a/lib/node-get/node-get.js +++ b/lib/node-get/node-get.js @@ -206,7 +206,7 @@ Get.prototype.asString = function(callback) { switch ((response.headers['content-type'] || '').toLowerCase()) { case 'binary/octet-stream': case 'application/octet-stream': - return callback(new Error("Can't download binary file")); + return callback(new Error("Can't download binary file as string")); default: // TODO: respect Content-Transfer-Encoding header response.setEncoding(this.guessEncoding(this.uri)); @@ -232,7 +232,7 @@ Get.prototype.asString = function(callback) { // - @param {Function} callback. Get.prototype.asBuffer = function(callback) { this.perform(function(err, response) { - if (err) { callback(err); return; } + if (err) return callback(err); // Don't set an encoding. diff --git a/test/basic.test.js b/test/basic.test.js index 6c712dd..332f162 100644 --- a/test/basic.test.js +++ b/test/basic.test.js @@ -21,49 +21,51 @@ exports['test constructor'] = function(beforeExit) { var completed = { perform: 0, toDisk: 0, - asString: 0 + asString: 0, + asBuffer: 0 }; var files = [ { url: 'http://tilemill-data.s3.amazonaws.com/couchsurf.kml', - bin: false, - md5: '96b31a84f667007a2296edd78fb77c28' - } /*, - { - url: 'http://tilemill-data.s3.amazonaws.com/couchsurf.kml', - bin: false - }, - { - url: 'http://tilemill-data.s3.amazonaws.com/images/paperfolds_256.png', bin: true, - md5: 'a99502016d4e2124cf2dc4775aafc256' - }, - { - url: 'http://tilemill-data.s3.amazonaws.com/test_data/ipsum.json', - bin: false - }, - { - url: 'http://tilemill-data.s3.amazonaws.com/test_data/README.txt', - bin: false - }, - { - url: 'http://tilemill-data.s3.amazonaws.com/test_data/shape_demo.zip', - bin: true - }, - { - url: 'http://tilemill-data.s3.amazonaws.com/nasa_raster/lasvegas_tm5_12jan09_crop_geo_merc_small.tif', - bin: true - }, - { - url: 'http://dcatlas.dcgis.dc.gov/catalog/download.asp?downloadID=2315&downloadTYPE=ESRI', - bin: true + md5: '96b31a84f667007a2296edd78fb77c28' }, - { - url: 'http://www.gdal.org/ogr/drv_sqlite.html', - bin: false - } - */ + // { + // url: 'http://tilemill-data.s3.amazonaws.com/images/paperfolds_256.png', + // bin: true, + // md5: 'a99502016d4e2124cf2dc4775aafc256' + // }, + // { + // url: 'http://tilemill-data.s3.amazonaws.com/test_data/ipsum.json', + // bin: true, + // md5: '651ea0ff31786e9be9012112b21573be' + // }, + // { + // url: 'http://tilemill-data.s3.amazonaws.com/test_data/README.txt', + // bin: false, + // md5: '46d883d71e795d7c8a65c9b1a6673dd2' + // }, + // { + // url: 'http://tilemill-data.s3.amazonaws.com/test_data/shape_demo.zip', + // bin: true, + // md5: 'b5ff3545922cc9e0c750fb7263a7a3d3' + // }, + // { + // url: 'http://tilemill-data.s3.amazonaws.com/nasa_raster/lasvegas_tm5_12jan09_crop_geo_merc_small.tif', + // bin: true, + // md5: '3b97134839042fcab0d0ee8ea76f73c4' + // }, + // { + // url: 'http://dcatlas.dcgis.dc.gov/catalog/download.asp?downloadID=2315&downloadTYPE=ESRI', + // bin: true, + // md5: 'ac629823b373e7308087264d9f00ef5c' + // }, + // { + // url: 'http://www.gdal.org/ogr/drv_sqlite.html', + // bin: false, + // md5: '65d2a7f9e8bc5b8861a06af6597d7650' + // } ]; files.forEach(function(reference, i) { @@ -79,7 +81,7 @@ exports['test constructor'] = function(beforeExit) { if (reference.error) { assert.eql(err, reference.error, 'This should have had an error'); } else if (err) { - throw err; + throw new Error(err); } else { result.on('data', function(chunk) { body.push(chunk); @@ -96,7 +98,7 @@ exports['test constructor'] = function(beforeExit) { if (reference.error) { assert.equal(err.message, reference.error); } else if (err) { - throw err; + throw new Error(err); } else { assert.equal(md5(fs.readFileSync(result)), reference.md5); } @@ -105,20 +107,24 @@ exports['test constructor'] = function(beforeExit) { new get(req).asString(function(err, result) { completed.asString++; - if (!reference.bin && err) { - assert.equal(err.message, "Can't download binary file"); + if (reference.bin && err) { + assert.equal(err.message, "Can't download binary file as string"); } else if (reference.error) { assert.equal(err.message, reference.error); } else if (err) { - throw err; + throw new Error(err); } else { assert.equal(md5(result), reference.md5); } }); new get(req).asBuffer(function(err, result) { + completed.asBuffer++; + if (reference.error) { - assert.eql(err, reference.error); + assert.equal(err.message, reference.error); + } else if (err) { + throw err; } else { assert.equal(md5(result), reference.md5); } @@ -129,7 +135,8 @@ exports['test constructor'] = function(beforeExit) { assert.deepEqual(completed, { perform: files.length, toDisk: files.length, - asString: files.length + asString: files.length, + asBuffer: files.length }); }); };