From b4c5ac97ffa3e16f837b7e2d72291656eefac812 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Sun, 26 Mar 2017 18:39:01 +0200 Subject: [PATCH] Server: refractoring upload/update video test utils --- server/tests/api/check-params/users.js | 8 +-- server/tests/api/check-params/video-abuses.js | 8 +-- server/tests/api/friends-advanced.js | 10 ++- server/tests/api/index.js | 1 + server/tests/api/multiple-pods.js | 68 +++++++++++-------- server/tests/api/requests.js | 26 ++++--- server/tests/api/single-pod.js | 51 ++++++++------ server/tests/api/users.js | 32 +++------ server/tests/api/video-abuse.js | 22 +++--- server/tests/real-world/real-world.js | 25 ++++--- server/tests/real-world/tools/upload.js | 11 ++- server/tests/utils/videos.js | 42 +++++++----- 12 files changed, 158 insertions(+), 146 deletions(-) diff --git a/server/tests/api/check-params/users.js b/server/tests/api/check-params/users.js index f6fbcf555..b04f9f4a6 100644 --- a/server/tests/api/check-params/users.js +++ b/server/tests/api/check-params/users.js @@ -50,12 +50,8 @@ describe('Test users API validators', function () { usersUtils.createUser(server.url, server.accessToken, username, password, next) }, function (next) { - const name = 'my super name for pod' - const category = 5 - const description = 'my super description for pod' - const tags = [ 'tag' ] - const file = 'video_short2.webm' - videosUtils.uploadVideo(server.url, server.accessToken, name, category, description, tags, file, next) + const videoAttributes = {} + videosUtils.uploadVideo(server.url, server.accessToken, videoAttributes, next) }, function (next) { videosUtils.getVideosList(server.url, function (err, res) { diff --git a/server/tests/api/check-params/video-abuses.js b/server/tests/api/check-params/video-abuses.js index 061b80be8..6dc5a7090 100644 --- a/server/tests/api/check-params/video-abuses.js +++ b/server/tests/api/check-params/video-abuses.js @@ -61,12 +61,8 @@ describe('Test video abuses API validators', function () { }, // Upload some videos on each pods function (next) { - const name = 'my super name for pod' - const category = 2 - const description = 'my super description for pod' - const tags = [ 'tag' ] - const file = 'video_short2.webm' - videosUtils.uploadVideo(server.url, server.accessToken, name, category, description, tags, file, next) + const videoAttributes = {} + videosUtils.uploadVideo(server.url, server.accessToken, videoAttributes, next) }, function (next) { videosUtils.getVideosList(server.url, function (err, res) { diff --git a/server/tests/api/friends-advanced.js b/server/tests/api/friends-advanced.js index 584c38c24..afa699914 100644 --- a/server/tests/api/friends-advanced.js +++ b/server/tests/api/friends-advanced.js @@ -31,14 +31,12 @@ describe('Test advanced friends', function () { } function uploadVideo (podNumber, callback) { - const name = 'my super video' - const category = 5 - const description = 'my super description' - const tags = [ 'tag1', 'tag2' ] - const fixture = 'video_short.webm' + const videoAttributes = { + tags: [ 'tag1', 'tag2' ] + } const server = servers[podNumber - 1] - return videosUtils.uploadVideo(server.url, server.accessToken, name, category, description, tags, fixture, callback) + return videosUtils.uploadVideo(server.url, server.accessToken, videoAttributes, callback) } function getVideos (podNumber, callback) { diff --git a/server/tests/api/index.js b/server/tests/api/index.js index dc6ef92ab..fcd12617e 100644 --- a/server/tests/api/index.js +++ b/server/tests/api/index.js @@ -7,4 +7,5 @@ require('./friends-basic') require('./users') require('./single-pod') require('./multiple-pods') +require('./requests') require('./friends-advanced') diff --git a/server/tests/api/multiple-pods.js b/server/tests/api/multiple-pods.js index eccc9ecef..d5c723b3b 100644 --- a/server/tests/api/multiple-pods.js +++ b/server/tests/api/multiple-pods.js @@ -80,12 +80,13 @@ describe('Test multiple pods', function () { series([ function (next) { - const name = 'my super name for pod 1' - const category = 5 - const description = 'my super description for pod 1' - const tags = [ 'tag1p1', 'tag2p1' ] - const file = 'video_short1.webm' - videosUtils.uploadVideo(servers[0].url, servers[0].accessToken, name, category, description, tags, file, next) + const videoAttributes = { + name: 'my super name for pod 1', + description: 'my super description for pod 1', + tags: [ 'tag1p1', 'tag2p1' ], + fixture: 'video_short1.webm' + } + videosUtils.uploadVideo(servers[0].url, servers[0].accessToken, videoAttributes, next) }, function (next) { setTimeout(next, 11000) @@ -146,12 +147,14 @@ describe('Test multiple pods', function () { series([ function (next) { - const name = 'my super name for pod 2' - const category = 4 - const description = 'my super description for pod 2' - const tags = [ 'tag1p2', 'tag2p2', 'tag3p2' ] - const file = 'video_short2.webm' - videosUtils.uploadVideo(servers[1].url, servers[1].accessToken, name, category, description, tags, file, next) + const videoAttributes = { + name: 'my super name for pod 2', + category: 4, + description: 'my super description for pod 2', + tags: [ 'tag1p2', 'tag2p2', 'tag3p2' ], + fixture: 'video_short2.webm' + } + videosUtils.uploadVideo(servers[1].url, servers[1].accessToken, videoAttributes, next) }, function (next) { setTimeout(next, 11000) @@ -212,20 +215,24 @@ describe('Test multiple pods', function () { series([ function (next) { - const name = 'my super name for pod 3' - const category = 6 - const description = 'my super description for pod 3' - const tags = [ 'tag1p3' ] - const file = 'video_short3.webm' - videosUtils.uploadVideo(servers[2].url, servers[2].accessToken, name, category, description, tags, file, next) + const videoAttributes = { + name: 'my super name for pod 3', + category: 6, + description: 'my super description for pod 3', + tags: [ 'tag1p3' ], + fixture: 'video_short3.webm' + } + videosUtils.uploadVideo(servers[2].url, servers[2].accessToken, videoAttributes, next) }, function (next) { - const name = 'my super name for pod 3-2' - const category = 7 - const description = 'my super description for pod 3-2' - const tags = [ 'tag2p3', 'tag3p3', 'tag4p3' ] - const file = 'video_short.webm' - videosUtils.uploadVideo(servers[2].url, servers[2].accessToken, name, category, description, tags, file, next) + const videoAttributes = { + name: 'my super name for pod 3-2', + category: 7, + description: 'my super description for pod 3-2', + tags: [ 'tag2p3', 'tag3p3', 'tag4p3' ], + fixture: 'video_short.webm' + } + videosUtils.uploadVideo(servers[2].url, servers[2].accessToken, videoAttributes, next) }, function (next) { setTimeout(next, 22000) @@ -614,12 +621,13 @@ describe('Test multiple pods', function () { it('Should update the video 3 by asking pod 3', function (done) { this.timeout(15000) - const name = 'my super video updated' - const category = 10 - const description = 'my super description updated' - const tags = [ 'tagup1', 'tagup2' ] - - videosUtils.updateVideo(servers[2].url, servers[2].accessToken, toRemove[0].id, name, category, description, tags, function (err) { + const attributes = { + name: 'my super video updated', + category: 10, + description: 'my super description updated', + tags: [ 'tagup1', 'tagup2' ] + } + videosUtils.updateVideo(servers[2].url, servers[2].accessToken, toRemove[0].id, attributes, function (err) { if (err) throw err setTimeout(done, 11000) diff --git a/server/tests/api/requests.js b/server/tests/api/requests.js index b4b8393e3..8762163af 100644 --- a/server/tests/api/requests.js +++ b/server/tests/api/requests.js @@ -13,17 +13,16 @@ const serversUtils = require('../utils/servers') const videosUtils = require('../utils/videos') describe('Test requests stats', function () { + const requestSchedulerNames = [ 'requestScheduler', 'requestVideoQaduScheduler', 'requestVideoEventScheduler' ] const path = '/api/v1/requests/stats' let servers = [] function uploadVideo (server, callback) { - const name = 'my super video' - const category = 5 - const description = 'my super description' - const tags = [ 'tag1', 'tag2' ] - const fixture = 'video_short.webm' + const videoAttributes = { + tags: [ 'tag1', 'tag2' ] + } - videosUtils.uploadVideo(server.url, server.accessToken, name, category, description, tags, fixture, callback) + videosUtils.uploadVideo(server.url, server.accessToken, videoAttributes, callback) } function getRequestsStats (server, callback) { @@ -64,9 +63,13 @@ describe('Test requests stats', function () { getRequestsStats(server, function (err, res) { if (err) throw err - const body = res.body - expect(body.remainingMilliSeconds).to.be.at.least(0) - expect(body.remainingMilliSeconds).to.be.at.most(10000) + const requestSchedulers = res.body + for (const requestSchedulerName of requestSchedulerNames) { + const requestScheduler = requestSchedulers[requestSchedulerName] + + expect(requestScheduler.remainingMilliSeconds).to.be.at.least(0) + expect(requestScheduler.remainingMilliSeconds).to.be.at.most(10000) + } done() }) @@ -86,8 +89,9 @@ describe('Test requests stats', function () { getRequestsStats(server, function (err, res) { if (err) throw err - const body = res.body - expect(body.totalRequests).to.equal(1) + const requestSchedulers = res.body + const requestScheduler = requestSchedulers.requestScheduler + expect(requestScheduler.totalRequests).to.equal(1) done() }) diff --git a/server/tests/api/single-pod.js b/server/tests/api/single-pod.js index d583592d8..9465f6034 100644 --- a/server/tests/api/single-pod.js +++ b/server/tests/api/single-pod.js @@ -70,13 +70,12 @@ describe('Test a single pod', function () { }) it('Should upload the video', function (done) { - this.timeout(5000) - const name = 'my super name' - const description = 'my super description' - const category = 2 - const tags = [ 'tag1', 'tag2', 'tag3' ] - const file = 'video_short.webm' - videosUtils.uploadVideo(server.url, server.accessToken, name, category, description, tags, file, done) + const videoAttributes = { + name: 'my super name', + category: 2, + tags: [ 'tag1', 'tag2', 'tag3' ] + } + videosUtils.uploadVideo(server.url, server.accessToken, videoAttributes, done) }) it('Should seed the uploaded video', function (done) { @@ -321,12 +320,15 @@ describe('Test a single pod', function () { 'video_short1.webm', 'video_short2.webm', 'video_short3.webm' ] each(videos, function (video, callbackEach) { - const name = video + ' name' - const description = video + ' description' - const category = 2 - const tags = [ 'tag1', 'tag2', 'tag3' ] + const videoAttributes = { + name: video + ' name', + description: video + ' description', + category: 2, + tags: [ 'tag1', 'tag2', 'tag3' ], + fixture: video + } - videosUtils.uploadVideo(server.url, server.accessToken, name, category, description, tags, video, callbackEach) + videosUtils.uploadVideo(server.url, server.accessToken, videoAttributes, callbackEach) }, done) }) @@ -543,12 +545,13 @@ describe('Test a single pod', function () { }) it('Should update a video', function (done) { - const name = 'my super video updated' - const category = 4 - const description = 'my super description updated' - const tags = [ 'tagup1', 'tagup2' ] - - videosUtils.updateVideo(server.url, server.accessToken, videoId, name, category, description, tags, done) + const attributes = { + name: 'my super video updated', + category: 4, + description: 'my super description updated', + tags: [ 'tagup1', 'tagup2' ] + } + videosUtils.updateVideo(server.url, server.accessToken, videoId, attributes, done) }) it('Should have the video updated', function (done) { @@ -586,9 +589,11 @@ describe('Test a single pod', function () { }) it('Should update only the tags of a video', function (done) { - const tags = [ 'tag1', 'tag2', 'supertag' ] + const attributes = { + tags: [ 'tag1', 'tag2', 'supertag' ] + } - videosUtils.updateVideo(server.url, server.accessToken, videoId, null, null, null, tags, function (err) { + videosUtils.updateVideo(server.url, server.accessToken, videoId, attributes, function (err) { if (err) throw err videosUtils.getVideo(server.url, videoId, function (err, res) { @@ -613,9 +618,11 @@ describe('Test a single pod', function () { }) it('Should update only the description of a video', function (done) { - const description = 'hello everybody' + const attributes = { + description: 'hello everybody' + } - videosUtils.updateVideo(server.url, server.accessToken, videoId, null, null, description, null, function (err) { + videosUtils.updateVideo(server.url, server.accessToken, videoId, attributes, function (err) { if (err) throw err videosUtils.getVideo(server.url, videoId, function (err, res) { diff --git a/server/tests/api/users.js b/server/tests/api/users.js index 0f062c11f..2b6956baa 100644 --- a/server/tests/api/users.js +++ b/server/tests/api/users.js @@ -85,12 +85,8 @@ describe('Test users', function () { it('Should not be able to upload a video', function (done) { accessToken = 'mysupertoken' - const name = 'my super name' - const description = 'my super description' - const category = 5 - const tags = [ 'tag1', 'tag2' ] - const video = 'video_short.webm' - videosUtils.uploadVideo(server.url, accessToken, name, category, description, tags, video, 401, done) + const videoAttributes = {} + videosUtils.uploadVideo(server.url, accessToken, videoAttributes, 401, done) }) it('Should not be able to make friends', function (done) { @@ -113,12 +109,8 @@ describe('Test users', function () { }) it('Should upload the video with the correct token', function (done) { - const name = 'my super name' - const category = 5 - const description = 'my super description' - const tags = [ 'tag1', 'tag2' ] - const video = 'video_short.webm' - videosUtils.uploadVideo(server.url, accessToken, name, category, description, tags, video, 204, function (err, res) { + const videoAttributes = {} + videosUtils.uploadVideo(server.url, accessToken, videoAttributes, 204, function (err, res) { if (err) throw err videosUtils.getVideosList(server.url, function (err, res) { @@ -134,12 +126,8 @@ describe('Test users', function () { }) it('Should upload the video again with the correct token', function (done) { - const name = 'my super name 2' - const category = 5 - const description = 'my super description 2' - const tags = [ 'tag1' ] - const video = 'video_short.webm' - videosUtils.uploadVideo(server.url, accessToken, name, category, description, tags, video, 204, done) + const videoAttributes = {} + videosUtils.uploadVideo(server.url, accessToken, videoAttributes, 204, done) }) it('Should retrieve a video rating', function (done) { @@ -230,12 +218,8 @@ describe('Test users', function () { it('Should be able to upload a video with this user', function (done) { this.timeout(5000) - const name = 'my super name' - const category = 5 - const description = 'my super description' - const tags = [ 'tag1', 'tag2', 'tag3' ] - const file = 'video_short.webm' - videosUtils.uploadVideo(server.url, accessTokenUser, name, category, description, tags, file, done) + const videoAttributes = {} + videosUtils.uploadVideo(server.url, accessTokenUser, videoAttributes, done) }) it('Should list all the users', function (done) { diff --git a/server/tests/api/video-abuse.js b/server/tests/api/video-abuse.js index 871054788..7db067585 100644 --- a/server/tests/api/video-abuse.js +++ b/server/tests/api/video-abuse.js @@ -45,20 +45,18 @@ describe('Test video abuses', function () { }, // Upload some videos on each pods function (next) { - const name = 'my super name for pod 1' - const category = 5 - const description = 'my super description for pod 1' - const tags = [ 'tag' ] - const file = 'video_short2.webm' - videosUtils.uploadVideo(servers[0].url, servers[0].accessToken, name, category, description, tags, file, next) + const videoAttributes = { + name: 'my super name for pod 1', + description: 'my super description for pod 1' + } + videosUtils.uploadVideo(servers[0].url, servers[0].accessToken, videoAttributes, next) }, function (next) { - const name = 'my super name for pod 2' - const category = 5 - const description = 'my super description for pod 2' - const tags = [ 'tag' ] - const file = 'video_short2.webm' - videosUtils.uploadVideo(servers[1].url, servers[1].accessToken, name, category, description, tags, file, next) + const videoAttributes = { + name: 'my super name for pod 2', + description: 'my super description for pod 2' + } + videosUtils.uploadVideo(servers[1].url, servers[1].accessToken, videoAttributes, next) }, // Wait videos propagation function (next) { diff --git a/server/tests/real-world/real-world.js b/server/tests/real-world/real-world.js index f17c83f85..32afeec68 100644 --- a/server/tests/real-world/real-world.js +++ b/server/tests/real-world/real-world.js @@ -200,15 +200,16 @@ function exitServers (servers, callback) { function upload (servers, numServer, callback) { if (!callback) callback = function () {} - const name = Date.now() + ' name' - const category = 4 - const description = Date.now() + ' description' - const tags = [ Date.now().toString().substring(0, 5) + 't1', Date.now().toString().substring(0, 5) + 't2' ] - const file = 'video_short1.webm' - console.log('Uploading video to server ' + numServer) - videosUtils.uploadVideo(servers[numServer].url, servers[numServer].accessToken, name, category, description, tags, file, callback) + const videoAttributes = { + name: Date.now() + ' name', + category: 4, + description: Date.now() + ' description', + tags: [ Date.now().toString().substring(0, 5) + 't1', Date.now().toString().substring(0, 5) + 't2' ], + fixture: 'video_short1.webm' + } + videosUtils.uploadVideo(servers[numServer].url, servers[numServer].accessToken, videoAttributes, callback) } function update (servers, numServer, callback) { @@ -221,13 +222,15 @@ function update (servers, numServer, callback) { if (videos.length === 0) return callback() const toUpdate = videos[getRandomInt(0, videos.length)].id - const name = Date.now() + ' name' - const description = Date.now() + ' description' - const tags = [ Date.now().toString().substring(0, 5) + 't1', Date.now().toString().substring(0, 5) + 't2' ] + const attributes = { + name: Date.now() + ' name', + description: Date.now() + ' description', + tags: [ Date.now().toString().substring(0, 5) + 't1', Date.now().toString().substring(0, 5) + 't2' ] + } console.log('Updating video of server ' + numServer) - videosUtils.updateVideo(servers[numServer].url, servers[numServer].accessToken, toUpdate, name, description, tags, callback) + videosUtils.updateVideo(servers[numServer].url, servers[numServer].accessToken, toUpdate, attributes, callback) }) } diff --git a/server/tests/real-world/tools/upload.js b/server/tests/real-world/tools/upload.js index 49076ee2a..856251c7f 100644 --- a/server/tests/real-world/tools/upload.js +++ b/server/tests/real-world/tools/upload.js @@ -49,10 +49,17 @@ function list (val) { return val.split(',') } -function upload (url, accessToken, name, category, description, tags, file) { +function upload (url, accessToken, name, category, description, tags, fixture) { console.log('Uploading %s video...', program.name) - utils.uploadVideo(url, accessToken, name, category, description, tags, file, function (err) { + const videoAttributes = { + name, + category, + description, + tags, + fixture + } + utils.uploadVideo(url, accessToken, videoAttributes, function (err) { if (err) throw err console.log('Video uploaded.') diff --git a/server/tests/utils/videos.js b/server/tests/utils/videos.js index 0aa6ec5a8..ad0d74076 100644 --- a/server/tests/utils/videos.js +++ b/server/tests/utils/videos.js @@ -193,7 +193,7 @@ function testVideoImage (url, videoName, imagePath, callback) { } } -function uploadVideo (url, accessToken, name, category, description, tags, fixture, specialStatus, end) { +function uploadVideo (url, accessToken, videoAttributesArg, specialStatus, end) { if (!end) { end = specialStatus specialStatus = 204 @@ -201,23 +201,33 @@ function uploadVideo (url, accessToken, name, category, description, tags, fixtu const path = '/api/v1/videos' + // Default attributes + let attributes = { + name: 'my super video', + category: 5, + description: 'my super description', + tags: [ 'tag' ], + fixture: 'video_short.webm' + } + attributes = Object.assign(attributes, videoAttributesArg) + const req = request(url) .post(path) .set('Accept', 'application/json') .set('Authorization', 'Bearer ' + accessToken) - .field('name', name) - .field('category', category) - .field('description', description) + .field('name', attributes.name) + .field('category', attributes.category) + .field('description', attributes.description) - for (let i = 0; i < tags.length; i++) { - req.field('tags[' + i + ']', tags[i]) + for (let i = 0; i < attributes.tags.length; i++) { + req.field('tags[' + i + ']', attributes.tags[i]) } let filepath = '' - if (pathUtils.isAbsolute(fixture)) { - filepath = fixture + if (pathUtils.isAbsolute(attributes.fixture)) { + filepath = attributes.fixture } else { - filepath = pathUtils.join(__dirname, '..', 'api', 'fixtures', fixture) + filepath = pathUtils.join(__dirname, '..', 'api', 'fixtures', attributes.fixture) } req.attach('videofile', filepath) @@ -225,7 +235,7 @@ function uploadVideo (url, accessToken, name, category, description, tags, fixtu .end(end) } -function updateVideo (url, accessToken, id, name, category, description, tags, specialStatus, end) { +function updateVideo (url, accessToken, id, attributes, specialStatus, end) { if (!end) { end = specialStatus specialStatus = 204 @@ -238,13 +248,13 @@ function updateVideo (url, accessToken, id, name, category, description, tags, s .set('Accept', 'application/json') .set('Authorization', 'Bearer ' + accessToken) - if (name) req.field('name', name) - if (category) req.field('category', category) - if (description) req.field('description', description) + if (attributes.name) req.field('name', attributes.name) + if (attributes.category) req.field('category', attributes.category) + if (attributes.description) req.field('description', attributes.description) - if (tags) { - for (let i = 0; i < tags.length; i++) { - req.field('tags[' + i + ']', tags[i]) + if (attributes.tags) { + for (let i = 0; i < attributes.tags.length; i++) { + req.field('tags[' + i + ']', attributes.tags[i]) } }