diff --git a/server/tests/api/fixtures/video_short.mp4.jpg b/server/tests/api/fixtures/video_short.mp4.jpg new file mode 100644 index 000000000..48790ffec Binary files /dev/null and b/server/tests/api/fixtures/video_short.mp4.jpg differ diff --git a/server/tests/api/fixtures/video_short.ogv.jpg b/server/tests/api/fixtures/video_short.ogv.jpg new file mode 100644 index 000000000..c4c1d00e5 Binary files /dev/null and b/server/tests/api/fixtures/video_short.ogv.jpg differ diff --git a/server/tests/api/fixtures/video_short.webm.jpg b/server/tests/api/fixtures/video_short.webm.jpg new file mode 100644 index 000000000..b0dffd099 Binary files /dev/null and b/server/tests/api/fixtures/video_short.webm.jpg differ diff --git a/server/tests/api/fixtures/video_short1.webm.jpg b/server/tests/api/fixtures/video_short1.webm.jpg new file mode 100644 index 000000000..2db21975c Binary files /dev/null and b/server/tests/api/fixtures/video_short1.webm.jpg differ diff --git a/server/tests/api/fixtures/video_short2.webm.jpg b/server/tests/api/fixtures/video_short2.webm.jpg new file mode 100644 index 000000000..ed5952e04 Binary files /dev/null and b/server/tests/api/fixtures/video_short2.webm.jpg differ diff --git a/server/tests/api/fixtures/video_short3.webm.jpg b/server/tests/api/fixtures/video_short3.webm.jpg new file mode 100644 index 000000000..b7c41cc1a Binary files /dev/null and b/server/tests/api/fixtures/video_short3.webm.jpg differ diff --git a/server/tests/api/multiplePods.js b/server/tests/api/multiplePods.js index 4a4532a0f..c19f120ef 100644 --- a/server/tests/api/multiplePods.js +++ b/server/tests/api/multiplePods.js @@ -110,7 +110,12 @@ describe('Test multiple pods', function () { expect(video.magnetUri).to.equal.magnetUri } - callback() + utils.testImage(server.url, 'video_short1.webm', video.thumbnail_path, function (err, test) { + if (err) throw err + expect(test).to.equal(true) + + callback() + }) }) }, done) } @@ -160,7 +165,12 @@ describe('Test multiple pods', function () { expect(video.magnetUri).to.equal.magnetUri } - callback() + utils.testImage(server.url, 'video_short2.webm', video.thumbnail_path, function (err, test) { + if (err) throw err + expect(test).to.equal(true) + + callback() + }) }) }, done) } @@ -231,7 +241,17 @@ describe('Test multiple pods', function () { expect(video2.magnetUri).to.equal.magnetUri } - callback() + utils.testImage(server.url, 'video_short3.webm', video1.thumbnail_path, function (err, test) { + if (err) throw err + expect(test).to.equal(true) + + utils.testImage(server.url, 'video_short.webm', video2.thumbnail_path, function (err, test) { + if (err) throw err + expect(test).to.equal(true) + + callback() + }) + }) }) }, done) } diff --git a/server/tests/api/singlePod.js b/server/tests/api/singlePod.js index e2999530e..9a9af0901 100644 --- a/server/tests/api/singlePod.js +++ b/server/tests/api/singlePod.js @@ -76,14 +76,19 @@ describe('Test a single pod', function () { expect(video.author).to.equal('root') expect(video.isLocal).to.be.true - video_id = video.id + utils.testImage(server.url, 'video_short.webm', video.thumbnail_path, function (err, test) { + if (err) throw err + expect(test).to.equal(true) - webtorrent.add(video.magnetUri, function (torrent) { - expect(torrent.files).to.exist - expect(torrent.files.length).to.equal(1) - expect(torrent.files[0].path).to.exist.and.to.not.equal('') + video_id = video.id - done() + webtorrent.add(video.magnetUri, function (torrent) { + expect(torrent.files).to.exist + expect(torrent.files.length).to.equal(1) + expect(torrent.files[0].path).to.exist.and.to.not.equal('') + + done() + }) }) }) }) @@ -103,12 +108,17 @@ describe('Test a single pod', function () { expect(video.author).to.equal('root') expect(video.isLocal).to.be.true - webtorrent.add(video.magnetUri, function (torrent) { - expect(torrent.files).to.exist - expect(torrent.files.length).to.equal(1) - expect(torrent.files[0].path).to.exist.and.to.not.equal('') + utils.testImage(server.url, 'video_short.webm', video.thumbnail_path, function (err, test) { + if (err) throw err + expect(test).to.equal(true) - done() + webtorrent.add(video.magnetUri, function (torrent) { + expect(torrent.files).to.exist + expect(torrent.files.length).to.equal(1) + expect(torrent.files[0].path).to.exist.and.to.not.equal('') + + done() + }) }) }) }) @@ -127,7 +137,12 @@ describe('Test a single pod', function () { expect(video.author).to.equal('root') expect(video.isLocal).to.be.true - done() + utils.testImage(server.url, 'video_short.webm', video.thumbnail_path, function (err, test) { + if (err) throw err + expect(test).to.equal(true) + + done() + }) }) }) @@ -197,6 +212,24 @@ describe('Test a single pod', function () { }) }) + it('Should have the correct thumbnails', function (done) { + utils.getVideosList(server.url, function (err, res) { + const videos = res.body + + async.each(videos, function (video, callback_each) { + if (err) throw err + const video_name = video.name.replace(' name', '') + + utils.testImage(server.url, video_name, video.thumbnail_path, function (err, test) { + if (err) throw err + + expect(test).to.equal(true) + callback_each() + }) + }, done) + }) + }) + after(function (done) { process.kill(-server.app.pid) process.kill(-webtorrent.app.pid) diff --git a/server/tests/api/utils.js b/server/tests/api/utils.js index c1a01ef37..3d3169fde 100644 --- a/server/tests/api/utils.js +++ b/server/tests/api/utils.js @@ -3,6 +3,7 @@ const child_process = require('child_process') const exec = child_process.exec const fork = child_process.fork +const fs = require('fs') const pathUtils = require('path') const request = require('supertest') @@ -19,6 +20,7 @@ const testUtils = { flushAndRunMultipleServers: flushAndRunMultipleServers, runServer: runServer, searchVideo: searchVideo, + testImage: testImage, uploadVideo: uploadVideo } @@ -252,6 +254,21 @@ function searchVideo (url, search, end) { .end(end) } +function testImage (url, video_name, image_path, callback) { + request(url) + .get(image_path) + .expect(200) + .end(function (err, res) { + if (err) return callback(err) + + fs.readFile(pathUtils.join(__dirname, 'fixtures', video_name + '.jpg'), function (err, data) { + if (err) return callback(err) + + callback(null, data.equals(res.body)) + }) + }) +} + function uploadVideo (url, access_token, name, description, fixture, special_status, end) { if (!end) { end = special_status