diff options
Diffstat (limited to 'server/tests/api/video-transcoder.js')
-rw-r--r-- | server/tests/api/video-transcoder.js | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/server/tests/api/video-transcoder.js b/server/tests/api/video-transcoder.js new file mode 100644 index 000000000..3ff7b230a --- /dev/null +++ b/server/tests/api/video-transcoder.js | |||
@@ -0,0 +1,115 @@ | |||
1 | /* eslint-disable no-unused-expressions */ | ||
2 | |||
3 | 'use strict' | ||
4 | |||
5 | const chai = require('chai') | ||
6 | const each = require('async/each') | ||
7 | const expect = chai.expect | ||
8 | const series = require('async/series') | ||
9 | const webtorrent = new (require('webtorrent'))() | ||
10 | |||
11 | const loginUtils = require('../utils/login') | ||
12 | const serversUtils = require('../utils/servers') | ||
13 | const videosUtils = require('../utils/videos') | ||
14 | |||
15 | describe('Test video blacklists', function () { | ||
16 | let servers = [] | ||
17 | |||
18 | before(function (done) { | ||
19 | this.timeout(30000) | ||
20 | |||
21 | series([ | ||
22 | // Run servers | ||
23 | function (next) { | ||
24 | serversUtils.flushAndRunMultipleServers(2, function (serversRun) { | ||
25 | servers = serversRun | ||
26 | next() | ||
27 | }) | ||
28 | }, | ||
29 | // Get the access tokens | ||
30 | function (next) { | ||
31 | each(servers, function (server, callbackEach) { | ||
32 | loginUtils.loginAndGetAccessToken(server, function (err, accessToken) { | ||
33 | if (err) return callbackEach(err) | ||
34 | |||
35 | server.accessToken = accessToken | ||
36 | callbackEach() | ||
37 | }) | ||
38 | }, next) | ||
39 | } | ||
40 | ], done) | ||
41 | }) | ||
42 | |||
43 | it('Should not transcode video on server 1', function (done) { | ||
44 | this.timeout(60000) | ||
45 | |||
46 | const videoAttributes = { | ||
47 | name: 'my super name for pod 1', | ||
48 | description: 'my super description for pod 1', | ||
49 | fixture: 'video_short.webm' | ||
50 | } | ||
51 | videosUtils.uploadVideo(servers[0].url, servers[0].accessToken, videoAttributes, function (err) { | ||
52 | if (err) throw err | ||
53 | |||
54 | setTimeout(function () { | ||
55 | videosUtils.getVideosList(servers[0].url, function (err, res) { | ||
56 | if (err) throw err | ||
57 | |||
58 | const video = res.body.data[0] | ||
59 | expect(video.magnetUri).to.match(/\.webm/) | ||
60 | |||
61 | webtorrent.add(video.magnetUri, function (torrent) { | ||
62 | expect(torrent.files).to.exist | ||
63 | expect(torrent.files.length).to.equal(1) | ||
64 | expect(torrent.files[0].path).match(/\.webm$/) | ||
65 | |||
66 | done() | ||
67 | }) | ||
68 | }) | ||
69 | }, 30000) | ||
70 | }) | ||
71 | }) | ||
72 | |||
73 | it('Should transcode video on server 2', function (done) { | ||
74 | this.timeout(60000) | ||
75 | |||
76 | const videoAttributes = { | ||
77 | name: 'my super name for pod 2', | ||
78 | description: 'my super description for pod 2', | ||
79 | fixture: 'video_short.webm' | ||
80 | } | ||
81 | videosUtils.uploadVideo(servers[1].url, servers[1].accessToken, videoAttributes, function (err) { | ||
82 | if (err) throw err | ||
83 | |||
84 | setTimeout(function () { | ||
85 | videosUtils.getVideosList(servers[1].url, function (err, res) { | ||
86 | if (err) throw err | ||
87 | |||
88 | const video = res.body.data[0] | ||
89 | expect(video.magnetUri).to.match(/\.mp4/) | ||
90 | |||
91 | webtorrent.add(video.magnetUri, function (torrent) { | ||
92 | expect(torrent.files).to.exist | ||
93 | expect(torrent.files.length).to.equal(1) | ||
94 | expect(torrent.files[0].path).match(/\.mp4$/) | ||
95 | |||
96 | done() | ||
97 | }) | ||
98 | }) | ||
99 | }, 30000) | ||
100 | }) | ||
101 | }) | ||
102 | |||
103 | after(function (done) { | ||
104 | servers.forEach(function (server) { | ||
105 | process.kill(-server.app.pid) | ||
106 | }) | ||
107 | |||
108 | // Keep the logs if the test failed | ||
109 | if (this.ok) { | ||
110 | serversUtils.flushTests(done) | ||
111 | } else { | ||
112 | done() | ||
113 | } | ||
114 | }) | ||
115 | }) | ||