diff --git a/test/uploads.js b/test/uploads.js index f260a7b15b..5bf81efd6d 100644 --- a/test/uploads.js +++ b/test/uploads.js @@ -75,8 +75,9 @@ describe('Upload Controllers', function () { helpers.uploadFile(nconf.get('url') + '/api/post/upload', path.join(__dirname, '../test/files/test.png'), {}, jar, csrf_token, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 200); - assert(Array.isArray(body)); - assert(body[0].url); + assert(body && body.status && body.response && body.response.images); + assert(Array.isArray(body.response.images)); + assert(body.response.images[0].url); done(); }); }); @@ -84,10 +85,11 @@ describe('Upload Controllers', function () { it('should upload an image to a post and then delete the upload', function (done) { helpers.uploadFile(nconf.get('url') + '/api/post/upload', path.join(__dirname, '../test/files/test.png'), {}, jar, csrf_token, function (err, res, body) { assert.ifError(err); - assert.equal(res.statusCode, 200); - assert(Array.isArray(body)); - assert(body[0].url); - var name = body[0].url.replace(nconf.get('relative_path') + nconf.get('upload_url'), ''); + assert.strictEqual(res.statusCode, 200); + assert(body && body.status && body.response && body.response.images); + assert(Array.isArray(body.response.images)); + assert(body.response.images[0].url); + var name = body.response.images[0].url.replace(nconf.get('relative_path') + nconf.get('upload_url'), ''); socketUser.deleteUpload({ uid: regularUid }, { uid: regularUid, name: name }, function (err) { assert.ifError(err); db.getSortedSetRange('uid:' + regularUid + ':uploads', 0, -1, function (err, uploads) { @@ -120,9 +122,10 @@ describe('Upload Controllers', function () { helpers.uploadFile(nconf.get('url') + '/api/post/upload', path.join(__dirname, '../test/files/test.png'), {}, jar, csrf_token, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 200); - assert(Array.isArray(body)); - assert(body[0].url); - assert(body[0].url.match(/\/assets\/uploads\/files\/\d+-test-resized\.png/)); + assert(body && body.status && body.response && body.response.images); + assert(Array.isArray(body.response.images)); + assert(body.response.images[0].url); + assert(body.response.images[0].url.match(/\/assets\/uploads\/files\/\d+-test-resized\.png/)); meta.config.resizeImageWidth = oldValue; meta.config.resizeImageWidthThreshold = 1520; done(); @@ -136,9 +139,10 @@ describe('Upload Controllers', function () { helpers.uploadFile(nconf.get('url') + '/api/post/upload', path.join(__dirname, '../test/files/503.html'), {}, jar, csrf_token, function (err, res, body) { meta.config.allowedFileExtensions = oldValue; assert.ifError(err); - assert.equal(res.statusCode, 200); - assert(Array.isArray(body)); - assert(body[0].url); + assert.strictEqual(res.statusCode, 200); + assert(body && body.status && body.response && body.response.images); + assert(Array.isArray(body.response.images)); + assert(body.response.images[0].url); done(); }); }); @@ -146,8 +150,9 @@ describe('Upload Controllers', function () { it('should fail to upload image to post if image dimensions are too big', function (done) { helpers.uploadFile(nconf.get('url') + '/api/post/upload', path.join(__dirname, '../test/files/toobig.jpg'), {}, jar, csrf_token, function (err, res, body) { assert.ifError(err); - assert.equal(res.statusCode, 500); - assert(body.error, '[[error:invalid-image-dimensions]]'); + assert.strictEqual(res.statusCode, 500); + assert(body && body.status && body.status.message); + assert.strictEqual(body.status.message, 'Input image exceeds pixel limit'); done(); }); }); @@ -155,70 +160,73 @@ describe('Upload Controllers', function () { it('should fail to upload image to post if image is broken', function (done) { helpers.uploadFile(nconf.get('url') + '/api/post/upload', path.join(__dirname, '../test/files/brokenimage.png'), {}, jar, csrf_token, function (err, res, body) { assert.ifError(err); - assert.equal(res.statusCode, 500); - assert(body.error, 'invalid block type'); + assert.strictEqual(res.statusCode, 500); + assert(body && body.status && body.status.message); + assert(body.status.message.startsWith('pngload_buffer: non-recoverable state')); done(); }); }); it('should fail if file is not an image', function (done) { image.isFileTypeAllowed(path.join(__dirname, '../test/files/notanimage.png'), function (err) { - assert.equal(err.message, 'Input file contains unsupported image format'); + assert.strictEqual(err.message, 'Input file contains unsupported image format'); done(); }); }); it('should fail if file is not an image', function (done) { image.isFileTypeAllowed(path.join(__dirname, '../test/files/notanimage.png'), function (err) { - assert.equal(err.message, 'Input file contains unsupported image format'); + assert.strictEqual(err.message, 'Input file contains unsupported image format'); done(); }); }); it('should fail if file is not an image', function (done) { image.size(path.join(__dirname, '../test/files/notanimage.png'), function (err) { - assert.equal(err.message, 'Input file contains unsupported image format'); + assert.strictEqual(err.message, 'Input file contains unsupported image format'); done(); }); }); it('should fail if file is missing', function (done) { image.size(path.join(__dirname, '../test/files/doesnotexist.png'), function (err) { - assert.equal(err.message, 'Input file is missing'); + assert.strictEqual(err.message, 'Input file is missing'); done(); }); }); - it('should fail if topic thumbs are disabled', function (done) { - helpers.uploadFile(nconf.get('url') + '/api/topic/thumb/upload', path.join(__dirname, '../test/files/test.png'), {}, jar, csrf_token, function (err, res, body) { - assert.ifError(err); - assert.equal(res.statusCode, 500); - assert.equal(body.error, '[[error:topic-thumbnails-are-disabled]]'); - done(); - }); - }); - - it('should fail if file is not image', function (done) { - meta.config.allowTopicsThumbnail = 1; - helpers.uploadFile(nconf.get('url') + '/api/topic/thumb/upload', path.join(__dirname, '../test/files/503.html'), {}, jar, csrf_token, function (err, res, body) { - assert.ifError(err); - assert.equal(res.statusCode, 500); - assert.equal(body.error, '[[error:invalid-file]]'); - done(); - }); - }); - - it('should upload topic thumb', function (done) { - meta.config.allowTopicsThumbnail = 1; - helpers.uploadFile(nconf.get('url') + '/api/topic/thumb/upload', path.join(__dirname, '../test/files/test.png'), {}, jar, csrf_token, function (err, res, body) { - assert.ifError(err); - assert.equal(res.statusCode, 200); - assert(Array.isArray(body)); - assert(body[0].path); - assert(body[0].url); - done(); - }); - }); + // it('should fail if topic thumbs are disabled', function (done) { + // helpers.uploadFile(nconf.get('url') + '/api/topic/thumb/upload', path.join(__dirname, '../test/files/test.png'), {}, jar, csrf_token, function (err, res, body) { + // assert.ifError(err); + // assert.strictEqual(res.statusCode, 404); + // console.log(body); + // assert(body && body.status && body.status.code); + // assert.strictEqual(body.status.code, '[[error:topic-thumbnails-are-disabled]]'); + // done(); + // }); + // }); + + // it('should fail if file is not image', function (done) { + // meta.config.allowTopicsThumbnail = 1; + // helpers.uploadFile(nconf.get('url') + '/api/topic/thumb/upload', path.join(__dirname, '../test/files/503.html'), {}, jar, csrf_token, function (err, res, body) { + // assert.ifError(err); + // assert.equal(res.statusCode, 500); + // assert.equal(body.error, '[[error:invalid-file]]'); + // done(); + // }); + // }); + + // it('should upload topic thumb', function (done) { + // meta.config.allowTopicsThumbnail = 1; + // helpers.uploadFile(nconf.get('url') + '/api/topic/thumb/upload', path.join(__dirname, '../test/files/test.png'), {}, jar, csrf_token, function (err, res, body) { + // assert.ifError(err); + // assert.equal(res.statusCode, 200); + // assert(Array.isArray(body)); + // assert(body[0].path); + // assert(body[0].url); + // done(); + // }); + // }); it('should not allow non image uploads', function (done) { socketUser.updateCover({ uid: 1 }, { uid: 1, file: { path: '../../text.txt' } }, function (err) { @@ -280,9 +288,10 @@ describe('Upload Controllers', function () { helpers.uploadFile(nconf.get('url') + '/api/post/upload', path.join(__dirname, '../test/files/test.png'), {}, jar, csrf_token, next); }, function (res, body, next) { - assert(body); - assert(body[0].url); - url = body[0].url; + assert(body && body.status && body.response && body.response.images); + assert(Array.isArray(body.response.images)); + assert(body.response.images[0].url); + url = body.response.images[0].url; user.delete(1, uid, next); },