From 31b59b477459d4f26ed8ef089a0e5553fb6a332b Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Tue, 28 Mar 2017 21:19:46 +0200 Subject: [PATCH] Server: add nsfw attribute --- server/controllers/api/remote/videos.js | 2 + server/controllers/api/videos.js | 2 + .../custom-validators/remote/videos.js | 1 + server/helpers/custom-validators/videos.js | 5 ++ server/initializers/constants.js | 2 +- .../migrations/0040-video-nsfw.js | 34 ++++++++++ server/middlewares/validators/videos.js | 2 + server/models/video.js | 13 ++++ server/tests/api/check-params/videos.js | 65 +++++++++++++++++++ server/tests/api/multiple-pods.js | 10 +++ server/tests/api/single-pod.js | 10 +++ server/tests/real-world/real-world.js | 1 + server/tests/real-world/tools/upload.js | 6 +- server/tests/utils/videos.js | 3 + 14 files changed, 154 insertions(+), 2 deletions(-) create mode 100644 server/initializers/migrations/0040-video-nsfw.js diff --git a/server/controllers/api/remote/videos.js b/server/controllers/api/remote/videos.js index a3e1189c7..ea1eeb146 100644 --- a/server/controllers/api/remote/videos.js +++ b/server/controllers/api/remote/videos.js @@ -296,6 +296,7 @@ function addRemoteVideo (videoToCreateData, fromPod, finalCallback) { infoHash: videoToCreateData.infoHash, category: videoToCreateData.category, licence: videoToCreateData.licence, + nsfw: videoToCreateData.nsfw, description: videoToCreateData.description, authorId: author.id, duration: videoToCreateData.duration, @@ -394,6 +395,7 @@ function updateRemoteVideo (videoAttributesToUpdate, fromPod, finalCallback) { videoInstance.set('name', videoAttributesToUpdate.name) videoInstance.set('category', videoAttributesToUpdate.category) videoInstance.set('licence', videoAttributesToUpdate.licence) + videoInstance.set('nsfw', videoAttributesToUpdate.nsfw) videoInstance.set('description', videoAttributesToUpdate.description) videoInstance.set('infoHash', videoAttributesToUpdate.infoHash) videoInstance.set('duration', videoAttributesToUpdate.duration) diff --git a/server/controllers/api/videos.js b/server/controllers/api/videos.js index 375e89387..3d616e33d 100644 --- a/server/controllers/api/videos.js +++ b/server/controllers/api/videos.js @@ -313,6 +313,7 @@ function addVideo (req, res, videoFile, finalCallback) { extname: path.extname(videoFile.filename), category: videoInfos.category, licence: videoInfos.licence, + nsfw: videoInfos.nsfw, description: videoInfos.description, duration: videoFile.duration, authorId: author.id @@ -428,6 +429,7 @@ function updateVideo (req, res, finalCallback) { if (videoInfosToUpdate.name) videoInstance.set('name', videoInfosToUpdate.name) if (videoInfosToUpdate.category) videoInstance.set('category', videoInfosToUpdate.category) if (videoInfosToUpdate.licence) videoInstance.set('licence', videoInfosToUpdate.licence) + if (videoInfosToUpdate.nsfw) videoInstance.set('nsfw', videoInfosToUpdate.nsfw) if (videoInfosToUpdate.description) videoInstance.set('description', videoInfosToUpdate.description) videoInstance.save(options).asCallback(function (err) { diff --git a/server/helpers/custom-validators/remote/videos.js b/server/helpers/custom-validators/remote/videos.js index 9a9055676..df8f8a22e 100644 --- a/server/helpers/custom-validators/remote/videos.js +++ b/server/helpers/custom-validators/remote/videos.js @@ -87,6 +87,7 @@ function isCommonVideoAttributesValid (video) { videosValidators.isVideoDateValid(video.updatedAt) && videosValidators.isVideoCategoryValid(video.category) && videosValidators.isVideoLicenceValid(video.licence) && + videosValidators.isVideoNSFWValid(video.nsfw) && videosValidators.isVideoDescriptionValid(video.description) && videosValidators.isVideoDurationValid(video.duration) && videosValidators.isVideoInfoHashValid(video.infoHash) && diff --git a/server/helpers/custom-validators/videos.js b/server/helpers/custom-validators/videos.js index 8495e9665..d0b08e7ac 100644 --- a/server/helpers/custom-validators/videos.js +++ b/server/helpers/custom-validators/videos.js @@ -15,6 +15,7 @@ const videosValidators = { isVideoDateValid, isVideoCategoryValid, isVideoLicenceValid, + isVideoNSFWValid, isVideoDescriptionValid, isVideoDurationValid, isVideoInfoHashValid, @@ -50,6 +51,10 @@ function isVideoLicenceValid (value) { return constants.VIDEO_LICENCES[value] !== undefined } +function isVideoNSFWValid (value) { + return validator.isBoolean(value) +} + function isVideoDescriptionValid (value) { return validator.isLength(value, VIDEOS_CONSTRAINTS_FIELDS.DESCRIPTION) } diff --git a/server/initializers/constants.js b/server/initializers/constants.js index af494cb66..f3799ba0f 100644 --- a/server/initializers/constants.js +++ b/server/initializers/constants.js @@ -5,7 +5,7 @@ const path = require('path') // --------------------------------------------------------------------------- -const LAST_MIGRATION_VERSION = 35 +const LAST_MIGRATION_VERSION = 40 // --------------------------------------------------------------------------- diff --git a/server/initializers/migrations/0040-video-nsfw.js b/server/initializers/migrations/0040-video-nsfw.js new file mode 100644 index 000000000..7f3692b28 --- /dev/null +++ b/server/initializers/migrations/0040-video-nsfw.js @@ -0,0 +1,34 @@ +'use strict' + +const waterfall = require('async/waterfall') + +// utils = { transaction, queryInterface, sequelize, Sequelize } +exports.up = function (utils, finalCallback) { + const q = utils.queryInterface + const Sequelize = utils.Sequelize + + const data = { + type: Sequelize.BOOLEAN, + allowNull: false, + defaultValue: false + } + + waterfall([ + + function addNSFWColumn (callback) { + q.addColumn('Videos', 'nsfw', data, { transaction: utils.transaction }).asCallback(function (err) { + return callback(err) + }) + }, + + function nullOnDefault (callback) { + data.defaultValue = null + + q.changeColumn('Videos', 'nsfw', data, { transaction: utils.transaction }).asCallback(callback) + } + ], finalCallback) +} + +exports.down = function (options, callback) { + throw new Error('Not implemented.') +} diff --git a/server/middlewares/validators/videos.js b/server/middlewares/validators/videos.js index 6cc0c2565..095fc382b 100644 --- a/server/middlewares/validators/videos.js +++ b/server/middlewares/validators/videos.js @@ -23,6 +23,7 @@ function videosAdd (req, res, next) { req.checkBody('name', 'Should have a valid name').isVideoNameValid() req.checkBody('category', 'Should have a valid category').isVideoCategoryValid() req.checkBody('licence', 'Should have a valid licence').isVideoLicenceValid() + req.checkBody('nsfw', 'Should have a valid NSFW attribute').isVideoNSFWValid() req.checkBody('description', 'Should have a valid description').isVideoDescriptionValid() req.checkBody('tags', 'Should have correct tags').optional().isVideoTagsValid() @@ -51,6 +52,7 @@ function videosUpdate (req, res, next) { req.checkBody('name', 'Should have a valid name').optional().isVideoNameValid() req.checkBody('category', 'Should have a valid category').optional().isVideoCategoryValid() req.checkBody('licence', 'Should have a valid licence').optional().isVideoLicenceValid() + req.checkBody('nsfw', 'Should have a valid NSFW attribute').optional().isVideoNSFWValid() req.checkBody('description', 'Should have a valid description').optional().isVideoDescriptionValid() req.checkBody('tags', 'Should have correct tags').optional().isVideoTagsValid() diff --git a/server/models/video.js b/server/models/video.js index 0f44b98c3..86d6438c8 100644 --- a/server/models/video.js +++ b/server/models/video.js @@ -71,6 +71,16 @@ module.exports = function (sequelize, DataTypes) { } } }, + nsfw: { + type: DataTypes.BOOLEAN, + allowNull: false, + validate: { + nsfwValid: function (value) { + const res = customVideosValidators.isVideoNSFWValid(value) + if (res === false) throw new Error('Video nsfw attribute is not valid.') + } + } + }, description: { type: DataTypes.STRING, allowNull: false, @@ -395,6 +405,7 @@ function toFormatedJSON () { categoryLabel, licence: this.licence, licenceLabel, + nsfw: this.nsfw, description: this.description, podHost, isLocal: this.isOwned(), @@ -428,6 +439,7 @@ function toAddRemoteJSON (callback) { name: self.name, category: self.category, licence: self.licence, + nsfw: self.nsfw, description: self.description, infoHash: self.infoHash, remoteId: self.id, @@ -452,6 +464,7 @@ function toUpdateRemoteJSON (callback) { name: this.name, category: this.category, licence: this.licence, + nsfw: this.nsfw, description: this.description, infoHash: this.infoHash, remoteId: this.id, diff --git a/server/tests/api/check-params/videos.js b/server/tests/api/check-params/videos.js index e58f9893b..551fe687b 100644 --- a/server/tests/api/check-params/videos.js +++ b/server/tests/api/check-params/videos.js @@ -114,6 +114,7 @@ describe('Test videos API validator', function () { const data = { category: 5, licence: 1, + nsfw: false, description: 'my super description', tags: [ 'tag1', 'tag2' ] } @@ -128,6 +129,7 @@ describe('Test videos API validator', function () { name: 'My very very very very very very very very very very very very very very very very long name', category: 5, licence: 1, + nsfw: false, description: 'my super description', tags: [ 'tag1', 'tag2' ] } @@ -141,6 +143,7 @@ describe('Test videos API validator', function () { const data = { name: 'my super name', licence: 1, + nsfw: false, description: 'my super description', tags: [ 'tag1', 'tag2' ] } @@ -155,6 +158,7 @@ describe('Test videos API validator', function () { name: 'my super name', category: 125, licence: 1, + nsfw: false, description: 'my super description', tags: [ 'tag1', 'tag2' ] } @@ -168,6 +172,7 @@ describe('Test videos API validator', function () { const data = { name: 'my super name', category: 5, + nsfw: false, description: 'my super description', tags: [ 'tag1', 'tag2' ] } @@ -182,6 +187,36 @@ describe('Test videos API validator', function () { name: 'my super name', category: 5, licence: 125, + nsfw: false, + description: 'my super description', + tags: [ 'tag1', 'tag2' ] + } + const attach = { + 'videofile': pathUtils.join(__dirname, '..', 'fixtures', 'video_short.webm') + } + requestsUtils.makePostUploadRequest(server.url, path, server.accessToken, data, attach, done) + }) + + it('Should fail without nsfw attribute', function (done) { + const data = { + name: 'my super name', + category: 5, + licence: 4, + description: 'my super description', + tags: [ 'tag1', 'tag2' ] + } + const attach = { + 'videofile': pathUtils.join(__dirname, '..', 'fixtures', 'video_short.webm') + } + requestsUtils.makePostUploadRequest(server.url, path, server.accessToken, data, attach, done) + }) + + it('Should fail with a bad nsfw attribue', function (done) { + const data = { + name: 'my super name', + category: 5, + licence: 4, + nsfw: 2, description: 'my super description', tags: [ 'tag1', 'tag2' ] } @@ -196,6 +231,7 @@ describe('Test videos API validator', function () { name: 'my super name', category: 5, licence: 1, + nsfw: false, tags: [ 'tag1', 'tag2' ] } const attach = { @@ -209,6 +245,7 @@ describe('Test videos API validator', function () { name: 'my super name', category: 5, licence: 1, + nsfw: false, description: 'my super description which is very very very very very very very very very very very very very very' + 'very very very very very very very very very very very very very very very very very very very very very' + 'very very very very very very very very very very very very very very very long', @@ -225,6 +262,7 @@ describe('Test videos API validator', function () { name: 'my super name', category: 5, licence: 1, + nsfw: false, description: 'my super description', tags: [ 'tag1', 'tag2', 'tag3', 'tag4' ] } @@ -239,6 +277,7 @@ describe('Test videos API validator', function () { name: 'my super name', category: 5, licence: 1, + nsfw: false, description: 'my super description', tags: [ 'tag1', 't' ] } @@ -253,6 +292,7 @@ describe('Test videos API validator', function () { name: 'my super name', category: 5, licence: 1, + nsfw: false, description: 'my super description', tags: [ 'mysupertagtoolong', 'tag1' ] } @@ -267,6 +307,7 @@ describe('Test videos API validator', function () { name: 'my super name', category: 5, licence: 1, + nsfw: false, description: 'my super description', tags: [ 'tag1', 'tag2' ] } @@ -279,6 +320,7 @@ describe('Test videos API validator', function () { name: 'my super name', category: 5, licence: 1, + nsfw: false, description: 'my super description', tags: [ 'tag1', 'tag2' ] } @@ -293,6 +335,7 @@ describe('Test videos API validator', function () { name: 'my super name', category: 5, licence: 1, + nsfw: false, description: 'my super description', tags: [ 'tag1', 'tag2' ] } @@ -307,6 +350,7 @@ describe('Test videos API validator', function () { name: 'my super name', category: 5, licence: 1, + nsfw: false, description: 'my super description', tags: [ 'tag1', 'tag2' ] } @@ -345,6 +389,7 @@ describe('Test videos API validator', function () { const data = { category: 5, licence: 2, + nsfw: false, description: 'my super description', tags: [ 'tag1', 'tag2' ] } @@ -355,6 +400,7 @@ describe('Test videos API validator', function () { const data = { category: 5, licence: 2, + nsfw: false, description: 'my super description', tags: [ 'tag1', 'tag2' ] } @@ -366,6 +412,7 @@ describe('Test videos API validator', function () { name: 'My very very very very very very very very very very very very very very very very long name', category: 5, licence: 2, + nsfw: false, description: 'my super description', tags: [ 'tag1', 'tag2' ] } @@ -377,6 +424,7 @@ describe('Test videos API validator', function () { name: 'my super name', category: 128, licence: 2, + nsfw: false, description: 'my super description', tags: [ 'tag1', 'tag2' ] } @@ -388,6 +436,19 @@ describe('Test videos API validator', function () { name: 'my super name', category: 5, licence: 128, + nsfw: false, + description: 'my super description', + tags: [ 'tag1', 'tag2' ] + } + requestsUtils.makePutBodyRequest(server.url, path + videoId, server.accessToken, data, done) + }) + + it('Should fail with a bad nsfw attribute', function (done) { + const data = { + name: 'my super name', + category: 5, + licence: 5, + nsfw: -4, description: 'my super description', tags: [ 'tag1', 'tag2' ] } @@ -399,6 +460,7 @@ describe('Test videos API validator', function () { name: 'my super name', category: 5, licence: 2, + nsfw: false, description: 'my super description which is very very very very very very very very very very very very very very' + 'very very very very very very very very very very very very very very very very very very very very very' + 'very very very very very very very very very very very very very very very long', @@ -412,6 +474,7 @@ describe('Test videos API validator', function () { name: 'my super name', category: 5, licence: 2, + nsfw: false, description: 'my super description', tags: [ 'tag1', 'tag2', 'tag3', 'tag4' ] } @@ -423,6 +486,7 @@ describe('Test videos API validator', function () { name: 'my super name', category: 5, licence: 2, + nsfw: false, description: 'my super description', tags: [ 'tag1', 't' ] } @@ -434,6 +498,7 @@ describe('Test videos API validator', function () { name: 'my super name', category: 5, licence: 2, + nsfw: false, description: 'my super description', tags: [ 'mysupertagtoolong', 'tag1' ] } diff --git a/server/tests/api/multiple-pods.js b/server/tests/api/multiple-pods.js index 69ef38c20..cc4f7be70 100644 --- a/server/tests/api/multiple-pods.js +++ b/server/tests/api/multiple-pods.js @@ -84,6 +84,7 @@ describe('Test multiple pods', function () { name: 'my super name for pod 1', category: 5, licence: 4, + nsfw: true, description: 'my super description for pod 1', tags: [ 'tag1p1', 'tag2p1' ], fixture: 'video_short1.webm' @@ -112,6 +113,7 @@ describe('Test multiple pods', function () { expect(video.categoryLabel).to.equal('Sports') expect(video.licence).to.equal(4) expect(video.licenceLabel).to.equal('Attribution - Non Commercial') + expect(video.nsfw).to.be.truthy expect(video.description).to.equal('my super description for pod 1') expect(video.podHost).to.equal('localhost:9001') expect(video.magnetUri).to.exist @@ -155,6 +157,7 @@ describe('Test multiple pods', function () { name: 'my super name for pod 2', category: 4, licence: 3, + nsfw: true, description: 'my super description for pod 2', tags: [ 'tag1p2', 'tag2p2', 'tag3p2' ], fixture: 'video_short2.webm' @@ -183,6 +186,7 @@ describe('Test multiple pods', function () { expect(video.categoryLabel).to.equal('Art') expect(video.licence).to.equal(3) expect(video.licenceLabel).to.equal('Attribution - No Derivatives') + expect(video.nsfw).to.be.falsy expect(video.description).to.equal('my super description for pod 2') expect(video.podHost).to.equal('localhost:9002') expect(video.magnetUri).to.exist @@ -226,6 +230,7 @@ describe('Test multiple pods', function () { name: 'my super name for pod 3', category: 6, licence: 5, + nsfw: true, description: 'my super description for pod 3', tags: [ 'tag1p3' ], fixture: 'video_short3.webm' @@ -237,6 +242,7 @@ describe('Test multiple pods', function () { name: 'my super name for pod 3-2', category: 7, licence: 6, + nsfw: false, description: 'my super description for pod 3-2', tags: [ 'tag2p3', 'tag3p3', 'tag4p3' ], fixture: 'video_short.webm' @@ -275,6 +281,7 @@ describe('Test multiple pods', function () { expect(video1.categoryLabel).to.equal('Travels') expect(video1.licence).to.equal(5) expect(video1.licenceLabel).to.equal('Attribution - Non Commercial - Share Alike') + expect(video1.nsfw).to.be.truthy expect(video1.description).to.equal('my super description for pod 3') expect(video1.podHost).to.equal('localhost:9003') expect(video1.magnetUri).to.exist @@ -289,6 +296,7 @@ describe('Test multiple pods', function () { expect(video2.categoryLabel).to.equal('Gaming') expect(video2.licence).to.equal(6) expect(video2.licenceLabel).to.equal('Attribution - Non Commercial - No Derivatives') + expect(video2.nsfw).to.be.falsy expect(video2.description).to.equal('my super description for pod 3-2') expect(video2.podHost).to.equal('localhost:9003') expect(video2.magnetUri).to.exist @@ -638,6 +646,7 @@ describe('Test multiple pods', function () { name: 'my super video updated', category: 10, licence: 7, + nsfw: true, description: 'my super description updated', tags: [ 'tagup1', 'tagup2' ] } @@ -668,6 +677,7 @@ describe('Test multiple pods', function () { expect(videoUpdated.categoryLabel).to.equal('Entertainment') expect(videoUpdated.licence).to.equal(7) expect(videoUpdated.licenceLabel).to.equal('Public Domain Dedication') + expect(videoUpdated.nsfw).to.be.truthy expect(videoUpdated.description).to.equal('my super description updated') expect(videoUpdated.tags).to.deep.equal([ 'tagup1', 'tagup2' ]) expect(miscsUtils.dateIsValid(videoUpdated.updatedAt, 20000)).to.be.true diff --git a/server/tests/api/single-pod.js b/server/tests/api/single-pod.js index 6d7ebdc9b..aff6d56ec 100644 --- a/server/tests/api/single-pod.js +++ b/server/tests/api/single-pod.js @@ -86,6 +86,7 @@ describe('Test a single pod', function () { const videoAttributes = { name: 'my super name', category: 2, + nsfw: true, licence: 6, tags: [ 'tag1', 'tag2', 'tag3' ] } @@ -109,6 +110,7 @@ describe('Test a single pod', function () { expect(video.categoryLabel).to.equal('Films') expect(video.licence).to.equal(6) expect(video.licenceLabel).to.equal('Attribution - Non Commercial - No Derivatives') + expect(video.nsfw).to.be.truthy expect(video.description).to.equal('my super description') expect(video.podHost).to.equal('localhost:9001') expect(video.magnetUri).to.exist @@ -148,6 +150,7 @@ describe('Test a single pod', function () { expect(video.categoryLabel).to.equal('Films') expect(video.licence).to.equal(6) expect(video.licenceLabel).to.equal('Attribution - Non Commercial - No Derivatives') + expect(video.nsfw).to.be.truthy expect(video.description).to.equal('my super description') expect(video.podHost).to.equal('localhost:9001') expect(video.magnetUri).to.exist @@ -191,6 +194,7 @@ describe('Test a single pod', function () { expect(video.categoryLabel).to.equal('Films') expect(video.licence).to.equal(6) expect(video.licenceLabel).to.equal('Attribution - Non Commercial - No Derivatives') + expect(video.nsfw).to.be.truthy expect(video.description).to.equal('my super description') expect(video.podHost).to.equal('localhost:9001') expect(video.author).to.equal('root') @@ -250,6 +254,7 @@ describe('Test a single pod', function () { expect(video.categoryLabel).to.equal('Films') expect(video.licence).to.equal(6) expect(video.licenceLabel).to.equal('Attribution - Non Commercial - No Derivatives') + expect(video.nsfw).to.be.truthy expect(video.description).to.equal('my super description') expect(video.podHost).to.equal('localhost:9001') expect(video.author).to.equal('root') @@ -347,6 +352,7 @@ describe('Test a single pod', function () { description: video + ' description', category: 2, licence: 1, + nsfw: true, tags: [ 'tag1', 'tag2', 'tag3' ], fixture: video } @@ -572,6 +578,7 @@ describe('Test a single pod', function () { name: 'my super video updated', category: 4, licence: 2, + nsfw: false, description: 'my super description updated', tags: [ 'tagup1', 'tagup2' ] } @@ -591,6 +598,7 @@ describe('Test a single pod', function () { expect(video.categoryLabel).to.equal('Art') expect(video.licence).to.equal(2) expect(video.licenceLabel).to.equal('Attribution - Share Alike') + expect(video.nsfw).to.be.truthy expect(video.description).to.equal('my super description updated') expect(video.podHost).to.equal('localhost:9001') expect(video.author).to.equal('root') @@ -632,6 +640,7 @@ describe('Test a single pod', function () { expect(video.categoryLabel).to.equal('Art') expect(video.licence).to.equal(2) expect(video.licenceLabel).to.equal('Attribution - Share Alike') + expect(video.nsfw).to.be.truthy expect(video.description).to.equal('my super description updated') expect(video.podHost).to.equal('localhost:9001') expect(video.author).to.equal('root') @@ -663,6 +672,7 @@ describe('Test a single pod', function () { expect(video.categoryLabel).to.equal('Art') expect(video.licence).to.equal(2) expect(video.licenceLabel).to.equal('Attribution - Share Alike') + expect(video.nsfw).to.be.truthy expect(video.description).to.equal('hello everybody') expect(video.podHost).to.equal('localhost:9001') expect(video.author).to.equal('root') diff --git a/server/tests/real-world/real-world.js b/server/tests/real-world/real-world.js index 7777768c8..ddce45cde 100644 --- a/server/tests/real-world/real-world.js +++ b/server/tests/real-world/real-world.js @@ -205,6 +205,7 @@ function upload (servers, numServer, callback) { const videoAttributes = { name: Date.now() + ' name', category: 4, + nsfw: false, licence: 2, description: Date.now() + ' description', tags: [ Date.now().toString().substring(0, 5) + 't1', Date.now().toString().substring(0, 5) + 't2' ], diff --git a/server/tests/real-world/tools/upload.js b/server/tests/real-world/tools/upload.js index 7b97ebf0b..4b6dbe603 100644 --- a/server/tests/real-world/tools/upload.js +++ b/server/tests/real-world/tools/upload.js @@ -9,6 +9,7 @@ program .option('-u, --url ', 'Server url') .option('-a, --access-token ', 'Access token') .option('-n, --name ', 'Video name') + .option('-x, --nsfw', 'Video is Not Safe For Work') .option('-c, --category ', 'Category number') .option('-l, --licence ', 'Licence number') .option('-d, --description ', 'Video description') @@ -22,6 +23,7 @@ if ( !program.name || !program.category || !program.licence || + !program.nsfw || !program.description || !program.tags || !Array.isArray(program.tags) || @@ -40,6 +42,7 @@ fs.access(program.file, fs.F_OK, function (err) { program.name, program.category, program.licence, + program.nsfw, program.description, program.tags, program.file @@ -52,13 +55,14 @@ function list (val) { return val.split(',') } -function upload (url, accessToken, name, category, licence, description, tags, fixture) { +function upload (url, accessToken, name, category, licence, nsfw, description, tags, fixture) { console.log('Uploading %s video...', program.name) const videoAttributes = { name, category, licence, + nsfw, description, tags, fixture diff --git a/server/tests/utils/videos.js b/server/tests/utils/videos.js index d1e0b7b14..3c7d99eec 100644 --- a/server/tests/utils/videos.js +++ b/server/tests/utils/videos.js @@ -218,6 +218,7 @@ function uploadVideo (url, accessToken, videoAttributesArg, specialStatus, end) name: 'my super video', category: 5, licence: 4, + nsfw: true, description: 'my super description', tags: [ 'tag' ], fixture: 'video_short.webm' @@ -231,6 +232,7 @@ function uploadVideo (url, accessToken, videoAttributesArg, specialStatus, end) .field('name', attributes.name) .field('category', attributes.category) .field('licence', attributes.licence) + .field('nsfw', attributes.nsfw) .field('description', attributes.description) for (let i = 0; i < attributes.tags.length; i++) { @@ -265,6 +267,7 @@ function updateVideo (url, accessToken, id, attributes, specialStatus, end) { if (attributes.name) req.field('name', attributes.name) if (attributes.category) req.field('category', attributes.category) if (attributes.licence) req.field('licence', attributes.licence) + if (attributes.nsfw) req.field('nsfw', attributes.nsfw) if (attributes.description) req.field('description', attributes.description) if (attributes.tags) {