|
|
|
@ -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);
|
|
|
|
|
},
|
|
|
|
|